Пример #1
0
        public void DebugPreferredWithOptimizationsDisabledTest()
        {
            //Setup the vpp to contain the files/directories
            TestVirtualPathProvider vpp = new TestVirtualPathProvider();
            var directory = new TestVirtualPathProvider.TestVirtualDirectory("/");
            var files     = new TestVirtualPathProvider.TestVirtualFile[] {
                new TestVirtualPathProvider.TestVirtualFile("/jquery.js", "jquery"),
                new TestVirtualPathProvider.TestVirtualFile("/jquery.debug.js", "jquery.debug")
            };

            foreach (var file in files)
            {
                directory.DirectoryFiles.Add(file);
                vpp.AddFile(file);
            }
            vpp.AddDirectory(directory);

            // Setup the bundle
            ScriptBundle bundle = new ScriptBundle("~/bundles/test");

            bundle.Items.VirtualPathProvider = vpp;
            bundle.Include("~/jquery.js");

            // Verify the bundle repsonse
            BundleContext context = BundleTest.SetupContext(bundle, vpp);

            context.EnableOptimizations = false;
            BundleResponse response = bundle.GetBundleResponse(context);

            Assert.AreEqual(@"jquery.debug", response.Content);
        }
Пример #2
0
        public void MinJsPreferredWithOptimizationsEnabledTest()
        {
            //Setup the vpp to contain the files/directories
            TestVirtualPathProvider vpp = new TestVirtualPathProvider();
            var directory     = new TestVirtualPathProvider.TestVirtualDirectory("/");
            var jqueryFile    = new TestVirtualPathProvider.TestVirtualFile("/jquery.js", "jquery");
            var jqueryMinFile = new TestVirtualPathProvider.TestVirtualFile("/jquery.min.js", "jquery.min");

            directory.DirectoryFiles.Add(jqueryFile);
            directory.DirectoryFiles.Add(jqueryMinFile);
            vpp.AddDirectory(directory);
            vpp.AddFile(jqueryFile);
            vpp.AddFile(jqueryMinFile);

            // Setup the bundle
            ScriptBundle bundle = new ScriptBundle("~/bundles/test");

            bundle.Items.VirtualPathProvider = vpp;
            bundle.Include("~/jquery.js");

            // Verify the bundle repsonse
            BundleContext context = BundleTest.SetupContext(bundle, vpp);

            context.EnableOptimizations = true;
            BundleResponse response = bundle.GetBundleResponse(context);

            Assert.AreEqual(@"jquery.min", response.Content);
        }
Пример #3
0
        public void IsVirtualDirectory()
        {
            var directory = new TestVirtualPathProvider.TestVirtualDirectory("/dir/");

            directory.DirectoryFiles.Add(new TestVirtualPathProvider.TestVirtualFile("/dir/file1.css", "css"));
            directory.DirectoryFiles.Add(new TestVirtualPathProvider.TestVirtualFile("/dir/file1.js", "js"));
            TestVirtualPathProvider.AddDirectory(directory);

            Assert.True(VirtualPathHelper.IsVirtualDirectory("~/dir"));
            Assert.False(VirtualPathHelper.IsVirtualFile("~/dir"));
        }
Пример #4
0
        public void GetResourcesFiles()
        {
            var directory = new TestVirtualPathProvider.TestVirtualDirectory("/dir/");

            directory.DirectoryFiles.Add(new TestVirtualPathProvider.TestVirtualFile("/dir/file1.css", "css"));
            directory.DirectoryFiles.Add(new TestVirtualPathProvider.TestVirtualFile("/dir/file1.js", "js"));
            directory.DirectoryFiles.Add(new TestVirtualPathProvider.TestVirtualFile("/dir/file1.map", "map"));
            directory.DirectoryFiles.Add(new TestVirtualPathProvider.TestVirtualFile("/dir/file1.woff", "woff"));
            directory.DirectoryFiles.Add(new TestVirtualPathProvider.TestVirtualFile("/dir/_references.js", "_references"));
            TestVirtualPathProvider.AddDirectory(directory);

            Assert.Equal(2, VirtualPathHelper.GetResourcesFiles("~/dir").Count());
        }
