Beispiel #1
0
        public void Strings()
        {
            Assert.Equal("", ObjectDisplay.FormatString("", quote: '\0', escapeNonPrintable: true));
            Assert.Equal(@"a", ObjectDisplay.FormatString(@"a", quote: '\0', escapeNonPrintable: true));
            Assert.Equal(@"ab", ObjectDisplay.FormatString(@"ab", quote: '\0', escapeNonPrintable: true));
            Assert.Equal(@"\\", ObjectDisplay.FormatString(@"\", quote: '\0', escapeNonPrintable: true));
            Assert.Equal(@"\\a", ObjectDisplay.FormatString(@"\a", quote: '\0', escapeNonPrintable: true));
            Assert.Equal(@"a\\b", ObjectDisplay.FormatString(@"a\b", quote: '\0', escapeNonPrintable: true));
            Assert.Equal(@"ab\\c", ObjectDisplay.FormatString(@"ab\c", quote: '\0', escapeNonPrintable: true));
            Assert.Equal(@"ab\\cd", ObjectDisplay.FormatString(@"ab\cd", quote: '\0', escapeNonPrintable: true));
            Assert.Equal(@"ab\\cd\\", ObjectDisplay.FormatString(@"ab\cd\", quote: '\0', escapeNonPrintable: true));
            Assert.Equal(@"ab\\cd\\e", ObjectDisplay.FormatString(@"ab\cd\e", quote: '\0', escapeNonPrintable: true));
            Assert.Equal(@"\\\\\\\\", ObjectDisplay.FormatString(@"\\\\", quote: '\0', escapeNonPrintable: true));

            Assert.Equal(@"""""", ObjectDisplay.FormatString("", quote: '"', escapeNonPrintable: true));
            Assert.Equal(@"""\""\""""", ObjectDisplay.FormatString(@"""""", quote: '"', escapeNonPrintable: true));
            Assert.Equal(@"""'""", ObjectDisplay.FormatString(@"'", quote: '"', escapeNonPrintable: true));
            Assert.Equal(@"""ab""", ObjectDisplay.FormatString(@"ab", quote: '"', escapeNonPrintable: true));
            Assert.Equal(@"""\\""", ObjectDisplay.FormatString(@"\", quote: '"', escapeNonPrintable: true));

            Assert.Equal(@"''", ObjectDisplay.FormatString("", quote: '\'', escapeNonPrintable: true));
            Assert.Equal(@"'\'\''", ObjectDisplay.FormatString("''", quote: '\'', escapeNonPrintable: true));
            Assert.Equal(@"'""'", ObjectDisplay.FormatString(@"""", quote: '\'', escapeNonPrintable: true));
            Assert.Equal(@"'ab'", ObjectDisplay.FormatString(@"ab", quote: '\'', escapeNonPrintable: true));
            Assert.Equal(@"'\\'", ObjectDisplay.FormatString(@"\", quote: '\'', escapeNonPrintable: true));

            Assert.Equal("\"x\"", ObjectDisplay.FormatLiteral("x", ObjectDisplayOptions.UseQuotes));
            Assert.Equal("x", ObjectDisplay.FormatLiteral("x", ObjectDisplayOptions.None));

            StringBuilder sb = new StringBuilder();

            for (int i = 0; i < 255; i++)
            {
                sb.Append((char)i);
            }

            var s = ObjectDisplay.FormatString(sb.ToString(), quote: '"', escapeNonPrintable: true);

            Assert.Equal(
                @"""\0\u0001\u0002\u0003\u0004\u0005\u0006\u0007\b\t\n\v\u000c\r\u000e\u000f\u0010" +
                @"\u0011\u0012\u0013\u0014\u0015\u0016\u0017\u0018\u0019\u001a\u001b\u001c\u001d" +
                @"\u001e\u001f !\""#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[" +
                @"\\]^_`abcdefghijklmnopqrstuvwxyz{|}~\u007f\u0080\u0081\u0082\u0083\u0084\u0085" +
                @"\u0086\u0087\u0088\u0089\u008a\u008b\u008c\u008d\u008e\u008f\u0090\u0091\u0092" +
                @"\u0093\u0094\u0095\u0096\u0097\u0098\u0099\u009a\u009b\u009c\u009d\u009e\u009f" +
                @" ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèé" +
                @"êëìíîïðñòóôõö÷øùúûüýþ""", s);

            var arabic = "انتخابات مبكرة، بعد يوم حافل بالاحداث السياسية، بعد";

            s = ObjectDisplay.FormatString(arabic, quote: '\0', escapeNonPrintable: true);
            Assert.Equal(arabic, s);

            var hebrew = "והמנהלים רפואיים של ארבעת קופות החולים. בסיום הפגישה הבהיר";

            s = ObjectDisplay.FormatString(hebrew, quote: '\0', escapeNonPrintable: true);
            Assert.Equal(hebrew, s);
        }
        public void Strings()
        {
            Assert.Equal("", ObjectDisplay.FormatString("", useQuotes: false));
            Assert.Equal(@"a", ObjectDisplay.FormatString(@"a", useQuotes: false));
            Assert.Equal(@"ab", ObjectDisplay.FormatString(@"ab", useQuotes: false));
            Assert.Equal(@"\", ObjectDisplay.FormatString(@"\", useQuotes: false));
            Assert.Equal(@"\a", ObjectDisplay.FormatString(@"\a", useQuotes: false));
            Assert.Equal(@"a\b", ObjectDisplay.FormatString(@"a\b", useQuotes: false));
            Assert.Equal(@"ab\c", ObjectDisplay.FormatString(@"ab\c", useQuotes: false));
            Assert.Equal(@"ab\cd", ObjectDisplay.FormatString(@"ab\cd", useQuotes: false));
            Assert.Equal(@"ab\cd\", ObjectDisplay.FormatString(@"ab\cd\", useQuotes: false));
            Assert.Equal(@"ab\cd\e", ObjectDisplay.FormatString(@"ab\cd\e", useQuotes: false));
            Assert.Equal(@"\\\\", ObjectDisplay.FormatString(@"\\\\", useQuotes: false));

            Assert.Equal(@"""""", ObjectDisplay.FormatString("", useQuotes: true));
            Assert.Equal(@"""\""\""""", ObjectDisplay.FormatString(@"""""", useQuotes: true));
            Assert.Equal(@"""'""", ObjectDisplay.FormatString(@"'", useQuotes: true));
            Assert.Equal(@"""ab""", ObjectDisplay.FormatString(@"ab", useQuotes: true));
            Assert.Equal(@"""\\""", ObjectDisplay.FormatString(@"\", useQuotes: true));

            Assert.Equal("\"x\"", ObjectDisplay.FormatLiteral("x", ObjectDisplayOptions.UseQuotes));
            Assert.Equal("x", ObjectDisplay.FormatLiteral("x", ObjectDisplayOptions.None));

            StringBuilder sb = new StringBuilder();

            for (int i = 0; i < 255; i++)
            {
                sb.Append((char)i);
            }
            var s = sb.ToString();

            // Formatting with quotes should escape specific control characters.
            var expected =
                "\"\\0\\u0001\\u0002\\u0003\\u0004\\u0005\\u0006\\a\\b\\t\\n\\v\\f\\r\\u000e\\u000f\\u0010" +
                "\\u0011\\u0012\\u0013\\u0014\\u0015\\u0016\\u0017\\u0018\\u0019\\u001a\\u001b\\u001c\\u001d" +
                "\\u001e\\u001f !\\\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[" +
                "\\\\]^_`abcdefghijklmnopqrstuvwxyz{|}~\\u007f\\u0080\\u0081\\u0082\\u0083\\u0084\\u0085" +
                "\\u0086\\u0087\\u0088\\u0089\\u008a\\u008b\\u008c\\u008d\\u008e\\u008f\\u0090\\u0091\\u0092" +
                "\\u0093\\u0094\\u0095\\u0096\\u0097\\u0098\\u0099\\u009a\\u009b\\u009c\\u009d\\u009e\\u009f" +
                " ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèé" +
                "êëìíîïðñòóôõö÷øùúûüýþ\"";

            Assert.Equal(
                expected,
                ObjectDisplay.FormatString(s, useQuotes: true));

            // Formatting without quotes should not escape any characters.
            expected =
                "\0\u0001\u0002\u0003\u0004\u0005\u0006\a\u0008\u0009\u000a\u000b\f\u000d\u000e\u000f\u0010" +
                "\u0011\u0012\u0013\u0014\u0015\u0016\u0017\u0018\u0019\u001a\u001b\u001c\u001d" +
                "\u001e\u001f !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[" +
                "\\]^_`abcdefghijklmnopqrstuvwxyz{|}~\u007f\u0080\u0081\u0082\u0083\u0084\u0085" +
                "\u0086\u0087\u0088\u0089\u008a\u008b\u008c\u008d\u008e\u008f\u0090\u0091\u0092" +
                "\u0093\u0094\u0095\u0096\u0097\u0098\u0099\u009a\u009b\u009c\u009d\u009e\u009f" +
                " ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèé" +
                "êëìíîïðñòóôõö÷øùúûüýþ";
            Assert.Equal(
                expected,
                ObjectDisplay.FormatString(s, useQuotes: false));

            var arabic = "انتخابات مبكرة، بعد يوم حافل بالاحداث السياسية، بعد";

            s = ObjectDisplay.FormatString(arabic, useQuotes: false);
            Assert.Equal(arabic, s);

            var hebrew = "והמנהלים רפואיים של ארבעת קופות החולים. בסיום הפגישה הבהיר";

            s = ObjectDisplay.FormatString(hebrew, useQuotes: false);
            Assert.Equal(hebrew, s);
        }
 internal override string FormatString(string str, ObjectDisplayOptions options)
 {
     return(ObjectDisplay.FormatString(str, quote: options.IncludesOption(ObjectDisplayOptions.UseQuotes) ? '"' : '\0', escapeNonPrintable: false));
 }
Beispiel #4
0
 internal override string FormatString(string str, ObjectDisplayOptions options)
 {
     return(ObjectDisplay.FormatString(str, useQuotes: options.IncludesOption(ObjectDisplayOptions.UseQuotes)));
 }