示例#1
0
        public void Resolve_StylesheetUnderTheme_IncludesStylesheet()
        {
            // arrange
            var templateManager    = TemplateFactory.CreateTemplateManager(StylesheetItem.TemplateId);
            var stylesheetItemMock = ItemFactory.CreateItem(templateId: StylesheetItem.TemplateId);

            ItemFactory.SetIndexerField(stylesheetItemMock, StylesheetItem.Fields.Url, "/url");

            var itemMock = ItemFactory.CreateItem();
            var children = new ChildList(itemMock.Object, new[] { stylesheetItemMock.Object });

            itemMock.Setup(x => x.GetChildren()).Returns(children);

            var sut = new ThemeFileResolver(templateManager);

            // act
            var result = sut.Resolve(itemMock.Object);

            // assert
            Assert.That(result.Scripts, Is.Empty);
            Assert.That(result.Stylesheets.Count(), Is.EqualTo(1));

            var stylesheet = result.Stylesheets.First();

            Assert.That(stylesheet.Url, Is.EqualTo("/url"));
        }
示例#2
0
        public void Resolve_DerivedScriptUnderTheme_IncludesScript()
        {
            // arrange
            var derivedTemplateId     = ID.NewID;
            var templates             = new TemplateCollection();
            var scriptTemplate        = TemplateFactory.CreateTemplate(ScriptItem.TemplateId, null, templates);
            var derivedScriptTemplate = TemplateFactory.CreateTemplate(derivedTemplateId, ScriptItem.TemplateId, templates);

            var templateManager = TemplateFactory.CreateTemplateManager(new[] { scriptTemplate, derivedScriptTemplate });
            var scriptItemMock  = ItemFactory.CreateItem(templateId: derivedTemplateId);

            ItemFactory.SetIndexerField(scriptItemMock, FileItem.Fields.Url, "/url");
            ItemFactory.SetIndexerField(scriptItemMock, ScriptItem.ScriptItemFields.FallbackUrl, "/fallbackurl");
            ItemFactory.SetIndexerField(scriptItemMock, ScriptItem.ScriptItemFields.VerificationObject, "object");

            var itemMock = ItemFactory.CreateItem();
            var children = new ChildList(itemMock.Object, new[] { scriptItemMock.Object });

            itemMock.Setup(x => x.GetChildren()).Returns(children);

            var sut = new ThemeFileResolver(templateManager);

            // act
            var result = sut.Resolve(itemMock.Object);

            // assert
            Assert.That(result.Stylesheets, Is.Empty);
            Assert.That(result.Scripts.Count(), Is.EqualTo(1));

            var script = result.Scripts.First();

            Assert.That(script.Url, Is.EqualTo("/url"));
            Assert.That(script.FallbackUrl, Is.EqualTo("/fallbackurl"));
            Assert.That(script.VerificationObject, Is.EqualTo("object"));
        }
示例#3
0
        public override void Initialize(Rendering rendering)
        {
            base.Initialize(rendering);

#pragma warning disable CS0618 // Type or member is obsolete
            ThemeItem = CurrentBlog.Theme.Item;
#pragma warning restore CS0618 // Type or member is obsolete
            ThemeFiles = ThemeFileResolver.Resolve(CurrentBlog.Theme.Item);
        }
        protected void Page_Load(object sender, EventArgs e)
        {
            var themeFiles = ThemeFileResolver.Resolve(CurrentBlog.Theme.Item);

            if (themeFiles.Stylesheets != null)
            {
                Stylesheets.DataSource = themeFiles.Stylesheets;
                Stylesheets.DataBind();
            }
        }
示例#5
0
        public void Resolve_ThemeIsNull_ReturnsEmptyThemeFiles()
        {
            // arrange
            var templateManager = TemplateFactory.CreateTemplateManager(StylesheetItem.TemplateId);
            var sut             = new ThemeFileResolver(templateManager);

            // act
            var result = sut.Resolve(null);

            // assert
            Assert.That(result.Stylesheets, Is.Empty);
            Assert.That(result.Scripts, Is.Empty);
        }
