Convert WhitespaceRewriterTest

This commit is contained in:
Ryan Nowak 2018-06-27 15:38:34 -07:00
parent 8eef4a4bb3
commit ea96c50dce
2 changed files with 26 additions and 20 deletions

View File

@ -1,40 +1,34 @@
// Copyright (c) .NET Foundation. All rights reserved.
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
using System;
using Xunit;
namespace Microsoft.AspNetCore.Razor.Language.Legacy
{
public class WhiteSpaceRewriterTest
public class WhiteSpaceRewriterTest : CsHtmlMarkupParserTestBase
{
public WhiteSpaceRewriterTest()
{
UseBaselineTests = true;
}
[Fact]
public void Rewrite_Moves_Whitespace_Preceeding_ExpressionBlock_To_Parent_Block()
{
// Arrange
var factory = new SpanFactory();
var start = new MarkupBlock(
factory.Markup("test"),
new ExpressionBlock(
factory.Code(" ").AsExpression(),
factory.CodeTransition(SyntaxConstants.TransitionString),
factory.Code("foo").AsExpression()),
factory.Markup("test"));
var parsed = ParseDocument(
RazorLanguageVersion.Latest,
"test @foo test",
Array.Empty<DirectiveDescriptor>());
var rewriter = new WhiteSpaceRewriter();
// Act
var rewritten = rewriter.Rewrite(start);
factory.Reset();
var rewritten = rewriter.Rewrite(parsed.Root);
// Assert
ParserTestBase.EvaluateParseTree(
rewritten,
new MarkupBlock(
factory.Markup("test"),
factory.Markup(" "),
new ExpressionBlock(
factory.CodeTransition(SyntaxConstants.TransitionString),
factory.Code("foo").AsExpression()),
factory.Markup("test")));
BaselineTest(parsed);
}
}
}

View File

@ -0,0 +1,12 @@
Markup block - Gen<None> - 17 - (0:0,0)
Markup span - Gen<Markup> - [test ] - SpanEditHandler;Accepts:Any - (0:0,0) - Symbols:2
HtmlSymbolType.Text;[test];
HtmlSymbolType.WhiteSpace;[ ];
Expression block - Gen<Expr> - 4 - (8:0,8)
Transition span - Gen<None> - [@] - SpanEditHandler;Accepts:None - (8:0,8) - Symbols:1
CSharpSymbolType.Transition;[@];
Code span - Gen<Expr> - [foo] - ImplicitExpressionEditHandler;Accepts:NonWhiteSpace;ImplicitExpression[RTD];K14 - (9:0,9) - Symbols:1
CSharpSymbolType.Identifier;[foo];
Markup span - Gen<Markup> - [ test] - SpanEditHandler;Accepts:Any - (12:0,12) - Symbols:2
HtmlSymbolType.WhiteSpace;[ ];
HtmlSymbolType.Text;[test];