Remove ContentBehavior.

- Removed all tests and instances of ContentBehavior in preparation for moving to a non-ContentBehavior based design.
- Removed ContentBehavior specific CodeGeneration.

#221
This commit is contained in:
N. Taylor Mullen 2014-11-26 16:41:24 -08:00 committed by NTaylorMullen
parent de4cafa8cd
commit c38761f504
16 changed files with 49 additions and 438 deletions

View File

@ -1,31 +0,0 @@
// Copyright (c) Microsoft Open Technologies, Inc. All rights reserved.
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
using System;
using Microsoft.AspNet.Razor.TagHelpers;
namespace Microsoft.AspNet.Razor.Runtime.TagHelpers
{
/// <summary>
/// Used to override <see cref="ITagHelper"/>'s behavior when its
/// <see cref="ITagHelper.ProcessAsync"/> is invoked.
/// </summary>
[AttributeUsage(AttributeTargets.Class, AllowMultiple = false, Inherited = false)]
public sealed class ContentBehaviorAttribute : Attribute
{
/// <summary>
/// Instantiates a new instance of the <see cref="ContentBehaviorAttribute"/> class.
/// </summary>
/// <param name="contentBehavior">The <see cref="Razor.TagHelpers.ContentBehavior"/> for the
/// <see cref="ITagHelper"/>.</param>
public ContentBehaviorAttribute(ContentBehavior contentBehavior)
{
ContentBehavior = contentBehavior;
}
/// <summary>
/// <see cref="Razor.TagHelpers.ContentBehavior"/> for the <see cref="ITagHelper"/>.
/// </summary>
public ContentBehavior ContentBehavior { get; private set; }
}
}

View File

