public void GivenHtmlTemplateBundleWithNoAssets_WhenRender_ThenReturnEmptyString()
        {
            var bundle = new HtmlTemplateBundle("~");
            var html   = render.Render(bundle);

            html.ShouldEqual("");
        }
Beispiel #2
0
        public string HtmlTemplateId(HtmlTemplateBundle bundle, IAsset htmlTemplateAsset)
        {
            currentBundle = bundle;
            var operations = BuildOperations();

            return(ApplyOperations(htmlTemplateAsset, operations));
        }
        public void GivenHtmAsset_WhenProcess_ThenItAddsReferencesToHtmlTemplateAssetInBundle()
        {
            var asset = new Mock <IAsset>();

            asset.SetupGet(a => a.Path).Returns("~/asset.htm");

            var javaScriptSource = @"
<!-- @reference ""another1.js""
     @reference 'another2.js'
     @reference another3.js another4.js
-->";

            asset.Setup(a => a.OpenStream())
            .Returns(javaScriptSource.AsStream());
            var bundle = new HtmlTemplateBundle("~");

            bundle.Assets.Add(asset.Object);

            var processor = new ParseHtmlTemplateReferences();

            processor.Process(bundle);

            asset.Verify(a => a.AddReference("another1.js", 2));
            asset.Verify(a => a.AddReference("another2.js", 3));
            asset.Verify(a => a.AddReference("another3.js", 4));
            asset.Verify(a => a.AddReference("another4.js", 4));
        }
 public HtmlTemplateToJavaScriptTransformer(string javaScriptTemplate, HtmlTemplateBundle bundle, IJsonSerializer serializer, IHtmlTemplateIdStrategy idStrategy)
 {
     this.javaScriptTemplate = javaScriptTemplate;
     this.bundle = bundle;
     this.serializer = serializer;
     this.idStrategy = idStrategy;
 }
        public void GetTemplateIdReturnsAssetFilenameWithoutExtension_WhenTemplateBundlePerFile()
        {
            var bundle = new HtmlTemplateBundle("~/test.htm");
            var id     = bundle.GetTemplateId(new StubAsset("~/test.htm"));

            id.ShouldEqual("test");
        }
 public HtmlTemplatePipeline_Tests()
 {
     bundle = new HtmlTemplateBundle("~");
     var container = new TinyIoCContainer();
     container.Register<IHtmlTemplateIdStrategy>(new HtmlTemplateIdBuilder());
     pipeline = new HtmlTemplatePipeline(container);
 }
        public void GivenAssetNotSubPathOfBundlePath_ThenGetTemplateIdReturnsJustFilename()
        {
            var bundle = new HtmlTemplateBundle("~/bundle");
            var id     = bundle.GetTemplateId(new StubAsset("~/test.htm"));

            id.ShouldEqual("test");
        }
        public void GetTemplateIdIncludesDirectoryAndFilenameSeparatedWithHyphen()
        {
            var bundle = new HtmlTemplateBundle("~");
            var id     = bundle.GetTemplateId(new StubAsset("~/dir/test.htm"));

            id.ShouldEqual("dir-test");
        }
 public HtmlTemplateToJavaScriptTransformer(string javaScriptTemplate, HtmlTemplateBundle bundle, IJsonSerializer serializer, IHtmlTemplateIdStrategy idStrategy)
 {
     this.javaScriptTemplate = javaScriptTemplate;
     this.bundle             = bundle;
     this.serializer         = serializer;
     this.idStrategy         = idStrategy;
 }
        public WrapHtmlTemplateInScriptElement_Tests()
        {
            bundle = new HtmlTemplateBundle("~/test");

            asset = new Mock <IAsset>();
            asset.Setup(a => a.Path).Returns("~/test/asset.htm");
            bundle.Assets.Add(asset.Object);
        }
