示例#1
0
        public void TestAbsoluteSitemap()
        {
            using var runner = TestRunner.Run(GetTest(BotInstructions.Default().Sitemap("http://my/sitemap.xml")));

            var result = GetRobots(runner);

            Assert.Contains("Sitemap: http://my/sitemap.xml", result);
        }
示例#2
0
        public void TestCustomSitemap()
        {
            using var runner = TestRunner.Run(GetTest(BotInstructions.Default().Sitemap("sitemap.xml")));

            var result = GetRobots(runner);

            Assert.Contains("Sitemap: http://localhost/sitemap.xml", result);
        }
示例#3
0
        public void TestDefault()
        {
            using var runner = TestRunner.Run(GetTest(BotInstructions.Default()));

            var result = GetRobots(runner);

            Assert.Contains("User-agent: *", result);
            Assert.Contains("Allow: /", result);

            Assert.DoesNotContain("Sitemap", result);
        }
示例#4
0
        public WebsiteRouter(IHandler parent,
                             IHandlerBuilder content,
                             IEnumerable <IConcernBuilder> concerns,
                             IHandlerBuilder scripts,
                             IHandlerBuilder styles,
                             IResourceProvider?favicon,
                             IMenuProvider?menu,
                             ITheme theme)
        {
            Parent = parent;

            var layout = Layout.Create()
                         .Add("scripts", scripts)
                         .Add("styles", styles)
                         .Add("sitemap.xml", Sitemap.Create())
                         .Add("robots.txt", BotInstructions.Default().Sitemap())
                         .Fallback(content);

            foreach (var concern in concerns)
            {
                layout.Add(concern);
            }

            if (favicon != null)
            {
                layout.Add("favicon.ico", Download.From(favicon).Type(ContentType.ImageIcon));
            }

            if (theme.Resources != null)
            {
                layout.Add("resources", theme.Resources);
            }

            Handler = layout.Build(this);

            Theme = theme;

            Menu = menu ?? Websites.Menu.Create((r, _) => GetContent(r)).Build();

            var scriptRouter = (ScriptRouter)scripts.Build(this);
            var styleRouter  = (StyleRouter)styles.Build(this);

            Renderer = new WebsiteRenderer(Theme, Menu, scriptRouter, styleRouter);
        }
示例#5
0
        public void TestDirective()
        {
            var robots = BotInstructions.Empty()
                         .Directive(new string[] { "MyAgent 1", "MyAgent 2" },
                                    new string[] { "/allowed", "/alsoallowed" },
                                    new string[] { "/disallowed/", "/alsodisallowed" });

            using var runner = TestRunner.Run(GetTest(robots));

            var result = GetRobots(runner);

            Assert.Contains("User-agent: MyAgent 1", result);
            Assert.Contains("User-agent: MyAgent 2", result);

            Assert.Contains("Allow: /allowed", result);
            Assert.Contains("Allow: /alsoallowed", result);

            Assert.Contains("Disallow: /disallowed/", result);
            Assert.Contains("Disallow: /alsodisallowed", result);
        }