public void RegisterJavaScriptInclude_WithResourceUrl()
        {
            IResourceUrl resourceUrl = new StaticResourceUrl("url.js");

            _htmlHeadAppender.RegisterJavaScriptInclude("key", resourceUrl);

            var htmlHeadElements = _htmlHeadAppender.GetHtmlHeadElements().ToArray();

            Assert.That(htmlHeadElements.Length, Is.EqualTo(1));
            Assert.That(htmlHeadElements[0], Is.InstanceOf(typeof(JavaScriptInclude)));
            Assert.That(((JavaScriptInclude)htmlHeadElements[0]).ResourceUrl, Is.SameAs(resourceUrl));
        }
        public void RegisterStylesheetLink_WithResourceUrl()
        {
            IResourceUrl resourceUrl = new StaticResourceUrl("url.css");

            _htmlHeadAppender.RegisterStylesheetLink("key", resourceUrl);

            var htmlHeadElements = _htmlHeadAppender.GetHtmlHeadElements().ToArray();

            Assert.That(htmlHeadElements.Length, Is.EqualTo(1));
            Assert.That(htmlHeadElements[0], Is.InstanceOf(typeof(StyleSheetBlock)));
            var styleSheetBlock = (StyleSheetBlock)htmlHeadElements[0];

            Assert.That(styleSheetBlock.StyleSheetElements.Count, Is.EqualTo(1));
            Assert.That(styleSheetBlock.StyleSheetElements[0], Is.InstanceOf(typeof(StyleSheetImportRule)));
            Assert.That(((StyleSheetImportRule)styleSheetBlock.StyleSheetElements[0]).ResourceUrl, Is.SameAs(resourceUrl));
        }
        public void GetHtmlHeadElements_GroupsStyleSheetsIntoBlocksOf31ImportRules()
        {
            List <IResourceUrl> libraryUrls     = new List <IResourceUrl>();
            List <IResourceUrl> userControlUrls = new List <IResourceUrl>();

            for (int i = 0; i < 40; i++)
            {
                IResourceUrl libraryUrl = new StaticResourceUrl(string.Format("Library{0}.css", i));
                _htmlHeadAppender.RegisterStylesheetLink(string.Format("Library{0}.css", i), libraryUrl, HtmlHeadAppender.Priority.Library);
                libraryUrls.Add(libraryUrl);

                IResourceUrl userControlUrl = new StaticResourceUrl(string.Format("UserControl{0}.css", i));
                _htmlHeadAppender.RegisterStylesheetLink(string.Format("UserControl{0}.css", i), userControlUrl, HtmlHeadAppender.Priority.UserControl);
                userControlUrls.Add(userControlUrl);
            }

            var htmlHeadElements = _htmlHeadAppender.GetHtmlHeadElements().ToArray();

            Assert.That(htmlHeadElements.Length, Is.EqualTo(4));

            var libraryBlock1 = (StyleSheetBlock)htmlHeadElements[0];

            Assert.That(libraryBlock1.StyleSheetElements.Count, Is.EqualTo(31));
            Assert.That(((StyleSheetImportRule)libraryBlock1.StyleSheetElements[0]).ResourceUrl, Is.SameAs(libraryUrls[0]));
            Assert.That(((StyleSheetImportRule)libraryBlock1.StyleSheetElements[30]).ResourceUrl, Is.SameAs(libraryUrls[30]));

            var libraryBlock2 = (StyleSheetBlock)htmlHeadElements[1];

            Assert.That(libraryBlock2.StyleSheetElements.Count, Is.EqualTo(9));
            Assert.That(((StyleSheetImportRule)libraryBlock2.StyleSheetElements[0]).ResourceUrl, Is.SameAs(libraryUrls[31]));
            Assert.That(((StyleSheetImportRule)libraryBlock2.StyleSheetElements[8]).ResourceUrl, Is.SameAs(libraryUrls[39]));

            var userControlBlock1 = (StyleSheetBlock)htmlHeadElements[2];

            Assert.That(userControlBlock1.StyleSheetElements.Count, Is.EqualTo(31));
            Assert.That(((StyleSheetImportRule)userControlBlock1.StyleSheetElements[0]).ResourceUrl, Is.SameAs(userControlUrls[0]));
            Assert.That(((StyleSheetImportRule)userControlBlock1.StyleSheetElements[30]).ResourceUrl, Is.SameAs(userControlUrls[30]));

            var userControlBlock2 = (StyleSheetBlock)htmlHeadElements[3];

            Assert.That(userControlBlock2.StyleSheetElements.Count, Is.EqualTo(9));
            Assert.That(((StyleSheetImportRule)userControlBlock2.StyleSheetElements[0]).ResourceUrl, Is.SameAs(userControlUrls[31]));
            Assert.That(((StyleSheetImportRule)userControlBlock2.StyleSheetElements[8]).ResourceUrl, Is.SameAs(userControlUrls[39]));
        }
        public void RegisterStylesheetLink_WithResourceUrl_AndPriority()
        {
            IResourceUrl resourceUrl2 = new StaticResourceUrl("url2.css");

            _htmlHeadAppender.RegisterStylesheetLink("key2", resourceUrl2, HtmlHeadAppender.Priority.UserControl);
            IResourceUrl resourceUrl1 = new StaticResourceUrl("url1.css");

            _htmlHeadAppender.RegisterStylesheetLink("key1", resourceUrl1, HtmlHeadAppender.Priority.Library);

            var htmlHeadElements = _htmlHeadAppender.GetHtmlHeadElements().ToArray();

            Assert.That(htmlHeadElements.Length, Is.EqualTo(2));

            var styleSheetBlock1 = (StyleSheetBlock)htmlHeadElements[0];

            Assert.That(styleSheetBlock1.StyleSheetElements.Count, Is.EqualTo(1));
            Assert.That(((StyleSheetImportRule)styleSheetBlock1.StyleSheetElements[0]).ResourceUrl, Is.SameAs(resourceUrl1));

            var styleSheetBlock2 = (StyleSheetBlock)htmlHeadElements[1];

            Assert.That(styleSheetBlock2.StyleSheetElements.Count, Is.EqualTo(1));
            Assert.That(((StyleSheetImportRule)styleSheetBlock2.StyleSheetElements[0]).ResourceUrl, Is.SameAs(resourceUrl2));
        }