static void AddBundle(BundleCollection bundles, string bundlePath, string scriptPath) { bool isJavascript = scriptPath.EndsWith(".js"); var resolver = new BundleResolver(bundles); if (bundles.Any(b => b.Path == bundlePath)) { var bundle = bundles.First(b => b.Path == bundlePath); var contents = resolver.GetBundleContents(bundle.Path); if (!contents.Any(s => s == scriptPath)) { //if bundle already exists, include the script path bundle.Include(scriptPath); } } else { //if bundle not exists, create the bundle and include the script path if (isJavascript) { bundles.Add(new ScriptBundle(bundlePath).Include(scriptPath)); } else { bundles.Add(new StyleBundle(bundlePath).Include(scriptPath, new CssRewriteUrlTransform())); } } }
public void GivenAssetExists_WhenProcessRequest_ThenResponseContentTypeIsBundleContentType() { bundles.Add(new TestableBundle("~/test") { ContentType = "CONTENT/TYPE" }); var asset = new Mock <IAsset>(); asset.Setup(a => a.Accept(It.IsAny <IBundleVisitor>())) .Callback <IBundleVisitor>(v => v.Visit(asset.Object)); asset.SetupGet(a => a.Path) .Returns("~/test/asset.js"); asset.Setup(a => a.OpenStream()) .Returns(Stream.Null); bundles.First().Assets.Add(asset.Object); using (outputStream = new MemoryStream()) { handler.ProcessRequest("~/test/asset.js"); } response.VerifySet(r => r.ContentType = "CONTENT/TYPE"); }
public void GivenAssetExists_WhenProcessRequest_ThenMaxAgeIsSetToAYear() { bundles.Add(new TestableBundle("~/test") { ContentType = "CONTENT/TYPE" }); var asset = new Mock <IAsset>(); asset.Setup(a => a.Accept(It.IsAny <IBundleVisitor>())) .Callback <IBundleVisitor>(v => v.Visit(asset.Object)); asset.SetupGet(a => a.Path) .Returns("~/test/asset.js"); asset.Setup(a => a.OpenStream()) .Returns(Stream.Null); bundles.First().Assets.Add(asset.Object); using (outputStream = new MemoryStream()) { handler.ProcessRequest("~/test/asset.js"); } cache.Verify(c => c.SetCacheability(HttpCacheability.Public)); cache.Verify(c => c.SetMaxAge(It.Is <TimeSpan>(t => t.Days == 365))); }
static void AddBundle(BundleCollection bundles, string bundlePath, string scriptPath) { bool isJavascript = scriptPath.EndsWith(".js"); if (bundles.Any(b => b.Path == bundlePath)) { bundles.First(b => b.Path == bundlePath).Include(scriptPath); } else { if (isJavascript) { bundles.Add(new ScriptBundle(bundlePath).Include(scriptPath)); } else { bundles.Add(new StyleBundle(bundlePath).Include(scriptPath, new CssRewriteUrlTransform())); } } }