File: Legacy\CSharpSpecialBlockTest.cs
Web Access
Project: src\src\Razor\src\Compiler\Microsoft.AspNetCore.Razor.Language\legacyTest\Microsoft.AspNetCore.Razor.Language.Legacy.UnitTests.csproj (Microsoft.AspNetCore.Razor.Language.Legacy.UnitTests)
// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the MIT license.
 
#nullable disable
 
using System;
using Xunit;
 
namespace Microsoft.AspNetCore.Razor.Language.Legacy;
 
public class CSharpSpecialBlockTest() : ParserTestBase(layer: TestProject.Layer.Compiler, validateSpanEditHandlers: true, useLegacyTokenizer: true)
{
    [Fact]
    public void NonKeywordStatementInCodeBlockIsHandledCorrectly()
    {
        ParseDocumentTest(
@"@{
    List<dynamic> photos = gallery.Photo.ToList();
}");
    }
 
    [Fact]
    public void BalancesBracesOutsideStringsIfFirstCharIsBraceAndReturnsSpanOfTypeCode()
    {
        // ParseBlockBalancesBracesOutsideStringsIfFirstCharacterIsBraceAndReturnsSpanOfTypeCode
        ParseDocumentTest("@{foo\"b}ar\" if(condition) { string.Format(\"{0}\"); } }");
    }
 
    [Fact]
    public void BalancesParensOutsideStringsIfFirstCharIsParenAndReturnsSpanOfTypeExpr()
    {
        // ParseBlockBalancesParensOutsideStringsIfFirstCharacterIsParenAndReturnsSpanOfTypeExpression
        ParseDocumentTest("@(foo\"b)ar\" if(condition) { string.Format(\"{0}\"); } )");
    }
 
    [Fact]
    public void ParseBlockIgnoresSingleSlashAtStart()
    {
        ParseDocumentTest("@/ foo");
    }
 
    [Fact]
    public void ParseBlockTerminatesSingleLineCommentAtEndOfLine()
    {
        ParseDocumentTest("""
            @if(!false) {
                // Foo
            	<p>A real tag!</p>
            }
            """);
    }
}