public void CanBundleJavaScript() { var mockDebugStatusReader = new StubDebugStatusReader(false); var mockFileWriterFactory = new StubFileWriterFactory(); var mockFileReaderFactory = new StubFileReaderFactory(); mockFileReaderFactory.SetContents(javaScript); IJavaScriptBundle javaScriptBundle = new JavaScriptBundle(mockDebugStatusReader, mockFileWriterFactory, mockFileReaderFactory); var tag = javaScriptBundle .Add("~/js/test.js") .Render("~/js/output.js"); Assert.AreEqual("<script type=\"text/javascript\" src=\"js/output.js?r=8AA0EB763B23F6041902F56782ADB346\"></script>", tag); Assert.AreEqual("\nfunction product(a,b)\n{return a*b;}\nfunction sum(a,b){return a+b;}", mockFileWriterFactory.Files["~/js/output.js"]); }
public void CanBundleCssWithLess() { var mockDebugStatusReader = new StubDebugStatusReader(false); var mockFileWriterFactory = new StubFileWriterFactory(); var mockFileReaderFactory = new StubFileReaderFactory(); mockFileReaderFactory.SetContents(cssLess); ICssBundle cssBundle = new CssBundle(mockDebugStatusReader, mockFileWriterFactory, mockFileReaderFactory); string tag = cssBundle .Add("~/css/test.less") .Render("~/css/output.css"); string contents = mockFileWriterFactory.Files["~/css/output.css"]; Assert.AreEqual("<link rel=\"stylesheet\" type=\"text/css\" href=\"css/output.css?r=350F6DC1A87E2503EE6D4AE414C4A479\" />", tag); Assert.AreEqual("#header,h2{color:#4d926f;}", contents); }
public void CanBundleCss() { var mockDebugStatusReader = new StubDebugStatusReader(false); var mockFileWriterFactory = new StubFileWriterFactory(); var mockFileReaderFactory = new StubFileReaderFactory(); mockFileReaderFactory.SetContents(css); ICssBundle cssBundle = new CssBundle(mockDebugStatusReader, mockFileWriterFactory, mockFileReaderFactory); string tag = cssBundle .Add("/css/first.css") .Add("/css/second.css") .Render("/css/output.css"); Assert.AreEqual("<link rel=\"stylesheet\" type=\"text/css\" href=\"/css/output.css?r=AE4C10DB94E5420AD54BD0A0BE9F02C2\" />", tag); Assert.AreEqual(1, mockFileWriterFactory.Files.Count); Assert.AreEqual("li{margin-bottom:.1em;margin-left:0;margin-top:.1em;}th{font-weight:normal;vertical-align:bottom;}.FloatRight{float:right;}.FloatLeft{float:left;}li{margin-bottom:.1em;margin-left:0;margin-top:.1em;}th{font-weight:normal;vertical-align:bottom;}.FloatRight{float:right;}.FloatLeft{float:left;}", mockFileWriterFactory.Files["/css/output.css"]); }
public void CanCreateNamedBundleWithDebug() { var mockDebugStatusReader = new StubDebugStatusReader(true); var mockFileWriterFactory = new StubFileWriterFactory(); var mockFileReaderFactory = new StubFileReaderFactory(); mockFileReaderFactory.SetContents(javaScript); IJavaScriptBundle javaScriptBundle = new JavaScriptBundle(mockDebugStatusReader, mockFileWriterFactory, mockFileReaderFactory); javaScriptBundle .Add("~/js/test1.js") .Add("~/js/test2.js") .AsNamed("NamedWithDebug", "~/js/output.js"); var tag = javaScriptBundle.RenderNamed("NamedWithDebug"); Assert.AreEqual("<script type=\"text/javascript\" src=\"js/test1.js\"></script><script type=\"text/javascript\" src=\"js/test2.js\"></script>", tag); }
public void CanRenderDebugTagsWithMediaAttribute() { var mockDebugStatusReader = new StubDebugStatusReader(true); var mockFileWriterFactory = new StubFileWriterFactory(); var mockFileReaderFactory = new StubFileReaderFactory(); mockFileReaderFactory.SetContents(css); ICssBundle cssBundle = new CssBundle(mockDebugStatusReader, mockFileWriterFactory, mockFileReaderFactory); string tag = cssBundle .Add("/css/first.css") .Add("/css/second.css") .WithMedia("screen") .Render("/css/output.css"); Assert.AreEqual(tag, "<link rel=\"stylesheet\" type=\"text/css\" media=\"screen\" href=\"/css/first.css\" /><link rel=\"stylesheet\" type=\"text/css\" media=\"screen\" href=\"/css/second.css\" />"); }
public void CanCreateNamedBundleWithMediaAttribute() { var mockDebugStatusReader = new StubDebugStatusReader(false); var mockFileWriterFactory = new StubFileWriterFactory(); var mockFileReaderFactory = new StubFileReaderFactory(); mockFileReaderFactory.SetContents(css); ICssBundle cssBundle = new CssBundle(mockDebugStatusReader, mockFileWriterFactory, mockFileReaderFactory); cssBundle .Add("~/css/temp.css") .WithMedia("screen") .AsNamed("TestWithMedia", "~/css/output.css"); string tag = cssBundle.RenderNamed("TestWithMedia"); Assert.AreEqual("li{margin-bottom:.1em;margin-left:0;margin-top:.1em;}th{font-weight:normal;vertical-align:bottom;}.FloatRight{float:right;}.FloatLeft{float:left;}", mockFileWriterFactory.Files["~/css/output.css"]); Assert.AreEqual("<link rel=\"stylesheet\" type=\"text/css\" media=\"screen\" href=\"css/output.css?r=A757BD759BA228D91481798C2C49A8DC\" />", tag); }
public void CanCreateNamedBundleWithDebug() { var mockDebugStatusReader = new StubDebugStatusReader(true); var mockFileWriterFactory = new StubFileWriterFactory(); var mockFileReaderFactory = new StubFileReaderFactory(); mockFileReaderFactory.SetContents(css); ICssBundle cssBundle = new CssBundle(mockDebugStatusReader, mockFileWriterFactory, mockFileReaderFactory); cssBundle .Add("~/css/temp1.css") .Add("~/css/temp2.css") .AsNamed("TestWithDebug", "~/css/output.css"); string tag = cssBundle.RenderNamed("TestWithDebug"); Assert.AreEqual("<link rel=\"stylesheet\" type=\"text/css\" href=\"css/temp1.css\" /><link rel=\"stylesheet\" type=\"text/css\" href=\"css/temp2.css\" />", tag); }
public void CanRenderDebugTagsTwice() { var mockDebugStatusReader = new StubDebugStatusReader(true); var mockFileWriterFactory = new StubFileWriterFactory(); var mockFileReaderFactory = new StubFileReaderFactory(); mockFileReaderFactory.SetContents(css); ICssBundle cssBundle1 = new CssBundle(mockDebugStatusReader, mockFileWriterFactory, mockFileReaderFactory); ICssBundle cssBundle2 = new CssBundle(mockDebugStatusReader, mockFileWriterFactory, mockFileReaderFactory); string tag1 = cssBundle1 .Add("/css/first.css") .Add("/css/second.css") .Render("/css/output.css"); string tag2 = cssBundle2 .Add("/css/first.css") .Add("/css/second.css") .Render("/css/output.css"); Assert.AreEqual(tag1, "<link rel=\"stylesheet\" type=\"text/css\" href=\"/css/first.css\" /><link rel=\"stylesheet\" type=\"text/css\" href=\"/css/second.css\" />"); Assert.AreEqual(tag2, "<link rel=\"stylesheet\" type=\"text/css\" href=\"/css/first.css\" /><link rel=\"stylesheet\" type=\"text/css\" href=\"/css/second.css\" />"); }
public void CanBundleCssWithNullCompressorAttribute() { var mockDebugStatusReader = new StubDebugStatusReader(false); var mockFileWriterFactory = new StubFileWriterFactory(); var mockFileReaderFactory = new StubFileReaderFactory(); mockFileReaderFactory.SetContents(css); ICssBundle cssBundle = new CssBundle(mockDebugStatusReader, mockFileWriterFactory, mockFileReaderFactory); string tag = cssBundle .Add("/css/first.css") .Add("/css/second.css") .WithCompressor(CssCompressors.NullCompressor) .Render("/css/css_with_null_compressor_output.css"); Assert.AreEqual("<link rel=\"stylesheet\" type=\"text/css\" href=\"/css/css_with_null_compressor_output.css?r=9650CBE3E753DF5F9146A2AF738A8272\" />", tag); Assert.AreEqual(1, mockFileWriterFactory.Files.Count); Assert.AreEqual(css + css, mockFileWriterFactory.Files["/css/css_with_null_compressor_output.css"]); }
public void CanRenderDebugTagsTwice() { var mockDebugStatusReader = new StubDebugStatusReader(true); var mockFileWriterFactory = new StubFileWriterFactory(); var mockFileReaderFactory = new StubFileReaderFactory(); mockFileReaderFactory.SetContents(javaScript); IJavaScriptBundle javaScriptBundle1 = new JavaScriptBundle(mockDebugStatusReader, mockFileWriterFactory, mockFileReaderFactory); IJavaScriptBundle javaScriptBundle2 = new JavaScriptBundle(mockDebugStatusReader, mockFileWriterFactory, mockFileReaderFactory); javaScriptBundle1 .Add("~/js/test1.js") .Add("~/js/test2.js") .AsNamed("TestWithDebug", "~/js/output.js"); javaScriptBundle2 .Add("~/js/test1.js") .Add("~/js/test2.js") .AsNamed("TestWithDebug", "~/js/output.js"); var tag1 = javaScriptBundle1.RenderNamed("TestWithDebug"); var tag2 = javaScriptBundle2.RenderNamed("TestWithDebug"); Assert.AreEqual("<script type=\"text/javascript\" src=\"js/test1.js\"></script><script type=\"text/javascript\" src=\"js/test2.js\"></script>", tag1); Assert.AreEqual("<script type=\"text/javascript\" src=\"js/test1.js\"></script><script type=\"text/javascript\" src=\"js/test2.js\"></script>", tag2); }