a575963da9
Former-commit-id: da6be194a6b1221998fc28233f2503bd61dd9d14
89 lines
3.0 KiB
C#
89 lines
3.0 KiB
C#
// Copyright (c) Microsoft Corporation. All rights reserved. See License.txt in the project root for license information.
|
|
|
|
using System.Web.Razor.Editor;
|
|
using System.Web.Razor.Generator;
|
|
using System.Web.Razor.Parser.SyntaxTree;
|
|
using System.Web.Razor.Test.Framework;
|
|
using Xunit;
|
|
using Xunit.Extensions;
|
|
|
|
namespace System.Web.Razor.Test.Parser.VB
|
|
{
|
|
public class VBLayoutDirectiveTest : VBHtmlCodeParserTestBase
|
|
{
|
|
[Theory]
|
|
[InlineData("layout")]
|
|
[InlineData("Layout")]
|
|
[InlineData("LAYOUT")]
|
|
[InlineData("layOut")]
|
|
[InlineData("LayOut")]
|
|
[InlineData("LaYoUt")]
|
|
[InlineData("lAyOuT")]
|
|
public void LayoutDirectiveSupportsAnyCasingOfKeyword(string keyword)
|
|
{
|
|
ParseBlockTest("@" + keyword,
|
|
new DirectiveBlock(
|
|
Factory.CodeTransition(),
|
|
Factory.MetaCode(keyword)
|
|
)
|
|
);
|
|
}
|
|
|
|
[Fact]
|
|
public void LayoutDirectiveAcceptsAllTextToEndOfLine()
|
|
{
|
|
ParseBlockTest(@"@Layout Foo Bar Baz",
|
|
new DirectiveBlock(
|
|
Factory.CodeTransition(),
|
|
Factory.MetaCode("Layout ").Accepts(AcceptedCharacters.None),
|
|
Factory.MetaCode("Foo Bar Baz")
|
|
.With(new SetLayoutCodeGenerator("Foo Bar Baz"))
|
|
.WithEditorHints(EditorHints.VirtualPath | EditorHints.LayoutPage)
|
|
)
|
|
);
|
|
}
|
|
|
|
[Fact]
|
|
public void LayoutDirectiveAcceptsAnyIfNoWhitespaceFollowingLayoutKeyword()
|
|
{
|
|
ParseBlockTest(@"@Layout",
|
|
new DirectiveBlock(
|
|
Factory.CodeTransition(),
|
|
Factory.MetaCode("Layout")
|
|
)
|
|
);
|
|
}
|
|
|
|
[Fact]
|
|
public void LayoutDirectiveOutputsMarkerSpanIfAnyWhitespaceAfterLayoutKeyword()
|
|
{
|
|
ParseBlockTest(@"@Layout ",
|
|
new DirectiveBlock(
|
|
Factory.CodeTransition(),
|
|
Factory.MetaCode("Layout ").Accepts(AcceptedCharacters.None),
|
|
Factory.EmptyVB()
|
|
.AsMetaCode()
|
|
.With(new SetLayoutCodeGenerator(String.Empty))
|
|
.WithEditorHints(EditorHints.VirtualPath | EditorHints.LayoutPage)
|
|
)
|
|
);
|
|
}
|
|
|
|
[Fact]
|
|
public void LayoutDirectiveAcceptsTrailingNewlineButDoesNotIncludeItInLayoutPath()
|
|
{
|
|
ParseBlockTest(@"@Layout Foo
|
|
",
|
|
new DirectiveBlock(
|
|
Factory.CodeTransition(),
|
|
Factory.MetaCode("Layout ").Accepts(AcceptedCharacters.None),
|
|
Factory.MetaCode("Foo\r\n")
|
|
.With(new SetLayoutCodeGenerator("Foo"))
|
|
.Accepts(AcceptedCharacters.None)
|
|
.WithEditorHints(EditorHints.VirtualPath | EditorHints.LayoutPage)
|
|
)
|
|
);
|
|
}
|
|
}
|
|
}
|