Пример #1
0
        public void StyleSheetElementCollectionRendererRendersPlainCssLinkElementsWithNoneMergeMode(string subFolder,
                                                                                                    string
                                                                                                    applicationPath,
                                                                                                    string
                                                                                                    expectedPrintCssPath,
                                                                                                    string
                                                                                                    expectedDefaultCssPath)
        {
            UnitTestHelper.SetHttpContextWithBlogRequest("localhost", subFolder, applicationPath);
            var pathProvider = new Mock <VirtualPathProvider>();

            pathProvider.SetupSkins();
            var    skinEngine    = new SkinEngine(pathProvider.Object);
            var    renderer      = new StyleSheetElementCollectionRenderer(skinEngine);
            string styleElements = renderer.RenderStyleElementCollection("RedBook-Red.css");

            string printCss =
                string.Format(@"<link media=""print"" type=""text/css"" rel=""stylesheet"" href=""{0}"" />",
                              expectedPrintCssPath);

            Assert.IsTrue(styleElements.Contains(printCss, StringComparison.OrdinalIgnoreCase),
                          "Expected the printcss to be there.");

            string defaultCss = string.Format(@"<link type=""text/css"" rel=""stylesheet"" href=""{0}"" />",
                                              expectedDefaultCssPath);

            Assert.IsTrue(styleElements.Contains(defaultCss, StringComparison.OrdinalIgnoreCase),
                          "Expected the default css to be there.");
        }
Пример #2
0
        public void StyleSheetElementCollectionRendererRendersLinkElementsInRightOrder(string skinKey,
                                                                                       bool expectedFirst)
        {
            UnitTestHelper.SetHttpContextWithBlogRequest("localhost", "blog", string.Empty);
            var pathProvider = new Mock <VirtualPathProvider>();

            pathProvider.SetupSkins();
            var skinEngine = new SkinEngine(pathProvider.Object);

            var renderer = new StyleSheetElementCollectionRenderer(skinEngine);

            string       styleElements = renderer.RenderStyleElementCollection(skinKey);
            SkinTemplate template      = skinEngine.GetSkinTemplates(false)[skinKey];

            styleElements = styleElements.Trim('\r', '\n');
            string mergedCss = @"<link type=""text/css"" rel=""stylesheet"" href=""/Skins/" + template.TemplateFolder +
                               "/css.axd?name=" + skinKey + @""" />";

            if (expectedFirst)
            {
                Assert.IsTrue(styleElements.StartsWith(mergedCss, StringComparison.OrdinalIgnoreCase),
                              "Merged CSS is not in first position");
            }
            else
            {
                Assert.IsTrue(styleElements.EndsWith(mergedCss, StringComparison.OrdinalIgnoreCase),
                              "Merged CSS is not in last position");
            }
        }
        public void GetStylesheetHrefPathRendersAppropriatePath(string src, string virtualDir, string skinPath,
                                                                string expected)
        {
            UnitTestHelper.SetHttpContextWithBlogRequest("localhost", "Anything", virtualDir);

            var style = new Style {
                Href = src
            };

            string stylePath = StyleSheetElementCollectionRenderer.GetStylesheetHrefPath(skinPath, style);

            Assert.AreEqual(stylePath, expected, "The rendered style path was not what we expected.");
        }
Пример #4
0
        public void MergedCssDoesntContainStyleWithMediaAndTitle()
        {
            UnitTestHelper.SetHttpContextWithBlogRequest("localhost", "blog", string.Empty);
            var pathProvider = new Mock <VirtualPathProvider>();

            pathProvider.SetupSkins();
            var skinEngine = new SkinEngine(pathProvider.Object);

            var renderer     = new StyleSheetElementCollectionRenderer(skinEngine);
            var mergedStyles = (List <StyleDefinition>)renderer.GetStylesToBeMerged("Piyo");

            Assert.IsFalse(mergedStyles.Contains(new StyleDefinition("/Skins/Piyo/piyo-fixed.css", "screen")),
                           "Skin Piyo should not have the fixed screen css in the merged CSS");
        }
Пример #5
0
        public void MergedCssContainsStyleWithMedia()
        {
            UnitTestHelper.SetHttpContextWithBlogRequest("localhost", "blog", string.Empty);
            var pathProvider = new Mock <VirtualPathProvider>();

            pathProvider.SetupSkins();
            var skinEngine = new SkinEngine(pathProvider.Object);

            var renderer     = new StyleSheetElementCollectionRenderer(skinEngine);
            var mergedStyles = (List <StyleDefinition>)renderer.GetStylesToBeMerged("Piyo");

            Assert.IsTrue(mergedStyles.Contains(new StyleDefinition("/Skins/Piyo/print.css", "print")),
                          "Skin Piyo should have the print css in the merged css");
        }
Пример #6
0
        public void MergedCssContainsDefaultStyle()
        {
            UnitTestHelper.SetHttpContextWithBlogRequest("localhost", "blog", string.Empty);
            var pathProvider = new Mock <VirtualPathProvider>();

            pathProvider.SetupSkins();
            var skinEngine = new SkinEngine(pathProvider.Object);

            var renderer     = new StyleSheetElementCollectionRenderer(skinEngine);
            var mergedStyles = (List <StyleDefinition>)renderer.GetStylesToBeMerged("Submarine");

            Assert.IsTrue(mergedStyles.Contains(new StyleDefinition("/Skins/Submarine/style.css")),
                          "Skin Submarine should have the default style.css");
        }
Пример #7
0
        public void CallsToCssHandlerAreNotRepeated(string skinKey, string exptectedElements)
        {
            UnitTestHelper.SetHttpContextWithBlogRequest("localhost", "blog", string.Empty);
            var pathProvider = new Mock <VirtualPathProvider>();

            pathProvider.SetupSkins();
            var skinEngine = new SkinEngine(pathProvider.Object);

            var    renderer      = new StyleSheetElementCollectionRenderer(skinEngine);
            string styleElements = renderer.RenderStyleElementCollection(skinKey);
            IDictionary <string, SkinTemplate> templates = skinEngine.GetSkinTemplates(false);
            SkinTemplate template = templates[skinKey];

            string mergedCss = @"<link type=""text/css"" rel=""stylesheet"" href=""/Skins/" + template.TemplateFolder +
                               "/css.axd?name=" + skinKey + @""" />";

            styleElements = styleElements.Replace(mergedCss, string.Empty);
            Assert.IsTrue(styleElements.Trim('\r', '\n').Equals(exptectedElements), "Not the expected stylesheet links");
        }
