예제 #1
0
        public void RegexValidator_ValidateProfileSearchRegex_ValidTest()
        {
            List <string> inputs = new List <string>()
            {
                @"",
                @".*",
                @"(^|;)key=([^=]+;)?value($|,|;)",
                @"(^|;)key=([^=]+;)?(value1|value2|value3)($|,|;)",
                @"^key=\x01\x02\xAB\xab\u1234\u12aB[0-9a-zA-Z]+[123]*(a|b){4,}$",
                @"^key=value\.*\*+\-?\+{1,2}\[\]{6}\\{3,10000}\?\^\|\(\)\{\}$",
                @"(^|;)key=([^=]+;)?(中文|Français|Deutsch|日本語|Русский язык|Español|عربي|Esperanto|한국어|BIG5)($|,|;)",
                @"key=\w\W+\s*\S+\d{4}\D{4,5}",
                @"(^|;)key=abc{34}\?($|,|;)",
            };

            foreach (string input in inputs)
            {
                Assert.True(RegexTypeValidator.ValidateProfileSearchRegex(input));
            }
        }
예제 #2
0
        public void RegexValidator_ValidateProfileSearchRegex_InvalidTest()
        {
            List <string> inputs = new List <string>()
            {
                @"\a",
                @"\b",
                @"\B",
                @"\",
                @"\t",
                @"\r",
                @"\n",
                @"\x",
                @"\f",
                @"\e",
                @"\A",
                @"\z",
                @"\Z",
                @"\G",
                @"\1",
                @"\2",
                @"\12",
                @"\123",
                @"\1234",
                @"\x1",
                @"\x1x",
                @"\xx1",
                @"\xxa",
                @"aa\xa",
                @"aewrgaer\u",
                @"\u1",
                @"asdfdsaf\u12",
                @"\u123",
                @"\ux115",
                @"\u1x15",
                @"\u11x5",
                @"\u111x",
                @"\X12",
                @"\U1234",
                @"\c",
                @"\c1",
                @"\cC",
                @"(^|;)key=([^=]+;)?va(?'alpha')lue($|,|;)",
                @"(^|;)key=([^=]+;)?(?<double>A)B<double>($|,|;)",
                @"(^|;)key=([^=]+;)?\k<double>A($|,|;)",
                @"(^|;)key=([^=]+;)?Write(?:Line)?($|,|;)",
                @"(^|;)key=([^=]+;)?A\d{2}(?i:\w+)c?($|,|;)",
                @"(^|;)key=([^=]+;)?\w+(?=\.)($|,|;)",
                @"\\\\\\\\\\\\\\\\\\\\\",
                @"(^|;)key=\d*?\.\d($|,|;)",
                @"(^|;)key=be+?($|,|;)",
                @"(^|;)key=rai??n($|,|;)",
                @"(^|;)key=\d{3}?($|,|;)",
                @"(^|;)key=\d{2,}?($|,|;)",
                @"(^|;)key=\d{3,5}?($|,|;)",
                @"(^|;)key=${name}($|,|;)",
                @"(^|;)key=(?# comment)($|,|;)",
                @"tooooooooooooolooooooooooooooooooooooooongtooooooooooooolooooooooooooooooooooooooongtooooooooooooolooooooooooooooooooooooooongtooooooooooooolooooooooooooooooooooooooongtooooooooooooolooooooooooooooooooooooooongtooooooooooooolooooooooooooooooooooooooongtooooooooooooolooooooooooooooooooooooooongtooooooooooooolooooooooooooooooooooooooongtooooooooooooolooooooooooooooooooooooooongtooooooooooooolooooooooooooooooooooooooong",
            };

            foreach (string input in inputs)
            {
                bool validLength = (Encoding.UTF8.GetByteCount(input) <= PsMessageBuilder.MaxProfileSearchExtraDataLengthBytes);
                if (validLength)
                {
                    Assert.False(RegexTypeValidator.ValidateProfileSearchRegex(input));
                }
            }
        }