/// <summary> /// Begins the import using the information within the populated Control. /// </summary> /// <param name="populatedControl">Control containing the user's answers.</param> public static void Import(Control populatedControl, ImportProvider provider) { provider.Import(populatedControl); IPagedCollection<BlogInfo> blogs; int totalBlogCount = Config.BlogCount; const int pageSize = 100; int pages = totalBlogCount/pageSize; int currentPage = 1; SkinTemplateCollection skins = new SkinTemplateCollection(); if (totalBlogCount % pageSize > 0) { pages++; } while (currentPage <= pages) { blogs = BlogInfo.GetBlogs(currentPage, pageSize, ConfigurationFlags.IsActive); foreach(BlogInfo currentBlogInfo in blogs) { if (skins.GetTemplate(currentBlogInfo.Skin.TemplateFolder) == null) { currentBlogInfo.Skin = SkinConfig.GetDefaultSkin(); Config.UpdateConfigData(currentBlogInfo); } } currentPage++; } }
public void MergedScriptIsCorrect(string skinKey, int expectedStyles) { UnitTestHelper.SetHttpContextWithBlogRequest("localhost", "blog", string.Empty); MockRepository mocks = new MockRepository(); VirtualPathProvider pathProvider = GetTemplatesPathProviderMock(mocks); mocks.ReplayAll(); SkinTemplateCollection templates = new SkinTemplateCollection(pathProvider); ScriptElementCollectionRenderer renderer = new ScriptElementCollectionRenderer(templates); int mergedStyles = renderer.GetScriptsToBeMerged(skinKey).Count; Assert.AreEqual(expectedStyles, mergedStyles, String.Format("Skin {0} should have {1} merged scripts but found {2}", skinKey, expectedStyles, mergedStyles)); }
public void CanGetExcludeDefaultStyleAttribute() { MockRepository mocks = new MockRepository(); VirtualPathProvider pathProvider = GetTemplatesPathProviderMock(mocks); mocks.ReplayAll(); SkinTemplateCollection templates = new SkinTemplateCollection(pathProvider); SkinTemplate templateWithTrueExcludedDefault = templates.GetTemplate("RedBook-Blue.css"); Assert.IsTrue(templateWithTrueExcludedDefault.ExcludeDefaultStyle, "ExcludeDefaultStyle should be True."); SkinTemplate templateWithFalseExcludedDefault = templates.GetTemplate("Gradient"); Assert.IsFalse(templateWithFalseExcludedDefault.ExcludeDefaultStyle, "ExcludeDefaultStyle should be false."); SkinTemplate templateWithoutExcludedDefault = templates.GetTemplate("AnotherEon001"); Assert.IsFalse(templateWithoutExcludedDefault.ExcludeDefaultStyle, "ExcludeDefaultStyle should be false."); }
public void CanGetPropertiesOfSingleTemplate() { MockRepository mocks = new MockRepository(); VirtualPathProvider pathProvider = GetTemplatesPathProviderMock(mocks); mocks.ReplayAll(); SkinTemplateCollection templates = new SkinTemplateCollection(pathProvider); SkinTemplate template = templates.GetTemplate("RedBook-Blue.css"); Assert.IsNotNull(template, "Could not get the template for the skin key 'RedBook-Blue.css'"); Assert.AreEqual("REDBOOK-BLUE.CSS", template.SkinKey, "SkinKey not correct."); Assert.AreEqual("BlueBook", template.Name, "Name not correct."); Assert.AreEqual("RedBook", template.TemplateFolder, "Folder not correct."); Assert.IsTrue(template.ExcludeDefaultStyle, "ExcludeDefaultStyle should be true."); Assert.AreEqual(1, template.Scripts.Length, "Wrong number of scripts."); Assert.AreEqual(6, template.Styles.Length, "Wrong number of styles."); }
public void CanGetScriptMergeModeAttribute() { MockRepository mocks = new MockRepository(); VirtualPathProvider pathProvider = GetTemplatesPathProviderMock(mocks); mocks.ReplayAll(); SkinTemplateCollection templates = new SkinTemplateCollection(pathProvider); SkinTemplate templateWithMergeScriptMergeMode = templates.GetTemplate("Piyo"); Assert.IsTrue(templateWithMergeScriptMergeMode.MergeScripts, "ScriptMergeMode should be Merge."); SkinTemplate templateWithDontMergeScriptMergeMode = templates.GetTemplate("Semagogy"); Assert.IsFalse(templateWithDontMergeScriptMergeMode.MergeScripts, "ScriptMergeMode should be DontMerge."); SkinTemplate templateWithoutScriptMergeMode = templates.GetTemplate("RedBook-Green.css"); Assert.IsFalse(templateWithoutScriptMergeMode.MergeScripts, "ScriptMergeMode should be None."); }
public void CallsToCssHandlerAreNotRepeated(string skinKey, string exptectedElements) { UnitTestHelper.SetHttpContextWithBlogRequest("localhost", "blog", string.Empty); MockRepository mocks = new MockRepository(); VirtualPathProvider pathProvider = GetTemplatesPathProviderMock(mocks); mocks.ReplayAll(); SkinTemplateCollection templates = new SkinTemplateCollection(pathProvider); StyleSheetElementCollectionRenderer renderer = new StyleSheetElementCollectionRenderer(templates); string styleElements = renderer.RenderStyleElementCollection(skinKey); SkinTemplate template = templates.GetTemplate(skinKey); Console.WriteLine(styleElements); 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 CanLoadAndMergeUserSkinsFromFile() { MockRepository mocks = new MockRepository(); VirtualPathProvider pathProvider = (VirtualPathProvider)mocks.CreateMock(typeof(VirtualPathProvider)); VirtualFile vfile = (VirtualFile)mocks.CreateMock(typeof(VirtualFile), "~/Admin/Skins.config"); VirtualFile vUserFile = (VirtualFile)mocks.CreateMock(typeof(VirtualFile), "~/Admin/Skins.User.config"); using (Stream stream = UnitTestHelper.UnpackEmbeddedResource("Skins.Skins.config")) using (Stream userStream = UnitTestHelper.UnpackEmbeddedResource("Skins.Skins.User.config")) { Expect.Call(vfile.Open()).Return(stream); Expect.Call(vUserFile.Open()).Return(userStream); Expect.Call(pathProvider.GetFile("~/Admin/Skins.config")).Return(vfile); Expect.Call(pathProvider.FileExists("~/Admin/Skins.User.config")).Return(true); Expect.Call(pathProvider.GetFile("~/Admin/Skins.User.config")).Return(vUserFile); mocks.ReplayAll(); SkinTemplateCollection templates = new SkinTemplateCollection(pathProvider); Assert.IsNotNull(templates, "Could not instantiate template."); Assert.AreEqual(18, templates.Count, "Expected 18 templates."); } }
public void StyleSheetElementCollectionRendererRendersLinkElementsInRightOrder(string skinKey, bool expectedFirst) { UnitTestHelper.SetHttpContextWithBlogRequest("localhost", "blog", string.Empty); MockRepository mocks = new MockRepository(); VirtualPathProvider pathProvider = GetTemplatesPathProviderMock(mocks); mocks.ReplayAll(); SkinTemplateCollection templates = new SkinTemplateCollection(pathProvider); StyleSheetElementCollectionRenderer renderer = new StyleSheetElementCollectionRenderer(templates); string styleElements = renderer.RenderStyleElementCollection(skinKey); SkinTemplate template = templates.GetTemplate(skinKey); Console.WriteLine(styleElements); 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), "Merged CSS is not in first position"); else Assert.IsTrue(styleElements.EndsWith(mergedCss), "Merged CSS is not in last position"); }
public ScriptElementCollectionRenderer(SkinTemplateCollection templates) { this.templates = templates; }
public void ScriptElementCollectionRendererRendersJSHandlerScript() { UnitTestHelper.SetHttpContextWithBlogRequest("localhost", "blog", string.Empty); MockRepository mocks = new MockRepository(); VirtualPathProvider pathProvider = GetTemplatesPathProviderMock(mocks); mocks.ReplayAll(); SkinTemplateCollection templates = new SkinTemplateCollection(pathProvider); ScriptElementCollectionRenderer renderer = new ScriptElementCollectionRenderer(templates); string scriptElements = renderer.RenderScriptElementCollection("RedBook-Blue.css"); Console.WriteLine(scriptElements); string script = @"<script type=""text/javascript"" src=""/Skins/RedBook/js.axd?name=RedBook-Blue.css""></script>"; Assert.IsTrue(scriptElements.IndexOf(script) > -1, "Rendered the script improperly."); }
public void MergeCssWithAttributes(string skinKey, int expectedStyles, string media, string title, string conditional) { UnitTestHelper.SetHttpContextWithBlogRequest("localhost", "blog", string.Empty); MockRepository mocks = new MockRepository(); VirtualPathProvider pathProvider = GetTemplatesPathProviderMock(mocks); mocks.ReplayAll(); SkinTemplateCollection templates = new SkinTemplateCollection(pathProvider); StyleSheetElementCollectionRenderer renderer = new StyleSheetElementCollectionRenderer(templates); int mergedStyles = renderer.GetStylesToBeMerged(skinKey, media, title, conditional).Count; Assert.AreEqual(expectedStyles, mergedStyles, String.Format("Skin {0} should have {1} merged styles but found {2}", skinKey, expectedStyles, mergedStyles)); }
public void CanGetMergeModeAttribute() { MockRepository mocks = new MockRepository(); VirtualPathProvider pathProvider = GetTemplatesPathProviderMock(mocks); mocks.ReplayAll(); SkinTemplateCollection templates = new SkinTemplateCollection(pathProvider); SkinTemplate templateWithMergedFirstMergeMode = templates.GetTemplate("KeyWest"); Assert.AreEqual(StyleMergeMode.MergedFirst, templateWithMergedFirstMergeMode.StyleMergeMode, "MergeMode should be MergedFirst."); SkinTemplate templateWithMergedAfterMergeMode = templates.GetTemplate("Colors-Blue.css"); Assert.AreEqual(StyleMergeMode.MergedAfter, templateWithMergedAfterMergeMode.StyleMergeMode, "MergeMode should be MergedAfter."); SkinTemplate templateWithNoneMergeMode = templates.GetTemplate("Lightz"); Assert.AreEqual(StyleMergeMode.None, templateWithNoneMergeMode.StyleMergeMode, "MergeMode should be None."); Assert.AreNotEqual(StyleMergeMode.MergedAfter, templateWithNoneMergeMode.StyleMergeMode, "MergeMode should not be MergedAfter."); SkinTemplate templateWithoutMergeMode = templates.GetTemplate("Semagogy"); Assert.AreEqual(StyleMergeMode.None, templateWithoutMergeMode.StyleMergeMode, "MergeMode should be None."); }
public void MergedCssDoesntContainDefaultIfExcluded() { UnitTestHelper.SetHttpContextWithBlogRequest("localhost", "blog", string.Empty); MockRepository mocks = new MockRepository(); VirtualPathProvider pathProvider = GetTemplatesPathProviderMock(mocks); mocks.ReplayAll(); SkinTemplateCollection templates = new SkinTemplateCollection(pathProvider); StyleSheetElementCollectionRenderer renderer = new StyleSheetElementCollectionRenderer(templates); List<StyleDefinition> 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 StyleSheetElementCollectionRendererRendersPlainCssLinkElementsWithNoneMergeModeAndSecondaryStyle(string subFolder, string applicationPath, string expectedPrintCssPath, string expectedDefaultCssPath, string expectedSecondaryCssPath) { UnitTestHelper.SetHttpContextWithBlogRequest("localhost", subFolder, applicationPath); MockRepository mocks = new MockRepository(); VirtualPathProvider pathProvider = GetTemplatesPathProviderMock(mocks); mocks.ReplayAll(); SkinTemplateCollection templates = new SkinTemplateCollection(pathProvider); StyleSheetElementCollectionRenderer renderer = new StyleSheetElementCollectionRenderer(templates); string styleElements = renderer.RenderStyleElementCollection("Nature-rain.css"); Console.WriteLine(styleElements); string printCss = string.Format(@"<link media=""print"" type=""text/css"" rel=""stylesheet"" href=""{0}"" />", expectedPrintCssPath); Assert.IsTrue(styleElements.IndexOf(printCss) > -1, "Expected the printcss to be there."); string defaultCss = string.Format(@"<link type=""text/css"" rel=""stylesheet"" href=""{0}"" />", expectedDefaultCssPath); Assert.IsTrue(styleElements.IndexOf(defaultCss) > -1, "Expected the default css to be there."); string secondaryCss = string.Format(@"<link type=""text/css"" rel=""stylesheet"" href=""{0}"" />", expectedSecondaryCssPath); Assert.IsTrue(styleElements.IndexOf(secondaryCss) > -1, "Expected the secondary css to be there."); }
public void SkinsWithNoScriptsAreNotMerged() { MockRepository mocks = new MockRepository(); VirtualPathProvider pathProvider = GetTemplatesPathProviderMock(mocks); mocks.ReplayAll(); SkinTemplateCollection templates = new SkinTemplateCollection(pathProvider); SkinTemplate template = templates.GetTemplate("Gradient"); bool canBeMerged = ScriptElementCollectionRenderer.CanScriptsBeMerged(template); Assert.IsFalse(canBeMerged, "Skins without scripts should not be mergeable."); }
public void CanLoadMobileSkinsFromFile() { MockRepository mocks = new MockRepository(); VirtualPathProvider pathProvider = GetTemplatesPathProviderMock(mocks); mocks.ReplayAll(); SkinTemplateCollection templates = new SkinTemplateCollection(pathProvider, true); Assert.IsNotNull(templates, "Could not instantiate template."); Assert.AreEqual(2, templates.Count); }
public void MergedCssDoesntContainStyleWithMediaAndTitle() { UnitTestHelper.SetHttpContextWithBlogRequest("localhost", "blog", string.Empty); MockRepository mocks = new MockRepository(); VirtualPathProvider pathProvider = GetTemplatesPathProviderMock(mocks); mocks.ReplayAll(); SkinTemplateCollection templates = new SkinTemplateCollection(pathProvider); StyleSheetElementCollectionRenderer renderer = new StyleSheetElementCollectionRenderer(templates); List<StyleDefinition> 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 StyleSheetElementCollectionRendererRendersMergedCssLinkElements(string subFolder, string applicationPath, string expectedPrintCssPath) { UnitTestHelper.SetHttpContextWithBlogRequest("localhost", subFolder, applicationPath); MockRepository mocks = new MockRepository(); VirtualPathProvider pathProvider = GetTemplatesPathProviderMock(mocks); mocks.ReplayAll(); SkinTemplateCollection templates = new SkinTemplateCollection(pathProvider); StyleSheetElementCollectionRenderer renderer = new StyleSheetElementCollectionRenderer(templates); string styleElements = renderer.RenderStyleElementCollection("Piyo"); Console.WriteLine(styleElements); string printCss = string.Format(@"<link media=""screen"" type=""text/css"" rel=""stylesheet"" title=""fixed"" href=""{0}"" />", expectedPrintCssPath); Assert.IsTrue(styleElements.IndexOf(printCss) > -1, "Expected the fixed screen css to be there."); }
public void ScriptsWithParametricSrcAreNotMerged() { MockRepository mocks = new MockRepository(); VirtualPathProvider pathProvider = GetTemplatesPathProviderMock(mocks); mocks.ReplayAll(); SkinTemplateCollection templates = new SkinTemplateCollection(pathProvider); SkinTemplate template = templates.GetTemplate("Piyo"); bool canBeMerged = ScriptElementCollectionRenderer.CanScriptsBeMerged(template); Assert.IsFalse(canBeMerged, "Skins with scripts that have query string parameters should not be mergeable."); }