Пример #5
0
        public void Directory()
        {
            var vdir = new TestVirtualPathProvider.TestVirtualDirectory("/dir");

            vdir.DirectoryFiles.Add(new TestVirtualPathProvider.TestVirtualFile("/dir/file1.js", string.Empty));
            vdir.DirectoryFiles.Add(new TestVirtualPathProvider.TestVirtualFile("/dir/file2.css", string.Empty));
            testVirtualPathProvider.AddDirectory(vdir);
            var paths  = new string[] { "~/dir" };
            var assets = resolver.ResolveUrls(paths);

            Assert.Equal(2, assets.Count());
            Assert.Contains(new Asset("~/dir/file1.js", AssetType.Script), assets);
            Assert.Contains(new Asset("~/dir/file2.css", AssetType.Stylesheet), assets);
        }
Пример #6
0
        public void DynamicBundleWithCustomVPPSearchSubDirOffTest()
        {
            //Setup the vpp to contain the files/directories
            TestVirtualPathProvider vpp = new TestVirtualPathProvider();
            var directory = new TestVirtualPathProvider.TestVirtualDirectory("/dir/");

            directory.DirectoryFiles.Add(new TestVirtualPathProvider.TestVirtualFile("/dir/1.js", "1"));
            directory.DirectoryFiles.Add(new TestVirtualPathProvider.TestVirtualFile("/dir/2.js", "2"));
            vpp.AddDirectory(directory);
            var sub1 = new TestVirtualPathProvider.TestVirtualDirectory("/dir/sub1/");

            sub1.DirectoryFiles.Add(new TestVirtualPathProvider.TestVirtualFile("/dir/sub1/a.js", "a"));
            sub1.DirectoryFiles.Add(new TestVirtualPathProvider.TestVirtualFile("/dir/sub1/b.js", "b"));
            vpp.AddDirectory(sub1);
            directory.SubDirectories.Add(sub1);
            var sub2 = new TestVirtualPathProvider.TestVirtualDirectory("/dir/sub2/");

            sub2.DirectoryFiles.Add(new TestVirtualPathProvider.TestVirtualFile("/dir/sub2/c.js", "c"));
            sub2.DirectoryFiles.Add(new TestVirtualPathProvider.TestVirtualFile("/dir/sub2/d.js", "d"));
            vpp.AddDirectory(sub2);
            directory.SubDirectories.Add(sub2);
            var subSub1 = new TestVirtualPathProvider.TestVirtualDirectory("/dir/sub1/sub/");

            subSub1.DirectoryFiles.Add(new TestVirtualPathProvider.TestVirtualFile("/dir/sub1/sub/aa.js", "aa"));
            subSub1.DirectoryFiles.Add(new TestVirtualPathProvider.TestVirtualFile("/dir/sub1/sub/bb.js", "bb"));
            vpp.AddDirectory(subSub1);
            sub1.SubDirectories.Add(subSub1);

            // Setup the bundle
            Bundle bundle = new DynamicFolderBundle("js", "*.js");

            bundle.ConcatenationToken        = " ";
            bundle.Items.VirtualPathProvider = vpp;

            // Verify the bundle repsonse
            BundleContext context = BundleTest.SetupContext(bundle, vpp);

            context.BundleVirtualPath = "~/dir/js";
            Assert.AreEqual(@"1 2 ", bundle.GetBundleResponse(context).Content);

            context.BundleVirtualPath = "~/dir/sub1/js";
            Assert.AreEqual(@"a b ", bundle.GetBundleResponse(context).Content);

            context.BundleVirtualPath = "~/dir/sub2/js";
            Assert.AreEqual(@"c d ", bundle.GetBundleResponse(context).Content);
        }
Пример #7
0
        public void WhenOptimizations_TagShouldBeMinified()
        {
            //Setup the vpp to contain the files/directories
            var directory = new TestVirtualPathProvider.TestVirtualDirectory("/dir/");

            directory.DirectoryFiles.Add(new TestVirtualPathProvider.TestVirtualFile("/dir/style1.css", "/* demo file1 helpers*/ body {    color: #454545; }"));
            directory.DirectoryFiles.Add(new TestVirtualPathProvider.TestVirtualFile("/dir/style2.css", "/* demo file2 helpers*/ body {    color: #454545; }"));
            testVirtualPathProvider.AddDirectory(directory);

            BundleTable.EnableOptimizations = true;
            BundleTable.Bundles.Clear();

            var res = Styles.Render("~/dir/style1.css", "~/dir/style2.css");

            var ashtml = res.ToHtmlString();

            Assert.True(ashtml.Length > 0);
            Assert.Equal("<style>body{color:#454545}body{color:#454545}</style>", ashtml);
        }
