예제 #1
0
        public void AddStylesheet_CanAddItems()
        {
            var context = new DefaultHttpContext();

            context.AddStylesheet("stylesheet1");
            context.AddStylesheet("stylesheet2");

            var values = (HashSet <string>)context.Items.First().Value;

            Assert.AreEqual(2, values.Count);
        }
예제 #2
0
        public void RegisterWebpackAssetsResolver_RegistersOnlyForSingleContext()
        {
            var assetsResolverMock = new Mock <IWebpackAssetsResolver>();

            assetsResolverMock
            .Setup(m => m
                   .GetStylesheetTag(It.IsAny <string>()))
            .Returns <string>(s => s);

            var unregisteredContext = new DefaultHttpContext();
            var registeredContext   = new DefaultHttpContext();

            registeredContext.RegisterWebpackAssetsResolver(assetsResolverMock.Object);
            registeredContext.AddStylesheet("stylesheet");
            registeredContext.AddScript("script");

            var registeredStylesheets = registeredContext.RenderStylesheets();
            var registeredScripts     = registeredContext.RenderScripts();

            var unregisteredStylesheets = unregisteredContext.RenderStylesheets();
            var unregisteredScripts     = unregisteredContext.RenderScripts();

            Assert.IsNotEmpty(registeredScripts.Value);
            Assert.IsNotEmpty(registeredStylesheets.Value);

            Assert.IsEmpty(unregisteredScripts.Value);
            Assert.IsEmpty(unregisteredStylesheets.Value);
        }
예제 #3
0
        public void AddStylesheet_WorksFine()
        {
            var context = new DefaultHttpContext();

            context.AddStylesheet("main");
            context.AddStylesheet("secondary");

            int expectedItems   = 1;
            int expectedScripts = 2;

            Assert.AreEqual(expectedItems, context.Items.Count);
            Assert.IsInstanceOf <HashSet <string> >(context.Items["stylesheets"]);

            var set = (HashSet <string>)context.Items["stylesheets"];

            Assert.AreEqual(expectedScripts, set.Count);
            Assert.AreEqual("stylesheet:main", set.First());
            Assert.AreEqual("stylesheet:secondary", set.ToList()[1]);
        }
예제 #4
0
        public void RenderStylesheets_Development()
        {
            var mock = new Mock <IWebHostEnvironment>();

            mock.Setup(m => m.EnvironmentName).Returns("Development");
            ServiceProvider.AddSingleton(provider => mock.Object);

            var context = new DefaultHttpContext();

            context.AddStylesheet("main");

            var rendered = context.RenderStylesheets();

            var expected = new HtmlString("<script src=\"stylesheet:main\"></script>\n");

            Assert.AreEqual(expected.Value, rendered.Value);
        }
예제 #5
0
        public void RenderStylesheets_Production()
        {
            var mock = new Mock <IWebHostEnvironment>();

            mock.Setup(m => m.EnvironmentName).Returns("Production");
            ServiceProvider.AddSingleton(provider => mock.Object);

            var context = new DefaultHttpContext();

            context.AddStylesheet("main");

            var rendered = context.RenderStylesheets();

            var expected = new HtmlString("<link rel=\"stylesheet\" href=\"stylesheet:main\"/>\n");

            Assert.AreEqual(expected.Value, rendered.Value);
        }
예제 #6
0
        public void RenderStylesheets_UsesAssetsResolver()
        {
            var assetsResolverMock = new Mock <IWebpackAssetsResolver>();

            assetsResolverMock
            .Setup(m => m
                   .GetStylesheetTag(It.IsAny <string>()))
            .Returns <string>(s => $"<link href={s}/>");

            var context = new DefaultHttpContext();

            context.RegisterWebpackAssetsResolver(assetsResolverMock.Object);
            context.AddStylesheet("stylesheet");

            var result = context.RenderStylesheets();

            Assert.AreEqual("<link href=stylesheet/>", result.Value.Trim());
        }