コード例 #1
0
        public void Results_LinkHasSizes_UseSizes()
        {
            var uri    = new Uri("http://www.example.com");
            var source = new MockSource();

            source.AddTextResource(uri, @"
                <html><head>
                    <link rel='icon' href='favicons.ico' sizes='16x16 32x32'>
                </head><body>Fake content.</body></html>");

            var scanner = new DefaultScanner(source, uri);

            scanner.Start();

            Assert.AreEqual(new ScanResult
            {
                Location     = new Uri("http://www.example.com/favicons.ico"),
                ExpectedSize = new Size(16, 16)
            }, scanner.Results[0]);
            Assert.AreEqual(new ScanResult
            {
                Location     = new Uri("http://www.example.com/favicons.ico"),
                ExpectedSize = new Size(32, 32)
            }, scanner.Results[1]);
        }
コード例 #2
0
        public void ScanningAScenarioWithoutArgsFromAStoryClass()
        {
            var testObject = new DummyScenario();
            var scanner = new DefaultScanner(TestContext.GetContext(testObject), new ReflectiveScenarioScanner(new DefaultMethodNameStepScanner()));
            var story = scanner.Scan();

            story.Metadata.Type.ShouldBe(typeof(StoryDouble));
            story.Scenarios.Count().ShouldBe(1);
            story.Scenarios.Single().TestObject.ShouldBeAssignableTo<DummyScenario>();
        }
コード例 #3
0
ファイル: StoryDouble.cs プロジェクト: zabing/TestStack.BDDfy
        public void ScanningAScenarioWithoutArgsFromAStoryClass()
        {
            var testObject = new DummyScenario();
            var scanner    = new DefaultScanner(TestContext.GetContext(testObject), new ReflectiveScenarioScanner(new DefaultMethodNameStepScanner()), typeof(StoryDouble));
            var story      = scanner.Scan();

            story.Metadata.Type.ShouldBe(typeof(StoryDouble));
            story.Scenarios.Count().ShouldBe(1);
            story.Scenarios.Single().TestObject.ShouldBeAssignableTo <DummyScenario>();
        }
コード例 #4
0
        public void ScanningAScenarioWithoutArgsFromAStoryClass()
        {
            var testObject = new DummyScenario();
            var scanner = new DefaultScanner(testObject, new ReflectiveScenarioScanner(new[] { new DefaultMethodNameStepScanner() }));
            var story = scanner.Scan();

            Assert.That(story.Metadata, Is.Not.Null);
            Assert.That(story.Metadata.Type, Is.EqualTo(typeof(StoryDouble)));
            Assert.That(story.Scenarios.Count(), Is.EqualTo(1));
            Assert.True(story.Scenarios.Single().TestObject.GetType() == typeof(DummyScenario));
        }
コード例 #5
0
ファイル: StoryDouble.cs プロジェクト: MehdiK/TestStack.BDDfy
        public void ScanningAScenarioWithoutArgsFromAStoryClass()
        {
            var testObject = new DummyScenario();
            var scanner    = new DefaultScanner(testObject, new ReflectiveScenarioScanner(new[] { new DefaultMethodNameStepScanner() }));
            var story      = scanner.Scan();

            Assert.That(story.Metadata, Is.Not.Null);
            Assert.That(story.Metadata.Type, Is.EqualTo(typeof(StoryDouble)));
            Assert.That(story.Scenarios.Count(), Is.EqualTo(1));
            Assert.True(story.Scenarios.Single().TestObject.GetType() == typeof(DummyScenario));
        }
コード例 #6
0
        public void SuggestedScanners_NotFound_SuggestFaviconIco()
        {
            var uri    = new Uri("http://www.example.com");
            var source = new MockSource();

            var scanner = new DefaultScanner(source, uri);

            scanner.Start();

            Assert.AreEqual(0, scanner.Results.Count);
            Assert.AreEqual(1, scanner.SuggestedScanners.Count);
            Assert.IsInstanceOfType(scanner.SuggestedScanners[0], typeof(FaviconIcoScanner));
        }
コード例 #7
0
        public void SuggestedScanners_HtmlEndsAtTag_SuggestFaviconIco()
        {
            var uri    = new Uri("http://www.example.com");
            var source = new MockSource();

            source.AddTextResource(uri, "<html><head><link");

            var scanner = new DefaultScanner(source, uri);

            scanner.Start();

            Assert.AreEqual(0, scanner.Results.Count);
            Assert.AreEqual(1, scanner.SuggestedScanners.Count);
            Assert.IsInstanceOfType(scanner.SuggestedScanners[0], typeof(FaviconIcoScanner));
        }
コード例 #8
0
        public void Results_HtmlInCaps_ParseIt()
        {
            var uri    = new Uri("http://www.example.com");
            var source = new MockSource();

            source.AddTextResource(uri, @"
                <HTML><HEAD>
                    <link rel='SHORTCUT ICON' href='favicon.png'>
                </HEAD><BODY>Fake content.</BODY></HTML>");

            var scanner = new DefaultScanner(source, uri);

            scanner.Start();

            Assert.AreEqual(1, scanner.Results.Count);
        }
コード例 #9
0
        public void Results_LinkInBody_Ignored()
        {
            var uri    = new Uri("http://www.example.com");
            var source = new MockSource();

            source.AddTextResource(uri, @"
                <html><body>
                    <link rel=icon href='favicon.png'>
                </body></html>");

            var scanner = new DefaultScanner(source, uri);

            scanner.Start();

            Assert.AreEqual(0, scanner.Results.Count);
        }
コード例 #10
0
        public void Results_MultipleLinks_FindAll()
        {
            var uri    = new Uri("http://www.example.com");
            var source = new MockSource();

            source.AddTextResource(uri, @"
                <html><head>
                    <link rel='icon' href='favicon1.png'>
                    <link rel='icon' href='favicon2.png'>
                </head><body>Fake content.</body></html>");

            var scanner = new DefaultScanner(source, uri);

            scanner.Start();

            Assert.AreEqual(2, scanner.Results.Count);
        }
コード例 #11
0
        public void SuggestedScanners_InvalidManifestJsonUri_Skip()
        {
            var uri    = new Uri("http://www.example.com");
            var source = new MockSource();

            source.AddTextResource(uri, @"
                <html><head>
                    <meta rel='manifest' href='///manifest.json'>
                    <link rel=icon href='favicon.ico'>
                </head></html>");

            var scanner = new DefaultScanner(source, uri);

            scanner.Start();

            Assert.AreEqual(1, scanner.Results.Count);
            Assert.AreEqual(1, scanner.SuggestedScanners.Count); // just FaviconIcoScanner
        }
コード例 #12
0
        public void SuggestedScanners_ManifestJsonLinked_SuggestIt()
        {
            var uri    = new Uri("http://www.example.com");
            var source = new MockSource();

            source.AddTextResource(uri, @"
                <html><head>
                    <meta rel='manifest' href='/manifest.json'>
                </head></html>");

            var scanner = new DefaultScanner(source, uri);

            scanner.Start();

            Assert.AreEqual(0, scanner.Results.Count);
            Assert.AreEqual(2, scanner.SuggestedScanners.Count); // plus FaviconIcoScanner
            Assert.IsInstanceOfType(scanner.SuggestedScanners[0], typeof(ManifestJsonScanner));
        }
コード例 #13
0
        public void SuggestedScanners_InvalidBrowserconfigXmlUri_Skip()
        {
            var uri    = new Uri("http://www.example.com");
            var source = new MockSource();

            source.AddTextResource(uri, @"
                <html><head>
                    <meta name='msapplication-config' content='///browserconfig.xml'>
                    <link rel=icon href='favicon.ico'>
                </head></html>");

            var scanner = new DefaultScanner(source, uri);

            scanner.Start();

            Assert.AreEqual(1, scanner.Results.Count);
            Assert.AreEqual(1, scanner.SuggestedScanners.Count); // just FaviconIcoScanner
        }
コード例 #14
0
        public void SuggestedScanners_BrowserconfigXmlLinked_SuggestIt()
        {
            var uri    = new Uri("http://www.example.com");
            var source = new MockSource();

            source.AddTextResource(uri, @"
                <html><head>
                    <meta name='msapplication-config' content='browserconfig.xml'>
                </head></html>");

            var scanner = new DefaultScanner(source, uri);

            scanner.Start();

            Assert.AreEqual(0, scanner.Results.Count);
            Assert.AreEqual(2, scanner.SuggestedScanners.Count); // plus FaviconIcoScanner
            Assert.IsInstanceOfType(scanner.SuggestedScanners[0], typeof(BrowserconfigXmlScanner));
        }
コード例 #15
0
        public void SuggestedScanners_InvalidLinks_SuggestFaviconIco()
        {
            var uri    = new Uri("http://www.example.com");
            var source = new MockSource();

            source.AddTextResource(uri, @"
                <html><head>
                    <link rel='icon' src='favicon1.png'>
                    <link href='favicon1.png'>
                </head><body>Fake content.</body></html>");

            var scanner = new DefaultScanner(source, uri);

            scanner.Start();

            Assert.AreEqual(0, scanner.Results.Count);
            Assert.AreEqual(1, scanner.SuggestedScanners.Count);
            Assert.IsInstanceOfType(scanner.SuggestedScanners[0], typeof(FaviconIcoScanner));
        }
コード例 #16
0
        public void Results_SizeInNameAndAttribute_UseAttributeSize()
        {
            var uri    = new Uri("http://www.example.com");
            var source = new MockSource();

            source.AddTextResource(uri, @"
                <html><head>
                    <link rel=icon href='favicon_48x48.png' sizes='16x16'>
                </head><body>Fake content.</body></html>");

            var scanner = new DefaultScanner(source, uri);

            scanner.Start();

            Assert.AreEqual(new ScanResult
            {
                Location     = new Uri("http://www.example.com/favicon_48x48.png"),
                ExpectedSize = new Size(16, 16)
            }, scanner.Results[0]);
        }
コード例 #17
0
        public void Results_QuoteInUri_Accepted()
        {
            var uri    = new Uri("http://www.example.com");
            var source = new MockSource();

            source.AddTextResource(uri, @"
                <html><head>
                    <link rel=icon href=""favicon's.png"">
                </head></html>");

            var scanner = new DefaultScanner(source, uri);

            scanner.Start();

            Assert.AreEqual(new ScanResult
            {
                Location     = new Uri("http://www.example.com/favicon's.png"),
                ExpectedSize = new Size(16, 16)
            }, scanner.Results[0]);
        }
コード例 #18
0
        public void Results_SizedAppleLink_UseSpecifiedSize()
        {
            var uri    = new Uri("http://www.example.com");
            var source = new MockSource();

            source.AddTextResource(uri, @"
                <html><head>
                    <link rel=apple-touch-icon-precomposed href='apple_icon.png' sizes='48x48'>
                </head><body>Fake content.</body></html>");

            var scanner = new DefaultScanner(source, uri);

            scanner.Start();

            Assert.AreEqual(new ScanResult
            {
                Location     = new Uri("http://www.example.com/apple_icon.png"),
                ExpectedSize = new Size(48, 48)
            }, scanner.Results[0]);
        }
コード例 #19
0
        public void Results_LinkRelInCaps_FindIt()
        {
            var uri    = new Uri("http://www.example.com");
            var source = new MockSource();

            source.AddTextResource(uri, @"
                <html><head>
                    <link rel='SHORTCUT ICON' href='favicon.png'>
                </head><body>Fake content.</body></html>");

            var scanner = new DefaultScanner(source, uri);

            scanner.Start();

            Assert.AreEqual(new ScanResult
            {
                Location     = new Uri("http://www.example.com/favicon.png"),
                ExpectedSize = new Size(16, 16)
            }, scanner.Results[0]);
        }
コード例 #20
0
        public void Results_BigNumberInUri_Accepted()
        {
            var uri    = new Uri("http://www.example.com");
            var source = new MockSource();

            source.AddTextResource(uri, @"
                <html><head>
                    <link rel=icon href='icon_21474836470_48.png'>
                </head></html>");

            var scanner = new DefaultScanner(source, uri);

            scanner.Start();

            Assert.AreEqual(new ScanResult
            {
                Location     = new Uri("http://www.example.com/icon_21474836470_48.png"),
                ExpectedSize = new Size(48, 48)
            }, scanner.Results[0]);
        }
コード例 #21
0
        public void Results_InvalidUri_Skip()
        {
            var uri    = new Uri("http://www.example.com");
            var source = new MockSource();

            source.AddTextResource(uri, @"
                <html><head>
                    <link rel=icon href='///invalid'>
                    <link rel=icon href='favicon.ico'>
                </head></html>");

            var scanner = new DefaultScanner(source, uri);

            scanner.Start();

            Assert.AreEqual(new ScanResult
            {
                Location     = new Uri("http://www.example.com/favicon.ico"),
                ExpectedSize = new Size(16, 16)
            }, scanner.Results[0]);
        }