Beispiel #11
0
        public HtmlTemplatePipeline_Tests()
        {
            bundle = new HtmlTemplateBundle("~");
            var container = new TinyIoCContainer();

            container.Register <IHtmlTemplateIdStrategy>(new HtmlTemplateIdBuilder());
            pipeline = new HtmlTemplatePipeline(container);
        }
Beispiel #12
0
        public void WhenProcessBundle_ThenBundleContentTypeIsTextJavascript()
        {
            var bundle = new HtmlTemplateBundle("~/");

            pipeline.Process(bundle);

            bundle.ContentType.ShouldEqual("text/javascript");
        }
        public void WhenProcessBundle_ThenBundleContentTypeIsTextJavascript()
        {
            var bundle = new HtmlTemplateBundle("~/");

            pipeline.Process(bundle);

            bundle.ContentType.ShouldEqual("text/javascript");
        }
 static ScriptEngine LoadHtmlTemplateScriptsIntoEngine(HtmlTemplateBundle bundle)
 {
     var output = bundle.OpenStream().ReadToEnd();
     var scriptEngine = new ScriptEngine();
     scriptEngine.ExecuteFile("hogan.js");
     scriptEngine.Execute(output);
     return scriptEngine;
 }
        public void WhenProcessBundle_ThenHashIsAssigned()
        {
            var bundle = new HtmlTemplateBundle("~");

            pipeline.Process(bundle);

            bundle.Hash.ShouldNotBeNull();
        }
        public void GivenHtmlTemplateBundleWithOneAsset_WhenRender_ThenReturnsAssetsOpenStreamResult()
        {
            var bundle = new HtmlTemplateBundle("~");
            bundle.Assets.Add(new StubAsset(content: "content"));

            var html = render.Render(bundle);
            html.ShouldEqual("content");
        }
Beispiel #17
0
        public void WhenProcessBundle_ThenHashIsAssigned()
        {
            var bundle = new HtmlTemplateBundle("~");

            pipeline.Process(bundle);

            bundle.Hash.ShouldNotBeNull();
        }
        public WrapHtmlTemplateInScriptElement_Tests()
        {
            bundle = new HtmlTemplateBundle("~/test");

            asset = new Mock<IAsset>();
            asset.Setup(a => a.Path).Returns("~/test/asset.htm");
            bundle.Assets.Add(asset.Object);
        }
        public void WhenProcess_ThenItAssignsInlineHtmlTemplateBundleRenderer()
        {
            var bundle   = new HtmlTemplateBundle("~");
            var pipeline = new HtmlTemplatePipeline();

            pipeline.Process(bundle, new CassetteSettings(""));

            bundle.Renderer.ShouldBeType <InlineHtmlTemplateBundleRenderer>();
        }
Beispiel #20
0
        public void WhenProcessBundle_ThenHashIsAssigned()
        {
            var pipeline = new JQueryTmplPipeline();
            var bundle   = new HtmlTemplateBundle("~");

            pipeline.Process(bundle, new CassetteSettings(""));

            bundle.Hash.ShouldNotBeNull();
        }
        public void WhenProcessBundle_ThenBundleContentTypeIsTextJavascript()
        {
            var pipeline = new JQueryTmplPipeline();
            var bundle = new HtmlTemplateBundle("~/");

            pipeline.Process(bundle, new CassetteSettings(""));

            bundle.ContentType.ShouldEqual("text/javascript");
        }
        static ScriptEngine LoadHtmlTemplateScriptsIntoEngine(HtmlTemplateBundle bundle)
        {
            var output       = bundle.OpenStream().ReadToEnd();
            var scriptEngine = new ScriptEngine();

            scriptEngine.ExecuteFile("hogan.js");
            scriptEngine.Execute(output);
            return(scriptEngine);
        }
        public void GivenHtmlTemplateBundleWithTwoAssets_WhenRender_ThenReturnsEachAssetsOpenStreamResultSeparatedByNewLine()
        {
            var bundle = new HtmlTemplateBundle("~");
            bundle.Assets.Add(new StubAsset(content: "content1"));
            bundle.Assets.Add(new StubAsset(content: "content2"));

            var html = render.Render(bundle);
            html.ShouldEqual("content1" + Environment.NewLine + "content2");
        }
        public void WhenProcessBundle_ThenHashIsAssigned()
        {
            var pipeline = new HtmlTemplatePipeline();
            var bundle = new HtmlTemplateBundle("~");

            pipeline.Process(bundle, new CassetteSettings(""));

            bundle.Hash.ShouldNotBeNull();
        }
        public void WhenProcess_ThenItAssignsInlineHtmlTemplateBundleRenderer()
        {
            var bundle = new HtmlTemplateBundle("~");
            var pipeline = new HtmlTemplatePipeline();

            pipeline.Process(bundle, new CassetteSettings());

            bundle.Renderer.ShouldBeType<InlineHtmlTemplateBundleRenderer>();
        }
 public ScriptAndTemplateBundle(string name, ScriptBundle bundle, HtmlTemplateBundle templateBundle, Func<IBundleProcessor<HtmlTemplateBundle>> templateProcessor)
     : base(name)
 {
     ScriptBundle = bundle;
     HtmlTemplateBundle = templateBundle;
     ContentType = "text/javascript";
     TemplateProcessor = templateProcessor();
     ScriptProcessor = new ScriptPipeline();
 }
