Пример #1
0
        public void DocumentedExamples()
        {
            var uriTest = new Uri("http://example.com/ads/banner123.gif");
            Assert.AreEqual(UriPatternMatchType.Match, new UriPattern("http://example.com/ads/banner*.gif").Match(uriTest.CreateSimpleRequest()));
            Assert.AreEqual(UriPatternMatchType.Match, new UriPattern("http://example.com/ads/*.").Match(uriTest.CreateSimpleRequest()));
            Assert.AreEqual(UriPatternMatchType.Exception, new UriPattern("@@|http://example.com").Match(uriTest.CreateSimpleRequest()));

            uriTest = new Uri("http://example.com/swf/index.html");
            Assert.AreEqual(UriPatternMatchType.Match, new UriPattern("swf").Match(uriTest.CreateSimpleRequest()));
            Assert.AreEqual(UriPatternMatchType.Match, new UriPattern("*swf*").Match(uriTest.CreateSimpleRequest()));

            uriTest = new Uri("http://example.com/annoyingflash.swf");
            Assert.AreEqual(UriPatternMatchType.Match, new UriPattern("swf|").Match(uriTest.CreateSimpleRequest()));
            uriTest = new Uri("http://example.com/swf/index.html");
            Assert.AreEqual(UriPatternMatchType.NonMatch, new UriPattern("swf|").Match(uriTest.CreateSimpleRequest()));

            uriTest = new Uri("http://baddomain.example/banner.gif");
            Assert.AreEqual(UriPatternMatchType.Match, new UriPattern("|http://baddomain.example/").Match(uriTest.CreateSimpleRequest()));
            uriTest = new Uri("http://gooddomain.example/analyze?http://baddomain.example");
            Assert.AreEqual(UriPatternMatchType.NonMatch, new UriPattern("|http://baddomain.example/").Match(uriTest.CreateSimpleRequest()));

            uriTest = new Uri("http://example.com/banner.gif");
            Assert.AreEqual(UriPatternMatchType.Match, new UriPattern("||example.com/banner.gif").Match(uriTest.CreateSimpleRequest()));
            uriTest = new Uri("https://example.com/banner.gif");
            Assert.AreEqual(UriPatternMatchType.Match, new UriPattern("||example.com/banner.gif").Match(uriTest.CreateSimpleRequest()));
            uriTest = new Uri("http://www.example.com/banner.gif");
            Assert.AreEqual(UriPatternMatchType.Match, new UriPattern("||example.com/banner.gif").Match(uriTest.CreateSimpleRequest()));

            uriTest = new Uri("http://badexample.com/banner.gif");
            Assert.AreEqual(UriPatternMatchType.NonMatch, new UriPattern("||example.com/banner.gif").Match(uriTest.CreateSimpleRequest()));
            uriTest = new Uri("http://gooddomain.example/analyze?http://example.com/banner.gif");
            Assert.AreEqual(UriPatternMatchType.NonMatch, new UriPattern("||example.com/banner.gif").Match(uriTest.CreateSimpleRequest()));

            uriTest = new Uri("http://example.com/");
            Assert.AreEqual(UriPatternMatchType.Match, new UriPattern("http://example.com^").Match(uriTest.CreateSimpleRequest()));
            uriTest = new Uri("http://example.com:8000/");
            Assert.AreEqual(UriPatternMatchType.Match, new UriPattern("http://example.com^").Match(uriTest.CreateSimpleRequest()));
            uriTest = new Uri("http://example.com.ar/");
            Assert.AreEqual(UriPatternMatchType.NonMatch, new UriPattern("http://example.com^").Match(uriTest.CreateSimpleRequest()));

            uriTest = new Uri(@"http://example.com:8000/foo.bar?a=12&b=%D1%82%D0%B5%D1%81%D1%82");
            Assert.AreEqual(UriPatternMatchType.Match, new UriPattern("^example.com^").Match(uriTest.CreateSimpleRequest()));
            Assert.AreEqual(UriPatternMatchType.Match, new UriPattern(@"^%D1%82%D0%B5%D1%81%D1%82^").Match(uriTest.CreateSimpleRequest()));
            Assert.AreEqual(UriPatternMatchType.Match, new UriPattern("^foo.bar^").Match(uriTest.CreateSimpleRequest()));

            uriTest = new Uri(@"http://example.com:8000/banner123");
            Assert.AreEqual(UriPatternMatchType.Match, new UriPattern(@"/banner\d+/").Match(uriTest.CreateSimpleRequest()));

            uriTest = new Uri(@"http://example.com:8000/banners");
            Assert.AreEqual(UriPatternMatchType.NonMatch, new UriPattern(@"/banner\d+/").Match(uriTest.CreateSimpleRequest()));
        }
Пример #2
0
        public void OptionsTests()
        {
            var uriTest = new Uri("http://www.example.com/ads/bannerAd.gif");
            Assert.AreEqual(UriPatternMatchType.NonMatch, new UriPattern("*/BannerAd.gif$match-case").Match(uriTest.CreateSimpleRequest()));

            uriTest = new Uri("http://www.example.com/ads/BannerAd.gif");
            Assert.AreEqual(UriPatternMatchType.Match, new UriPattern("*/BannerAd.gif$match-case").Match(uriTest.CreateSimpleRequest()));

            uriTest = new Uri("http://www.example.com/ads/BannerAd.js");
            Assert.AreEqual(UriPatternMatchType.Match, new UriPattern("*/BannerAd$script").Match(uriTest.CreateSimpleRequest()));

            uriTest = new Uri("http://ad.example.com/ads/BannerAd.gif");
            Assert.AreEqual(UriPatternMatchType.Match, new UriPattern("|http://ad.$~object_subrequest,domain=~europa.eu|~sjsu.edu|~uitm.edu.my|~uni-freiburg.de").Match(uriTest.CreateSimpleRequest()));

            uriTest = new Uri("http://ad.uitm.edu.my/ads/BannerAd.gif");
            Assert.AreEqual(UriPatternMatchType.NonMatch, new UriPattern("|http://ad.$~object_subrequest,domain=~europa.eu|~sjsu.edu|~uitm.edu.my|~uni-freiburg.de").Match(uriTest.CreateSimpleRequest()));
        }
Пример #3
0
 public void TestUriParsing()
 {
     var uriTest = new Uri("http://www.test.com");
     var uriExample = new Uri("https://www.example.com/sample.html");
     Assert.AreEqual(UriPatternMatchType.NonMatch, new UriPattern(".ad.").Match(uriTest.CreateSimpleRequest()));
     Assert.AreEqual(UriPatternMatchType.Match, new UriPattern(".test.").Match(uriTest.CreateSimpleRequest()));
     Assert.AreEqual(UriPatternMatchType.Match, new UriPattern(".example.*^sample.html").Match(uriExample.CreateSimpleRequest()));
     Assert.AreEqual(UriPatternMatchType.NonMatch, new UriPattern(".example.*^/sample.html").Match(uriExample.CreateSimpleRequest()));
 }
Пример #4
0
 public void RegressionTests()
 {
     var uriTest = new Uri("http://www.example.com/ads/bannerAd.gif");
     Assert.AreEqual(UriPatternMatchType.NonMatch, new UriPattern("/bannerAd*.aspx").Match(uriTest.CreateSimpleRequest()));
 }