@ -38,14 +38,12 @@ namespace Microsoft.AspNet.Razor.Runtime.TagHelpers
var tagNames = GetTagNames(type); var tagNames = GetTagNames(type);
var typeName = type.FullName; var typeName = type.FullName;
var attributeDescriptors = GetAttributeDescriptors(type); var attributeDescriptors = GetAttributeDescriptors(type);
var contentBehavior = GetContentBehavior(type);
var assemblyName = type.GetTypeInfo().Assembly.GetName().Name; var assemblyName = type.GetTypeInfo().Assembly.GetName().Name;
return tagNames.Select(tagName => return tagNames.Select(tagName =>
new TagHelperDescriptor(tagName, new TagHelperDescriptor(tagName,
typeName, typeName,
assemblyName, assemblyName,
contentBehavior,
attributeDescriptors)); attributeDescriptors));
} }
@ -89,16 +87,6 @@ namespace Microsoft.AspNet.Razor.Runtime.TagHelpers
return new TagHelperAttributeDescriptor(attributeName, property.Name, property.PropertyType.FullName); return new TagHelperAttributeDescriptor(attributeName, property.Name, property.PropertyType.FullName);
} }
private static ContentBehavior GetContentBehavior(Type type)
{
var typeInfo = type.GetTypeInfo();
var contentBehaviorAttribute = typeInfo.GetCustomAttribute<ContentBehaviorAttribute>(inherit: false);
return contentBehaviorAttribute != null ?
contentBehaviorAttribute.ContentBehavior :
ContentBehavior.None;
}
private static bool IsValidProperty(PropertyInfo property) private static bool IsValidProperty(PropertyInfo property)
{ {
return property.GetMethod != null && return property.GetMethod != null &&

View File

@ -58,13 +58,6 @@ namespace Microsoft.AspNet.Razor.Generator.Compiler.CSharp
{ {
var tagHelperDescriptors = chunk.Descriptors; var tagHelperDescriptors = chunk.Descriptors;
// Find the first content behavior that doesn't have a content behavior of None.
// The resolver restricts content behavior collisions so the first one that's not None will be
// the content behavior we need to abide by. None can work in unison with other ContentBehaviors.
var contentBehavior = tagHelperDescriptors.Select(descriptor => descriptor.ContentBehavior)
.FirstOrDefault(
behavior => behavior != ContentBehavior.None);
RenderBeginTagHelperScope(chunk.TagName); RenderBeginTagHelperScope(chunk.TagName);
RenderTagHelpersCreation(chunk); RenderTagHelpersCreation(chunk);
@ -78,42 +71,11 @@ namespace Microsoft.AspNet.Razor.Generator.Compiler.CSharp
RenderUnboundHTMLAttributes(unboundHTMLAttributes); RenderUnboundHTMLAttributes(unboundHTMLAttributes);
switch (contentBehavior) // TODO: Modify code generation to handle all content modes
{ //RenderRunTagHelpers(bufferedBody: false);
case ContentBehavior.None: //RenderTagOutput(_tagHelperContext.OutputGenerateStartTagMethodName);
RenderRunTagHelpers(bufferedBody: false); //RenderTagHelperBody(chunk.Children, bufferBody: false);
RenderTagOutput(_tagHelperContext.OutputGenerateStartTagMethodName); //RenderTagOutput(_tagHelperContext.OutputGenerateEndTagMethodName);
RenderTagHelperBody(chunk.Children, bufferBody: false);
RenderTagOutput(_tagHelperContext.OutputGenerateEndTagMethodName);
break;
case ContentBehavior.Append:
RenderRunTagHelpers(bufferedBody: false);
RenderTagOutput(_tagHelperContext.OutputGenerateStartTagMethodName);
RenderTagHelperBody(chunk.Children, bufferBody: false);
RenderTagOutput(_tagHelperContext.OutputGenerateContentMethodName);
RenderTagOutput(_tagHelperContext.OutputGenerateEndTagMethodName);
break;
case ContentBehavior.Prepend:
RenderRunTagHelpers(bufferedBody: false);
RenderTagOutput(_tagHelperContext.OutputGenerateStartTagMethodName);
RenderTagOutput(_tagHelperContext.OutputGenerateContentMethodName);
RenderTagHelperBody(chunk.Children, bufferBody: false);
RenderTagOutput(_tagHelperContext.OutputGenerateEndTagMethodName);
break;
case ContentBehavior.Replace:
RenderRunTagHelpers(bufferedBody: false);
RenderTagOutput(_tagHelperContext.OutputGenerateStartTagMethodName);
RenderTagOutput(_tagHelperContext.OutputGenerateContentMethodName);
RenderTagOutput(_tagHelperContext.OutputGenerateEndTagMethodName);
break;
case ContentBehavior.Modify:
RenderTagHelperBody(chunk.Children, bufferBody: true);
RenderRunTagHelpers(bufferedBody: true);
RenderTagOutput(_tagHelperContext.OutputGenerateStartTagMethodName);
RenderTagOutput(_tagHelperContext.OutputGenerateContentMethodName);
RenderTagOutput(_tagHelperContext.OutputGenerateEndTagMethodName);
break;
}
RenderEndTagHelpersScope(); RenderEndTagHelpersScope();
} }

View File

@ -1,43 +0,0 @@
// Copyright (c) Microsoft Open Technologies, Inc. All rights reserved.
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
namespace Microsoft.AspNet.Razor.TagHelpers
{
/// <summary>
/// Defines how a tag helper will utilize its inner HTML.
/// </summary>
public enum ContentBehavior
{
/// <summary>
/// Indicates that a tag helper will not modify its content in any way. This is the default
/// <see cref="ContentBehavior"/>.
/// </summary>
/// <remarks>Children of the current tag helper will execute after the current tag helper.</remarks>
None,
/// <summary>
/// Indicates the tag helper's content should be appended to what its children generate.
/// </summary>
/// <remarks>Children of the current tag helper will execute before the current tag helper.</remarks>
Append,
/// <summary>
/// Indicates that the tag helper will modify its HTML content. Therefore this <see cref="ContentBehavior"/>
/// enables the tag helper to examine the content its children generate.
/// </summary>
/// <remarks>Children of the current tag helper will execute before the current tag helper.</remarks>
Modify,
/// <summary>
/// Indicates the tag helper's content should be prepended to what its children generate.
/// </summary>
/// <remarks>Children of the current tag helper will execute after the current tag helper.</remarks>
Prepend,
/// <summary>
/// Indicates the tag helper's content should replace the HTML its children generate.
/// </summary>
/// <remarks>Children of the current tag helper will not execute.</remarks>
Replace,
}
}

View File

@ -16,12 +16,10 @@ namespace Microsoft.AspNet.Razor.TagHelpers
/// </summary> /// </summary>
internal TagHelperDescriptor([NotNull] string tagName, internal TagHelperDescriptor([NotNull] string tagName,
[NotNull] string typeName, [NotNull] string typeName,
[NotNull] string assemblyName, [NotNull] string assemblyName)
ContentBehavior contentBehavior)
: this(tagName, : this(tagName,
typeName, typeName,
assemblyName, assemblyName,
contentBehavior,
Enumerable.Empty<TagHelperAttributeDescriptor>()) Enumerable.Empty<TagHelperAttributeDescriptor>())
{ {
} }
@ -34,21 +32,17 @@ namespace Microsoft.AspNet.Razor.TagHelpers
/// <see cref="TagHelperDescriptor"/> which applies to every HTML tag.</param> /// <see cref="TagHelperDescriptor"/> which applies to every HTML tag.</param>
/// <param name="typeName">The full name of the tag helper class.</param> /// <param name="typeName">The full name of the tag helper class.</param>
/// <param name="assemblyName">The name of the assembly containing the tag helper class.</param> /// <param name="assemblyName">The name of the assembly containing the tag helper class.</param>
/// <param name="contentBehavior">The <see cref="TagHelpers.ContentBehavior"/>
/// of the tag helper.</param>
/// <param name="attributes"> /// <param name="attributes">
/// The <see cref="TagHelperAttributeDescriptor"/>s to request from the HTML tag. /// The <see cref="TagHelperAttributeDescriptor"/>s to request from the HTML tag.
/// </param> /// </param>
public TagHelperDescriptor([NotNull] string tagName, public TagHelperDescriptor([NotNull] string tagName,
[NotNull] string typeName, [NotNull] string typeName,
[NotNull] string assemblyName, [NotNull] string assemblyName,
ContentBehavior contentBehavior,
[NotNull] IEnumerable<TagHelperAttributeDescriptor> attributes) [NotNull] IEnumerable<TagHelperAttributeDescriptor> attributes)
{ {
TagName = tagName; TagName = tagName;
TypeName = typeName; TypeName = typeName;
AssemblyName = assemblyName; AssemblyName = assemblyName;
ContentBehavior = contentBehavior;
Attributes = new List<TagHelperAttributeDescriptor>(attributes); Attributes = new List<TagHelperAttributeDescriptor>(attributes);
} }
@ -67,11 +61,6 @@ namespace Microsoft.AspNet.Razor.TagHelpers
/// </summary> /// </summary>
public string AssemblyName { get; private set; } public string AssemblyName { get; private set; }
/// <summary>
/// The <see cref="TagHelpers.ContentBehavior"/> of the tag helper.
/// </summary>
public ContentBehavior ContentBehavior { get; private set; }
/// <summary> /// <summary>
/// The list of attributes the tag helper expects. /// The list of attributes the tag helper expects.
/// </summary> /// </summary>

View File

@ -29,15 +29,13 @@ namespace Microsoft.AspNet.Razor.TagHelpers
/// <c>false</c> otherwise.</returns> /// <c>false</c> otherwise.</returns>
/// <remarks> /// <remarks>
/// Determines equality based on <see cref="TagHelperDescriptor.TypeName"/>, /// Determines equality based on <see cref="TagHelperDescriptor.TypeName"/>,
/// <see cref="TagHelperDescriptor.AssemblyName"/>, <see cref="TagHelperDescriptor.TagName"/> and /// <see cref="TagHelperDescriptor.AssemblyName"/> and <see cref="TagHelperDescriptor.TagName"/>.
/// <see cref="TagHelperDescriptor.ContentBehavior"/>.
/// </remarks> /// </remarks>
public bool Equals(TagHelperDescriptor descriptorX, TagHelperDescriptor descriptorY) public bool Equals(TagHelperDescriptor descriptorX, TagHelperDescriptor descriptorY)
{ {
return string.Equals(descriptorX.TypeName, descriptorY.TypeName, StringComparison.Ordinal) && return string.Equals(descriptorX.TypeName, descriptorY.TypeName, StringComparison.Ordinal) &&
string.Equals(descriptorX.TagName, descriptorY.TagName, StringComparison.OrdinalIgnoreCase) && string.Equals(descriptorX.TagName, descriptorY.TagName, StringComparison.OrdinalIgnoreCase) &&
string.Equals(descriptorX.AssemblyName, descriptorY.AssemblyName, StringComparison.Ordinal) && string.Equals(descriptorX.AssemblyName, descriptorY.AssemblyName, StringComparison.Ordinal);
descriptorX.ContentBehavior == descriptorY.ContentBehavior;
} }
/// <summary> /// <summary>
@ -51,7 +49,6 @@ namespace Microsoft.AspNet.Razor.TagHelpers
.Add(descriptor.TagName, StringComparer.OrdinalIgnoreCase) .Add(descriptor.TagName, StringComparer.OrdinalIgnoreCase)
.Add(descriptor.TypeName, StringComparer.Ordinal) .Add(descriptor.TypeName, StringComparer.Ordinal)
.Add(descriptor.AssemblyName, StringComparer.Ordinal) .Add(descriptor.AssemblyName, StringComparer.Ordinal)
.Add(descriptor.ContentBehavior)
.CombinedHash; .CombinedHash;
} }
} }

