Пример #1
0
        public void GivenProcessedExternalScriptBundleWithFallbackCondition_WhenRender_ThenExternalRendererUsed()
        {
            var urlGenerator = new Mock <IUrlGenerator>();

            urlGenerator
            .Setup(g => g.CreateBundleUrl(It.IsAny <Bundle>()))
            .Returns("/");

            var bundle = new ExternalScriptBundle(Url, "~/test", "condition")
            {
                Renderer = new ScriptBundleHtmlRenderer(urlGenerator.Object),
                Pipeline = Mock.Of <IBundlePipeline <ScriptBundle> >()
            };
            var asset = new Mock <IAsset>();

            asset.SetupGet(a => a.Path).Returns("~/test/asset.js");
            asset.Setup(a => a.OpenStream()).Returns(Stream.Null);
            bundle.Assets.Add(asset.Object);
            var settings = new CassetteSettings();

            bundle.Process(settings);

            var html = bundle.Render();

            html.ShouldEqual(@"<script src=""http://test.com/asset.js"" type=""text/javascript""></script>
<script type=""text/javascript"">
if(condition){
document.write('<script src=""/"" type=""text/javascript""><\/script>');
}
</script>");
        }
Пример #2
0
        public void GivenProcessedExternalScriptBundleWithFallbackCondition_WhenRender_ThenExternalRendererUsed()
        {
            var urlGenerator = new Mock<IUrlGenerator>();
            urlGenerator
                .Setup(g => g.CreateBundleUrl(It.IsAny<Bundle>()))
                .Returns("/");

            var bundle = new ExternalScriptBundle(Url, "~/test", "condition")
            {
                Renderer = new ScriptBundleHtmlRenderer(urlGenerator.Object),
                Pipeline = Mock.Of<IBundlePipeline<ScriptBundle>>()
            };
            var asset = new Mock<IAsset>();
            asset.SetupGet(a => a.Path).Returns("~/test/asset.js");
            asset.Setup(a => a.OpenStream()).Returns(Stream.Null);
            bundle.Assets.Add(asset.Object);
            var settings = new CassetteSettings();
            bundle.Process(settings);

            var html = bundle.Render();

            html.ShouldEqual(@"<script src=""http://test.com/asset.js"" type=""text/javascript""></script>
            <script type=""text/javascript"">
            if(condition){
            document.write('<script src=""/"" type=""text/javascript""><\/script>');
            }
            </script>");
        }
Пример #3
0
        public void WhenRenderExternalScriptBundleWithNotIECondition_ThenHtmlIsScriptElementWithConditionalButLeavesScriptVisibleToAllBrowsers()
        {
            var bundle = new ExternalScriptBundle("http://test.com/")
            {
                Condition = "(gt IE 9)|!(IE)", Pipeline = Mock.Of <IBundlePipeline <ScriptBundle> >()
            };

            var html = bundle.Render(bundle);

            html.ShouldEqual(
                "<!--[if " + bundle.Condition + "]><!-->" + Environment.NewLine +
                "<script src=\"http://test.com/\" type=\"text/javascript\"></script>" + Environment.NewLine +
                "<!-- <![endif]-->");
        }
Пример #4
0
        public void GivenBundleIsProcessed_WhenRender_ThenExternalRendererUsed()
        {
            var bundle = new ExternalScriptBundle(Url, "~/test", "condition");
            var asset = new Mock<IAsset>();
            asset.SetupGet(a => a.SourceFile.FullPath).Returns("~/test/asset.js");
            asset.Setup(a => a.OpenStream()).Returns(Stream.Null);
            bundle.Assets.Add(asset.Object);
            var urlGenerator = new Mock<IUrlGenerator>();
            urlGenerator.Setup(g => g.CreateBundleUrl(bundle)).Returns("/");
            var settings = new CassetteSettings { UrlGenerator = urlGenerator.Object };
            bundle.Process(settings);

            var html = bundle.Render();

            html.ShouldContain("condition");
        }
Пример #5
0
        public void GivenBundleIsProcessed_WhenRender_ThenExternalRendererUsed()
        {
            var bundle = new ExternalScriptBundle(Url, "~/test", "condition") { Processor = new ScriptPipeline() };
            var asset = new Mock<IAsset>();
            asset.SetupGet(a => a.SourceFile.FullPath).Returns("~/test/asset.js");
            asset.Setup(a => a.OpenStream()).Returns(Stream.Null);
            bundle.Assets.Add(asset.Object);
            var urlGenerator = new Mock<IUrlGenerator>();
            urlGenerator.Setup(g => g.CreateBundleUrl(bundle)).Returns("/");
            var settings = new CassetteSettings("") { UrlGenerator = urlGenerator.Object };
            bundle.Process(settings);
            
            var html = bundle.Render();

            html.ShouldContain("condition");
        }
 string Render(ExternalScriptBundle bundle)
 {
     bundle.Process(settings);
     bundle.FallbackRenderer = fallbackRenderer.Object;
     return bundle.Render();
 }
        public void WhenRenderExternalScriptBundleWithNotIECondition_ThenHtmlIsScriptElementWithConditionalButLeavesScriptVisibleToAllBrowsers()
        {
            var bundle = new ExternalScriptBundle("http://test.com/") { Condition = "(gt IE 9)|!(IE)" };
            var fallbackRenderer = new Mock<IBundleHtmlRenderer<ScriptBundle>>();

            var html = bundle.Render(bundle);

            html.ShouldEqual(
                "<!--[if " + bundle.Condition + "]><!-->" + Environment.NewLine +
                "<script src=\"http://test.com/\" type=\"text/javascript\"></script>" + Environment.NewLine +
                "<!-- <![endif]-->");
        }
 string Render(ExternalScriptBundle bundle)
 {
     bundle.Process(settings);
     bundle.FallbackRenderer = fallbackRenderer.Object;
     return(bundle.Render());
 }