Beispiel #27
0
        public void GivenBundleIsFromCache_WhenProcessBundle_ThenRendererStillAssigned()
        {
            var pipeline = new HtmlTemplatePipeline();
            var bundle = new HtmlTemplateBundle("~") { IsFromCache = true };

            pipeline.Process(bundle, new CassetteSettings(""));

            bundle.Renderer.ShouldNotBeNull();
        }
Beispiel #28
0
        public void WhenProcessBundle_ThenBundleContentTypeIsTextJavascript()
        {
            var pipeline = new JQueryTmplPipeline();
            var bundle   = new HtmlTemplateBundle("~/");

            pipeline.Process(bundle, new CassetteSettings(""));

            bundle.ContentType.ShouldEqual("text/javascript");
        }
Beispiel #29
0
        public void ProcessAssignsBundleRenderer()
        {
            var renderer  = Mock.Of <IBundleHtmlRenderer <HtmlTemplateBundle> >();
            var processor = new AssignHtmlTemplateRenderer(renderer);
            var bundle    = new HtmlTemplateBundle("~");

            processor.Process(bundle);

            bundle.Renderer.ShouldBeSameAs(renderer);
        }
        public void ProcessAssignsBundleRenderer()
        {
            var renderer = Mock.Of<IBundleHtmlRenderer<HtmlTemplateBundle>>();
            var processor = new AssignHtmlTemplateRenderer(renderer);
            var bundle = new HtmlTemplateBundle("~");

            processor.Process(bundle);

            bundle.Renderer.ShouldBeSameAs(renderer);
        }
        public void GivenHtmlTemplateBundleWithOneAsset_WhenRender_ThenReturnsAssetsOpenStreamResult()
        {
            var bundle = new HtmlTemplateBundle("~");

            bundle.Assets.Add(new StubAsset(content: "content"));

            var html = render.Render(bundle);

            html.ShouldEqual("content");
        }
        public void RenderCallsRenderer()
        {
            var bundle = new HtmlTemplateBundle("~");
            var renderer = new Mock<IBundleHtmlRenderer<HtmlTemplateBundle>>();
            bundle.Renderer = renderer.Object;

            bundle.Render();

            renderer.Verify(p => p.Render(bundle));
        }
        public void RenderReturnsScriptElementWithUrlGeneratedForBundle()
        {
            var bundle = new HtmlTemplateBundle("~");
            var urlGenerator = new Mock<IUrlGenerator>();
            urlGenerator.Setup(g => g.CreateBundleUrl(bundle)).Returns("/");

            var renderer = new RemoteHtmlTemplateBundleRenderer(urlGenerator.Object);
            var html = renderer.Render(bundle);

            html.ShouldEqual("<script src=\"/\" type=\"text/javascript\"></script>");
        }
        public void ProcessCallsProcessor()
        {
            var bundle = new HtmlTemplateBundle("~");
            var processor = new Mock<IBundleProcessor<HtmlTemplateBundle>>();
            var settings = new CassetteSettings("");
            bundle.Processor = processor.Object;

            bundle.Process(settings);

            processor.Verify(p => p.Process(bundle, settings));
        }
        public void ProcessCallsProcessor()
        {
            var bundle = new HtmlTemplateBundle("~");
            var pipeline = new Mock<IBundlePipeline<HtmlTemplateBundle>>();
            var settings = new CassetteSettings();
            bundle.Pipeline = pipeline.Object;

            bundle.Process(settings);

            pipeline.Verify(p => p.Process(bundle));
        }