View File

@ -62,7 +62,6 @@ namespace Microsoft.AspNet.Razor.Runtime.TagHelpers
"overridden-attribute", "overridden-attribute",
typeof(OverriddenAttributeTagHelper).FullName, typeof(OverriddenAttributeTagHelper).FullName,
AssemblyName, AssemblyName,
ContentBehavior.None,
new[] { new[] {
new TagHelperAttributeDescriptor("SomethingElse", validProperty1), new TagHelperAttributeDescriptor("SomethingElse", validProperty1),
new TagHelperAttributeDescriptor("Something-Else", validProperty2) new TagHelperAttributeDescriptor("Something-Else", validProperty2)
@ -89,7 +88,6 @@ namespace Microsoft.AspNet.Razor.Runtime.TagHelpers
"inherited-overridden-attribute", "inherited-overridden-attribute",
typeof(InheritedOverriddenAttributeTagHelper).FullName, typeof(InheritedOverriddenAttributeTagHelper).FullName,
AssemblyName, AssemblyName,
ContentBehavior.None,
new[] { new[] {
new TagHelperAttributeDescriptor("valid-attribute1", new TagHelperAttributeDescriptor("valid-attribute1",
validProperty1), validProperty1),
@ -117,7 +115,6 @@ namespace Microsoft.AspNet.Razor.Runtime.TagHelpers
"inherited-not-overridden-attribute", "inherited-not-overridden-attribute",
typeof(InheritedNotOverriddenAttributeTagHelper).FullName, typeof(InheritedNotOverriddenAttributeTagHelper).FullName,
AssemblyName, AssemblyName,
ContentBehavior.None,
new[] { new[] {
new TagHelperAttributeDescriptor("SomethingElse", validProperty1), new TagHelperAttributeDescriptor("SomethingElse", validProperty1),
new TagHelperAttributeDescriptor("Something-Else", validProperty2) new TagHelperAttributeDescriptor("Something-Else", validProperty2)
@ -137,7 +134,7 @@ namespace Microsoft.AspNet.Razor.Runtime.TagHelpers
// Arrange // Arrange
var objectAssemblyName = typeof(object).GetTypeInfo().Assembly.GetName().Name; var objectAssemblyName = typeof(object).GetTypeInfo().Assembly.GetName().Name;
var expectedDescriptor = var expectedDescriptor =
new TagHelperDescriptor("object", "System.Object", objectAssemblyName, ContentBehavior.None); new TagHelperDescriptor("object", "System.Object", objectAssemblyName);
// Act // Act
var descriptors = TagHelperDescriptorFactory.CreateDescriptors(typeof(object)); var descriptors = TagHelperDescriptorFactory.CreateDescriptors(typeof(object));
@ -157,7 +154,6 @@ namespace Microsoft.AspNet.Razor.Runtime.TagHelpers
"inherited-single-attribute", "inherited-single-attribute",
typeof(InheritedSingleAttributeTagHelper).FullName, typeof(InheritedSingleAttributeTagHelper).FullName,
AssemblyName, AssemblyName,
ContentBehavior.None,
new[] { new[] {
new TagHelperAttributeDescriptor("int-attribute", intProperty) new TagHelperAttributeDescriptor("int-attribute", intProperty)
}); });
@ -179,7 +175,6 @@ namespace Microsoft.AspNet.Razor.Runtime.TagHelpers
"single-attribute", "single-attribute",
typeof(SingleAttributeTagHelper).FullName, typeof(SingleAttributeTagHelper).FullName,
AssemblyName, AssemblyName,
ContentBehavior.None,
new[] { new[] {
new TagHelperAttributeDescriptor("int-attribute", intProperty) new TagHelperAttributeDescriptor("int-attribute", intProperty)
}); });
@ -202,7 +197,6 @@ namespace Microsoft.AspNet.Razor.Runtime.TagHelpers
"missing-accessor", "missing-accessor",
typeof(MissingAccessorTagHelper).FullName, typeof(MissingAccessorTagHelper).FullName,
AssemblyName, AssemblyName,
ContentBehavior.None,
new[] { new[] {
new TagHelperAttributeDescriptor("valid-attribute", validProperty) new TagHelperAttributeDescriptor("valid-attribute", validProperty)
}); });
@ -225,7 +219,6 @@ namespace Microsoft.AspNet.Razor.Runtime.TagHelpers
"private-accessor", "private-accessor",
typeof(PrivateAccessorTagHelper).FullName, typeof(PrivateAccessorTagHelper).FullName,
AssemblyName, AssemblyName,
ContentBehavior.None,
new[] { new[] {
new TagHelperAttributeDescriptor( new TagHelperAttributeDescriptor(
"valid-attribute", validProperty) "valid-attribute", validProperty)
@ -239,43 +232,6 @@ namespace Microsoft.AspNet.Razor.Runtime.TagHelpers
Assert.Equal(expectedDescriptor, descriptor, CompleteTagHelperDescriptorComparer.Default); Assert.Equal(expectedDescriptor, descriptor, CompleteTagHelperDescriptorComparer.Default);
} }
[Fact]
public void CreateDescriptor_ResolvesCustomContentBehavior()
{
// Arrange
var expectedDescriptor = new TagHelperDescriptor(
"custom-content-behavior",
typeof(CustomContentBehaviorTagHelper).FullName,
AssemblyName,
ContentBehavior.Append);
// Act
var descriptors = TagHelperDescriptorFactory.CreateDescriptors(typeof(CustomContentBehaviorTagHelper));
// Assert
var descriptor = Assert.Single(descriptors);
Assert.Equal(expectedDescriptor, descriptor, CompleteTagHelperDescriptorComparer.Default);
}
[Fact]
public void CreateDescriptor_DoesNotResolveInheritedCustomContentBehavior()
{
// Arrange
var expectedDescriptor = new TagHelperDescriptor(
"inherited-custom-content-behavior",
typeof(InheritedCustomContentBehaviorTagHelper).FullName,
AssemblyName,
ContentBehavior.None);
// Act
var descriptors = TagHelperDescriptorFactory.CreateDescriptors(
typeof(InheritedCustomContentBehaviorTagHelper));
// Assert
var descriptor = Assert.Single(descriptors);
Assert.Equal(expectedDescriptor, descriptor, CompleteTagHelperDescriptorComparer.Default);
}
[Fact] [Fact]
public void CreateDescriptor_ResolvesMultipleTagHelperDescriptorsFromSingleType() public void CreateDescriptor_ResolvesMultipleTagHelperDescriptorsFromSingleType()
{ {
@ -286,7 +242,6 @@ namespace Microsoft.AspNet.Razor.Runtime.TagHelpers
"div", "div",
typeof(MultiTagTagHelper).FullName, typeof(MultiTagTagHelper).FullName,
AssemblyName, AssemblyName,
ContentBehavior.None,
new[] { new[] {
new TagHelperAttributeDescriptor("valid-attribute", validProp) new TagHelperAttributeDescriptor("valid-attribute", validProp)
}), }),
@ -294,7 +249,6 @@ namespace Microsoft.AspNet.Razor.Runtime.TagHelpers
"p", "p",
typeof(MultiTagTagHelper).FullName, typeof(MultiTagTagHelper).FullName,
AssemblyName, AssemblyName,
ContentBehavior.None,
new[] { new[] {
new TagHelperAttributeDescriptor("valid-attribute", validProp) new TagHelperAttributeDescriptor("valid-attribute", validProp)
}) })
@ -316,7 +270,6 @@ namespace Microsoft.AspNet.Razor.Runtime.TagHelpers
"inherited-multi-tag", "inherited-multi-tag",
typeof(InheritedMultiTagTagHelper).FullName, typeof(InheritedMultiTagTagHelper).FullName,
AssemblyName, AssemblyName,
ContentBehavior.None,
new[] { new[] {
new TagHelperAttributeDescriptor("valid-attribute", validProp) new TagHelperAttributeDescriptor("valid-attribute", validProp)
}); });
@ -337,13 +290,11 @@ namespace Microsoft.AspNet.Razor.Runtime.TagHelpers
new TagHelperDescriptor( new TagHelperDescriptor(
"p", "p",
typeof(DuplicateTagNameTagHelper).FullName, typeof(DuplicateTagNameTagHelper).FullName,
AssemblyName, AssemblyName),
ContentBehavior.None),
new TagHelperDescriptor( new TagHelperDescriptor(
"div", "div",
typeof(DuplicateTagNameTagHelper).FullName, typeof(DuplicateTagNameTagHelper).FullName,
AssemblyName, AssemblyName)
ContentBehavior.None)
}; };
// Act // Act
@ -360,8 +311,7 @@ namespace Microsoft.AspNet.Razor.Runtime.TagHelpers
var expectedDescriptors = new[] { var expectedDescriptors = new[] {
new TagHelperDescriptor("data-condition", new TagHelperDescriptor("data-condition",
typeof(OverrideNameTagHelper).FullName, typeof(OverrideNameTagHelper).FullName,
AssemblyName, AssemblyName),
ContentBehavior.None),
}; };
// Act // Act
@ -379,18 +329,15 @@ namespace Microsoft.AspNet.Razor.Runtime.TagHelpers
new TagHelperDescriptor( new TagHelperDescriptor(
"span", "span",
typeof(MultipleAttributeTagHelper).FullName, typeof(MultipleAttributeTagHelper).FullName,
AssemblyName, AssemblyName),
ContentBehavior.None),
new TagHelperDescriptor( new TagHelperDescriptor(
"p", "p",
typeof(MultipleAttributeTagHelper).FullName, typeof(MultipleAttributeTagHelper).FullName,
AssemblyName, AssemblyName),
ContentBehavior.None),
new TagHelperDescriptor( new TagHelperDescriptor(
"div", "div",
typeof(MultipleAttributeTagHelper).FullName, typeof(MultipleAttributeTagHelper).FullName,
AssemblyName, AssemblyName)
ContentBehavior.None)
}; };
// Act // Act
@ -400,15 +347,6 @@ namespace Microsoft.AspNet.Razor.Runtime.TagHelpers
Assert.Equal(expectedDescriptors, descriptors, CompleteTagHelperDescriptorComparer.Default); Assert.Equal(expectedDescriptors, descriptors, CompleteTagHelperDescriptorComparer.Default);
} }
[ContentBehavior(ContentBehavior.Append)]
private class CustomContentBehaviorTagHelper
{
}
private class InheritedCustomContentBehaviorTagHelper : CustomContentBehaviorTagHelper
{
}
[HtmlElementName("p", "div")] [HtmlElementName("p", "div")]
private class MultiTagTagHelper private class MultiTagTagHelper
{ {

View File

@ -27,8 +27,7 @@ namespace Microsoft.AspNet.Razor.Runtime.TagHelpers
{ {
return new TagHelperDescriptor("valid_plain", return new TagHelperDescriptor("valid_plain",
Valid_PlainTagHelperType.FullName, Valid_PlainTagHelperType.FullName,
AssemblyName, AssemblyName);
ContentBehavior.None);
} }
} }
@ -38,8 +37,7 @@ namespace Microsoft.AspNet.Razor.Runtime.TagHelpers
{ {
return new TagHelperDescriptor("valid_inherited", return new TagHelperDescriptor("valid_inherited",
Valid_InheritedTagHelperType.FullName, Valid_InheritedTagHelperType.FullName,
AssemblyName, AssemblyName);
ContentBehavior.None);
} }
} }
@ -75,8 +73,7 @@ namespace Microsoft.AspNet.Razor.Runtime.TagHelpers
var stringTagHelperDescriptor = var stringTagHelperDescriptor =
new TagHelperDescriptor("string", new TagHelperDescriptor("string",
"System.String", "System.String",
assemblyB, assemblyB);
ContentBehavior.None);
return new TheoryData<Dictionary<string, IEnumerable<Type>>, // descriptorAssemblyLookups return new TheoryData<Dictionary<string, IEnumerable<Type>>, // descriptorAssemblyLookups
IEnumerable<TagHelperDirectiveDescriptor>, // directiveDescriptors IEnumerable<TagHelperDirectiveDescriptor>, // directiveDescriptors
@ -230,8 +227,7 @@ namespace Microsoft.AspNet.Razor.Runtime.TagHelpers
var stringTagHelperDescriptor = var stringTagHelperDescriptor =
new TagHelperDescriptor("string", new TagHelperDescriptor("string",
"System.String", "System.String",
assemblyB, assemblyB);
ContentBehavior.None);
return new TheoryData<Dictionary<string, IEnumerable<Type>>, // descriptorAssemblyLookups return new TheoryData<Dictionary<string, IEnumerable<Type>>, // descriptorAssemblyLookups
IEnumerable<TagHelperDirectiveDescriptor>> // directiveDescriptors IEnumerable<TagHelperDirectiveDescriptor>> // directiveDescriptors