Пример #8
0
        public void WhenOptimizations_TagShouldBeMinified()
        {
            //Setup the vpp to contain the files/directories
            var directory = new TestVirtualPathProvider.TestVirtualDirectory("/dir/");

            directory.DirectoryFiles.Add(new TestVirtualPathProvider.TestVirtualFile("/dir/file1.js", "/* demo file1 helpers*/ function test(a) { return 'test'; }"));
            directory.DirectoryFiles.Add(new TestVirtualPathProvider.TestVirtualFile("/dir/file2.js", "/* demo file2 helpers*/ function test(a) { return 'test'; }"));
            testVirtualPathProvider.AddDirectory(directory);

            BundleTable.EnableOptimizations = true;
            BundleTable.Bundles.Clear();

            var res = Scripts.Render("~/dir/file1.js", "~/dir/file2.js");

            var ashtml = res.ToHtmlString();

            Assert.True(ashtml.Length > 0);
            Assert.Equal("<script type=\"text/javascript\">function test(){return\"test\"};function test(){return\"test\"};</script>", ashtml);
        }
Пример #9
0
        public void BundleCustomVPPIncludeDirectoryNestedAllJsTest()
        {
            //Setup the vpp to contain the files/directories
            TestVirtualPathProvider vpp = new TestVirtualPathProvider();
            var directory = new TestVirtualPathProvider.TestVirtualDirectory("/dir/");

            directory.DirectoryFiles.Add(new TestVirtualPathProvider.TestVirtualFile("/dir/1.js", "1"));
            directory.DirectoryFiles.Add(new TestVirtualPathProvider.TestVirtualFile("/dir/2.js", "2"));
            vpp.AddDirectory(directory);
            var sub1 = new TestVirtualPathProvider.TestVirtualDirectory("/dir/sub1/");

            sub1.DirectoryFiles.Add(new TestVirtualPathProvider.TestVirtualFile("/dir/sub1/a.js", "a"));
            sub1.DirectoryFiles.Add(new TestVirtualPathProvider.TestVirtualFile("/dir/sub1/b.js", "b"));
            vpp.AddDirectory(sub1);
            directory.SubDirectories.Add(sub1);
            var sub2 = new TestVirtualPathProvider.TestVirtualDirectory("/dir/sub2/");

            sub2.DirectoryFiles.Add(new TestVirtualPathProvider.TestVirtualFile("/dir/sub2/c.js", "c"));
            sub2.DirectoryFiles.Add(new TestVirtualPathProvider.TestVirtualFile("/dir/sub2/d.js", "d"));
            vpp.AddDirectory(sub2);
            directory.SubDirectories.Add(sub2);
            var subSub1 = new TestVirtualPathProvider.TestVirtualDirectory("/dir/sub1/sub/");

            subSub1.DirectoryFiles.Add(new TestVirtualPathProvider.TestVirtualFile("/dir/sub1/sub/aa.js", "aa"));
            subSub1.DirectoryFiles.Add(new TestVirtualPathProvider.TestVirtualFile("/dir/sub1/sub/bb.js", "bb"));
            vpp.AddDirectory(subSub1);
            sub1.SubDirectories.Add(subSub1);

            // Setup the bundle
            Bundle bundle = new Bundle("~/bundles/test");

            bundle.ConcatenationToken        = " ";
            bundle.Items.VirtualPathProvider = vpp;
            bundle.IncludeDirectory("~/dir/", "*.js", searchSubdirectories: true);

            // Verify the bundle repsonse
            BundleContext  context  = SetupContext(bundle, vpp);
            BundleResponse response = bundle.GetBundleResponse(context);

            Assert.AreEqual(@"1 2 a b aa bb c d ", response.Content);
        }