Beispiel #36
0
        public void RenderCallsRenderer()
        {
            var bundle   = new HtmlTemplateBundle("~");
            var renderer = new Mock <IBundleHtmlRenderer <HtmlTemplateBundle> >();

            bundle.Renderer = renderer.Object;

            bundle.Render();

            renderer.Verify(p => p.Render(bundle));
        }
        public void GivenHtmlTemplateBundleWithTwoAssets_WhenRender_ThenReturnsEachAssetsOpenStreamResultSeparatedByNewLine()
        {
            var bundle = new HtmlTemplateBundle("~");

            bundle.Assets.Add(new StubAsset(content: "content1"));
            bundle.Assets.Add(new StubAsset(content: "content2"));

            var html = render.Render(bundle);

            html.ShouldEqual("content1" + Environment.NewLine + "content2");
        }
        public void TransformReturnsJavaScriptThatAddsNamedTemplate()
        {
            var bundle = new HtmlTemplateBundle("~");
            var asset = new Mock<IAsset>();
            asset.Setup(a => a.Path).Returns("~/asset.htm");
            var transformer = new RegisterTemplateWithJQueryTmpl(bundle, new HtmlTemplateIdBuilder());

            var getResult = transformer.Transform(() => "TEMPLATE".AsStream(), asset.Object);

            getResult().ReadToEnd().ShouldEqual("jQuery.template('asset', TEMPLATE);" + Environment.NewLine);
        }
        public void TransformReturnsJavaScriptThatAddsNamedTemplate()
        {
            var bundle = new HtmlTemplateBundle("~");
            var asset  = new Mock <IAsset>();

            asset.Setup(a => a.SourceFile.FullPath).Returns("~/asset.htm");
            var transformer = new RegisterTemplateWithJQueryTmpl(bundle);

            var getResult = transformer.Transform(() => "TEMPLATE".AsStream(), asset.Object);

            getResult().ReadToEnd().ShouldEqual("$.template('asset', TEMPLATE);" + Environment.NewLine);
        }
        public void AsJavaScriptReplacesPipelineWithJavaScriptHtmlTemplatePipeline()
        {
            var currentPipeline = new Mock <IBundlePipeline <HtmlTemplateBundle> >();
            var bundle          = new HtmlTemplateBundle("~")
            {
                Pipeline = currentPipeline.Object
            };

            bundle.AsJavaScript();

            currentPipeline.Verify(p => p.ReplaceWith <JavaScriptHtmlTemplatePipeline>());
        }
        public void RenderReturnsScriptElementWithUrlGeneratedForBundle()
        {
            var bundle       = new HtmlTemplateBundle("~");
            var urlGenerator = new Mock <IUrlGenerator>();

            urlGenerator.Setup(g => g.CreateBundleUrl(bundle)).Returns("/");

            var renderer = new RemoteHtmlTemplateBundleRenderer(urlGenerator.Object);
            var html     = renderer.Render(bundle);

            html.ShouldEqual("<script src=\"/\" type=\"text/javascript\"></script>");
        }
