diff --git a/src/Microsoft.AspNet.Razor/Generator/Compiler/CodeTree/CodeTreeBuilder.cs b/src/Microsoft.AspNet.Razor/Generator/Compiler/CodeTree/CodeTreeBuilder.cs index 888a1e9877..1003d0b2ce 100644 --- a/src/Microsoft.AspNet.Razor/Generator/Compiler/CodeTree/CodeTreeBuilder.cs +++ b/src/Microsoft.AspNet.Razor/Generator/Compiler/CodeTree/CodeTreeBuilder.cs @@ -42,7 +42,7 @@ namespace Microsoft.AspNet.Razor.Generator.Compiler AddChunk(new AddTagHelperChunk { LookupText = lookupText - }, association); + }, association, topLevel: true); } public void AddLiteralChunk(string literal, SyntaxTreeNode association) diff --git a/test/Microsoft.AspNet.Razor.Test/Generator/CodeTree/CodeTreeBuilderTest.cs b/test/Microsoft.AspNet.Razor.Test/Generator/CodeTree/CodeTreeBuilderTest.cs index d702391738..f11ef92626 100644 --- a/test/Microsoft.AspNet.Razor.Test/Generator/CodeTree/CodeTreeBuilderTest.cs +++ b/test/Microsoft.AspNet.Razor.Test/Generator/CodeTree/CodeTreeBuilderTest.cs @@ -6,11 +6,36 @@ using Microsoft.AspNet.Razor.Parser.SyntaxTree; using Microsoft.AspNet.Razor.Test.Framework; using System.Linq; using Xunit; +using Microsoft.AspNet.Razor.Parser; namespace Microsoft.AspNet.Razor { public class CodeTreeBuilderTest { + [Fact] + public void AddAddTagHelperChunk_AddsChunkToTopLevelCodeTree() + { + // Arrange + var spanFactory = SpanFactory.CreateCsHtml(); + var builder = new CodeTreeBuilder(); + var block = new ExpressionBlock(); + var addTagHelperDirective = spanFactory.MetaCode(SyntaxConstants.CSharp.AddTagHelperKeyword + " "); + + // Act + builder.StartChunkBlock(block); + builder.AddAddTagHelperChunk("some text", addTagHelperDirective); + builder.EndChunkBlock(); + + // Assert + Assert.Equal(2, builder.CodeTree.Chunks.Count); + + var chunkBlock = Assert.IsType(builder.CodeTree.Chunks.First()); + Assert.Empty(chunkBlock.Children); + + var addTagHelperChunk = Assert.IsType(builder.CodeTree.Chunks.Last()); + Assert.Equal(addTagHelperChunk.LookupText, "some text"); + } + [Fact] public void AddLiteralChunk_AddsChunkToCodeTree() {