Skip to content
This repository was archived by the owner on Dec 19, 2018. It is now read-only.

Commit 23ddd12

Browse files
author
NTaylorMullen
committed
Addressed code review comments
1 parent d09dec9 commit 23ddd12

File tree

11 files changed

+214
-244
lines changed

11 files changed

+214
-244
lines changed

src/Microsoft.AspNet.Razor/Parser/RazorParser.cs

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -52,8 +52,7 @@ public RazorParser(ParserBase codeParser, ParserBase markupParser)
5252

5353
internal ParserBase CodeParser { get; private set; }
5454
internal ParserBase MarkupParser { get; private set; }
55-
// Internal for testing
56-
internal IList<ISyntaxTreeRewriter> Optimizers { get; set; }
55+
internal IList<ISyntaxTreeRewriter> Optimizers { get; private set; }
5756

5857
public bool DesignTimeMode { get; set; }
5958

test/Microsoft.AspNet.Razor.Test/Generator/CSharpTagHelperRenderingTest.cs

Lines changed: 12 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,9 @@ public class CSharpTagHelperRenderingTest : CSharpRazorCodeGeneratorTest
1717
[InlineData("SingleTagHelper")]
1818
[InlineData("BasicTagHelpers")]
1919
[InlineData("ComplexTagHelpers")]
20-
public void TagHelpers_ChangeGeneratedOutput(string testType)
20+
public void TagHelpers_GenerateExpectedOutput(string testType)
2121
{
22+
// Arrange
2223
var pFooPropertyInfo = new Mock<PropertyInfo>();
2324
pFooPropertyInfo.Setup(ppi => ppi.PropertyType).Returns(typeof(int));
2425
pFooPropertyInfo.Setup(ppi => ppi.Name).Returns("Foo");
@@ -28,7 +29,6 @@ public void TagHelpers_ChangeGeneratedOutput(string testType)
2829
var checkedPropertyInfo = new Mock<PropertyInfo>();
2930
checkedPropertyInfo.Setup(ipi => ipi.PropertyType).Returns(typeof(bool));
3031
checkedPropertyInfo.Setup(ipi => ipi.Name).Returns("Checked");
31-
// Arrange
3232
var tagHelperProvider = new TagHelperDescriptorProvider(
3333
new TagHelperDescriptor[]
3434
{
@@ -58,7 +58,7 @@ public void TagHelpers_ChangeGeneratedOutput(string testType)
5858
}
5959

6060
[Fact]
61-
public void TagHelpers_ContentBehavior()
61+
public void TagHelpers_WithContentBehaviors_GenerateExpectedOutput()
6262
{
6363
// Arrange
6464
var tagHelperProvider = new TagHelperDescriptorProvider(
@@ -98,11 +98,16 @@ public TagHelperTemplateEngine(RazorTemplateEngine engine, TagHelperDescriptorPr
9898
protected internal override RazorParser CreateParser()
9999
{
100100
var parser = base.CreateParser();
101-
var optimizers = parser.Optimizers.Where(opmzr => !(opmzr is TagHelperParseTreeRewriter));
101+
var newTagHelperParseTreeRewriter = new TagHelperParseTreeRewriter(_tagHelperProvider);
102102

103-
parser.Optimizers = optimizers.Concat(new[] {
104-
new TagHelperParseTreeRewriter(_tagHelperProvider)
105-
}).ToList();
103+
for (var i = 0; i < parser.Optimizers.Count; i++)
104+
{
105+
if (parser.Optimizers[i] is TagHelperParseTreeRewriter)
106+
{
107+
parser.Optimizers[i] = newTagHelperParseTreeRewriter;
108+
break;
109+
}
110+
}
106111

107112
return parser;
108113
}

test/Microsoft.AspNet.Razor.Test/Generator/RazorCodeGeneratorTest.cs

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -115,7 +115,7 @@ private void RunTestInternal(string name,
115115
host.DefaultClassName = name;
116116

117117
// Add support for templates, etc.
118-
host.GeneratedClassContext = new GeneratedClassContext(GeneratedTagHelperContext.Default,
118+
host.GeneratedClassContext = new GeneratedClassContext(new GeneratedTagHelperContext(),
119119
GeneratedClassContext.DefaultExecuteMethodName,
120120
GeneratedClassContext.DefaultWriteMethodName,
121121
GeneratedClassContext.DefaultWriteLiteralMethodName,
@@ -124,8 +124,7 @@ private void RunTestInternal(string name,
124124
"Template",
125125
"DefineSection",
126126
"BeginContext",
127-
"EndContext",
128-
"Activate")
127+
"EndContext")
129128
{
130129
LayoutPropertyName = "Layout",
131130
ResolveUrlMethodName = "Href"

test/Microsoft.AspNet.Razor.Test/Parser/PartialParsing/PartialParsingTestBase.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@ protected static RazorEngineHost CreateHost()
5858
{
5959
return new RazorEngineHost(new TLanguage())
6060
{
61-
GeneratedClassContext = new GeneratedClassContext(GeneratedTagHelperContext.Default,
61+
GeneratedClassContext = new GeneratedClassContext(new GeneratedTagHelperContext(),
6262
"Execute",
6363
"Write",
6464
"WriteLiteral",

test/Microsoft.AspNet.Razor.Test/RazorEngineHostTest.cs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -119,7 +119,6 @@ private static RazorEngineHost CreateHost()
119119
private static void VerifyCommonDefaults(RazorEngineHost host)
120120
{
121121
Assert.Equal(GeneratedClassContext.Default, host.GeneratedClassContext);
122-
Assert.Equal(GeneratedTagHelperContext.Default, host.GeneratedClassContext.GeneratedTagHelperContext);
123122
Assert.Empty(host.NamespaceImports);
124123
Assert.False(host.DesignTimeMode);
125124
Assert.Equal(RazorEngineHost.InternalDefaultClassName, host.DefaultClassName);

test/Microsoft.AspNet.Razor.Test/TestFiles/CodeGenerator/CS/Output/BasicTagHelpers.cs

Lines changed: 38 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,18 @@
11
namespace TestOutput
22
{
3+
using Microsoft.AspNet.Razor.Runtime.TagHelpers;
34
using System;
45
using System.Threading.Tasks;
56

67
public class BasicTagHelpers
78
{
8-
[Activate]
9-
private ITagHelperRunner __tagHelperRunner { get; set; }
10-
[Activate]
11-
private ITagHelperScopeManager __tagHelperScopeManager { get; set; }
9+
private System.IO.TextWriter __tagHelperStringValueBuffer = null;
10+
private TagHelperExecutionContext __tagHelpersExecutionContext = null;
11+
private TagHelperRunner __tagHelperRunner = new TagHelperRunner();
12+
private TagHelperScopeManager __tagHelperScopeManager = new TagHelperScopeManager();
13+
private PTagHelper __PTagHelper = null;
14+
private InputTagHelper __InputTagHelper = null;
15+
private InputTagHelper2 __InputTagHelper2 = null;
1216
#line hidden
1317
public BasicTagHelpers()
1418
{
@@ -17,57 +21,52 @@ public BasicTagHelpers()
1721
#pragma warning disable 1998
1822
public override async Task ExecuteAsync()
1923
{
20-
var __tagHelperBufferedStringValue = string.Empty;
21-
TagHelperExecutionContext __executionContext = null;
22-
PTagHelper __PTagHelper;
23-
InputTagHelper __InputTagHelper;
24-
InputTagHelper2 __InputTagHelper2;
2524
WriteLiteral("<div class=\"randomNonTagHelperAttribute\">\r\n ");
26-
__executionContext = __tagHelperScopeManager.Begin("p");
25+
__tagHelpersExecutionContext = __tagHelperScopeManager.Begin("p");
2726
__PTagHelper = CreateTagHelper<PTagHelper>();
28-
__executionContext.Add(__PTagHelper);
29-
__executionContext.AddHtmlAttribute("class", "Hello World");
30-
__executionContext.Output = await __tagHelperRunner.RunAsync(__executionContext);
31-
WriteLiteral(__executionContext.Output.GenerateTagStart());
27+
__tagHelpersExecutionContext.Add(__PTagHelper);
28+
__tagHelpersExecutionContext.AddHtmlAttribute("class", "Hello World");
29+
__tagHelpersExecutionContext.Output = __tagHelperRunner.RunAsync(__tagHelpersExecutionContext).Result;
30+
WriteLiteral(__tagHelpersExecutionContext.Output.GenerateStartTag());
3231
WriteLiteral("\r\n ");
33-
__executionContext = __tagHelperScopeManager.Begin("p");
32+
__tagHelpersExecutionContext = __tagHelperScopeManager.Begin("p");
3433
__PTagHelper = CreateTagHelper<PTagHelper>();
35-
__executionContext.Add(__PTagHelper);
36-
__executionContext.Output = await __tagHelperRunner.RunAsync(__executionContext);
37-
WriteLiteral(__executionContext.Output.GenerateTagStart());
38-
WriteLiteral(__executionContext.Output.GenerateTagEnd());
39-
__executionContext = __tagHelperScopeManager.End();
34+
__tagHelpersExecutionContext.Add(__PTagHelper);
35+
__tagHelpersExecutionContext.Output = __tagHelperRunner.RunAsync(__tagHelpersExecutionContext).Result;
36+
WriteLiteral(__tagHelpersExecutionContext.Output.GenerateStartTag());
37+
WriteLiteral(__tagHelpersExecutionContext.Output.GenerateEndTag());
38+
__tagHelpersExecutionContext = __tagHelperScopeManager.End();
4039
WriteLiteral("\r\n ");
41-
__executionContext = __tagHelperScopeManager.Begin("input");
40+
__tagHelpersExecutionContext = __tagHelperScopeManager.Begin("input");
4241
__InputTagHelper = CreateTagHelper<InputTagHelper>();
43-
__executionContext.Add(__InputTagHelper);
42+
__tagHelpersExecutionContext.Add(__InputTagHelper);
4443
__InputTagHelper.Type = "text";
45-
__executionContext.AddTagHelperAttribute("type", __InputTagHelper.Type);
44+
__tagHelpersExecutionContext.AddTagHelperAttribute("type", __InputTagHelper.Type);
4645
__InputTagHelper2 = CreateTagHelper<InputTagHelper2>();
47-
__executionContext.Add(__InputTagHelper2);
46+
__tagHelpersExecutionContext.Add(__InputTagHelper2);
4847
__InputTagHelper2.Type = __InputTagHelper.Type;
49-
__executionContext.Output = await __tagHelperRunner.RunAsync(__executionContext);
50-
WriteLiteral(__executionContext.Output.GenerateTagStart());
51-
WriteLiteral(__executionContext.Output.GenerateTagEnd());
52-
__executionContext = __tagHelperScopeManager.End();
48+
__tagHelpersExecutionContext.Output = __tagHelperRunner.RunAsync(__tagHelpersExecutionContext).Result;
49+
WriteLiteral(__tagHelpersExecutionContext.Output.GenerateStartTag());
50+
WriteLiteral(__tagHelpersExecutionContext.Output.GenerateEndTag());
51+
__tagHelpersExecutionContext = __tagHelperScopeManager.End();
5352
WriteLiteral("\r\n ");
54-
__executionContext = __tagHelperScopeManager.Begin("input");
53+
__tagHelpersExecutionContext = __tagHelperScopeManager.Begin("input");
5554
__InputTagHelper = CreateTagHelper<InputTagHelper>();
56-
__executionContext.Add(__InputTagHelper);
55+
__tagHelpersExecutionContext.Add(__InputTagHelper);
5756
__InputTagHelper.Type = "checkbox";
58-
__executionContext.AddTagHelperAttribute("type", __InputTagHelper.Type);
57+
__tagHelpersExecutionContext.AddTagHelperAttribute("type", __InputTagHelper.Type);
5958
__InputTagHelper2 = CreateTagHelper<InputTagHelper2>();
60-
__executionContext.Add(__InputTagHelper2);
59+
__tagHelpersExecutionContext.Add(__InputTagHelper2);
6160
__InputTagHelper2.Type = __InputTagHelper.Type;
6261
__InputTagHelper2.Checked = true;
63-
__executionContext.AddTagHelperAttribute("checked", __InputTagHelper2.Checked);
64-
__executionContext.Output = await __tagHelperRunner.RunAsync(__executionContext);
65-
WriteLiteral(__executionContext.Output.GenerateTagStart());
66-
WriteLiteral(__executionContext.Output.GenerateTagEnd());
67-
__executionContext = __tagHelperScopeManager.End();
62+
__tagHelpersExecutionContext.AddTagHelperAttribute("checked", __InputTagHelper2.Checked);
63+
__tagHelpersExecutionContext.Output = __tagHelperRunner.RunAsync(__tagHelpersExecutionContext).Result;
64+
WriteLiteral(__tagHelpersExecutionContext.Output.GenerateStartTag());
65+
WriteLiteral(__tagHelpersExecutionContext.Output.GenerateEndTag());
66+
__tagHelpersExecutionContext = __tagHelperScopeManager.End();
6867
WriteLiteral("\r\n ");
69-
WriteLiteral(__executionContext.Output.GenerateTagEnd());
70-
__executionContext = __tagHelperScopeManager.End();
68+
WriteLiteral(__tagHelpersExecutionContext.Output.GenerateEndTag());
69+
__tagHelpersExecutionContext = __tagHelperScopeManager.End();
7170
WriteLiteral("\r\n</div>");
7271
}
7372
#pragma warning restore 1998

0 commit comments

Comments
 (0)