Beispiel #42
0
        public void ProcessCallsProcessor()
        {
            var bundle   = new HtmlTemplateBundle("~");
            var pipeline = new Mock <IBundlePipeline <HtmlTemplateBundle> >();
            var settings = new CassetteSettings();

            bundle.Pipeline = pipeline.Object;

            bundle.Process(settings);

            pipeline.Verify(p => p.Process(bundle));
        }
Beispiel #43
0
        public void ProcessCallsProcessor()
        {
            var bundle    = new HtmlTemplateBundle("~");
            var processor = new Mock <IBundleProcessor <HtmlTemplateBundle> >();
            var settings  = new CassetteSettings("");

            bundle.Processor = processor.Object;

            bundle.Process(settings);

            processor.Verify(p => p.Process(bundle, settings));
        }
        public void AsJavaScriptReplacesPipelineWithJavaScriptHtmlTemplatePipeline()
        {
            var currentPipeline = new Mock<IBundlePipeline<HtmlTemplateBundle>>();
            var bundle = new HtmlTemplateBundle("~")
            {
                Pipeline = currentPipeline.Object
            };

            bundle.AsJavaScript();

            currentPipeline.Verify(p => p.ReplaceWith<JavaScriptHtmlTemplatePipeline>());
        }
        public void GivenAssetInSubDirectory_WhenTransform_ThenScriptIdHasSlashesReplacedWithDashes()
        {
            var bundle = new HtmlTemplateBundle("~/test");
            var asset = new Mock<IAsset>();
            asset.Setup(a => a.SourceFile.FullPath).Returns("~/test/sub/asset.htm");
            bundle.Assets.Add(asset.Object);

            var transformer = new WrapHtmlTemplateInScriptElement(bundle);
            var getResult = transformer.Transform(() => Stream.Null, asset.Object);
            var html = getResult().ReadToEnd();

            html.ShouldContain("id=\"sub-asset\"");
        }
        public void GivenAssetInSubDirectory_WhenTransform_ThenScriptIdHasSlashesReplacedWithDashes()
        {
            var bundle = new HtmlTemplateBundle("~/test");
            var asset  = new Mock <IAsset>();

            asset.Setup(a => a.SourceFile.FullPath).Returns("~/test/sub/asset.htm");
            bundle.Assets.Add(asset.Object);

            var transformer = new WrapHtmlTemplateInScriptElement(bundle);
            var getResult   = transformer.Transform(() => Stream.Null, asset.Object);
            var html        = getResult().ReadToEnd();

            html.ShouldContain("id=\"sub-asset\"");
        }
        public void WhenProcessHtmlTemplateBundleWithHoganAssets_ThenGeneratedScriptTemplatesWillRenderOutput()
        {
            var bundle = new HtmlTemplateBundle("~");
            bundle.Assets.Add(new StubAsset("~/a.htm", "first {{first}}"));
            bundle.Assets.Add(new StubAsset("~/b.htm", "second {{second}}"));

            pipeline.Process(bundle);

            var scriptEngine = LoadHtmlTemplateScriptsIntoEngine(bundle);

            var renderOutputA = scriptEngine.Evaluate<string>("JST.a.render({ first: 'test' });");
            renderOutputA.ShouldEqual("first test");

            var renderOutputB = scriptEngine.Evaluate<string>("JST.b.render({ second: 'test' });");
            renderOutputB.ShouldEqual("second test");
        }
        public void WhenProcessHtmlTemplateBundleWithHoganAssets_ThenGeneratedScriptTemplatesWillRenderOutput()
        {
            var bundle = new HtmlTemplateBundle("~");

            bundle.Assets.Add(new StubAsset("~/a.htm", "first {{first}}"));
            bundle.Assets.Add(new StubAsset("~/b.htm", "second {{second}}"));

            pipeline.Process(bundle);

            var scriptEngine = LoadHtmlTemplateScriptsIntoEngine(bundle);

            var renderOutputA = scriptEngine.Evaluate <string>("JST.a.render({ first: 'test' });");

            renderOutputA.ShouldEqual("first test");

            var renderOutputB = scriptEngine.Evaluate <string>("JST.b.render({ second: 'test' });");

            renderOutputB.ShouldEqual("second test");
        }
        public void GivenHtmlAsset_WhenProcess_ThenItAddsReferencesToHtmlTemplateAssetInBundle()
        {
            var asset = new Mock<IAsset>();
            asset.SetupGet(a => a.SourceFile.FullPath).Returns("~/asset.html");

            var javaScriptSource = @"
            <!-- @reference ""another1.js""
             @reference 'another2.js'
             @reference another3.js another4.js
            -->";
            asset.Setup(a => a.OpenStream())
                 .Returns(javaScriptSource.AsStream());
            var bundle = new HtmlTemplateBundle("~");
            bundle.Assets.Add(asset.Object);

            var processor = new ParseHtmlTemplateReferences();
            processor.Process(bundle, new CassetteSettings(""));

            asset.Verify(a => a.AddReference("another1.js", 2));
            asset.Verify(a => a.AddReference("another2.js", 3));
            asset.Verify(a => a.AddReference("another3.js", 4));
            asset.Verify(a => a.AddReference("another4.js", 4));
        }