Пример #10
0
        public void LessTransformTest()
        {
            //Setup the vpp to contain the files/directories
            TestVirtualPathProvider vpp = new TestVirtualPathProvider();
            var directory = new TestVirtualPathProvider.TestVirtualDirectory("/");

            directory.DirectoryFiles.Add(new TestVirtualPathProvider.TestVirtualFile("/test.less", @"@color: #111; h2 { color: @color; }"));
            vpp.AddDirectory(directory);

            // Setup the bundle
            Bundle bundle = new Bundle("~/bundles/test", new LessTransform(), new CssMinify());

            bundle.Items.VirtualPathProvider = vpp;
            bundle.Include("~/*.less");

            // Verify the bundle repsonse
            BundleContext  context  = BundleTest.SetupContext(bundle, vpp);
            BundleResponse response = bundle.GetBundleResponse(context);

            Assert.AreEqual(@"h2{color:#111}", response.Content);
        }
Пример #11
0
        public void IncludeWithVersionInDirectoryThrowsTest()
        {
            //Setup the vpp to contain the files/directories
            TestVirtualPathProvider vpp = new TestVirtualPathProvider();
            var directory = new TestVirtualPathProvider.TestVirtualDirectory("/jquery1.0.0-pre/");

            directory.DirectoryFiles.Add(new TestVirtualPathProvider.TestVirtualFile("/jquery1.0.0-pre/1.js", "alert('1')"));
            directory.DirectoryFiles.Add(new TestVirtualPathProvider.TestVirtualFile("/jquery1.0.0-pre/2.js", "alert('2')"));
            vpp.AddDirectory(directory);

            // Setup the bundle
            ScriptBundle bundle = new ScriptBundle("~/bundles/test");

            bundle.Items.VirtualPathProvider = vpp;
            string error = "Directory does not exist.\r\nParameter name: directoryVirtualPath";

            ExceptionHelper.ExpectArgumentException(
                delegate {
                bundle.Include("~/jquery{version}/*.js");
            }, error);
        }
Пример #12
0
        public void StyleBundleCustomVPPIncludeVersionSelectsTest()
        {
            //Setup the vpp to contain the files/directories
            TestVirtualPathProvider vpp = new TestVirtualPathProvider();
            var directory = new TestVirtualPathProvider.TestVirtualDirectory("/dir/");

            directory.DirectoryFiles.Add(new TestVirtualPathProvider.TestVirtualFile("/dir/style1.0.css", "correct"));
            directory.DirectoryFiles.Add(new TestVirtualPathProvider.TestVirtualFile("/dir/style.css", "wrong"));
            vpp.AddDirectory(directory);

            // Setup the bundle
            ScriptBundle bundle = new ScriptBundle("~/bundles/test");

            bundle.Items.VirtualPathProvider = vpp;
            bundle.Include("~/dir/style{version}.css");

            // Verify the bundle repsonse
            BundleContext  context  = SetupContext(bundle, vpp);
            BundleResponse response = bundle.GetBundleResponse(context);

            Assert.AreEqual(@"correct", response.Content);
        }
Пример #13
0
        public void ScriptBundleCustomVPPIncludeAllJsTest()
        {
            //Setup the vpp to contain the files/directories
            TestVirtualPathProvider vpp = new TestVirtualPathProvider();
            var directory = new TestVirtualPathProvider.TestVirtualDirectory("/dir/");

            directory.DirectoryFiles.Add(new TestVirtualPathProvider.TestVirtualFile("/dir/1.js", "alert('1')"));
            directory.DirectoryFiles.Add(new TestVirtualPathProvider.TestVirtualFile("/dir/2.js", "alert('2')"));
            vpp.AddDirectory(directory);

            // Setup the bundle
            ScriptBundle bundle = new ScriptBundle("~/bundles/test");

            bundle.Items.VirtualPathProvider = vpp;
            bundle.Include("~/dir/*.js");

            // Verify the bundle repsonse
            BundleContext  context  = SetupContext(bundle, vpp);
            BundleResponse response = bundle.GetBundleResponse(context);

            Assert.AreEqual(@"alert(""1"");alert(""2"")", response.Content);
        }