View File

@ -26,21 +26,18 @@ namespace Microsoft.AspNet.Razor.Test.Generator
new TagHelperDescriptor("p", new TagHelperDescriptor("p",
"PTagHelper", "PTagHelper",
"SomeAssembly", "SomeAssembly",
ContentBehavior.None,
new [] { new [] {
new TagHelperAttributeDescriptor("age", pAgePropertyInfo) new TagHelperAttributeDescriptor("age", pAgePropertyInfo)
}), }),
new TagHelperDescriptor("input", new TagHelperDescriptor("input",
"InputTagHelper", "InputTagHelper",
"SomeAssembly", "SomeAssembly",
ContentBehavior.None,
new TagHelperAttributeDescriptor[] { new TagHelperAttributeDescriptor[] {
new TagHelperAttributeDescriptor("type", inputTypePropertyInfo) new TagHelperAttributeDescriptor("type", inputTypePropertyInfo)
}), }),
new TagHelperDescriptor("input", new TagHelperDescriptor("input",
"InputTagHelper2", "InputTagHelper2",
"SomeAssembly", "SomeAssembly",
ContentBehavior.None,
new TagHelperAttributeDescriptor[] { new TagHelperAttributeDescriptor[] {
new TagHelperAttributeDescriptor("type", inputTypePropertyInfo), new TagHelperAttributeDescriptor("type", inputTypePropertyInfo),
new TagHelperAttributeDescriptor("checked", checkedPropertyInfo) new TagHelperAttributeDescriptor("checked", checkedPropertyInfo)
@ -49,21 +46,6 @@ namespace Microsoft.AspNet.Razor.Test.Generator
} }
} }
private static IEnumerable<TagHelperDescriptor> ContentBehaviorTagHelperDescriptors
{
get
{
return new[]
{
new TagHelperDescriptor("modify", "ModifyTagHelper", "SomeAssembly", ContentBehavior.Modify),
new TagHelperDescriptor("none", "NoneTagHelper", "SomeAssembly", ContentBehavior.None),
new TagHelperDescriptor("append", "AppendTagHelper", "SomeAssembly", ContentBehavior.Append),
new TagHelperDescriptor("prepend", "PrependTagHelper", "SomeAssembly", ContentBehavior.Prepend),
new TagHelperDescriptor("replace", "ReplaceTagHelper", "SomeAssembly", ContentBehavior.Replace)
};
}
}
public static TheoryData TagHelperDescriptorFlowTestData public static TheoryData TagHelperDescriptorFlowTestData
{ {
get get
@ -109,13 +91,6 @@ namespace Microsoft.AspNet.Razor.Test.Generator
Enumerable.Empty<TagHelperDescriptor>(), Enumerable.Empty<TagHelperDescriptor>(),
false false
}, },
{
"ContentBehaviorTagHelpers",
"ContentBehaviorTagHelpers",
ContentBehaviorTagHelperDescriptors,
ContentBehaviorTagHelperDescriptors,
false
},
{ {
"ComplexTagHelpers", "ComplexTagHelpers",
"ComplexTagHelpers", "ComplexTagHelpers",
@ -144,7 +119,7 @@ namespace Microsoft.AspNet.Razor.Test.Generator
bool designTimeMode) bool designTimeMode)
{ {
RunTagHelperTest( RunTagHelperTest(
testName, testName,
baseLineName: baselineName, baseLineName: baselineName,
tagHelperDescriptors: tagHelperDescriptors, tagHelperDescriptors: tagHelperDescriptors,
onResults: (results) => onResults: (results) =>
@ -203,20 +178,6 @@ namespace Microsoft.AspNet.Razor.Test.Generator
contentLength: 4) contentLength: 4)
} }
}, },
{
"ContentBehaviorTagHelpers",
"ContentBehaviorTagHelpers.DesignTime",
ContentBehaviorTagHelperDescriptors,
new List<LineMapping>
{
BuildLineMapping(documentAbsoluteIndex: 14,
documentLineIndex: 0,
generatedAbsoluteIndex: 495,
generatedLineIndex: 15,
characterOffsetIndex: 14,
contentLength: 11)
}
},
{ {
"ComplexTagHelpers", "ComplexTagHelpers",
"ComplexTagHelpers.DesignTime", "ComplexTagHelpers.DesignTime",
@ -283,7 +244,6 @@ namespace Microsoft.AspNet.Razor.Test.Generator
{ "SingleTagHelper", PAndInputTagHelperDescriptors }, { "SingleTagHelper", PAndInputTagHelperDescriptors },
{ "BasicTagHelpers", PAndInputTagHelperDescriptors }, { "BasicTagHelpers", PAndInputTagHelperDescriptors },
{ "BasicTagHelpers.RemoveTagHelper", PAndInputTagHelperDescriptors }, { "BasicTagHelpers.RemoveTagHelper", PAndInputTagHelperDescriptors },
{ "ContentBehaviorTagHelpers", ContentBehaviorTagHelperDescriptors },
{ "ComplexTagHelpers", PAndInputTagHelperDescriptors }, { "ComplexTagHelpers", PAndInputTagHelperDescriptors },
}; };
} }
@ -339,7 +299,7 @@ namespace Microsoft.AspNet.Razor.Test.Generator
RunTagHelperTest("AddTagHelperDirective", RunTagHelperTest("AddTagHelperDirective",
designTimeMode: true, designTimeMode: true,
tagHelperDescriptors: new[] { tagHelperDescriptors: new[] {
new TagHelperDescriptor("p", "pTagHelper", "SomeAssembly", ContentBehavior.None) new TagHelperDescriptor("p", "pTagHelper", "SomeAssembly")
}); });
} }
@ -355,12 +315,11 @@ namespace Microsoft.AspNet.Razor.Test.Generator
new TagHelperDescriptor("MyTagHelper", new TagHelperDescriptor("MyTagHelper",
"MyTagHelper", "MyTagHelper",
"SomeAssembly", "SomeAssembly",
ContentBehavior.None,
new [] { new [] {
new TagHelperAttributeDescriptor("BoundProperty", new TagHelperAttributeDescriptor("BoundProperty",
propertyInfo) propertyInfo)
}), }),
new TagHelperDescriptor("NestedTagHelper", "NestedTagHelper", "SomeAssembly", ContentBehavior.Modify) new TagHelperDescriptor("NestedTagHelper", "NestedTagHelper", "SomeAssembly")
}; };
// Act & Assert // Act & Assert