Beispiel #50
0
 public WrapHtmlTemplateInScriptElement(HtmlTemplateBundle bundle)
 {
     this.bundle = bundle;
 }
 public WrapHtmlTemplateInScriptElement(HtmlTemplateBundle bundle, IHtmlTemplateIdStrategy idStrategy)
 {
     this.bundle = bundle;
     this.idStrategy = idStrategy;
 }
Beispiel #52
0
 public HtmlTemplateIdBuilderTests()
 {
     bundle = new HtmlTemplateBundle("~/bundle");
     asset  = new Mock <IAsset>();
 }
 public RegisterTemplateWithHogan(HtmlTemplateBundle bundle, string javaScriptVariableName)
 {
     this.bundle = bundle;
     this.javaScriptVariableName = javaScriptVariableName;
 }
 public RegisterTemplateWithHogan(HtmlTemplateBundle bundle, string javaScriptVariableName)
 {
     this.bundle = bundle;
     this.javaScriptVariableName = javaScriptVariableName ?? "JST";
 }
 public HtmlTemplateToJavaScriptTransformerTests()
 {
     asset = new Mock<IAsset>();
     htmlTemplateIdStrategy = new HtmlTemplateIdBuilder();
     bundle = new HtmlTemplateBundle("~");
 }
 public string HtmlTemplateId(HtmlTemplateBundle bundle, IAsset htmlTemplateAsset)
 {
     currentBundle = bundle;
     var operations = BuildOperations();
     return ApplyOperations(htmlTemplateAsset, operations);
 }
 public void GivenHtmlTemplateBundleWithNoAssets_WhenRender_ThenReturnEmptyString()
 {
     var bundle = new HtmlTemplateBundle("~");
     var html = render.Render(bundle);
     html.ShouldEqual("");
 }
Beispiel #58
0
 public RegisterTemplateWithHogan(HtmlTemplateBundle bundle, string javaScriptVariableName, IHtmlTemplateIdStrategy idStrategy)
 {
     this.bundle = bundle;
     this.javaScriptVariableName = javaScriptVariableName;
     this.idStrategy             = idStrategy;
 }
 object HtmlTemplateData(HtmlTemplateBundle htmlTemplate, IUrlGenerator urlGenerator)
 {
     return new
     {
         htmlTemplate.Path,
         Url = urlGenerator.CreateBundleUrl(htmlTemplate),
         Assets = AssetPaths(htmlTemplate, urlGenerator),
         htmlTemplate.References,
         Size = BundleSize(htmlTemplate)
     };
 }
 public RegisterTemplateWithJQueryTmpl(HtmlTemplateBundle bundle)
 {
     this.bundle = bundle;
 }