Exemplo n.º 1
0
 public BundleCommonJs(ICommonJsWriter writer, CassetteSettings cassetteSettings, ConcatenateAssets concatenateAssets, ISourceMapRewriter sourceMapRewriter)
 {
     _writer            = writer;
     _cassetteSettings  = cassetteSettings;
     _concatenateAssets = concatenateAssets;
     _sourceMapRewriter = sourceMapRewriter;
 }
Exemplo n.º 2
0
        public void ConcatenateAssetsMergesAssetReferences()
        {
            var module = new Module("~");
            var asset1 = new Mock<IAsset>();
            var asset2 = new Mock<IAsset>();
            asset1.Setup(a => a.OpenStream()).Returns(() => "asset1".AsStream());
            asset1.SetupGet(a => a.References).Returns(new[]
            {
                new AssetReference("~\\other1.js", asset1.Object, 0, AssetReferenceType.DifferentModule)
            });
            asset2.Setup(a => a.OpenStream()).Returns(() => "asset2".AsStream());
            asset2.SetupGet(a => a.References).Returns(new[]
            {
                new AssetReference("~\\other1.js", asset2.Object, 0, AssetReferenceType.DifferentModule),
                new AssetReference("~\\other2.js", asset2.Object, 0, AssetReferenceType.DifferentModule)
            });
            module.Assets.Add(asset1.Object);
            module.Assets.Add(asset2.Object);

            var processor = new ConcatenateAssets();
            processor.Process(module, Mock.Of<ICassetteApplication>());

            module.Assets[0].References
                .Select(r => r.Path)
                .OrderBy(f => f)
                .SequenceEqual(new[] { "~\\other1.js", "~\\other1.js", "~\\other2.js" })
                .ShouldBeTrue();
        }
Exemplo n.º 3
0
        public void ConcatenateAssetsMergesAssetReferences()
        {
            var bundle = new TestableBundle("~");
            var asset1 = new Mock<IAsset>();
            var asset2 = new Mock<IAsset>();
            asset1.Setup(a => a.OpenStream()).Returns(() => "asset1".AsStream());
            asset1.SetupGet(a => a.References).Returns(new[]
            {
                new AssetReference(asset1.Object.Path, "~\\other1.js", 0, AssetReferenceType.DifferentBundle)
            });
            asset2.Setup(a => a.OpenStream()).Returns(() => "asset2".AsStream());
            asset2.SetupGet(a => a.References).Returns(new[]
            {
                new AssetReference(asset2.Object.Path, "~\\other1.js", 0, AssetReferenceType.DifferentBundle),
                new AssetReference(asset2.Object.Path, "~\\other2.js", 0, AssetReferenceType.DifferentBundle)
            });
            bundle.Assets.Add(asset1.Object);
            bundle.Assets.Add(asset2.Object);

            var processor = new ConcatenateAssets();
            processor.Process(bundle);

            bundle.Assets[0].References
                .Select(r => r.ToPath)
                .OrderBy(f => f)
                .SequenceEqual(new[] { "~\\other1.js", "~\\other1.js", "~\\other2.js" })
                .ShouldBeTrue();
        }
Exemplo n.º 4
0
        public void ConcatenateAssetsWithSeparatorPutsSeparatorBetweenEachAsset()
        {
            var bundle = new TestableBundle("~");
            var asset1 = new Mock<IAsset>();
            var asset2 = new Mock<IAsset>();
            asset1.Setup(a => a.OpenStream()).Returns(() => "asset1".AsStream());
            asset2.Setup(a => a.OpenStream()).Returns(() => "asset2".AsStream());
            bundle.Assets.Add(asset1.Object);
            bundle.Assets.Add(asset2.Object);

            var processor = new ConcatenateAssets { Separator = ";" };
            processor.Process(bundle);

            using (var reader = new StreamReader(bundle.Assets[0].OpenStream()))
            {
                reader.ReadToEnd().ShouldEqual("asset1;asset2");
            }
            (bundle.Assets[0] as IDisposable).Dispose();
        }
Exemplo n.º 5
0
        public void GivenModuleWithTwoAssets_WhenConcatenateAssetsProcessesModule_ThenASingleAssetReplacesTheTwoOriginalAssets()
        {
            var module = new Module("~");
            var asset1 = new Mock<IAsset>();
            var asset2 = new Mock<IAsset>();
            asset1.Setup(a => a.OpenStream()).Returns(() => ("asset1" + Environment.NewLine + "content").AsStream());
            asset2.Setup(a => a.OpenStream()).Returns(() => ("asset2" + Environment.NewLine + "content").AsStream());
            module.Assets.Add(asset1.Object);
            module.Assets.Add(asset2.Object);

            var processor = new ConcatenateAssets();
            processor.Process(module, Mock.Of<ICassetteApplication>());

            module.Assets.Count.ShouldEqual(1);
            using (var reader = new StreamReader(module.Assets[0].OpenStream()))
            {
                reader.ReadToEnd().ShouldEqual("asset1" + Environment.NewLine + "content" + Environment.NewLine + "asset2" + Environment.NewLine + "content");
            }
            (module.Assets[0] as IDisposable).Dispose();
        }
Exemplo n.º 6
0
 public BundleCommonJs(ICommonJsWriter writer, CassetteSettings cassetteSettings, ConcatenateAssets concatenateAssets)
 {
     _writer            = writer;
     _cassetteSettings  = cassetteSettings;
     _concatenateAssets = concatenateAssets;
 }