View File

@ -1,5 +1,4 @@
using System; using System.Collections.Generic;
using System.Collections.Generic;
using Microsoft.AspNet.Razor.Generator; using Microsoft.AspNet.Razor.Generator;
using Microsoft.AspNet.Razor.Generator.Compiler; using Microsoft.AspNet.Razor.Generator.Compiler;
using Microsoft.AspNet.Razor.Generator.Compiler.CSharp; using Microsoft.AspNet.Razor.Generator.Compiler.CSharp;
@ -16,7 +15,7 @@ namespace Microsoft.AspNet.Razor.Test.Generator
{ {
// Arrange // Arrange
var chunk = CreateTagHelperChunk("div", new[] { var chunk = CreateTagHelperChunk("div", new[] {
new TagHelperDescriptor("div", "DivTagHelper", "FakeAssemblyName", ContentBehavior.None) new TagHelperDescriptor("div", "DivTagHelper", "FakeAssemblyName")
}); });
var codeRenderer = CreateCodeRenderer(); var codeRenderer = CreateCodeRenderer();
@ -32,8 +31,8 @@ namespace Microsoft.AspNet.Razor.Test.Generator
{ {
// Arrange // Arrange
var chunk = CreateTagHelperChunk("div", new[] { var chunk = CreateTagHelperChunk("div", new[] {
new TagHelperDescriptor("div", "DivTagHelper", "FakeAssemblyName", ContentBehavior.None), new TagHelperDescriptor("div", "DivTagHelper", "FakeAssemblyName"),
new TagHelperDescriptor("div", "Div2TagHelper", "FakeAssemblyName", ContentBehavior.None) new TagHelperDescriptor("div", "Div2TagHelper", "FakeAssemblyName")
}); });
var codeRenderer = CreateCodeRenderer(); var codeRenderer = CreateCodeRenderer();
@ -49,10 +48,10 @@ namespace Microsoft.AspNet.Razor.Test.Generator
{ {
// Arrange // Arrange
var chunk1 = CreateTagHelperChunk("div", new[] { var chunk1 = CreateTagHelperChunk("div", new[] {
new TagHelperDescriptor("div", "DivTagHelper", "FakeAssemblyName", ContentBehavior.None) new TagHelperDescriptor("div", "DivTagHelper", "FakeAssemblyName")
}); });
var chunk2 = CreateTagHelperChunk("div", new[] { var chunk2 = CreateTagHelperChunk("div", new[] {
new TagHelperDescriptor("div", "DivTagHelper", "FakeAssemblyName", ContentBehavior.None) new TagHelperDescriptor("div", "DivTagHelper", "FakeAssemblyName")
}); });
var codeRenderer = CreateCodeRenderer(); var codeRenderer = CreateCodeRenderer();
@ -69,10 +68,10 @@ namespace Microsoft.AspNet.Razor.Test.Generator
{ {
// Arrange // Arrange
var parentChunk = CreateTagHelperChunk("div", new[] { var parentChunk = CreateTagHelperChunk("div", new[] {
new TagHelperDescriptor("div", "DivTagHelper", "FakeAssemblyName", ContentBehavior.None) new TagHelperDescriptor("div", "DivTagHelper", "FakeAssemblyName")
}); });
var childChunk = CreateTagHelperChunk("div", new[] { var childChunk = CreateTagHelperChunk("div", new[] {
new TagHelperDescriptor("div", "DivTagHelper", "FakeAssemblyName", ContentBehavior.None) new TagHelperDescriptor("div", "DivTagHelper", "FakeAssemblyName")
}); });
parentChunk.Children.Add(childChunk); parentChunk.Children.Add(childChunk);
var codeRenderer = CreateCodeRenderer(); var codeRenderer = CreateCodeRenderer();
@ -89,10 +88,10 @@ namespace Microsoft.AspNet.Razor.Test.Generator
{ {
// Arrange // Arrange
var divChunk = CreateTagHelperChunk("div", new[] { var divChunk = CreateTagHelperChunk("div", new[] {
new TagHelperDescriptor("div", "DivTagHelper", "FakeAssemblyName", ContentBehavior.None) new TagHelperDescriptor("div", "DivTagHelper", "FakeAssemblyName")
}); });
var spanChunk = CreateTagHelperChunk("span", new[] { var spanChunk = CreateTagHelperChunk("span", new[] {
new TagHelperDescriptor("span", "SpanTagHelper", "FakeAssemblyName", ContentBehavior.None) new TagHelperDescriptor("span", "SpanTagHelper", "FakeAssemblyName")
}); });
var codeRenderer = CreateCodeRenderer(); var codeRenderer = CreateCodeRenderer();
@ -109,15 +108,15 @@ namespace Microsoft.AspNet.Razor.Test.Generator
{ {
// Arrange // Arrange
var chunk1 = CreateTagHelperChunk("div", new[] { var chunk1 = CreateTagHelperChunk("div", new[] {
new TagHelperDescriptor("div", "DivTagHelper", "FakeAssemblyName", ContentBehavior.None), new TagHelperDescriptor("div", "DivTagHelper", "FakeAssemblyName"),
new TagHelperDescriptor("div", "Div2TagHelper", "FakeAssemblyName", ContentBehavior.None) new TagHelperDescriptor("div", "Div2TagHelper", "FakeAssemblyName")
}); });
var chunk2 = CreateTagHelperChunk("span", new[] { var chunk2 = CreateTagHelperChunk("span", new[] {
new TagHelperDescriptor("span", "SpanTagHelper", "FakeAssemblyName", ContentBehavior.None) new TagHelperDescriptor("span", "SpanTagHelper", "FakeAssemblyName")
}); });
var chunk3 = CreateTagHelperChunk("span", new[] { var chunk3 = CreateTagHelperChunk("span", new[] {
new TagHelperDescriptor("span", "SpanTagHelper", "FakeAssemblyName", ContentBehavior.None), new TagHelperDescriptor("span", "SpanTagHelper", "FakeAssemblyName"),
new TagHelperDescriptor("span", "Span2TagHelper", "FakeAssemblyName", ContentBehavior.None) new TagHelperDescriptor("span", "Span2TagHelper", "FakeAssemblyName")
}); });
var codeRenderer = CreateCodeRenderer(); var codeRenderer = CreateCodeRenderer();

View File

@ -23,18 +23,16 @@ namespace Microsoft.AspNet.Razor.Test.Generator
var checkedPropertyInfo = typeof(TestType).GetProperty("Checked"); var checkedPropertyInfo = typeof(TestType).GetProperty("Checked");
var tagHelperDescriptors = new TagHelperDescriptor[] var tagHelperDescriptors = new TagHelperDescriptor[]
{ {
new TagHelperDescriptor("p", "PTagHelper", "SomeAssembly", ContentBehavior.None), new TagHelperDescriptor("p", "PTagHelper", "SomeAssembly"),
new TagHelperDescriptor("input", new TagHelperDescriptor("input",
"InputTagHelper", "InputTagHelper",
"SomeAssembly", "SomeAssembly",
ContentBehavior.None,
new TagHelperAttributeDescriptor[] { new TagHelperAttributeDescriptor[] {
new TagHelperAttributeDescriptor("type", inputTypePropertyInfo) new TagHelperAttributeDescriptor("type", inputTypePropertyInfo)
}), }),
new TagHelperDescriptor("input", new TagHelperDescriptor("input",
"InputTagHelper2", "InputTagHelper2",
"SomeAssembly", "SomeAssembly",
ContentBehavior.None,
new TagHelperAttributeDescriptor[] { new TagHelperAttributeDescriptor[] {
new TagHelperAttributeDescriptor("type", inputTypePropertyInfo), new TagHelperAttributeDescriptor("type", inputTypePropertyInfo),
new TagHelperAttributeDescriptor("checked", checkedPropertyInfo) new TagHelperAttributeDescriptor("checked", checkedPropertyInfo)

View File

@ -13,8 +13,8 @@ namespace Microsoft.AspNet.Razor.Test.TagHelpers
public void TagHelperDescriptorProvider_GetTagHelpersReturnsNothingForUnregisteredTags() public void TagHelperDescriptorProvider_GetTagHelpersReturnsNothingForUnregisteredTags()
{ {
// Arrange // Arrange
var divDescriptor = new TagHelperDescriptor("div", "foo1", "SomeAssembly", ContentBehavior.None); var divDescriptor = new TagHelperDescriptor("div", "foo1", "SomeAssembly");
var spanDescriptor = new TagHelperDescriptor("span", "foo2", "SomeAssembly", ContentBehavior.None); var spanDescriptor = new TagHelperDescriptor("span", "foo2", "SomeAssembly");
var descriptors = new TagHelperDescriptor[] { divDescriptor, spanDescriptor }; var descriptors = new TagHelperDescriptor[] { divDescriptor, spanDescriptor };
var provider = new TagHelperDescriptorProvider(descriptors); var provider = new TagHelperDescriptorProvider(descriptors);
@ -29,9 +29,9 @@ namespace Microsoft.AspNet.Razor.Test.TagHelpers
public void TagHelperDescriptorProvider_GetTagHelpersDoesNotReturnNonCatchAllTagsForCatchAll() public void TagHelperDescriptorProvider_GetTagHelpersDoesNotReturnNonCatchAllTagsForCatchAll()
{ {
// Arrange // Arrange
var divDescriptor = new TagHelperDescriptor("div", "foo1", "SomeAssembly", ContentBehavior.None); var divDescriptor = new TagHelperDescriptor("div", "foo1", "SomeAssembly");
var spanDescriptor = new TagHelperDescriptor("span", "foo2", "SomeAssembly", ContentBehavior.None); var spanDescriptor = new TagHelperDescriptor("span", "foo2", "SomeAssembly");
var catchAllDescriptor = new TagHelperDescriptor("*", "foo3", "SomeAssembly", ContentBehavior.None); var catchAllDescriptor = new TagHelperDescriptor("*", "foo3", "SomeAssembly");
var descriptors = new TagHelperDescriptor[] { divDescriptor, spanDescriptor, catchAllDescriptor }; var descriptors = new TagHelperDescriptor[] { divDescriptor, spanDescriptor, catchAllDescriptor };
var provider = new TagHelperDescriptorProvider(descriptors); var provider = new TagHelperDescriptorProvider(descriptors);
@ -47,9 +47,9 @@ namespace Microsoft.AspNet.Razor.Test.TagHelpers
public void TagHelperDescriptorProvider_GetTagHelpersReturnsCatchAllsWithEveryTagName() public void TagHelperDescriptorProvider_GetTagHelpersReturnsCatchAllsWithEveryTagName()
{ {
// Arrange // Arrange
var divDescriptor = new TagHelperDescriptor("div", "foo1", "SomeAssembly", ContentBehavior.None); var divDescriptor = new TagHelperDescriptor("div", "foo1", "SomeAssembly");
var spanDescriptor = new TagHelperDescriptor("span", "foo2", "SomeAssembly", ContentBehavior.None); var spanDescriptor = new TagHelperDescriptor("span", "foo2", "SomeAssembly");
var catchAllDescriptor = new TagHelperDescriptor("*", "foo3", "SomeAssembly", ContentBehavior.None); var catchAllDescriptor = new TagHelperDescriptor("*", "foo3", "SomeAssembly");
var descriptors = new TagHelperDescriptor[] { divDescriptor, spanDescriptor, catchAllDescriptor }; var descriptors = new TagHelperDescriptor[] { divDescriptor, spanDescriptor, catchAllDescriptor };
var provider = new TagHelperDescriptorProvider(descriptors); var provider = new TagHelperDescriptorProvider(descriptors);
@ -73,7 +73,7 @@ namespace Microsoft.AspNet.Razor.Test.TagHelpers
public void TagHelperDescriptorProvider_DuplicateDescriptorsAreNotPartOfTagHelperDescriptorPool() public void TagHelperDescriptorProvider_DuplicateDescriptorsAreNotPartOfTagHelperDescriptorPool()
{ {
// Arrange // Arrange
var divDescriptor = new TagHelperDescriptor("div", "foo1", "SomeAssembly", ContentBehavior.None); var divDescriptor = new TagHelperDescriptor("div", "foo1", "SomeAssembly");
var descriptors = new TagHelperDescriptor[] { divDescriptor, divDescriptor }; var descriptors = new TagHelperDescriptor[] { divDescriptor, divDescriptor };
var provider = new TagHelperDescriptorProvider(descriptors); var provider = new TagHelperDescriptorProvider(descriptors);

View File

@ -518,7 +518,7 @@ namespace Microsoft.AspNet.Razor.Test.TagHelpers
// Arrange // Arrange
var descriptors = new TagHelperDescriptor[] var descriptors = new TagHelperDescriptor[]
{ {
new TagHelperDescriptor("person", "PersonTagHelper", "personAssembly", ContentBehavior.None, new TagHelperDescriptor("person", "PersonTagHelper", "personAssembly",
attributes: new[] attributes: new[]
{ {
new TagHelperAttributeDescriptor("age", "Age", typeof(int).FullName), new TagHelperAttributeDescriptor("age", "Age", typeof(int).FullName),
@ -1714,7 +1714,7 @@ namespace Microsoft.AspNet.Razor.Test.TagHelpers
foreach (var tagName in tagNames) foreach (var tagName in tagNames)
{ {
descriptors.Add( descriptors.Add(
new TagHelperDescriptor(tagName, tagName + "taghelper", "SomeAssembly", ContentBehavior.None)); new TagHelperDescriptor(tagName, tagName + "taghelper", "SomeAssembly"));
} }
return new TagHelperDescriptorProvider(descriptors); return new TagHelperDescriptorProvider(descriptors);

View File

@ -1,45 +0,0 @@
namespace TestOutput
{
using Microsoft.AspNet.Razor.Runtime.TagHelpers;
using System;
using System.Threading.Tasks;
public class ContentBehaviorTagHelpers
{
private static object @__o;
private void @__RazorDesignTimeHelpers__()
{
#pragma warning disable 219
string __tagHelperDirectiveSyntaxHelper = null;
__tagHelperDirectiveSyntaxHelper =
#line 1 "ContentBehaviorTagHelpers.cshtml"
"something"
#line default
#line hidden
;
#pragma warning restore 219
}
#line hidden
private ModifyTagHelper __ModifyTagHelper = null;
private NoneTagHelper __NoneTagHelper = null;
private AppendTagHelper __AppendTagHelper = null;
private PrependTagHelper __PrependTagHelper = null;
private ReplaceTagHelper __ReplaceTagHelper = null;
#line hidden
public ContentBehaviorTagHelpers()
{
}
#pragma warning disable 1998
public override async Task ExecuteAsync()
{
__ModifyTagHelper = CreateTagHelper<ModifyTagHelper>();
__NoneTagHelper = CreateTagHelper<NoneTagHelper>();
__AppendTagHelper = CreateTagHelper<AppendTagHelper>();
__PrependTagHelper = CreateTagHelper<PrependTagHelper>();
__ReplaceTagHelper = CreateTagHelper<ReplaceTagHelper>();
}
#pragma warning restore 1998
}
}

View File

@ -1,85 +0,0 @@
#pragma checksum "ContentBehaviorTagHelpers.cshtml" "{ff1816ec-aa5e-4d10-87f7-6f4963833460}" "5aeeb0a2b5283b353efaff2cd2fb0c739020b899"
namespace TestOutput
{
using Microsoft.AspNet.Razor.Runtime.TagHelpers;
using System;
using System.Threading.Tasks;
public class ContentBehaviorTagHelpers
{
#line hidden
#pragma warning disable 0414
private System.IO.TextWriter __tagHelperStringValueBuffer = null;
#pragma warning restore 0414
private TagHelperExecutionContext __tagHelperExecutionContext = null;
private TagHelperRunner __tagHelperRunner = new TagHelperRunner();
private TagHelperScopeManager __tagHelperScopeManager = new TagHelperScopeManager();
private ModifyTagHelper __ModifyTagHelper = null;
private NoneTagHelper __NoneTagHelper = null;
private AppendTagHelper __AppendTagHelper = null;
private PrependTagHelper __PrependTagHelper = null;
private ReplaceTagHelper __ReplaceTagHelper = null;
#line hidden
public ContentBehaviorTagHelpers()
{
}
#pragma warning disable 1998
public override async Task ExecuteAsync()
{
Instrumentation.BeginContext(27, 2, true);
WriteLiteral("\r\n");
Instrumentation.EndContext();
__tagHelperExecutionContext = __tagHelperScopeManager.Begin("modify", "test");
__ModifyTagHelper = CreateTagHelper<ModifyTagHelper>();
__tagHelperExecutionContext.Add(__ModifyTagHelper);
StartWritingScope();
WriteLiteral("\r\n ");
__tagHelperExecutionContext = __tagHelperScopeManager.Begin("none", "test");
__NoneTagHelper = CreateTagHelper<NoneTagHelper>();
__tagHelperExecutionContext.Add(__NoneTagHelper);
__tagHelperExecutionContext.Output = __tagHelperRunner.RunAsync(__tagHelperExecutionContext).Result;
WriteLiteral(__tagHelperExecutionContext.Output.GenerateStartTag());
WriteLiteral("\r\n ");
__tagHelperExecutionContext = __tagHelperScopeManager.Begin("append", "test");
__AppendTagHelper = CreateTagHelper<AppendTagHelper>();
__tagHelperExecutionContext.Add(__AppendTagHelper);
__tagHelperExecutionContext.Output = __tagHelperRunner.RunAsync(__tagHelperExecutionContext).Result;
WriteLiteral(__tagHelperExecutionContext.Output.GenerateStartTag());
WriteLiteral("\r\n ");
__tagHelperExecutionContext = __tagHelperScopeManager.Begin("prepend", "test");
__PrependTagHelper = CreateTagHelper<PrependTagHelper>();
__tagHelperExecutionContext.Add(__PrependTagHelper);
__tagHelperExecutionContext.Output = __tagHelperRunner.RunAsync(__tagHelperExecutionContext).Result;
WriteLiteral(__tagHelperExecutionContext.Output.GenerateStartTag());
WriteLiteral(__tagHelperExecutionContext.Output.GenerateContent());
WriteLiteral("\r\n ");
__tagHelperExecutionContext = __tagHelperScopeManager.Begin("replace", "test");
__ReplaceTagHelper = CreateTagHelper<ReplaceTagHelper>();
__tagHelperExecutionContext.Add(__ReplaceTagHelper);
__tagHelperExecutionContext.Output = __tagHelperRunner.RunAsync(__tagHelperExecutionContext).Result;
WriteLiteral(__tagHelperExecutionContext.Output.GenerateStartTag());
WriteLiteral(__tagHelperExecutionContext.Output.GenerateContent());
WriteLiteral(__tagHelperExecutionContext.Output.GenerateEndTag());
__tagHelperExecutionContext = __tagHelperScopeManager.End();
WriteLiteral("\r\n ");
WriteLiteral(__tagHelperExecutionContext.Output.GenerateEndTag());
__tagHelperExecutionContext = __tagHelperScopeManager.End();
WriteLiteral("\r\n ");
WriteLiteral(__tagHelperExecutionContext.Output.GenerateContent());
WriteLiteral(__tagHelperExecutionContext.Output.GenerateEndTag());
__tagHelperExecutionContext = __tagHelperScopeManager.End();
WriteLiteral("\r\n ");
WriteLiteral(__tagHelperExecutionContext.Output.GenerateEndTag());
__tagHelperExecutionContext = __tagHelperScopeManager.End();
WriteLiteral("\r\n");
__tagHelperStringValueBuffer = EndWritingScope();
__tagHelperExecutionContext.Output = __tagHelperRunner.RunAsync(__tagHelperExecutionContext, __tagHelperStringValueBuffer).Result;
WriteLiteral(__tagHelperExecutionContext.Output.GenerateStartTag());
WriteLiteral(__tagHelperExecutionContext.Output.GenerateContent());
WriteLiteral(__tagHelperExecutionContext.Output.GenerateEndTag());
__tagHelperExecutionContext = __tagHelperScopeManager.End();
}
#pragma warning restore 1998
}
}

View File

@ -1,11 +0,0 @@
@addtaghelper "something"
<modify>
<none>
<append>
<prepend>
<replace>This should not be in the output</replace>
</prepend>
</append>
</none>
</modify>