Пример #8
0
        public void RenderStyleElementCollection_WithNoStyles_RendersDefaultStyle()
        {
            // arrange
            UnitTestHelper.SetHttpContextWithBlogRequest("localhost", string.Empty, "/");
            var pathProvider = new Mock <VirtualPathProvider>();
            var skinEngine   = new SkinEngine(pathProvider.Object);
            var renderer     = new StyleSheetElementCollectionRenderer(skinEngine);
            var skinTemplate = new SkinTemplate {
                ExcludeDefaultStyle = false, Styles = null, TemplateFolder = "TestSkin"
            };

            // act
            string styleElements = renderer.RenderStyleElementCollection("TestSkin", skinTemplate);

            // assert
            const string defaultStyle = @"<link type=""text/css"" rel=""stylesheet"" href=""/Skins/TestSkin/style.css"" />";

            Assert.AreEqual(defaultStyle, styleElements.Trim());
        }
Пример #9
0
        public void StyleToBeMergedAreCorrectlyDetected(string conditional, string media, string title, string href,
                                                        bool canBeMerged)
        {
            var style = new Style();

            style.Conditional = conditional;
            style.Media       = media;
            style.Href        = href;
            style.Title       = title;

            bool isMergeable = StyleSheetElementCollectionRenderer.CanStyleBeMerged(style);

            if (canBeMerged)
            {
                Assert.IsTrue(isMergeable, "Expected to be mergeable");
            }
            else
            {
                Assert.IsFalse(isMergeable, "Expected not to be mergeable");
            }
        }