public void WhenRenderExternalScriptBundle_ThenHtmlIsScriptElement() { var bundle = new ExternalScriptBundle("http://test.com/"); var fallbackRenderer = new Mock <IBundleHtmlRenderer <ScriptBundle> >(); var renderer = new ExternalScriptBundleHtmlRenderer(fallbackRenderer.Object, settings); var html = renderer.Render(bundle); html.ShouldEqual("<script src=\"http://test.com/\" type=\"text/javascript\"></script>"); }
public void WhenRenderExternalScriptBundleWithFallbackAsset_ThenHtmlEscapesFallbackScriptTags() { var fallbackRenderer = new Mock <IBundleHtmlRenderer <ScriptBundle> >(); var renderer = new ExternalScriptBundleHtmlRenderer(fallbackRenderer.Object, settings); var bundle = new ExternalScriptBundle("http://test.com/", "test", "CONDITION"); var asset = new Mock <IAsset>(); bundle.Assets.Add(asset.Object); fallbackRenderer.Setup(r => r.Render(bundle)) .Returns(("<script></script>")); var html = renderer.Render(bundle); html.ShouldContain("%3Cscript%3E%3C/script%3E"); }
public void WhenRenderExternalScriptBundleWithLocalAssetsAndIsDebugMode_ThenFallbackRendererUsed() { var bundle = new ExternalScriptBundle("http://test.com/", "test"); bundle.Assets.Add(Mock.Of <IAsset>()); var fallbackRenderer = new Mock <IBundleHtmlRenderer <ScriptBundle> >(); fallbackRenderer.Setup(r => r.Render(bundle)) .Returns(("FALLBACK")); settings.IsDebuggingEnabled = true; var renderer = new ExternalScriptBundleHtmlRenderer(fallbackRenderer.Object, settings); var html = renderer.Render(bundle); html.ShouldEqual("FALLBACK"); }
public void GivenExternalScriptBundleWithFallbackAssetsAndDebugMode_WhenRender_ThenOnlyOutputFallbackScripts() { settings.IsDebuggingEnabled = true; var bundle = new ExternalScriptBundle("http://test.com/", "test", "CONDITION"); var asset = new Mock <IAsset>(); bundle.Assets.Add(asset.Object); var fallbackRenderer = new Mock <IBundleHtmlRenderer <ScriptBundle> >(); fallbackRenderer.Setup(r => r.Render(bundle)) .Returns(("<script></script>")); var renderer = new ExternalScriptBundleHtmlRenderer(fallbackRenderer.Object, settings); var html = renderer.Render(bundle); html.ShouldEqual("<script></script>"); }
public void WhenRenderExternalScriptBundleWithFallbackAsset_ThenHtmlContainsFallbackScript() { var bundle = new ExternalScriptBundle("http://test.com/", "test", "CONDITION"); var asset = new Mock <IAsset>(); bundle.Assets.Add(asset.Object); var fallbackRenderer = new Mock <IBundleHtmlRenderer <ScriptBundle> >(); fallbackRenderer.Setup(r => r.Render(bundle)) .Returns(("FALLBACK")); var renderer = new ExternalScriptBundleHtmlRenderer(fallbackRenderer.Object, settings); var html = renderer.Render(bundle); html.ShouldEqual( "<script src=\"http://test.com/\" type=\"text/javascript\"></script>" + Environment.NewLine + "<script type=\"text/javascript\">" + Environment.NewLine + "if(CONDITION){" + Environment.NewLine + "document.write(unescape('FALLBACK'));" + Environment.NewLine + "}" + Environment.NewLine + "</script>" ); }
internal override string Render() { return(externalRenderer.Render(this)); }