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."); }
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 CanGetMergeModeAttribute() { var pathProvider = new Mock <VirtualPathProvider>(); pathProvider.SetupSkins(); var skinEngine = new SkinEngine(pathProvider.Object); IDictionary <string, SkinTemplate> templates = skinEngine.GetSkinTemplates(false /* mobile */); SkinTemplate templateWithMergedFirstMergeMode = templates["Semagogy"]; Assert.AreEqual(StyleMergeMode.MergedFirst, templateWithMergedFirstMergeMode.StyleMergeMode, "MergeMode should be MergedFirst."); SkinTemplate templateWithMergedAfterMergeMode = templates["RedBook-Green.css"]; Assert.AreEqual(StyleMergeMode.MergedAfter, templateWithMergedAfterMergeMode.StyleMergeMode, "MergeMode should be MergedAfter."); SkinTemplate templateWithNoneMergeMode = templates["RedBook-Red.css"]; Assert.AreEqual(StyleMergeMode.None, templateWithNoneMergeMode.StyleMergeMode, "MergeMode should be None."); Assert.AreNotEqual(StyleMergeMode.MergedAfter, templateWithNoneMergeMode.StyleMergeMode, "MergeMode should not be MergedAfter."); SkinTemplate templateWithoutMergeMode = templates["RedBook-Blue.css"]; Assert.AreEqual(StyleMergeMode.None, templateWithoutMergeMode.StyleMergeMode, "MergeMode should be None."); }
public void ScriptsWithParametricSrcAreNotMerged() { var pathProvider = new Mock <VirtualPathProvider>(); pathProvider.SetupSkins(); var skinEngine = new SkinEngine(pathProvider.Object); IDictionary <string, SkinTemplate> templates = skinEngine.GetSkinTemplates(false /* mobile */); SkinTemplate template = templates["Piyo"]; bool canBeMerged = ScriptElementCollectionRenderer.CanScriptsBeMerged(template); Assert.IsFalse(canBeMerged, "Skins with scripts that have query string parameters should not be mergeable."); }
public void ScriptsWithNoneScriptMergeModeAreNotMerged() { var pathProvider = new Mock <VirtualPathProvider>(); pathProvider.SetupSkins(); var skinEngine = new SkinEngine(pathProvider.Object); IDictionary <string, SkinTemplate> templates = skinEngine.GetSkinTemplates(false /* mobile */); SkinTemplate template = templates["Semagogy"]; bool canBeMerged = ScriptElementCollectionRenderer.CanScriptsBeMerged(template); Assert.IsFalse(canBeMerged, "Skins with ScriptMergeMode=\"DontMerge\" should not be mergeable."); }
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"); }
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"); }
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"); }
public void ScriptElementCollectionRendererRendersJSHandlerScript() { UnitTestHelper.SetHttpContextWithBlogRequest("localhost", "blog", string.Empty); var pathProvider = new Mock<VirtualPathProvider>(); pathProvider.SetupSkins(); var skinEngine = new SkinEngine(pathProvider.Object); var renderer = new ScriptElementCollectionRenderer(skinEngine); string scriptElements = renderer.RenderScriptElementCollection("RedBook-Blue.css"); string script = @"<script type=""text/javascript"" src=""/Skins/RedBook/js.axd?name=RedBook-Blue.css""></script>"; Assert.IsTrue(scriptElements.Contains(script), "Rendered the script improperly."); }
public void CanGetScriptMergeModeAttribute() { var pathProvider = new Mock<VirtualPathProvider>(); pathProvider.SetupSkins(); var skinEngine = new SkinEngine(pathProvider.Object); IDictionary<string, SkinTemplate> templates = skinEngine.GetSkinTemplates(false /* mobile */); SkinTemplate templateWithMergeScriptMergeMode = templates["Piyo"]; Assert.IsTrue(templateWithMergeScriptMergeMode.MergeScripts, "ScriptMergeMode should be Merge."); SkinTemplate templateWithDontMergeScriptMergeMode = templates["Semagogy"]; Assert.IsFalse(templateWithDontMergeScriptMergeMode.MergeScripts, "ScriptMergeMode should be DontMerge."); SkinTemplate templateWithoutScriptMergeMode = templates["RedBook-Green.css"]; Assert.IsFalse(templateWithoutScriptMergeMode.MergeScripts, "ScriptMergeMode should be None."); }
public void CanGetExcludeDefaultStyleAttribute() { var pathProvider = new Mock<VirtualPathProvider>(); pathProvider.SetupSkins(); var skinEngine = new SkinEngine(pathProvider.Object); IDictionary<string, SkinTemplate> templates = skinEngine.GetSkinTemplates(false /* mobile */); SkinTemplate templateWithTrueExcludedDefault = templates["RedBook-Blue.css"]; Assert.IsTrue(templateWithTrueExcludedDefault.ExcludeDefaultStyle, "ExcludeDefaultStyle should be True."); SkinTemplate templateWithFalseExcludedDefault = templates["Gradient"]; Assert.IsFalse(templateWithFalseExcludedDefault.ExcludeDefaultStyle, "ExcludeDefaultStyle should be false."); SkinTemplate templateWithoutExcludedDefault = templates["Piyo"]; Assert.IsFalse(templateWithoutExcludedDefault.ExcludeDefaultStyle, "ExcludeDefaultStyle should be false."); }
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"); }
public void ScriptElementCollectionRendererRendersScriptElements() { UnitTestHelper.SetHttpContextWithBlogRequest("localhost", "blog", string.Empty); var pathProvider = new Mock<VirtualPathProvider>(); pathProvider.SetupSkins(); var skinEngine = new SkinEngine(pathProvider.Object); var renderer = new ScriptElementCollectionRenderer(skinEngine); string scriptElements = renderer.RenderScriptElementCollection("RedBook-Green.css"); string script = @"<script type=""text/javascript"" src=""/Skins/RedBook/blah.js""></script>"; Assert.IsTrue(scriptElements.Contains(script), "Rendered the script improperly."); scriptElements = renderer.RenderScriptElementCollection("Nature-Leafy.css"); script = @"<script type=""text/javascript"" src=""/scripts/XFNHighlighter.js""></script>"; Assert.IsTrue(scriptElements.Contains(script), "Rendered the script improperly. We got: " + scriptElements); }
public void ScriptElementCollectionRendererRendersJSHandlerScript() { UnitTestHelper.SetHttpContextWithBlogRequest("localhost", "blog", string.Empty); var pathProvider = new Mock <VirtualPathProvider>(); pathProvider.SetupSkins(); var skinEngine = new SkinEngine(pathProvider.Object); var renderer = new ScriptElementCollectionRenderer(skinEngine); string scriptElements = renderer.RenderScriptElementCollection("RedBook-Blue.css"); string script = @"<script type=""text/javascript"" src=""/Skins/RedBook/js.axd?name=RedBook-Blue.css""></script>"; Assert.IsTrue(scriptElements.Contains(script), "Rendered the script improperly."); }
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"); }
public void ScriptElementCollectionRendererRendersScriptElements() { UnitTestHelper.SetHttpContextWithBlogRequest("localhost", "blog", string.Empty); var pathProvider = new Mock <VirtualPathProvider>(); pathProvider.SetupSkins(); var skinEngine = new SkinEngine(pathProvider.Object); var renderer = new ScriptElementCollectionRenderer(skinEngine); string scriptElements = renderer.RenderScriptElementCollection("RedBook-Green.css"); string script = @"<script type=""text/javascript"" src=""/Skins/RedBook/blah.js""></script>"; Assert.IsTrue(scriptElements.Contains(script), "Rendered the script improperly."); scriptElements = renderer.RenderScriptElementCollection("Nature-Leafy.css"); script = @"<script type=""text/javascript"" src=""/scripts/XFNHighlighter.js""></script>"; Assert.IsTrue(scriptElements.Contains(script), "Rendered the script improperly. We got: " + scriptElements); }
public void CanGetExcludeDefaultStyleAttribute() { var pathProvider = new Mock <VirtualPathProvider>(); pathProvider.SetupSkins(); var skinEngine = new SkinEngine(pathProvider.Object); IDictionary <string, SkinTemplate> templates = skinEngine.GetSkinTemplates(false /* mobile */); SkinTemplate templateWithTrueExcludedDefault = templates["RedBook-Blue.css"]; Assert.IsTrue(templateWithTrueExcludedDefault.ExcludeDefaultStyle, "ExcludeDefaultStyle should be True."); SkinTemplate templateWithFalseExcludedDefault = templates["Gradient"]; Assert.IsFalse(templateWithFalseExcludedDefault.ExcludeDefaultStyle, "ExcludeDefaultStyle should be false."); SkinTemplate templateWithoutExcludedDefault = templates["Piyo"]; Assert.IsFalse(templateWithoutExcludedDefault.ExcludeDefaultStyle, "ExcludeDefaultStyle should be false."); }
public void CanGetScriptMergeModeAttribute() { var pathProvider = new Mock <VirtualPathProvider>(); pathProvider.SetupSkins(); var skinEngine = new SkinEngine(pathProvider.Object); IDictionary <string, SkinTemplate> templates = skinEngine.GetSkinTemplates(false /* mobile */); SkinTemplate templateWithMergeScriptMergeMode = templates["Piyo"]; Assert.IsTrue(templateWithMergeScriptMergeMode.MergeScripts, "ScriptMergeMode should be Merge."); SkinTemplate templateWithDontMergeScriptMergeMode = templates["Semagogy"]; Assert.IsFalse(templateWithDontMergeScriptMergeMode.MergeScripts, "ScriptMergeMode should be DontMerge."); SkinTemplate templateWithoutScriptMergeMode = templates["RedBook-Green.css"]; Assert.IsFalse(templateWithoutScriptMergeMode.MergeScripts, "ScriptMergeMode should be None."); }
public void StyleSheetElementCollectionRenderer_WithNoneMergeModeAndSecondaryStyle_RendersPlainCssLinkElements( string subFolder, string applicationPath, string expectedPrintCssPath, string expectedDefaultCssPath, string expectedSecondaryCssPath) { 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("Lightz-light.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."); string secondaryCss = string.Format(@"<link type=""text/css"" rel=""stylesheet"" href=""{0}"" />", expectedSecondaryCssPath); Assert.IsTrue(styleElements.Contains(secondaryCss, StringComparison.OrdinalIgnoreCase), "Expected the secondary css to be there."); }
public void StyleSheetElementCollectionRendererRendersMergedCssLinkElements(string subFolder, string applicationPath, string expectedPrintCssPath) { 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("Piyo"); string printCss = string.Format( @"<link media=""screen"" type=""text/css"" rel=""stylesheet"" title=""fixed"" href=""{0}"" />", expectedPrintCssPath); Assert.IsTrue(styleElements.Contains(printCss, StringComparison.OrdinalIgnoreCase), "Expected the fixed screen css to be there."); }
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 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"); }
public void MergedCssDoesntContainDefaultIfExcluded() { 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("WPSkin"); Assert.IsFalse(mergedStyles.Contains(new StyleDefinition("/Skins/WPSkin/style.css")), "Skin WPSkin should not have the default style.css"); }
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"); }
public void ScriptsWithNoneScriptMergeModeAreNotMerged() { var pathProvider = new Mock<VirtualPathProvider>(); pathProvider.SetupSkins(); var skinEngine = new SkinEngine(pathProvider.Object); IDictionary<string, SkinTemplate> templates = skinEngine.GetSkinTemplates(false /* mobile */); SkinTemplate template = templates["Semagogy"]; bool canBeMerged = ScriptElementCollectionRenderer.CanScriptsBeMerged(template); Assert.IsFalse(canBeMerged, "Skins with ScriptMergeMode=\"DontMerge\" should not be mergeable."); }
public void CanGetMergeModeAttribute() { var pathProvider = new Mock<VirtualPathProvider>(); pathProvider.SetupSkins(); var skinEngine = new SkinEngine(pathProvider.Object); IDictionary<string, SkinTemplate> templates = skinEngine.GetSkinTemplates(false /* mobile */); SkinTemplate templateWithMergedFirstMergeMode = templates["Semagogy"]; Assert.AreEqual(StyleMergeMode.MergedFirst, templateWithMergedFirstMergeMode.StyleMergeMode, "MergeMode should be MergedFirst."); SkinTemplate templateWithMergedAfterMergeMode = templates["RedBook-Green.css"]; Assert.AreEqual(StyleMergeMode.MergedAfter, templateWithMergedAfterMergeMode.StyleMergeMode, "MergeMode should be MergedAfter."); SkinTemplate templateWithNoneMergeMode = templates["RedBook-Red.css"]; Assert.AreEqual(StyleMergeMode.None, templateWithNoneMergeMode.StyleMergeMode, "MergeMode should be None."); Assert.AreNotEqual(StyleMergeMode.MergedAfter, templateWithNoneMergeMode.StyleMergeMode, "MergeMode should not be MergedAfter."); SkinTemplate templateWithoutMergeMode = templates["RedBook-Blue.css"]; Assert.AreEqual(StyleMergeMode.None, templateWithoutMergeMode.StyleMergeMode, "MergeMode should be None."); }
public void ScriptsWithRemoteSrcAreNotMerged() { var pathProvider = new Mock<VirtualPathProvider>(); pathProvider.SetupSkins(); var skinEngine = new SkinEngine(pathProvider.Object); IDictionary<string, SkinTemplate> templates = skinEngine.GetSkinTemplates(false /* mobile */); SkinTemplate template = templates["RedBook-Red.css"]; bool canBeMerged = ScriptElementCollectionRenderer.CanScriptsBeMerged(template); Assert.IsFalse(canBeMerged, "Skins with remote scripts should not be mergeable."); }