parent
66aea52542
commit
d080dc8f71
|
|
@ -7,13 +7,13 @@ using Xunit;
|
||||||
|
|
||||||
namespace Microsoft.AspNet.Razor.Runtime.TagHelpers
|
namespace Microsoft.AspNet.Razor.Runtime.TagHelpers
|
||||||
{
|
{
|
||||||
public class TagHelpersExecutionContextTest
|
public class TagHelperExecutionContextTest
|
||||||
{
|
{
|
||||||
[Fact]
|
[Fact]
|
||||||
public void AddHtmlAttribute_MaintainsHTMLAttributes()
|
public void AddHtmlAttribute_MaintainsHTMLAttributes()
|
||||||
{
|
{
|
||||||
// Arrange
|
// Arrange
|
||||||
var executionContext = new TagHelpersExecutionContext("p");
|
var executionContext = new TagHelperExecutionContext("p");
|
||||||
var expectedAttributes = new Dictionary<string, string>
|
var expectedAttributes = new Dictionary<string, string>
|
||||||
{
|
{
|
||||||
{ "class", "btn" },
|
{ "class", "btn" },
|
||||||
|
|
@ -29,10 +29,10 @@ namespace Microsoft.AspNet.Razor.Runtime.TagHelpers
|
||||||
}
|
}
|
||||||
|
|
||||||
[Fact]
|
[Fact]
|
||||||
public void TagHelpersExecutionContext_MaintainsAllAttributes()
|
public void TagHelperExecutionContext_MaintainsAllAttributes()
|
||||||
{
|
{
|
||||||
// Arrange
|
// Arrange
|
||||||
var executionContext = new TagHelpersExecutionContext("p");
|
var executionContext = new TagHelperExecutionContext("p");
|
||||||
var expectedAttributes = new Dictionary<string, object>
|
var expectedAttributes = new Dictionary<string, object>
|
||||||
{
|
{
|
||||||
{ "class", "btn" },
|
{ "class", "btn" },
|
||||||
|
|
@ -53,7 +53,7 @@ namespace Microsoft.AspNet.Razor.Runtime.TagHelpers
|
||||||
public void Add_MaintainsTagHelpers()
|
public void Add_MaintainsTagHelpers()
|
||||||
{
|
{
|
||||||
// Arrange
|
// Arrange
|
||||||
var executionContext = new TagHelpersExecutionContext("p");
|
var executionContext = new TagHelperExecutionContext("p");
|
||||||
var tagHelper = new PTagHelper();
|
var tagHelper = new PTagHelper();
|
||||||
|
|
||||||
// Act
|
// Act
|
||||||
|
|
@ -68,7 +68,7 @@ namespace Microsoft.AspNet.Razor.Runtime.TagHelpers
|
||||||
public void Add_MaintainsMultipleTagHelpers()
|
public void Add_MaintainsMultipleTagHelpers()
|
||||||
{
|
{
|
||||||
// Arrange
|
// Arrange
|
||||||
var executionContext = new TagHelpersExecutionContext("p");
|
var executionContext = new TagHelperExecutionContext("p");
|
||||||
var tagHelper1 = new PTagHelper();
|
var tagHelper1 = new PTagHelper();
|
||||||
var tagHelper2 = new PTagHelper();
|
var tagHelper2 = new PTagHelper();
|
||||||
|
|
||||||
|
|
@ -15,7 +15,7 @@ namespace Microsoft.AspNet.Razor.Runtime.TagHelpers
|
||||||
{
|
{
|
||||||
// Arrange
|
// Arrange
|
||||||
var runner = new TagHelperRunner();
|
var runner = new TagHelperRunner();
|
||||||
var executionContext = new TagHelpersExecutionContext("p");
|
var executionContext = new TagHelperExecutionContext("p");
|
||||||
var executableTagHelper1 = new ExecutableTagHelper();
|
var executableTagHelper1 = new ExecutableTagHelper();
|
||||||
var executableTagHelper2 = new ExecutableTagHelper();
|
var executableTagHelper2 = new ExecutableTagHelper();
|
||||||
|
|
||||||
|
|
@ -34,7 +34,7 @@ namespace Microsoft.AspNet.Razor.Runtime.TagHelpers
|
||||||
{
|
{
|
||||||
// Arrange
|
// Arrange
|
||||||
var runner = new TagHelperRunner();
|
var runner = new TagHelperRunner();
|
||||||
var executionContext = new TagHelpersExecutionContext("p");
|
var executionContext = new TagHelperExecutionContext("p");
|
||||||
var executableTagHelper = new ExecutableTagHelper();
|
var executableTagHelper = new ExecutableTagHelper();
|
||||||
|
|
||||||
// Act
|
// Act
|
||||||
|
|
@ -54,7 +54,7 @@ namespace Microsoft.AspNet.Razor.Runtime.TagHelpers
|
||||||
{
|
{
|
||||||
// Arrange
|
// Arrange
|
||||||
var runner = new TagHelperRunner();
|
var runner = new TagHelperRunner();
|
||||||
var executionContext = new TagHelpersExecutionContext("p");
|
var executionContext = new TagHelperExecutionContext("p");
|
||||||
var tagHelper = new TagHelperContextTouchingTagHelper();
|
var tagHelper = new TagHelperContextTouchingTagHelper();
|
||||||
|
|
||||||
// Act
|
// Act
|
||||||
|
|
@ -71,7 +71,7 @@ namespace Microsoft.AspNet.Razor.Runtime.TagHelpers
|
||||||
{
|
{
|
||||||
// Arrange
|
// Arrange
|
||||||
var runner = new TagHelperRunner();
|
var runner = new TagHelperRunner();
|
||||||
var executionContext = new TagHelpersExecutionContext("p");
|
var executionContext = new TagHelperExecutionContext("p");
|
||||||
var tagHelper = new ExecutableTagHelper();
|
var tagHelper = new ExecutableTagHelper();
|
||||||
var contentWriter = new StringWriter(new StringBuilder("Hello World"));
|
var contentWriter = new StringWriter(new StringBuilder("Hello World"));
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,91 @@
|
||||||
|
// 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.Runtime.TagHelpers;
|
||||||
|
using Xunit;
|
||||||
|
|
||||||
|
namespace Microsoft.AspNet.Razor.Runtime.Test.TagHelpers
|
||||||
|
{
|
||||||
|
public class TagHelperScopeManagerTest
|
||||||
|
{
|
||||||
|
[Fact]
|
||||||
|
public void Begin_CreatesContextWithAppropriateTagName()
|
||||||
|
{
|
||||||
|
// Arrange
|
||||||
|
var scopeManager = new TagHelperScopeManager();
|
||||||
|
|
||||||
|
// Act
|
||||||
|
var executionContext = scopeManager.Begin("p");
|
||||||
|
|
||||||
|
// Assert
|
||||||
|
Assert.Equal("p", executionContext.TagName);
|
||||||
|
}
|
||||||
|
|
||||||
|
[Fact]
|
||||||
|
public void Begin_CanNest()
|
||||||
|
{
|
||||||
|
// Arrange
|
||||||
|
var scopeManager = new TagHelperScopeManager();
|
||||||
|
|
||||||
|
// Act
|
||||||
|
var executionContext = scopeManager.Begin("p");
|
||||||
|
executionContext = scopeManager.Begin("div");
|
||||||
|
|
||||||
|
// Assert
|
||||||
|
Assert.Equal("div", executionContext.TagName);
|
||||||
|
}
|
||||||
|
|
||||||
|
[Fact]
|
||||||
|
public void End_ReturnsParentExecutionContext()
|
||||||
|
{
|
||||||
|
// Arrange
|
||||||
|
var scopeManager = new TagHelperScopeManager();
|
||||||
|
|
||||||
|
// Act
|
||||||
|
var executionContext = scopeManager.Begin("p");
|
||||||
|
executionContext = scopeManager.Begin("div");
|
||||||
|
executionContext = scopeManager.End();
|
||||||
|
|
||||||
|
// Assert
|
||||||
|
Assert.Equal("p", executionContext.TagName);
|
||||||
|
}
|
||||||
|
|
||||||
|
[Fact]
|
||||||
|
public void End_ReturnsNullIfNoNestedContext()
|
||||||
|
{
|
||||||
|
// Arrange
|
||||||
|
var scopeManager = new TagHelperScopeManager();
|
||||||
|
|
||||||
|
// Act
|
||||||
|
var executionContext = scopeManager.Begin("p");
|
||||||
|
executionContext = scopeManager.Begin("div");
|
||||||
|
executionContext = scopeManager.End();
|
||||||
|
executionContext = scopeManager.End();
|
||||||
|
|
||||||
|
// Assert
|
||||||
|
Assert.Null(executionContext);
|
||||||
|
}
|
||||||
|
|
||||||
|
[Fact]
|
||||||
|
public void End_ThrowsIfNoScope()
|
||||||
|
{
|
||||||
|
// Arrange
|
||||||
|
var scopeManager = new TagHelperScopeManager();
|
||||||
|
var expectedError = string.Format(
|
||||||
|
"Must call '{2}.{1}' before calling '{2}.{0}'.",
|
||||||
|
nameof(TagHelperScopeManager.End),
|
||||||
|
nameof(TagHelperScopeManager.Begin),
|
||||||
|
nameof(TagHelperScopeManager));
|
||||||
|
|
||||||
|
// Act & Assert
|
||||||
|
var ex = Assert.Throws<InvalidOperationException>(() =>
|
||||||
|
{
|
||||||
|
scopeManager.End();
|
||||||
|
});
|
||||||
|
|
||||||
|
Assert.Equal(expectedError, ex.Message);
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
Loading…
Reference in New Issue