示例#6
0
        public void Resolve_ThemeHasNoChildren_ReturnsEmptyThemeFiles()
        {
            // arrange
            var templateManager = TemplateFactory.CreateTemplateManager(StylesheetItem.TemplateId);
            var item            = ItemFactory.CreateItem().Object;

            var sut = new ThemeFileResolver(templateManager);

            // act
            var result = sut.Resolve(item);

            // assert
            Assert.That(result.Stylesheets, Is.Empty);
            Assert.That(result.Scripts, Is.Empty);
        }
示例#7
0
        public void Resolve_StylesheetsAndScriptsUnderTheme_IncludesReferences()
        {
            // arrange
            var templateManager = TemplateFactory.CreateTemplateManager(ScriptItem.TemplateId, StylesheetItem.TemplateId);

            var stylesheetItem1Mock = ItemFactory.CreateItem(templateId: StylesheetItem.TemplateId);

            ItemFactory.SetIndexerField(stylesheetItem1Mock, StylesheetItem.Fields.Url, "/url");

            var stylesheetItem2Mock = ItemFactory.CreateItem(templateId: StylesheetItem.TemplateId);

            ItemFactory.SetIndexerField(stylesheetItem2Mock, StylesheetItem.Fields.Url, "/url2");

            var scriptItemMock = ItemFactory.CreateItem(templateId: ScriptItem.TemplateId);

            ItemFactory.SetIndexerField(scriptItemMock, FileItem.Fields.Url, "/url");
            ItemFactory.SetIndexerField(scriptItemMock, ScriptItem.ScriptItemFields.FallbackUrl, "/fallbackurl");
            ItemFactory.SetIndexerField(scriptItemMock, ScriptItem.ScriptItemFields.VerificationObject, "object");

            var itemMock = ItemFactory.CreateItem();
            var children = new ChildList(itemMock.Object, new[] { scriptItemMock.Object, stylesheetItem1Mock.Object, stylesheetItem2Mock.Object });

            itemMock.Setup(x => x.GetChildren()).Returns(children);

            var sut = new ThemeFileResolver(templateManager);

            // act
            var result = sut.Resolve(itemMock.Object);

            // assert
            Assert.That(result.Stylesheets.Count(), Is.EqualTo(2));
            Assert.That(result.Scripts.Count(), Is.EqualTo(1));

            var stylesheet1 = result.Stylesheets.First();

            Assert.That(stylesheet1.Url, Is.EqualTo("/url"));

            var stylesheet2 = result.Stylesheets.ElementAt(1);

            Assert.That(stylesheet2.Url, Is.EqualTo("/url2"));

            var script = result.Scripts.First();

            Assert.That(script.Url, Is.EqualTo("/url"));
            Assert.That(script.FallbackUrl, Is.EqualTo("/fallbackurl"));
            Assert.That(script.VerificationObject, Is.EqualTo("object"));
        }
示例#8
0
        public void Resolve_UnknownChildrenUnderTheme_ReturnsEmptyThemeFiles()
        {
            // arrange
            var templateManager    = TemplateFactory.CreateTemplateManager(StylesheetItem.TemplateId);
            var stylesheetItemMock = ItemFactory.CreateItem();

            var itemMock = ItemFactory.CreateItem();
            var children = new ChildList(itemMock.Object, new[] { stylesheetItemMock.Object });

            itemMock.Setup(x => x.GetChildren()).Returns(children);

            var sut = new ThemeFileResolver(templateManager);

            // act
            var result = sut.Resolve(itemMock.Object);

            // assert
            Assert.That(result.Stylesheets, Is.Empty);
            Assert.That(result.Scripts, Is.Empty);
        }
示例#9
0
文件: Theme.cs 项目: WeTeam/WeBlog
 public override void Initialize(Rendering rendering)
 {
     base.Initialize(rendering);
     ThemeFiles = ThemeFileResolver.Resolve(CurrentBlog.Theme.Item);
 }
示例#10
0
 protected void Page_Load(object sender, EventArgs e)
 {
     ThemeFiles = ThemeFileResolver.Resolve(CurrentBlog.Theme.Item);
 }