From 7d7b2795e122efd2dfa724ef0cd3263afbbebc2a Mon Sep 17 00:00:00 2001 From: "N. Taylor Mullen" Date: Thu, 2 Apr 2015 16:58:39 -0700 Subject: [PATCH] Change tests to utilize Environment.NewLine. - Normalized newlines for code generation tests. We default all tests to use \r\n. This way we can have a consistent test experience cross plat. - For tests that expected indexes that were affected by new lines I modified them to account for cross plat scenarios. - Added a few test classes to ensure we could normalize newlines for codegen tests. #106 --- .../CodeBuilder/CSharp/CSharpCodeBuilder.cs | 8 +- .../CodeBuilder/CSharp/CSharpCodeWriter.cs | 4 +- .../CSharp/CSharpCodeWritingScope.cs | 2 +- .../Compiler/CodeBuilder/CodeWriter.cs | 16 +- .../Editor/RazorEditorParserTest.cs | 57 +-- .../Framework/ParserTestBase.cs | 24 +- .../Generator/CodeGenTestCodeBuilder.cs | 31 ++ .../Generator/CodeGenTestHost.cs | 28 ++ .../CodeTree/CSharpCodeBuilderTests.cs | 4 +- .../Compiler/CSharpLineMappingWriterTest.cs | 2 +- .../Generator/RazorCodeGeneratorTest.cs | 75 ++-- ...TagHelperAttributeValueCodeRendererTest.cs | 2 +- .../Generator/TagHelperTestBase.cs | 2 +- .../Parser/CSharp/CSharpAutoCompleteTest.cs | 8 +- .../Parser/CSharp/CSharpBlockTest.cs | 28 +- .../Parser/CSharp/CSharpErrorTest.cs | 46 +-- .../CSharp/CSharpExplicitExpressionTest.cs | 2 +- .../CSharp/CSharpLayoutDirectiveTest.cs | 4 +- .../Parser/CSharp/CSharpRazorCommentsTest.cs | 14 +- .../Parser/CSharp/CSharpSectionTest.cs | 28 +- .../Parser/CSharp/CSharpSpecialBlockTest.cs | 8 +- .../Parser/CSharp/CSharpTemplateTest.cs | 4 +- .../Parser/CSharp/CSharpToMarkupSwitchTest.cs | 107 +++--- .../Parser/CSharp/CSharpVerbatimBlockTest.cs | 11 +- .../CSharp/CSharpWhitespaceHandlingTest.cs | 2 +- .../Parser/Html/HtmlBlockTest.cs | 12 +- .../Parser/Html/HtmlDocumentTest.cs | 4 +- .../Parser/Html/HtmlToCodeSwitchTest.cs | 38 +- .../CSharpPartialParsingTest.cs | 338 +++++++++--------- .../PartialParsing/PartialParsingTestBase.cs | 55 +-- .../CS/Output/AttributeTargetingTagHelpers.cs | 2 +- .../CodeGenerator/CS/Output/Await.cs | 2 +- ...TagHelpers.CustomAttributeCodeGenerator.cs | 2 +- .../CS/Output/BasicTagHelpers.Prefixed.cs | 2 +- .../Output/BasicTagHelpers.RemoveTagHelper.cs | 2 +- .../CS/Output/BasicTagHelpers.cs | 2 +- .../CodeGenerator/CS/Output/Blocks.cs | 2 +- .../CodeGenerator/CS/Output/CodeBlock.cs | 2 +- .../CS/Output/ComplexTagHelpers.cs | 2 +- .../CS/Output/ConditionalAttributes.cs | 2 +- .../CS/Output/DuplicateTargetTagHelper.cs | 2 +- .../CS/Output/EmptyAttributeTagHelpers.cs | 2 +- .../CS/Output/EscapedTagHelpers.cs | 2 +- .../CS/Output/ExplicitExpression.cs | 2 +- .../CS/Output/ExpressionsInCode.cs | 2 +- .../CodeGenerator/CS/Output/FunctionsBlock.cs | 2 +- .../CS/Output/FunctionsBlock_Tabs.cs | 2 +- .../CS/Output/HtmlCommentWithQuote_Double.cs | 2 +- .../CS/Output/HtmlCommentWithQuote_Single.cs | 2 +- .../CS/Output/ImplicitExpression.cs | 2 +- .../CodeGenerator/CS/Output/Imports.cs | 2 +- .../CS/Output/Inherits.Runtime.cs | 2 +- .../CodeGenerator/CS/Output/InlineBlocks.cs | 2 +- .../CodeGenerator/CS/Output/Instrumented.cs | 2 +- .../CS/Output/LayoutDirective.cs | 2 +- .../CS/Output/MarkupInCodeBlock.cs | 2 +- .../CS/Output/NestedCodeBlocks.cs | 2 +- .../CodeGenerator/CS/Output/NoLinePragmas.cs | 2 +- .../CodeGenerator/CS/Output/RazorComments.cs | 2 +- .../CodeGenerator/CS/Output/ResolveUrl.cs | 2 +- .../CodeGenerator/CS/Output/Sections.cs | 2 +- .../CS/Output/SingleTagHelper.cs | 2 +- .../CS/Output/TagHelpersInSection.cs | 2 +- .../CodeGenerator/CS/Output/Templates.cs | 2 +- .../Tokenizer/CSharpTokenizerLiteralTest.cs | 9 +- .../Tokenizer/TokenizerTestBase.cs | 2 +- 66 files changed, 597 insertions(+), 446 deletions(-) create mode 100644 test/Microsoft.AspNet.Razor.Test/Generator/CodeGenTestCodeBuilder.cs create mode 100644 test/Microsoft.AspNet.Razor.Test/Generator/CodeGenTestHost.cs diff --git a/src/Microsoft.AspNet.Razor/Generator/Compiler/CodeBuilder/CSharp/CSharpCodeBuilder.cs b/src/Microsoft.AspNet.Razor/Generator/Compiler/CodeBuilder/CSharp/CSharpCodeBuilder.cs index 2226775970..8b895795da 100644 --- a/src/Microsoft.AspNet.Razor/Generator/Compiler/CodeBuilder/CSharp/CSharpCodeBuilder.cs +++ b/src/Microsoft.AspNet.Razor/Generator/Compiler/CodeBuilder/CSharp/CSharpCodeBuilder.cs @@ -21,9 +21,15 @@ namespace Microsoft.AspNet.Razor.Generator.Compiler.CSharp private CodeTree Tree { get { return Context.CodeTreeBuilder.CodeTree; } } public RazorEngineHost Host { get { return Context.Host; } } + // Internal for testing + internal virtual CSharpCodeWriter CreateCodeWriter() + { + return new CSharpCodeWriter(); + } + public override CodeBuilderResult Build() { - var writer = new CSharpCodeWriter(); + var writer = CreateCodeWriter(); if (!Host.DesignTimeMode && !string.IsNullOrEmpty(Context.Checksum)) { diff --git a/src/Microsoft.AspNet.Razor/Generator/Compiler/CodeBuilder/CSharp/CSharpCodeWriter.cs b/src/Microsoft.AspNet.Razor/Generator/Compiler/CodeBuilder/CSharp/CSharpCodeWriter.cs index f0d45ee175..8bb0d5a0da 100644 --- a/src/Microsoft.AspNet.Razor/Generator/Compiler/CodeBuilder/CSharp/CSharpCodeWriter.cs +++ b/src/Microsoft.AspNet.Razor/Generator/Compiler/CodeBuilder/CSharp/CSharpCodeWriter.cs @@ -196,7 +196,7 @@ namespace Microsoft.AspNet.Razor.Generator.Compiler.CSharp public CSharpCodeWriter WriteLineNumberDirective(int lineNumber, string file) { if (!string.IsNullOrEmpty(LastWrite) && - !LastWrite.EndsWith(Environment.NewLine, StringComparison.Ordinal)) + !LastWrite.EndsWith(NewLine, StringComparison.Ordinal)) { WriteLine(); } @@ -455,7 +455,7 @@ namespace Microsoft.AspNet.Razor.Generator.Compiler.CSharp } Write("\" +"); - Write(Environment.NewLine); + Write(NewLine); Write("\""); } } diff --git a/src/Microsoft.AspNet.Razor/Generator/Compiler/CodeBuilder/CSharp/CSharpCodeWritingScope.cs b/src/Microsoft.AspNet.Razor/Generator/Compiler/CodeBuilder/CSharp/CSharpCodeWritingScope.cs index 3d23cddacd..8635516e3d 100644 --- a/src/Microsoft.AspNet.Razor/Generator/Compiler/CodeBuilder/CSharp/CSharpCodeWritingScope.cs +++ b/src/Microsoft.AspNet.Razor/Generator/Compiler/CodeBuilder/CSharp/CSharpCodeWritingScope.cs @@ -47,7 +47,7 @@ namespace Microsoft.AspNet.Razor.Generator.Compiler private void WriteEndScope() { - TryAutoSpace(Environment.NewLine); + TryAutoSpace(_writer.NewLine); // Ensure the scope hasn't been modified if (_writer.CurrentIndent == _startIndent) diff --git a/src/Microsoft.AspNet.Razor/Generator/Compiler/CodeBuilder/CodeWriter.cs b/src/Microsoft.AspNet.Razor/Generator/Compiler/CodeBuilder/CodeWriter.cs index a090cd289e..083dceb866 100644 --- a/src/Microsoft.AspNet.Razor/Generator/Compiler/CodeBuilder/CodeWriter.cs +++ b/src/Microsoft.AspNet.Razor/Generator/Compiler/CodeBuilder/CodeWriter.cs @@ -10,8 +10,7 @@ namespace Microsoft.AspNet.Razor.Generator.Compiler public class CodeWriter : IDisposable { private static readonly char[] NewLineCharacters = new char[] { '\r', '\n' }; - - private StringWriter _writer = new StringWriter(); + private readonly StringWriter _writer = new StringWriter(); private bool _newLine; private string _cache = string.Empty; private bool _dirty = false; @@ -21,8 +20,21 @@ namespace Microsoft.AspNet.Razor.Generator.Compiler private int _currentLineCharacterIndex; public string LastWrite { get; private set; } + public int CurrentIndent { get; private set; } + public string NewLine + { + get + { + return _writer.NewLine; + } + set + { + _writer.NewLine = value; + } + } + public CodeWriter ResetIndent() { return SetIndent(0); diff --git a/test/Microsoft.AspNet.Razor.Test/Editor/RazorEditorParserTest.cs b/test/Microsoft.AspNet.Razor.Test/Editor/RazorEditorParserTest.cs index 64664f2ab5..f78e62de42 100644 --- a/test/Microsoft.AspNet.Razor.Test/Editor/RazorEditorParserTest.cs +++ b/test/Microsoft.AspNet.Razor.Test/Editor/RazorEditorParserTest.cs @@ -7,6 +7,7 @@ using System.Web.WebPages.TestUtils; using Microsoft.AspNet.Razor.Editor; using Microsoft.AspNet.Razor.Parser; using Microsoft.AspNet.Razor.Test.Framework; +using Microsoft.AspNet.Razor.Test.Generator; using Microsoft.AspNet.Razor.Test.Utils; using Microsoft.AspNet.Razor.Text; using Microsoft.AspNet.Testing; @@ -98,15 +99,19 @@ namespace Microsoft.AspNet.Razor.Test.Editor var parameterName = "change"; var exception = Assert.Throws( parameterName, - () => new RazorEditorParser( - CreateHost(), - "C:\\Foo.cshtml").CheckForStructureChanges(change)); + () => + { + using (var parser = new RazorEditorParser(CreateHost(), "C:\\Foo.cshtml")) + { + parser.CheckForStructureChanges(change); + } + }); ExceptionHelpers.ValidateArgumentException(parameterName, RazorResources.FormatStructure_Member_CannotBeNull("Buffer", "TextChange"), exception); } private static RazorEngineHost CreateHost() { - return new RazorEngineHost(new CSharpRazorCodeLanguage()) { DesignTimeMode = true }; + return new CodeGenTestHost(new CSharpRazorCodeLanguage()) { DesignTimeMode = true }; } [Fact] @@ -114,7 +119,7 @@ namespace Microsoft.AspNet.Razor.Test.Editor public void CheckForStructureChangesStartsReparseAndFiresDocumentParseCompletedEventIfNoAdditionalChangesQueued() { // Arrange - using (RazorEditorParser parser = CreateClientParser()) + using (var parser = CreateClientParser()) { var input = new StringTextBuffer(SimpleCSHTMLDocument.ReadAllText()); @@ -143,30 +148,32 @@ namespace Microsoft.AspNet.Razor.Test.Editor public void CheckForStructureChangesStartsFullReparseIfChangeOverlapsMultipleSpans() { // Arrange - var parser = new RazorEditorParser(CreateHost(), TestLinePragmaFileName); - var original = new StringTextBuffer("Foo @bar Baz"); - var changed = new StringTextBuffer("Foo @bap Daz"); - var change = new TextChange(7, 3, original, 3, changed); - - var parseComplete = new ManualResetEventSlim(); - var parseCount = 0; - parser.DocumentParseComplete += (sender, args) => + using (var parser = new RazorEditorParser(CreateHost(), TestLinePragmaFileName)) { - Interlocked.Increment(ref parseCount); - parseComplete.Set(); - }; + var original = new StringTextBuffer("Foo @bar Baz"); + var changed = new StringTextBuffer("Foo @bap Daz"); + var change = new TextChange(7, 3, original, 3, changed); - Assert.Equal(PartialParseResult.Rejected, parser.CheckForStructureChanges(new TextChange(0, 0, new StringTextBuffer(String.Empty), 12, original))); - MiscUtils.DoWithTimeoutIfNotDebugging(parseComplete.Wait); // Wait for the parse to finish - parseComplete.Reset(); + var parseComplete = new ManualResetEventSlim(); + var parseCount = 0; + parser.DocumentParseComplete += (sender, args) => + { + Interlocked.Increment(ref parseCount); + parseComplete.Set(); + }; - // Act - var result = parser.CheckForStructureChanges(change); + Assert.Equal(PartialParseResult.Rejected, parser.CheckForStructureChanges(new TextChange(0, 0, new StringTextBuffer(String.Empty), 12, original))); + MiscUtils.DoWithTimeoutIfNotDebugging(parseComplete.Wait); // Wait for the parse to finish + parseComplete.Reset(); - // Assert - Assert.Equal(PartialParseResult.Rejected, result); - MiscUtils.DoWithTimeoutIfNotDebugging(parseComplete.Wait); - Assert.Equal(2, parseCount); + // Act + var result = parser.CheckForStructureChanges(change); + + // Assert + Assert.Equal(PartialParseResult.Rejected, result); + MiscUtils.DoWithTimeoutIfNotDebugging(parseComplete.Wait); + Assert.Equal(2, parseCount); + } } private TextChange CreateDummyChange() diff --git a/test/Microsoft.AspNet.Razor.Test/Framework/ParserTestBase.cs b/test/Microsoft.AspNet.Razor.Test/Framework/ParserTestBase.cs index dfe5340130..36c0a767b4 100644 --- a/test/Microsoft.AspNet.Razor.Test/Framework/ParserTestBase.cs +++ b/test/Microsoft.AspNet.Razor.Test/Framework/ParserTestBase.cs @@ -1,8 +1,6 @@ // 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. -//#define PARSER_TRACE - using System; using System.Collections.Generic; using System.Diagnostics; @@ -292,11 +290,11 @@ namespace Microsoft.AspNet.Razor.Test.Framework EvaluateSyntaxTreeNode(collector, actualRoot, expectedRoot); if (collector.Success) { - WriteTraceLine("Parse Tree Validation Succeeded:\r\n{0}", collector.Message); + WriteTraceLine("Parse Tree Validation Succeeded:" + Environment.NewLine + collector.Message); } else { - Assert.True(false, String.Format("\r\n{0}", collector.Message)); + Assert.True(false, Environment.NewLine + collector.Message); } } } @@ -458,20 +456,20 @@ namespace Microsoft.AspNet.Razor.Test.Framework // Evaluate the errors if (expectedErrors == null || expectedErrors.Count == 0) { - Assert.True(realCount == 0, - String.Format("Expected that no errors would be raised, but the following errors were:\r\n{0}", FormatErrors(actualErrors))); + Assert.True( + realCount == 0, + "Expected that no errors would be raised, but the following errors were:" + Environment.NewLine + FormatErrors(actualErrors)); } else { - Assert.True(expectedErrors.Count == realCount, - String.Format("Expected that {0} errors would be raised, but {1} errors were.\r\nExpected Errors: \r\n{2}\r\nActual Errors: \r\n{3}", - expectedErrors.Count, - realCount, - FormatErrors(expectedErrors), - FormatErrors(actualErrors))); + Assert.True( + expectedErrors.Count == realCount, + $"Expected that {expectedErrors.Count} errors would be raised, but {realCount} errors were." + + $"{Environment.NewLine}Expected Errors: {Environment.NewLine}{FormatErrors(expectedErrors)}" + + $"{Environment.NewLine}Actual Errors: {Environment.NewLine}{FormatErrors(actualErrors)}"); Assert.Equal(expectedErrors, actualErrors); } - WriteTraceLine("Expected Errors were raised:\r\n{0}", FormatErrors(expectedErrors)); + WriteTraceLine("Expected Errors were raised:" + Environment.NewLine + FormatErrors(expectedErrors)); } public static string FormatErrors(IEnumerable errors) diff --git a/test/Microsoft.AspNet.Razor.Test/Generator/CodeGenTestCodeBuilder.cs b/test/Microsoft.AspNet.Razor.Test/Generator/CodeGenTestCodeBuilder.cs new file mode 100644 index 0000000000..347ec7071c --- /dev/null +++ b/test/Microsoft.AspNet.Razor.Test/Generator/CodeGenTestCodeBuilder.cs @@ -0,0 +1,31 @@ +// 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 Microsoft.AspNet.Razor.Generator; +using Microsoft.AspNet.Razor.Generator.Compiler.CSharp; + +namespace Microsoft.AspNet.Razor.Test.Generator +{ + public class CodeGenTestCodeBuilder : CSharpCodeBuilder + { + public CodeGenTestCodeBuilder(CodeBuilderContext context) + : base(context) + { + } + + internal override CSharpCodeWriter CreateCodeWriter() + { + return new TestCodeWriter(); + } + + private class TestCodeWriter : CSharpCodeWriter + { + public TestCodeWriter() + { + // We normalize newlines so no matter what platform we're on they're consistent + // (for code generation tests). + NewLine = "\r\n"; + } + } + } +} \ No newline at end of file diff --git a/test/Microsoft.AspNet.Razor.Test/Generator/CodeGenTestHost.cs b/test/Microsoft.AspNet.Razor.Test/Generator/CodeGenTestHost.cs new file mode 100644 index 0000000000..3d96c41163 --- /dev/null +++ b/test/Microsoft.AspNet.Razor.Test/Generator/CodeGenTestHost.cs @@ -0,0 +1,28 @@ +// 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 Microsoft.AspNet.Razor.Generator; +using Microsoft.AspNet.Razor.Generator.Compiler; + +namespace Microsoft.AspNet.Razor.Test.Generator +{ + public class CodeGenTestHost : RazorEngineHost + { + public CodeGenTestHost(RazorCodeLanguage language) + : base(language) + { + } + + public override CodeBuilder DecorateCodeBuilder(CodeBuilder incomingBuilder, CodeBuilderContext context) + { + if (incomingBuilder is CodeGenTestCodeBuilder) + { + return incomingBuilder; + } + else + { + return new CodeGenTestCodeBuilder(context); + } + } + } +} \ No newline at end of file diff --git a/test/Microsoft.AspNet.Razor.Test/Generator/CodeTree/CSharpCodeBuilderTests.cs b/test/Microsoft.AspNet.Razor.Test/Generator/CodeTree/CSharpCodeBuilderTests.cs index caedddb0ba..ea45eb6557 100644 --- a/test/Microsoft.AspNet.Razor.Test/Generator/CodeTree/CSharpCodeBuilderTests.cs +++ b/test/Microsoft.AspNet.Razor.Test/Generator/CodeTree/CSharpCodeBuilderTests.cs @@ -18,7 +18,7 @@ namespace Microsoft.AspNet.Razor.Test.Generator.CodeTree { var syntaxTreeNode = new Mock(new SpanBuilder()); var language = new CSharpRazorCodeLanguage(); - var host = new RazorEngineHost(language); + var host = new CodeGenTestHost(language); var codeBuilderContext = new CodeBuilderContext( host, "TestClass", @@ -28,7 +28,7 @@ namespace Microsoft.AspNet.Razor.Test.Generator.CodeTree errorSink: new ParserErrorSink()); codeBuilderContext.CodeTreeBuilder.AddUsingChunk("FakeNamespace1", syntaxTreeNode.Object); codeBuilderContext.CodeTreeBuilder.AddUsingChunk("FakeNamespace2.SubNamespace", syntaxTreeNode.Object); - var codeBuilder = language.CreateCodeBuilder(codeBuilderContext); + var codeBuilder = new CodeGenTestCodeBuilder(codeBuilderContext); // Act var result = codeBuilder.Build(); diff --git a/test/Microsoft.AspNet.Razor.Test/Generator/Compiler/CSharpLineMappingWriterTest.cs b/test/Microsoft.AspNet.Razor.Test/Generator/Compiler/CSharpLineMappingWriterTest.cs index 0fb5c4d35e..f55ae02eca 100644 --- a/test/Microsoft.AspNet.Razor.Test/Generator/Compiler/CSharpLineMappingWriterTest.cs +++ b/test/Microsoft.AspNet.Razor.Test/Generator/Compiler/CSharpLineMappingWriterTest.cs @@ -45,7 +45,7 @@ namespace Microsoft.AspNet.Razor.Generator.Compiler.CSharp ""); var expectedMappings = new LineMapping( new MappingLocation(location, 30), - new MappingLocation(new SourceLocation(18, 1, 0), 11)); + new MappingLocation(new SourceLocation(16 + Environment.NewLine.Length, 1, 0), 11)); var writer = new CSharpCodeWriter(); // Act diff --git a/test/Microsoft.AspNet.Razor.Test/Generator/RazorCodeGeneratorTest.cs b/test/Microsoft.AspNet.Razor.Test/Generator/RazorCodeGeneratorTest.cs index c5d4ef5b45..d95d886fca 100644 --- a/test/Microsoft.AspNet.Razor.Test/Generator/RazorCodeGeneratorTest.cs +++ b/test/Microsoft.AspNet.Razor.Test/Generator/RazorCodeGeneratorTest.cs @@ -1,11 +1,11 @@ // 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. -//#define GENERATE_BASELINES - using System; using System.Collections.Generic; +using System.IO; using System.Linq; +using System.Text; using Microsoft.AspNet.Razor.Generator; using Microsoft.AspNet.Razor.Generator.Compiler; using Microsoft.AspNet.Razor.Parser.SyntaxTree; @@ -26,19 +26,20 @@ namespace Microsoft.AspNet.Razor.Test.Generator protected RazorEngineHost CreateHost() { - return new RazorEngineHost(new TLanguage()); + return new CodeGenTestHost(new TLanguage()); } - protected void RunTest(string name, - string baselineName = null, - bool generatePragmas = true, - bool designTimeMode = false, - IList expectedDesignTimePragmas = null, - TestSpan[] spans = null, - TabTest tabTest = TabTest.Both, - Func hostConfig = null, - Func templateEngineConfig = null, - Action onResults = null) + protected void RunTest( + string name, + string baselineName = null, + bool generatePragmas = true, + bool designTimeMode = false, + IList expectedDesignTimePragmas = null, + TestSpan[] spans = null, + TabTest tabTest = TabTest.Both, + Func hostConfig = null, + Func templateEngineConfig = null, + Action onResults = null) { var testRun = false; @@ -85,16 +86,41 @@ namespace Microsoft.AspNet.Razor.Test.Generator Assert.True(testRun, "No test was run because TabTest is not set correctly"); } - private void RunTestInternal(string name, - string baselineName, - bool generatePragmas, - bool designTimeMode, - IList expectedDesignTimePragmas, - TestSpan[] spans, - bool withTabs, - Func hostConfig, - Func templateEngineConfig, - Action onResults = null) + private Stream NormalizeNewLines(Stream inputStream) + { + if (!inputStream.CanSeek) + { + var memoryStream = new MemoryStream(); + inputStream.CopyTo(memoryStream); + + // We don't have to dispose the input stream since it is owned externally. + inputStream = memoryStream; + } + + inputStream.Position = 0; + var reader = new StreamReader(inputStream); + + // Normalize newlines to be \r\n. This is to ensure when running tests cross plat the final test output + // is compared against test files in a normalized fashion. + var fileContents = reader.ReadToEnd().Replace(Environment.NewLine, "\r\n"); + + // Since this is a test we can normalize to utf8. + inputStream = new MemoryStream(Encoding.UTF8.GetBytes(fileContents)); + + return inputStream; + } + + private void RunTestInternal( + string name, + string baselineName, + bool generatePragmas, + bool designTimeMode, + IList expectedDesignTimePragmas, + TestSpan[] spans, + bool withTabs, + Func hostConfig, + Func templateEngineConfig, + Action onResults = null) { // Load the test files if (baselineName == null) @@ -146,8 +172,9 @@ namespace Microsoft.AspNet.Razor.Test.Generator GeneratorResults results = null; using (var source = TestFile.Create(sourceLocation).OpenRead()) { + var sourceFile = NormalizeNewLines(source); var sourceFileName = generatePragmas ? String.Format("{0}.{1}", name, FileExtension) : null; - results = engine.GenerateCode(source, className: name, rootNamespace: TestRootNamespaceName, sourceFileName: sourceFileName); + results = engine.GenerateCode(sourceFile, className: name, rootNamespace: TestRootNamespaceName, sourceFileName: sourceFileName); } // Only called if GENERATE_BASELINES is set, otherwise compiled out. BaselineWriter.WriteBaseline(String.Format(@"test\Microsoft.AspNet.Razor.Test\TestFiles\CodeGenerator\{0}\Output\{1}.{2}", LanguageName, baselineName, BaselineExtension), results.GeneratedCode); diff --git a/test/Microsoft.AspNet.Razor.Test/Generator/TagHelperAttributeValueCodeRendererTest.cs b/test/Microsoft.AspNet.Razor.Test/Generator/TagHelperAttributeValueCodeRendererTest.cs index 26fb2ac1cc..d6309bbae0 100644 --- a/test/Microsoft.AspNet.Razor.Test/Generator/TagHelperAttributeValueCodeRendererTest.cs +++ b/test/Microsoft.AspNet.Razor.Test/Generator/TagHelperAttributeValueCodeRendererTest.cs @@ -49,7 +49,7 @@ namespace Microsoft.AspNet.Razor.Test.Generator }); } - private class CodeBuilderReplacingHost : RazorEngineHost + private class CodeBuilderReplacingHost : CodeGenTestHost { public CodeBuilderReplacingHost(RazorEngineHost originalHost) : base(new CSharpRazorCodeLanguage()) diff --git a/test/Microsoft.AspNet.Razor.Test/Generator/TagHelperTestBase.cs b/test/Microsoft.AspNet.Razor.Test/Generator/TagHelperTestBase.cs index a3367cc4d6..e245757f1c 100644 --- a/test/Microsoft.AspNet.Razor.Test/Generator/TagHelperTestBase.cs +++ b/test/Microsoft.AspNet.Razor.Test/Generator/TagHelperTestBase.cs @@ -95,7 +95,7 @@ namespace Microsoft.AspNet.Razor.Test.Generator } } - protected class TestCSharpCodeBuilder : CSharpCodeBuilder + protected class TestCSharpCodeBuilder : CodeGenTestCodeBuilder { public TestCSharpCodeBuilder(CodeBuilderContext context) : base(context) diff --git a/test/Microsoft.AspNet.Razor.Test/Parser/CSharp/CSharpAutoCompleteTest.cs b/test/Microsoft.AspNet.Razor.Test/Parser/CSharp/CSharpAutoCompleteTest.cs index 99e57057ab..9450da936c 100644 --- a/test/Microsoft.AspNet.Razor.Test/Parser/CSharp/CSharpAutoCompleteTest.cs +++ b/test/Microsoft.AspNet.Razor.Test/Parser/CSharp/CSharpAutoCompleteTest.cs @@ -73,7 +73,7 @@ namespace Microsoft.AspNet.Razor.Test.Parser.CSharp .Accepts(AcceptedCharacters.None), Factory.MetaCode("functions{") .Accepts(AcceptedCharacters.None), - Factory.Code("\r\nfoo") + Factory.Code(Environment.NewLine + "foo") .AsFunctionsBody() .With(new AutoCompleteEditHandler(CSharpLanguageCharacteristics.Instance.TokenizeString) { @@ -94,14 +94,14 @@ namespace Microsoft.AspNet.Razor.Test.Parser.CSharp .AutoCompleteWith("}", atEndOfSpan: true) .Accepts(AcceptedCharacters.Any), new MarkupBlock( - Factory.Markup("\r\n"), + Factory.Markup(Environment.NewLine), new MarkupTagBlock( Factory.Markup("

")), Factory.Markup("Foo"), new MarkupTagBlock( Factory.Markup("

")))), new RazorError(RazorResources.FormatParseError_Expected_X("}"), - 29, 1, 10)); + 27 + Environment.NewLine.Length, 1, 10)); } [Fact] @@ -112,7 +112,7 @@ namespace Microsoft.AspNet.Razor.Test.Parser.CSharp new StatementBlock( Factory.CodeTransition(), Factory.MetaCode("{").Accepts(AcceptedCharacters.None), - Factory.Code("\r\n") + Factory.Code(Environment.NewLine) .AsStatement() .With(new AutoCompleteEditHandler(CSharpLanguageCharacteristics.Instance.TokenizeString) { AutoCompleteString = "}" }), new MarkupBlock( diff --git a/test/Microsoft.AspNet.Razor.Test/Parser/CSharp/CSharpBlockTest.cs b/test/Microsoft.AspNet.Razor.Test/Parser/CSharp/CSharpBlockTest.cs index 25f7d3ef67..02c3be7a7d 100644 --- a/test/Microsoft.AspNet.Razor.Test/Parser/CSharp/CSharpBlockTest.cs +++ b/test/Microsoft.AspNet.Razor.Test/Parser/CSharp/CSharpBlockTest.cs @@ -677,11 +677,11 @@ catch(bar) { baz(); }", BlockType.Statement, SpanKind.Code); + " " + Environment.NewLine + " }", new StatementBlock( - Factory.Code("foreach(var c in db.Categories) {\r\n").AsStatement(), + Factory.Code("foreach(var c in db.Categories) {" + Environment.NewLine).AsStatement(), new MarkupBlock( Factory.Markup(" "), BlockFactory.MarkupTagBlock("
", AcceptedCharacters.None), - Factory.Markup("\r\n "), + Factory.Markup(Environment.NewLine + " "), BlockFactory.MarkupTagBlock("

", AcceptedCharacters.None), Factory.EmptyHtml(), new ExpressionBlock( @@ -690,21 +690,27 @@ catch(bar) { baz(); }", BlockType.Statement, SpanKind.Code); .AsImplicitExpression(CSharpCodeParser.DefaultKeywords) .Accepts(AcceptedCharacters.NonWhiteSpace)), BlockFactory.MarkupTagBlock("

", AcceptedCharacters.None), - Factory.Markup("\r\n "), + Factory.Markup(Environment.NewLine + " "), BlockFactory.MarkupTagBlock("
    ", AcceptedCharacters.None), - Factory.Markup("\r\n"), + Factory.Markup(Environment.NewLine), new StatementBlock( Factory.Code(@" ").AsStatement(), Factory.CodeTransition(), - Factory.Code("foreach(var p in c.Products) {\r\n").AsStatement(), + Factory.Code("foreach(var p in c.Products) {" + Environment.NewLine).AsStatement(), new MarkupBlock( Factory.Markup(" "), BlockFactory.MarkupTagBlock("
  • ", AcceptedCharacters.None), new MarkupTagBlock( Factory.Markup("(" href=\"", 193, 5, 30), new LocationTagged("\"", 256, 5, 93)), + new MarkupBlock( + new AttributeBlockCodeGenerator( + "href", + new LocationTagged(" href=\"", 183 + Environment.NewLine.Length * 5, 5, 30), + new LocationTagged("\"", 246 + Environment.NewLine.Length * 5, 5, 93)), Factory.Markup(" href=\"").With(SpanCodeGenerator.Null), - new MarkupBlock(new DynamicAttributeBlockCodeGenerator(new LocationTagged(string.Empty, 200, 5, 37), 200, 5, 37), + new MarkupBlock( + new DynamicAttributeBlockCodeGenerator( + new LocationTagged(string.Empty, 190 + Environment.NewLine.Length * 5, 5, 37), 190 + Environment.NewLine.Length * 5, 5, 37), new ExpressionBlock( Factory.CodeTransition(), Factory.Code("Html.ActionUrl(\"Products\", \"Detail\", new { id = p.Id })") @@ -720,13 +726,13 @@ catch(bar) { baz(); }", BlockType.Statement, SpanKind.Code); .Accepts(AcceptedCharacters.NonWhiteSpace)), BlockFactory.MarkupTagBlock("", AcceptedCharacters.None), BlockFactory.MarkupTagBlock("
  • ", AcceptedCharacters.None), - Factory.Markup("\r\n").Accepts(AcceptedCharacters.None)), - Factory.Code(" }\r\n").AsStatement().Accepts(AcceptedCharacters.None)), + Factory.Markup(Environment.NewLine).Accepts(AcceptedCharacters.None)), + Factory.Code(" }" + Environment.NewLine).AsStatement().Accepts(AcceptedCharacters.None)), Factory.Markup(" "), BlockFactory.MarkupTagBlock("
", AcceptedCharacters.None), - Factory.Markup("\r\n "), + Factory.Markup(Environment.NewLine + " "), BlockFactory.MarkupTagBlock("
", AcceptedCharacters.None), - Factory.Markup("\r\n").Accepts(AcceptedCharacters.None)), + Factory.Markup(Environment.NewLine).Accepts(AcceptedCharacters.None)), Factory.Code(" }").AsStatement().Accepts(AcceptedCharacters.None))); } diff --git a/test/Microsoft.AspNet.Razor.Test/Parser/CSharp/CSharpErrorTest.cs b/test/Microsoft.AspNet.Razor.Test/Parser/CSharp/CSharpErrorTest.cs index 62138bcd91..45f5f37e28 100644 --- a/test/Microsoft.AspNet.Razor.Test/Parser/CSharp/CSharpErrorTest.cs +++ b/test/Microsoft.AspNet.Razor.Test/Parser/CSharp/CSharpErrorTest.cs @@ -33,7 +33,7 @@ namespace Microsoft.AspNet.Razor.Test.Parser.CSharp ParseBlockTest("using " + Environment.NewLine + Environment.NewLine, new StatementBlock( - Factory.Code("using \r\n").AsStatement() + Factory.Code("using " + Environment.NewLine).AsStatement() )); } @@ -83,16 +83,16 @@ namespace Microsoft.AspNet.Razor.Test.Parser.CSharp + "}", new StatementBlock( Factory.MetaCode("{").Accepts(AcceptedCharacters.None), - Factory.Code("\r\n ").AsStatement(), + Factory.Code(Environment.NewLine + " ").AsStatement(), new ExpressionBlock( Factory.CodeTransition(), Factory.EmptyCSharp() .AsImplicitExpression(CSharpCodeParser.DefaultKeywords, acceptTrailingDot: true) .Accepts(AcceptedCharacters.NonWhiteSpace)), - Factory.Code(" {}\r\n").AsStatement(), + Factory.Code(" {}" + Environment.NewLine).AsStatement(), Factory.MetaCode("}").Accepts(AcceptedCharacters.None) ), - new RazorError(RazorResources.ParseError_Unexpected_WhiteSpace_At_Start_Of_CodeBlock_CS, 8, 1, 5)); + new RazorError(RazorResources.ParseError_Unexpected_WhiteSpace_At_Start_Of_CodeBlock_CS, 6 + Environment.NewLine.Length, 1, 5)); } [Fact] @@ -102,7 +102,7 @@ namespace Microsoft.AspNet.Razor.Test.Parser.CSharp + " @", new StatementBlock( Factory.MetaCode("{").Accepts(AcceptedCharacters.None), - Factory.Code("\r\n ").AsStatement(), + Factory.Code(Environment.NewLine + " ").AsStatement(), new ExpressionBlock( Factory.CodeTransition(), Factory.EmptyCSharp() @@ -110,7 +110,8 @@ namespace Microsoft.AspNet.Razor.Test.Parser.CSharp .Accepts(AcceptedCharacters.NonWhiteSpace)), Factory.EmptyCSharp().AsStatement() ), - new RazorError(RazorResources.ParseError_Unexpected_EndOfFile_At_Start_Of_CodeBlock, 8, 1, 5), + new RazorError( + RazorResources.ParseError_Unexpected_EndOfFile_At_Start_Of_CodeBlock, 6 + Environment.NewLine.Length, 1, 5), new RazorError( RazorResources.FormatParseError_Expected_EndOfBlock_Before_EOF(RazorResources.BlockName_Code, "}", "{"), SourceLocation.Zero)); @@ -137,7 +138,7 @@ namespace Microsoft.AspNet.Razor.Test.Parser.CSharp + "baz", new ExpressionBlock( Factory.MetaCode("(").Accepts(AcceptedCharacters.None), - Factory.Code("foo bar\r\nbaz").AsExpression() + Factory.Code($"foo bar{Environment.NewLine}baz").AsExpression() ), new RazorError( RazorResources.FormatParseError_Expected_EndOfBlock_Before_EOF(RazorResources.BlockName_ExplicitExpression, ')', '('), @@ -153,7 +154,7 @@ namespace Microsoft.AspNet.Razor.Test.Parser.CSharp + "@Html.Foo(Bar);" + Environment.NewLine, new ExpressionBlock( - Factory.Code("Href(\r\n") + Factory.Code("Href(" + Environment.NewLine) .AsImplicitExpression(CSharpCodeParser.DefaultKeywords) ), new RazorError( @@ -182,7 +183,7 @@ namespace Microsoft.AspNet.Razor.Test.Parser.CSharp + "Biz" + Environment.NewLine + "Boz", new ExpressionBlock( - Factory.Code("Foo(Bar(Baz)\r\nBiz\r\nBoz") + Factory.Code($"Foo(Bar(Baz){Environment.NewLine}Biz{Environment.NewLine}Boz") .AsImplicitExpression(CSharpCodeParser.DefaultKeywords) ), new RazorError(RazorResources.FormatParseError_Expected_CloseBracket_Before_EOF("(", ")"), @@ -199,7 +200,7 @@ namespace Microsoft.AspNet.Razor.Test.Parser.CSharp + "Boz" + Environment.NewLine + "", new ExpressionBlock( - Factory.Code("Foo(Bar(Baz)\r\nBiz\r\n") + Factory.Code($"Foo(Bar(Baz){Environment.NewLine}Biz{Environment.NewLine}") .AsImplicitExpression(CSharpCodeParser.DefaultKeywords) ), new RazorError(RazorResources.FormatParseError_Expected_CloseBracket_Before_EOF("(", ")"), @@ -214,7 +215,7 @@ namespace Microsoft.AspNet.Razor.Test.Parser.CSharp + "Biz" + Environment.NewLine + "Boz", new ExpressionBlock( - Factory.Code("Foo[Bar[Baz]\r\nBiz\r\nBoz") + Factory.Code($"Foo[Bar[Baz]{Environment.NewLine}Biz{Environment.NewLine}Boz") .AsImplicitExpression(CSharpCodeParser.DefaultKeywords) ), new RazorError( @@ -232,7 +233,7 @@ namespace Microsoft.AspNet.Razor.Test.Parser.CSharp + "Boz" + Environment.NewLine + "", new ExpressionBlock( - Factory.Code("Foo[Bar[Baz]\r\nBiz\r\n") + Factory.Code($"Foo[Bar[Baz]{Environment.NewLine}Biz{Environment.NewLine}") .AsImplicitExpression(CSharpCodeParser.DefaultKeywords) ), new RazorError( @@ -449,7 +450,7 @@ namespace Microsoft.AspNet.Razor.Test.Parser.CSharp ParseBlockTest("if(foo bar" + Environment.NewLine + "baz", new StatementBlock( - Factory.Code("if(foo bar\r\n").AsStatement() + Factory.Code("if(foo bar" + Environment.NewLine).AsStatement() ), new RazorError( RazorResources.FormatParseError_Expected_CloseBracket_Before_EOF("(", ")"), @@ -462,7 +463,7 @@ namespace Microsoft.AspNet.Razor.Test.Parser.CSharp ParseBlockTest("foreach(foo bar" + Environment.NewLine + "baz", new StatementBlock( - Factory.Code("foreach(foo bar\r\n").AsStatement() + Factory.Code("foreach(foo bar" + Environment.NewLine).AsStatement() ), new RazorError( RazorResources.FormatParseError_Expected_CloseBracket_Before_EOF("(", ")"), @@ -475,7 +476,7 @@ namespace Microsoft.AspNet.Razor.Test.Parser.CSharp ParseBlockTest("do { } while(foo bar" + Environment.NewLine + "baz", new StatementBlock( - Factory.Code("do { } while(foo bar\r\n").AsStatement() + Factory.Code("do { } while(foo bar" + Environment.NewLine).AsStatement() ), new RazorError( RazorResources.FormatParseError_Expected_CloseBracket_Before_EOF("(", ")"), @@ -488,7 +489,7 @@ namespace Microsoft.AspNet.Razor.Test.Parser.CSharp ParseBlockTest("using(foo bar" + Environment.NewLine + "baz", new StatementBlock( - Factory.Code("using(foo bar\r\n").AsStatement() + Factory.Code("using(foo bar" + Environment.NewLine).AsStatement() ), new RazorError( RazorResources.FormatParseError_Expected_CloseBracket_Before_EOF("(", ")"), @@ -501,7 +502,7 @@ namespace Microsoft.AspNet.Razor.Test.Parser.CSharp ParseBlockTest("if(" + Environment.NewLine + "else {

Foo

}", new StatementBlock( - Factory.Code("if(\r\nelse {").AsStatement(), + Factory.Code($"if({Environment.NewLine}else {{").AsStatement(), new MarkupBlock( Factory.Markup(" "), BlockFactory.MarkupTagBlock("

", AcceptedCharacters.None), @@ -523,7 +524,8 @@ namespace Microsoft.AspNet.Razor.Test.Parser.CSharp + ";" + Environment.NewLine + "}", BlockType.Statement, SpanKind.Code, - new RazorError(RazorResources.ParseError_Unterminated_String_Literal, 23, 1, 12)); + new RazorError( + RazorResources.ParseError_Unterminated_String_Literal, 21 + Environment.NewLine.Length, 1, 12)); } [Fact] @@ -555,7 +557,7 @@ namespace Microsoft.AspNet.Razor.Test.Parser.CSharp + "

Foo is @foo

" + Environment.NewLine + "}", new StatementBlock( - Factory.Code("if(foo) {\r\n var foo = \"foo bar baz\r\n ").AsStatement(), + Factory.Code($"if(foo) {{{Environment.NewLine} var foo = \"foo bar baz{Environment.NewLine} ").AsStatement(), new MarkupBlock( BlockFactory.MarkupTagBlock("

", AcceptedCharacters.None), Factory.Markup("Foo is "), @@ -565,12 +567,12 @@ namespace Microsoft.AspNet.Razor.Test.Parser.CSharp .AsImplicitExpression(CSharpCodeParser.DefaultKeywords) .Accepts(AcceptedCharacters.NonWhiteSpace)), BlockFactory.MarkupTagBlock("

", AcceptedCharacters.None), - Factory.Markup("\r\n").Accepts(AcceptedCharacters.None)), + Factory.Markup(Environment.NewLine).Accepts(AcceptedCharacters.None)), Factory.Code("}").AsStatement() ), new RazorError( RazorResources.ParseError_Unterminated_String_Literal, - 25, 1, 14)); + 23 + Environment.NewLine.Length, 1, 14)); } [Fact] diff --git a/test/Microsoft.AspNet.Razor.Test/Parser/CSharp/CSharpExplicitExpressionTest.cs b/test/Microsoft.AspNet.Razor.Test/Parser/CSharp/CSharpExplicitExpressionTest.cs index e4510ad36b..e638be1284 100644 --- a/test/Microsoft.AspNet.Razor.Test/Parser/CSharp/CSharpExplicitExpressionTest.cs +++ b/test/Microsoft.AspNet.Razor.Test/Parser/CSharp/CSharpExplicitExpressionTest.cs @@ -84,7 +84,7 @@ namespace Microsoft.AspNet.Razor.Test.Parser.CSharp new ExpressionBlock( Factory.CodeTransition(), Factory.MetaCode("(").Accepts(AcceptedCharacters.None), - Factory.Code("@\"\r\nFoo\r\nBar\r\nBaz\r\n\"").AsExpression(), + Factory.Code($"@\"{Environment.NewLine}Foo{Environment.NewLine}Bar{Environment.NewLine}Baz{Environment.NewLine}\"").AsExpression(), Factory.MetaCode(")").Accepts(AcceptedCharacters.None) )); } diff --git a/test/Microsoft.AspNet.Razor.Test/Parser/CSharp/CSharpLayoutDirectiveTest.cs b/test/Microsoft.AspNet.Razor.Test/Parser/CSharp/CSharpLayoutDirectiveTest.cs index 77c718d4c8..8954b6f300 100644 --- a/test/Microsoft.AspNet.Razor.Test/Parser/CSharp/CSharpLayoutDirectiveTest.cs +++ b/test/Microsoft.AspNet.Razor.Test/Parser/CSharp/CSharpLayoutDirectiveTest.cs @@ -75,7 +75,7 @@ namespace Microsoft.AspNet.Razor.Test.Parser.CSharp new DirectiveBlock( Factory.CodeTransition(), Factory.MetaCode("layout ").Accepts(AcceptedCharacters.None), - Factory.MetaCode("Foo\r\n") + Factory.MetaCode("Foo" + Environment.NewLine) .With(new SetLayoutCodeGenerator("Foo")) .Accepts(AcceptedCharacters.None) .WithEditorHints(EditorHints.VirtualPath | EditorHints.LayoutPage) @@ -93,7 +93,7 @@ namespace Microsoft.AspNet.Razor.Test.Parser.CSharp new DirectiveBlock( Factory.CodeTransition(), Factory.MetaCode("layout ").Accepts(AcceptedCharacters.None), - Factory.MetaCode("Foo\r\n") + Factory.MetaCode("Foo" + Environment.NewLine) .With(new SetLayoutCodeGenerator("Foo")) .Accepts(AcceptedCharacters.None) .WithEditorHints(EditorHints.VirtualPath | EditorHints.LayoutPage) diff --git a/test/Microsoft.AspNet.Razor.Test/Parser/CSharp/CSharpRazorCommentsTest.cs b/test/Microsoft.AspNet.Razor.Test/Parser/CSharp/CSharpRazorCommentsTest.cs index bde7c67054..bafca7df42 100644 --- a/test/Microsoft.AspNet.Razor.Test/Parser/CSharp/CSharpRazorCommentsTest.cs +++ b/test/Microsoft.AspNet.Razor.Test/Parser/CSharp/CSharpRazorCommentsTest.cs @@ -63,7 +63,7 @@ namespace Microsoft.AspNet.Razor.Test.Parser.CSharp Factory.EmptyHtml(), new ExpressionBlock( Factory.CodeTransition(), - Factory.Code("foo(\r\n") + Factory.Code("foo(" + Environment.NewLine) .AsImplicitExpression(CSharpCodeParser.DefaultKeywords), new CommentBlock( Factory.CodeTransition(CSharpSymbolType.RazorCommentTransition) @@ -79,7 +79,7 @@ namespace Microsoft.AspNet.Razor.Test.Parser.CSharp .Accepts(AcceptedCharacters.None), Factory.CodeTransition(CSharpSymbolType.RazorCommentTransition) .Accepts(AcceptedCharacters.None)), - Factory.Code("\r\n") + Factory.Code(Environment.NewLine) .AsImplicitExpression(CSharpCodeParser.DefaultKeywords))), new RazorError( RazorResources.FormatParseError_Expected_CloseBracket_Before_EOF("(", ")"), @@ -122,12 +122,12 @@ namespace Microsoft.AspNet.Razor.Test.Parser.CSharp new StatementBlock( Factory.CodeTransition(), Factory.MetaCode("{").Accepts(AcceptedCharacters.None), - Factory.Code("\r\n").AsStatement(), + Factory.Code(Environment.NewLine).AsStatement(), new MarkupBlock( Factory.Markup(" "), new MarkupTagBlock( Factory.MarkupTransition("")), Factory.Markup("Foo"), new MarkupTagBlock( Factory.Markup("

")), - Factory.Markup("\r\n")), + Factory.Markup(Environment.NewLine)), Factory.MetaCode("}").Accepts(AcceptedCharacters.None)), Factory.EmptyHtml())); } @@ -326,10 +326,10 @@ namespace Microsoft.AspNet.Razor.Test.Parser.CSharp Factory.MetaCode("section Foo {") .AutoCompleteWith(null, atEndOfSpan: true), new MarkupBlock( - Factory.Markup("\r\n"), + Factory.Markup(Environment.NewLine), new StatementBlock( Factory.CodeTransition(), - Factory.Code("if(true) {\r\n}\r\n").AsStatement() + Factory.Code($"if(true) {{{Environment.NewLine}}}{Environment.NewLine}").AsStatement() )), Factory.MetaCode("}").Accepts(AcceptedCharacters.None)), Factory.EmptyHtml())); @@ -348,10 +348,10 @@ namespace Microsoft.AspNet.Razor.Test.Parser.CSharp Factory.MetaCode("section Foo {") .AutoCompleteWith(null, atEndOfSpan: true), new MarkupBlock( - Factory.Markup("\r\n"), + Factory.Markup(Environment.NewLine), new StatementBlock( Factory.CodeTransition(), - Factory.Code("if(true) {\r\n}").AsStatement() + Factory.Code($"if(true) {{{Environment.NewLine}}}").AsStatement() )), Factory.MetaCode("}").Accepts(AcceptedCharacters.None)), Factory.EmptyHtml())); diff --git a/test/Microsoft.AspNet.Razor.Test/Parser/CSharp/CSharpSpecialBlockTest.cs b/test/Microsoft.AspNet.Razor.Test/Parser/CSharp/CSharpSpecialBlockTest.cs index 7b178c7e6b..4576d518d7 100644 --- a/test/Microsoft.AspNet.Razor.Test/Parser/CSharp/CSharpSpecialBlockTest.cs +++ b/test/Microsoft.AspNet.Razor.Test/Parser/CSharp/CSharpSpecialBlockTest.cs @@ -42,7 +42,7 @@ namespace Microsoft.AspNet.Razor.Test.Parser.CSharp + "foo", new DirectiveBlock( Factory.MetaCode("inherits ").Accepts(AcceptedCharacters.None), - Factory.Code(" \r\n") + Factory.Code(" " + Environment.NewLine) .AsBaseType(String.Empty) ), new RazorError(RazorResources.ParseError_InheritsKeyword_Must_Be_Followed_By_TypeName, 24, 0, 24)); @@ -95,7 +95,7 @@ namespace Microsoft.AspNet.Razor.Test.Parser.CSharp + "}", new StatementBlock( Factory.MetaCode("{").Accepts(AcceptedCharacters.None), - Factory.Code("\r\n List photos = gallery.Photo.ToList();\r\n").AsStatement(), + Factory.Code($"{Environment.NewLine} List photos = gallery.Photo.ToList();{Environment.NewLine}").AsStatement(), Factory.MetaCode("}").Accepts(AcceptedCharacters.None) )); } @@ -187,7 +187,7 @@ namespace Microsoft.AspNet.Razor.Test.Parser.CSharp + "\t

A real tag!

" + Environment.NewLine + "}", new StatementBlock( - Factory.Code("if(!false) {\r\n // Foo\r\n").AsStatement(), + Factory.Code($"if(!false) {{{Environment.NewLine} // Foo{Environment.NewLine}").AsStatement(), new MarkupBlock( Factory.Markup("\t"), new MarkupTagBlock( @@ -195,7 +195,7 @@ namespace Microsoft.AspNet.Razor.Test.Parser.CSharp Factory.Markup("A real tag!"), new MarkupTagBlock( Factory.Markup("

").Accepts(AcceptedCharacters.None)), - Factory.Markup("\r\n").Accepts(AcceptedCharacters.None)), + Factory.Markup(Environment.NewLine).Accepts(AcceptedCharacters.None)), Factory.Code("}").AsStatement() )); } diff --git a/test/Microsoft.AspNet.Razor.Test/Parser/CSharp/CSharpTemplateTest.cs b/test/Microsoft.AspNet.Razor.Test/Parser/CSharp/CSharpTemplateTest.cs index 022d6724e5..593352bed3 100644 --- a/test/Microsoft.AspNet.Razor.Test/Parser/CSharp/CSharpTemplateTest.cs +++ b/test/Microsoft.AspNet.Razor.Test/Parser/CSharp/CSharpTemplateTest.cs @@ -88,7 +88,7 @@ namespace Microsoft.AspNet.Razor.Test.Parser.CSharp new MarkupBlock( Factory.MarkupTransition(), Factory.MetaMarkup(":", HtmlSymbolType.Colon), - Factory.Markup(" bar\r\n") + Factory.Markup(" bar" + Environment.NewLine) .With(new SingleLineMarkupEditHandler(CSharpLanguageCharacteristics.Instance.TokenizeString)) .Accepts(AcceptedCharacters.None) ) @@ -110,7 +110,7 @@ namespace Microsoft.AspNet.Razor.Test.Parser.CSharp new MarkupBlock( Factory.MarkupTransition(), Factory.MetaMarkup(":", HtmlSymbolType.Colon), - Factory.Markup(" bar\r\n") + Factory.Markup(" bar" + Environment.NewLine) .With(new SingleLineMarkupEditHandler(CSharpLanguageCharacteristics.Instance.TokenizeString)) .Accepts(AcceptedCharacters.None) ) diff --git a/test/Microsoft.AspNet.Razor.Test/Parser/CSharp/CSharpToMarkupSwitchTest.cs b/test/Microsoft.AspNet.Razor.Test/Parser/CSharp/CSharpToMarkupSwitchTest.cs index d61a04f9fb..49d00401a6 100644 --- a/test/Microsoft.AspNet.Razor.Test/Parser/CSharp/CSharpToMarkupSwitchTest.cs +++ b/test/Microsoft.AspNet.Razor.Test/Parser/CSharp/CSharpToMarkupSwitchTest.cs @@ -54,12 +54,12 @@ namespace Microsoft.AspNet.Razor.Test.Parser.CSharp + "@:

Foo

" + Environment.NewLine + ")", new ExpressionBlock( - Factory.Code("Foo( \r\n").AsImplicitExpression(CSharpCodeParser.DefaultKeywords), + Factory.Code("Foo( " + Environment.NewLine).AsImplicitExpression(CSharpCodeParser.DefaultKeywords), new TemplateBlock( new MarkupBlock( Factory.MarkupTransition(), Factory.MetaMarkup(":", HtmlSymbolType.Colon), - Factory.Markup("

Foo

\r\n") + Factory.Markup("

Foo

" + Environment.NewLine) .With(new SingleLineMarkupEditHandler(CSharpLanguageCharacteristics.Instance.TokenizeString, AcceptedCharacters.None)) ) ), @@ -77,7 +77,7 @@ namespace Microsoft.AspNet.Razor.Test.Parser.CSharp + "}", new StatementBlock( Factory.MetaCode("{").Accepts(AcceptedCharacters.None), - Factory.Code("\r\n ").AsStatement(), + Factory.Code(Environment.NewLine + " ").AsStatement(), new MarkupBlock( new MarkupTagBlock( Factory.Markup("

").Accepts(AcceptedCharacters.None)), @@ -85,7 +85,7 @@ namespace Microsoft.AspNet.Razor.Test.Parser.CSharp new MarkupTagBlock( Factory.Markup("

").Accepts(AcceptedCharacters.None)) ), - Factory.Code(" \r\n").AsStatement(), + Factory.Code(" " + Environment.NewLine).AsStatement(), Factory.MetaCode("}").Accepts(AcceptedCharacters.None) ), designTimeParser: true); } @@ -98,7 +98,7 @@ namespace Microsoft.AspNet.Razor.Test.Parser.CSharp + "}", new StatementBlock( Factory.MetaCode("{").Accepts(AcceptedCharacters.None), - Factory.Code("\r\n ").AsStatement(), + Factory.Code(Environment.NewLine + " ").AsStatement(), new MarkupBlock( Factory.MarkupTransition(), new MarkupTagBlock( @@ -107,10 +107,11 @@ namespace Microsoft.AspNet.Razor.Test.Parser.CSharp new MarkupTagBlock( Factory.Markup("

").Accepts(AcceptedCharacters.None)) ), - Factory.Code(" \r\n").AsStatement(), + Factory.Code(" " + Environment.NewLine).AsStatement(), Factory.MetaCode("}").Accepts(AcceptedCharacters.None) ), true, - new RazorError(RazorResources.ParseError_AtInCode_Must_Be_Followed_By_Colon_Paren_Or_Identifier_Start, 7, 1, 4)); + new RazorError( + RazorResources.ParseError_AtInCode_Must_Be_Followed_By_Colon_Paren_Or_Identifier_Start, 5 + Environment.NewLine.Length, 1, 4)); } [Fact] @@ -121,11 +122,11 @@ namespace Microsoft.AspNet.Razor.Test.Parser.CSharp + "}", new StatementBlock( Factory.MetaCode("{").Accepts(AcceptedCharacters.None), - Factory.Code("\r\n ").AsStatement(), + Factory.Code(Environment.NewLine + " ").AsStatement(), new MarkupBlock( Factory.MarkupTransition(), Factory.MetaMarkup(":", HtmlSymbolType.Colon), - Factory.Markup("

Foo

\r\n") + Factory.Markup("

Foo

" + Environment.NewLine) .With(new SingleLineMarkupEditHandler(CSharpLanguageCharacteristics.Instance.TokenizeString, AcceptedCharacters.None)) ), Factory.EmptyCSharp().AsStatement(), @@ -140,7 +141,7 @@ namespace Microsoft.AspNet.Razor.Test.Parser.CSharp + " @: @{}" + Environment.NewLine + ")", new ExpressionBlock( - Factory.Code("Repeat(10,\r\n ") + Factory.Code($"Repeat(10,{Environment.NewLine} ") .AsImplicitExpression(CSharpCodeParser.DefaultKeywords), new TemplateBlock( new MarkupBlock( @@ -154,7 +155,7 @@ namespace Microsoft.AspNet.Razor.Test.Parser.CSharp Factory.EmptyCSharp().AsStatement(), Factory.MetaCode("}").Accepts(AcceptedCharacters.None) ), - Factory.Markup("\r\n") + Factory.Markup(Environment.NewLine) .With(new SingleLineMarkupEditHandler(CSharpLanguageCharacteristics.Instance.TokenizeString, AcceptedCharacters.None)) ) ), @@ -176,17 +177,17 @@ namespace Microsoft.AspNet.Razor.Test.Parser.CSharp + "@:Bar" + Environment.NewLine + "}", new StatementBlock( - Factory.Code("foreach(var file in files){\r\n\r\n\r\n").AsStatement(), + Factory.Code(string.Format("foreach(var file in files){{{0}{0}{0}", Environment.NewLine)).AsStatement(), new MarkupBlock( Factory.MarkupTransition(), Factory.MetaMarkup(":", HtmlSymbolType.Colon), - Factory.Markup("Baz\r\n") + Factory.Markup("Baz" + Environment.NewLine) .With(new SingleLineMarkupEditHandler(CSharpLanguageCharacteristics.Instance.TokenizeString, AcceptedCharacters.None)) ), new MarkupBlock( new MarkupTagBlock( Factory.Markup("
").Accepts(AcceptedCharacters.None)), - Factory.Markup("\r\n").Accepts(AcceptedCharacters.None) + Factory.Markup(Environment.NewLine).Accepts(AcceptedCharacters.None) ), new MarkupBlock( new MarkupTagBlock( @@ -194,11 +195,11 @@ namespace Microsoft.AspNet.Razor.Test.Parser.CSharp Factory.Markup("Foo"), new MarkupTagBlock( Factory.Markup("").Accepts(AcceptedCharacters.None)), - Factory.Markup("\r\n").Accepts(AcceptedCharacters.None)), + Factory.Markup(Environment.NewLine).Accepts(AcceptedCharacters.None)), new MarkupBlock( Factory.MarkupTransition(), Factory.MetaMarkup(":", HtmlSymbolType.Colon), - Factory.Markup("Bar\r\n") + Factory.Markup("Bar" + Environment.NewLine) .With(new SingleLineMarkupEditHandler(CSharpLanguageCharacteristics.Instance.TokenizeString, AcceptedCharacters.None)) ), Factory.Code("}").AsStatement().Accepts(AcceptedCharacters.None) @@ -218,29 +219,31 @@ namespace Microsoft.AspNet.Razor.Test.Parser.CSharp + " var biz = boz;" + Environment.NewLine + "}", new StatementBlock( - Factory.Code("if(foo) {\r\n var foo = \"After this statement there are 10 spaces\"; \r\n").AsStatement(), + Factory.Code( + $"if(foo) {{{Environment.NewLine} var foo = \"After this statement there are " + + "10 spaces\"; " + Environment.NewLine).AsStatement(), new MarkupBlock( Factory.Markup(" "), new MarkupTagBlock( Factory.Markup("

").Accepts(AcceptedCharacters.None)), - Factory.Markup("\r\n Foo\r\n"), + Factory.Markup($"{Environment.NewLine} Foo{Environment.NewLine}"), new ExpressionBlock( Factory.Code(" ").AsStatement(), Factory.CodeTransition(), Factory.Code("bar").AsImplicitExpression(CSharpCodeParser.DefaultKeywords).Accepts(AcceptedCharacters.NonWhiteSpace) ), - Factory.Markup("\r\n "), + Factory.Markup(Environment.NewLine + " "), new MarkupTagBlock( Factory.Markup("

").Accepts(AcceptedCharacters.None)), - Factory.Markup("\r\n").Accepts(AcceptedCharacters.None) + Factory.Markup(Environment.NewLine).Accepts(AcceptedCharacters.None) ), new MarkupBlock( Factory.Markup(" "), Factory.MarkupTransition(), Factory.MetaMarkup(":", HtmlSymbolType.Colon), - Factory.Markup("Hello!\r\n").With(new SingleLineMarkupEditHandler(CSharpLanguageCharacteristics.Instance.TokenizeString, AcceptedCharacters.None)) + Factory.Markup("Hello!" + Environment.NewLine).With(new SingleLineMarkupEditHandler(CSharpLanguageCharacteristics.Instance.TokenizeString, AcceptedCharacters.None)) ), - Factory.Code(" var biz = boz;\r\n}").AsStatement())); + Factory.Code($" var biz = boz;{Environment.NewLine}}}").AsStatement())); } [Fact] @@ -343,7 +346,7 @@ namespace Microsoft.AspNet.Razor.Test.Parser.CSharp + "

Biz

" + Environment.NewLine + "}", new StatementBlock( - Factory.Code("switch(foo) {\r\n case 0:\r\n").AsStatement(), + Factory.Code($"switch(foo) {{{Environment.NewLine} case 0:{Environment.NewLine}").AsStatement(), new MarkupBlock( Factory.Markup(" "), new MarkupTagBlock( @@ -351,9 +354,9 @@ namespace Microsoft.AspNet.Razor.Test.Parser.CSharp Factory.Markup("Foo"), new MarkupTagBlock( Factory.Markup("

").Accepts(AcceptedCharacters.None)), - Factory.Markup("\r\n").Accepts(AcceptedCharacters.None) + Factory.Markup(Environment.NewLine).Accepts(AcceptedCharacters.None) ), - Factory.Code(" break;\r\n case 1:\r\n").AsStatement(), + Factory.Code($" break;{Environment.NewLine} case 1:{Environment.NewLine}").AsStatement(), new MarkupBlock( Factory.Markup(" "), new MarkupTagBlock( @@ -361,9 +364,11 @@ namespace Microsoft.AspNet.Razor.Test.Parser.CSharp Factory.Markup("Bar"), new MarkupTagBlock( Factory.Markup("

").Accepts(AcceptedCharacters.None)), - Factory.Markup("\r\n").Accepts(AcceptedCharacters.None) + Factory.Markup(Environment.NewLine).Accepts(AcceptedCharacters.None) ), - Factory.Code(" return;\r\n case 2:\r\n {\r\n").AsStatement(), + Factory.Code( + $" return;{Environment.NewLine} case 2:{Environment.NewLine}" + + " {" + Environment.NewLine).AsStatement(), new MarkupBlock( Factory.Markup(" "), new MarkupTagBlock( @@ -371,7 +376,7 @@ namespace Microsoft.AspNet.Razor.Test.Parser.CSharp Factory.Markup("Baz"), new MarkupTagBlock( Factory.Markup("

").Accepts(AcceptedCharacters.None)), - Factory.Markup("\r\n").Accepts(AcceptedCharacters.None) + Factory.Markup(Environment.NewLine).Accepts(AcceptedCharacters.None) ), new MarkupBlock( Factory.Markup(" "), @@ -380,9 +385,9 @@ namespace Microsoft.AspNet.Razor.Test.Parser.CSharp Factory.Markup("Boz"), new MarkupTagBlock( Factory.Markup("

").Accepts(AcceptedCharacters.None)), - Factory.Markup("\r\n").Accepts(AcceptedCharacters.None) + Factory.Markup(Environment.NewLine).Accepts(AcceptedCharacters.None) ), - Factory.Code(" }\r\n default:\r\n").AsStatement(), + Factory.Code($" }}{Environment.NewLine} default:{Environment.NewLine}").AsStatement(), new MarkupBlock( Factory.Markup(" "), new MarkupTagBlock( @@ -390,7 +395,7 @@ namespace Microsoft.AspNet.Razor.Test.Parser.CSharp Factory.Markup("Biz"), new MarkupTagBlock( Factory.Markup("

").Accepts(AcceptedCharacters.None)), - Factory.Markup("\r\n").Accepts(AcceptedCharacters.None) + Factory.Markup(Environment.NewLine).Accepts(AcceptedCharacters.None) ), Factory.Code("}").AsStatement().Accepts(AcceptedCharacters.None))); } @@ -416,7 +421,7 @@ namespace Microsoft.AspNet.Razor.Test.Parser.CSharp + "} }", new StatementBlock( Factory.MetaCode("{").Accepts(AcceptedCharacters.None), - Factory.Code(" switch(foo) {\r\n case 0:\r\n").AsStatement(), + Factory.Code($" switch(foo) {{{Environment.NewLine} case 0:{Environment.NewLine}").AsStatement(), new MarkupBlock( Factory.Markup(" "), new MarkupTagBlock( @@ -424,9 +429,9 @@ namespace Microsoft.AspNet.Razor.Test.Parser.CSharp Factory.Markup("Foo"), new MarkupTagBlock( Factory.Markup("

").Accepts(AcceptedCharacters.None)), - Factory.Markup("\r\n").Accepts(AcceptedCharacters.None) + Factory.Markup(Environment.NewLine).Accepts(AcceptedCharacters.None) ), - Factory.Code(" break;\r\n case 1:\r\n").AsStatement(), + Factory.Code($" break;{Environment.NewLine} case 1:{Environment.NewLine}").AsStatement(), new MarkupBlock( Factory.Markup(" "), new MarkupTagBlock( @@ -434,9 +439,11 @@ namespace Microsoft.AspNet.Razor.Test.Parser.CSharp Factory.Markup("Bar"), new MarkupTagBlock( Factory.Markup("

").Accepts(AcceptedCharacters.None)), - Factory.Markup("\r\n").Accepts(AcceptedCharacters.None) + Factory.Markup(Environment.NewLine).Accepts(AcceptedCharacters.None) ), - Factory.Code(" return;\r\n case 2:\r\n {\r\n").AsStatement(), + Factory.Code( + $" return;{Environment.NewLine} case 2:{Environment.NewLine}"+ + " {" + Environment.NewLine).AsStatement(), new MarkupBlock( Factory.Markup(" "), new MarkupTagBlock( @@ -444,7 +451,7 @@ namespace Microsoft.AspNet.Razor.Test.Parser.CSharp Factory.Markup("Baz"), new MarkupTagBlock( Factory.Markup("

").Accepts(AcceptedCharacters.None)), - Factory.Markup("\r\n").Accepts(AcceptedCharacters.None) + Factory.Markup(Environment.NewLine).Accepts(AcceptedCharacters.None) ), new MarkupBlock( Factory.Markup(" "), @@ -453,9 +460,9 @@ namespace Microsoft.AspNet.Razor.Test.Parser.CSharp Factory.Markup("Boz"), new MarkupTagBlock( Factory.Markup("

").Accepts(AcceptedCharacters.None)), - Factory.Markup("\r\n").Accepts(AcceptedCharacters.None) + Factory.Markup(Environment.NewLine).Accepts(AcceptedCharacters.None) ), - Factory.Code(" }\r\n default:\r\n").AsStatement(), + Factory.Code($" }}{Environment.NewLine} default:{Environment.NewLine}").AsStatement(), new MarkupBlock( Factory.Markup(" "), new MarkupTagBlock( @@ -463,7 +470,7 @@ namespace Microsoft.AspNet.Razor.Test.Parser.CSharp Factory.Markup("Biz"), new MarkupTagBlock( Factory.Markup("

").Accepts(AcceptedCharacters.None)), - Factory.Markup("\r\n").Accepts(AcceptedCharacters.None) + Factory.Markup(Environment.NewLine).Accepts(AcceptedCharacters.None) ), Factory.Code("} ").AsStatement(), Factory.MetaCode("}").Accepts(AcceptedCharacters.None))); @@ -520,7 +527,8 @@ namespace Microsoft.AspNet.Razor.Test.Parser.CSharp Factory.Markup(" "), Factory.MarkupTransition(), Factory.MetaMarkup(":", HtmlSymbolType.Colon), - Factory.Markup("Bar\r\n").With(new SingleLineMarkupEditHandler(CSharpLanguageCharacteristics.Instance.TokenizeString, AcceptedCharacters.None)) + Factory.Markup("Bar" + Environment.NewLine) + .With(new SingleLineMarkupEditHandler(CSharpLanguageCharacteristics.Instance.TokenizeString, AcceptedCharacters.None)) ), Factory.Code("}").AsStatement())); } @@ -538,7 +546,7 @@ namespace Microsoft.AspNet.Razor.Test.Parser.CSharp Factory.Markup(" "), Factory.MarkupTransition(), Factory.MetaMarkup(":", HtmlSymbolType.Colon), - Factory.Markup("Bar\r\n").Accepts(AcceptedCharacters.None) + Factory.Markup("Bar" + Environment.NewLine).Accepts(AcceptedCharacters.None) ), Factory.Code("} ").AsStatement(), Factory.MetaCode("}").Accepts(AcceptedCharacters.None))); @@ -598,14 +606,15 @@ namespace Microsoft.AspNet.Razor.Test.Parser.CSharp + "}", new StatementBlock( Factory.MetaCode("{").Accepts(AcceptedCharacters.None), - Factory.Code("\r\n if(true) {\r\n").AsStatement(), + Factory.Code($"{Environment.NewLine} if(true) {{{Environment.NewLine}").AsStatement(), new MarkupBlock( Factory.Markup(" "), Factory.MarkupTransition(), Factory.MetaMarkup(":", HtmlSymbolType.Colon), - Factory.Markup("Single Line Markup\r\n").With(new SingleLineMarkupEditHandler(CSharpLanguageCharacteristics.Instance.TokenizeString, AcceptedCharacters.None)) + Factory.Markup("Single Line Markup" + Environment.NewLine) + .With(new SingleLineMarkupEditHandler(CSharpLanguageCharacteristics.Instance.TokenizeString, AcceptedCharacters.None)) ), - Factory.Code(" }\r\n foreach (var p in Enumerable.Range(1, 10)) {\r\n").AsStatement(), + Factory.Code($" }}{Environment.NewLine} foreach (var p in Enumerable.Range(1, 10)) {{{Environment.NewLine}").AsStatement(), new MarkupBlock( Factory.Markup(" "), new MarkupTagBlock( @@ -617,9 +626,9 @@ namespace Microsoft.AspNet.Razor.Test.Parser.CSharp ), new MarkupTagBlock( Factory.MarkupTransition("").Accepts(AcceptedCharacters.None)), - Factory.Markup("\r\n").Accepts(AcceptedCharacters.None) + Factory.Markup(Environment.NewLine).Accepts(AcceptedCharacters.None) ), - Factory.Code(" }\r\n if(!false) {\r\n").AsStatement(), + Factory.Code($" }}{Environment.NewLine} if(!false) {{{Environment.NewLine}").AsStatement(), new MarkupBlock( Factory.Markup(" "), new MarkupTagBlock( @@ -627,9 +636,9 @@ namespace Microsoft.AspNet.Razor.Test.Parser.CSharp Factory.Markup("A real tag!"), new MarkupTagBlock( Factory.Markup("

").Accepts(AcceptedCharacters.None)), - Factory.Markup("\r\n").Accepts(AcceptedCharacters.None) + Factory.Markup(Environment.NewLine).Accepts(AcceptedCharacters.None) ), - Factory.Code(" }\r\n").AsStatement(), + Factory.Code(" }" + Environment.NewLine).AsStatement(), Factory.MetaCode("}").Accepts(AcceptedCharacters.None))); } } diff --git a/test/Microsoft.AspNet.Razor.Test/Parser/CSharp/CSharpVerbatimBlockTest.cs b/test/Microsoft.AspNet.Razor.Test/Parser/CSharp/CSharpVerbatimBlockTest.cs index dd5fdded25..e318e36bc5 100644 --- a/test/Microsoft.AspNet.Razor.Test/Parser/CSharp/CSharpVerbatimBlockTest.cs +++ b/test/Microsoft.AspNet.Razor.Test/Parser/CSharp/CSharpVerbatimBlockTest.cs @@ -76,15 +76,16 @@ namespace Microsoft.AspNet.Razor.Test.Parser.CSharp + "}", new StatementBlock( Factory.MetaCode("{").Accepts(AcceptedCharacters.None), - Factory.Code("\r\n ").AsStatement(), + Factory.Code(Environment.NewLine + " ").AsStatement(), new ExpressionBlock( Factory.CodeTransition(), Factory.EmptyCSharp().AsImplicitExpression(KeywordSet, acceptTrailingDot: true).Accepts(AcceptedCharacters.NonWhiteSpace) ), - Factory.Code("\r\n").AsStatement(), + Factory.Code(Environment.NewLine).AsStatement(), Factory.MetaCode("}").Accepts(AcceptedCharacters.None)), /* designTimeParser */ true, - new RazorError(RazorResources.ParseError_Unexpected_WhiteSpace_At_Start_Of_CodeBlock_CS, 8, 1, 5)); + new RazorError( + RazorResources.ParseError_Unexpected_WhiteSpace_At_Start_Of_CodeBlock_CS, 6 + Environment.NewLine.Length, 1, 5)); } [Fact] @@ -98,7 +99,7 @@ namespace Microsoft.AspNet.Razor.Test.Parser.CSharp new ExpressionBlock( Factory.CodeTransition(), Factory.Code("foo.").AsImplicitExpression(KeywordSet, acceptTrailingDot: true).Accepts(AcceptedCharacters.NonWhiteSpace)), - Factory.Code("\r\n").AsStatement(), + Factory.Code(Environment.NewLine).AsStatement(), Factory.MetaCode("}").Accepts(AcceptedCharacters.None))); } @@ -113,7 +114,7 @@ namespace Microsoft.AspNet.Razor.Test.Parser.CSharp new ExpressionBlock( Factory.CodeTransition(), Factory.Code("foo.").AsImplicitExpression(KeywordSet, acceptTrailingDot: true).Accepts(AcceptedCharacters.NonWhiteSpace)), - Factory.Code("\r\n").AsStatement(), + Factory.Code(Environment.NewLine).AsStatement(), Factory.MetaCode("}").Accepts(AcceptedCharacters.None)), designTimeParser: true); } diff --git a/test/Microsoft.AspNet.Razor.Test/Parser/CSharp/CSharpWhitespaceHandlingTest.cs b/test/Microsoft.AspNet.Razor.Test/Parser/CSharp/CSharpWhitespaceHandlingTest.cs index 813ea0f799..788e4f6450 100644 --- a/test/Microsoft.AspNet.Razor.Test/Parser/CSharp/CSharpWhitespaceHandlingTest.cs +++ b/test/Microsoft.AspNet.Razor.Test/Parser/CSharp/CSharpWhitespaceHandlingTest.cs @@ -27,7 +27,7 @@ namespace Microsoft.AspNet.Razor.Test.Parser.CSharp Factory.Code("if (true) { }") .AsStatement() ), - Factory.Markup("\r\n") + Factory.Markup(Environment.NewLine) .Accepts(AcceptedCharacters.None))); } } diff --git a/test/Microsoft.AspNet.Razor.Test/Parser/Html/HtmlBlockTest.cs b/test/Microsoft.AspNet.Razor.Test/Parser/Html/HtmlBlockTest.cs index b71ea619f7..236407ee77 100644 --- a/test/Microsoft.AspNet.Razor.Test/Parser/Html/HtmlBlockTest.cs +++ b/test/Microsoft.AspNet.Razor.Test/Parser/Html/HtmlBlockTest.cs @@ -36,7 +36,7 @@ namespace Microsoft.AspNet.Razor.Test.Parser.Html new StatementBlock( Factory.CodeTransition(), Factory.MetaCode("{").Accepts(AcceptedCharacters.None), - Factory.Code("\r\n").AsStatement(), + Factory.Code(Environment.NewLine).AsStatement(), new MarkupBlock( new MarkupTagBlock( Factory.Markup("<"))))), @@ -56,10 +56,10 @@ namespace Microsoft.AspNet.Razor.Test.Parser.Html new StatementBlock( Factory.CodeTransition(), Factory.MetaCode("{").Accepts(AcceptedCharacters.None), - Factory.Code("\r\n").AsStatement(), + Factory.Code(Environment.NewLine).AsStatement(), new MarkupBlock( new MarkupTagBlock( - Factory.Markup("<\r\n")) + Factory.Markup("<" + Environment.NewLine)) ), new MarkupBlock( new MarkupTagBlock( @@ -71,7 +71,7 @@ namespace Microsoft.AspNet.Razor.Test.Parser.Html designTimeParser: true, expectedErrors: new[] { - new RazorError(RazorResources.FormatParseError_UnexpectedEndTag("html"), 7, 2, 0), + new RazorError(RazorResources.FormatParseError_UnexpectedEndTag("html"), 3 + Environment.NewLine.Length * 2, 2, 0), new RazorError(RazorResources.FormatParseError_Expected_EndOfBlock_Before_EOF("code", "}", "{"), 1, 0, 1) }); } @@ -83,7 +83,7 @@ namespace Microsoft.AspNet.Razor.Test.Parser.Html + " ", new MarkupBlock( new MarkupTagBlock( - Factory.Markup("< \r\n "))), + Factory.Markup($"< {Environment.NewLine} "))), designTimeParser: true, expectedErrors: new RazorError(RazorResources.FormatParseError_UnfinishedTag(string.Empty), 0, 0, 0)); } @@ -113,7 +113,7 @@ namespace Microsoft.AspNet.Razor.Test.Parser.Html new MarkupBlock( Factory.MarkupTransition(), Factory.MetaMarkup(":", HtmlSymbolType.Colon), - Factory.Markup("
  • Foo Bar Baz\r\n") + Factory.Markup("
  • Foo Bar Baz" + Environment.NewLine) .With(new SingleLineMarkupEditHandler(CSharpLanguageCharacteristics.Instance.TokenizeString, AcceptedCharacters.None)) )); } diff --git a/test/Microsoft.AspNet.Razor.Test/Parser/Html/HtmlDocumentTest.cs b/test/Microsoft.AspNet.Razor.Test/Parser/Html/HtmlDocumentTest.cs index 41a2454bd6..e460c63f17 100644 --- a/test/Microsoft.AspNet.Razor.Test/Parser/Html/HtmlDocumentTest.cs +++ b/test/Microsoft.AspNet.Razor.Test/Parser/Html/HtmlDocumentTest.cs @@ -103,10 +103,10 @@ namespace Microsoft.AspNet.Razor.Test.Parser.Html Factory.MetaCode("section Foo {") .AutoCompleteWith(null, atEndOfSpan: true), new MarkupBlock( - Factory.Markup("\r\n "), + Factory.Markup(Environment.NewLine + " "), BlockFactory.MarkupTagBlock(""), BlockFactory.MarkupTagBlock(""), - Factory.Markup("\r\n")), + Factory.Markup(Environment.NewLine)), Factory.MetaCode("}").Accepts(AcceptedCharacters.None)), Factory.EmptyHtml())); } diff --git a/test/Microsoft.AspNet.Razor.Test/Parser/Html/HtmlToCodeSwitchTest.cs b/test/Microsoft.AspNet.Razor.Test/Parser/Html/HtmlToCodeSwitchTest.cs index 96032082e1..e594afb702 100644 --- a/test/Microsoft.AspNet.Razor.Test/Parser/Html/HtmlToCodeSwitchTest.cs +++ b/test/Microsoft.AspNet.Razor.Test/Parser/Html/HtmlToCodeSwitchTest.cs @@ -106,7 +106,7 @@ namespace Microsoft.AspNet.Razor.Test.Parser.Html Factory.Code("Bar") .AsImplicitExpression(CSharpCodeParser.DefaultKeywords) .Accepts(AcceptedCharacters.NonWhiteSpace)), - Factory.Markup(" Baz\r\n") + Factory.Markup(" Baz" + Environment.NewLine) .With(new SingleLineMarkupEditHandler(CSharpLanguageCharacteristics.Instance.TokenizeString, AcceptedCharacters.None)))); } @@ -224,11 +224,11 @@ namespace Microsoft.AspNet.Razor.Test.Parser.Html Factory.Markup(" "), new MarkupTagBlock( Factory.Markup("
      ").Accepts(AcceptedCharacters.None)), - Factory.Markup("\r\n"), + Factory.Markup(Environment.NewLine), new StatementBlock( Factory.Code(" ").AsStatement(), Factory.CodeTransition(), - Factory.Code("foreach(var p in Products) {\r\n").AsStatement(), + Factory.Code("foreach(var p in Products) {" + Environment.NewLine).AsStatement(), new MarkupBlock( Factory.Markup(" "), new MarkupTagBlock( @@ -241,8 +241,8 @@ namespace Microsoft.AspNet.Razor.Test.Parser.Html .Accepts(AcceptedCharacters.NonWhiteSpace)), new MarkupTagBlock( Factory.Markup("").Accepts(AcceptedCharacters.None)), - Factory.Markup("\r\n").Accepts(AcceptedCharacters.None)), - Factory.Code(" }\r\n").AsStatement().Accepts(AcceptedCharacters.None)), + Factory.Markup(Environment.NewLine).Accepts(AcceptedCharacters.None)), + Factory.Code(" }" + Environment.NewLine).AsStatement().Accepts(AcceptedCharacters.None)), Factory.Markup(" "), new MarkupTagBlock( Factory.Markup("
    ").Accepts(AcceptedCharacters.None)))); @@ -260,11 +260,11 @@ namespace Microsoft.AspNet.Razor.Test.Parser.Html Factory.Markup(" "), new MarkupTagBlock( Factory.Markup("
      ")), - Factory.Markup("\r\n"), + Factory.Markup(Environment.NewLine), new StatementBlock( Factory.Code(" ").AsStatement(), Factory.CodeTransition(), - Factory.Code("foreach(var p in Products) {\r\n").AsStatement(), + Factory.Code("foreach(var p in Products) {" + Environment.NewLine).AsStatement(), new MarkupBlock( Factory.Markup(" "), new MarkupTagBlock( @@ -277,8 +277,8 @@ namespace Microsoft.AspNet.Razor.Test.Parser.Html .Accepts(AcceptedCharacters.NonWhiteSpace)), new MarkupTagBlock( Factory.Markup("").Accepts(AcceptedCharacters.None)), - Factory.Markup("\r\n").Accepts(AcceptedCharacters.None)), - Factory.Code(" }\r\n").AsStatement().Accepts(AcceptedCharacters.None)), + Factory.Markup(Environment.NewLine).Accepts(AcceptedCharacters.None)), + Factory.Code(" }" + Environment.NewLine).AsStatement().Accepts(AcceptedCharacters.None)), Factory.Markup(" "), new MarkupTagBlock( Factory.Markup("
    ")))); @@ -300,14 +300,14 @@ namespace Microsoft.AspNet.Razor.Test.Parser.Html Factory.CodeTransition(), Factory.MetaCode("section foo {").AutoCompleteWith(null, atEndOfSpan: true), new MarkupBlock( - Factory.Markup("\r\n "), + Factory.Markup(Environment.NewLine + " "), new MarkupTagBlock( Factory.Markup("
      ")), - Factory.Markup("\r\n"), + Factory.Markup(Environment.NewLine), new StatementBlock( Factory.Code(" ").AsStatement(), Factory.CodeTransition(), - Factory.Code("foreach(var p in Products) {\r\n").AsStatement(), + Factory.Code("foreach(var p in Products) {" + Environment.NewLine).AsStatement(), new MarkupBlock( Factory.Markup(" "), new MarkupTagBlock( @@ -320,12 +320,12 @@ namespace Microsoft.AspNet.Razor.Test.Parser.Html .Accepts(AcceptedCharacters.NonWhiteSpace)), new MarkupTagBlock( Factory.Markup("").Accepts(AcceptedCharacters.None)), - Factory.Markup("\r\n").Accepts(AcceptedCharacters.None)), - Factory.Code(" }\r\n").AsStatement().Accepts(AcceptedCharacters.None)), + Factory.Markup(Environment.NewLine).Accepts(AcceptedCharacters.None)), + Factory.Code(" }" + Environment.NewLine).AsStatement().Accepts(AcceptedCharacters.None)), Factory.Markup(" "), new MarkupTagBlock( Factory.Markup("
    ")), - Factory.Markup("\r\n")), + Factory.Markup(Environment.NewLine)), Factory.MetaCode("}").Accepts(AcceptedCharacters.None)), Factory.EmptyHtml())); } @@ -342,10 +342,10 @@ namespace Microsoft.AspNet.Razor.Test.Parser.Html Factory.Markup(" "), new MarkupTagBlock( Factory.Markup("
      ").Accepts(AcceptedCharacters.None)), - Factory.Markup("\r\n "), + Factory.Markup(Environment.NewLine + " "), new StatementBlock( Factory.CodeTransition(), - Factory.Code("foreach(var p in Products) {\r\n ").AsStatement(), + Factory.Code($"foreach(var p in Products) {{{Environment.NewLine} ").AsStatement(), new MarkupBlock( new MarkupTagBlock( Factory.Markup("
    • ").Accepts(AcceptedCharacters.None)), @@ -355,8 +355,8 @@ namespace Microsoft.AspNet.Razor.Test.Parser.Html Factory.Code("p.Name").AsImplicitExpression(CSharpCodeParser.DefaultKeywords).Accepts(AcceptedCharacters.NonWhiteSpace)), new MarkupTagBlock( Factory.Markup("
    • ").Accepts(AcceptedCharacters.None))), - Factory.Code("\r\n }").AsStatement().Accepts(AcceptedCharacters.None)), - Factory.Markup("\r\n "), + Factory.Code(Environment.NewLine + " }").AsStatement().Accepts(AcceptedCharacters.None)), + Factory.Markup(Environment.NewLine + " "), new MarkupTagBlock( Factory.Markup("
    ").Accepts(AcceptedCharacters.None))), designTimeParser: true); diff --git a/test/Microsoft.AspNet.Razor.Test/Parser/PartialParsing/CSharpPartialParsingTest.cs b/test/Microsoft.AspNet.Razor.Test/Parser/PartialParsing/CSharpPartialParsingTest.cs index ba0edbc806..2677b3e106 100644 --- a/test/Microsoft.AspNet.Razor.Test/Parser/PartialParsing/CSharpPartialParsingTest.cs +++ b/test/Microsoft.AspNet.Razor.Test/Parser/PartialParsing/CSharpPartialParsingTest.cs @@ -50,13 +50,13 @@ namespace Microsoft.AspNet.Razor.Test.Parser.PartialParsing new StatementBlock( factory.CodeTransition(), factory.MetaCode("{").Accepts(AcceptedCharacters.None), - factory.Code("\r\n ").AsStatement(), + factory.Code(Environment.NewLine + " ").AsStatement(), new ExpressionBlock( factory.CodeTransition(), factory.Code("DateTime..Now") .AsImplicitExpression(CSharpCodeParser.DefaultKeywords, acceptTrailingDot: true) .Accepts(AcceptedCharacters.NonWhiteSpace)), - factory.Code("\r\n").AsStatement(), + factory.Code(Environment.NewLine).AsStatement(), factory.MetaCode("}").Accepts(AcceptedCharacters.None)), factory.EmptyHtml())); } @@ -91,51 +91,53 @@ namespace Microsoft.AspNet.Razor.Test.Parser.PartialParsing + " @DateTime" + Environment.NewLine + "}"); - var textChange = new TextChange(17, 0, old, 1, changed); - var manager = CreateParserManager(); - Action applyAndVerifyPartialChange = (changeToApply, expectedResult, expectedCode) => + var textChange = new TextChange(15 + Environment.NewLine.Length, 0, old, 1, changed); + using (var manager = CreateParserManager()) { - var result = manager.CheckForStructureChangesAndWait(textChange); + Action applyAndVerifyPartialChange = (changeToApply, expectedResult, expectedCode) => + { + var result = manager.CheckForStructureChangesAndWait(textChange); - // Assert - Assert.Equal(expectedResult, result); - Assert.Equal(1, manager.ParseCount); - ParserTestBase.EvaluateParseTree(manager.Parser.CurrentParseTree, new MarkupBlock( - factory.EmptyHtml(), - new StatementBlock( - factory.CodeTransition(), - factory.MetaCode("{").Accepts(AcceptedCharacters.None), - factory.Code("\r\n ").AsStatement(), - new ExpressionBlock( + // Assert + Assert.Equal(expectedResult, result); + Assert.Equal(1, manager.ParseCount); + ParserTestBase.EvaluateParseTree(manager.Parser.CurrentParseTree, new MarkupBlock( + factory.EmptyHtml(), + new StatementBlock( factory.CodeTransition(), - factory.Code(expectedCode) - .AsImplicitExpression(CSharpCodeParser.DefaultKeywords, acceptTrailingDot: true) - .Accepts(AcceptedCharacters.NonWhiteSpace)), - factory.Code("\r\n").AsStatement(), - factory.MetaCode("}").Accepts(AcceptedCharacters.None)), - factory.EmptyHtml())); - }; + factory.MetaCode("{").Accepts(AcceptedCharacters.None), + factory.Code(Environment.NewLine + " ").AsStatement(), + new ExpressionBlock( + factory.CodeTransition(), + factory.Code(expectedCode) + .AsImplicitExpression(CSharpCodeParser.DefaultKeywords, acceptTrailingDot: true) + .Accepts(AcceptedCharacters.NonWhiteSpace)), + factory.Code(Environment.NewLine).AsStatement(), + factory.MetaCode("}").Accepts(AcceptedCharacters.None)), + factory.EmptyHtml())); + }; - manager.InitializeWithDocument(textChange.OldBuffer); + manager.InitializeWithDocument(textChange.OldBuffer); - // This is the process of a dotless commit when doing "." insertions to commit intellisense changes. - applyAndVerifyPartialChange(textChange, PartialParseResult.Accepted, "DateTime."); + // This is the process of a dotless commit when doing "." insertions to commit intellisense changes. + applyAndVerifyPartialChange(textChange, PartialParseResult.Accepted, "DateTime."); - old = changed; - changed = new StringTextBuffer("@{" + Environment.NewLine - + " @DateTime.." + Environment.NewLine - + "}"); - textChange = new TextChange(18, 0, old, 1, changed); + old = changed; + changed = new StringTextBuffer("@{" + Environment.NewLine + + " @DateTime.." + Environment.NewLine + + "}"); + textChange = new TextChange(16 + Environment.NewLine.Length, 0, old, 1, changed); - applyAndVerifyPartialChange(textChange, PartialParseResult.Accepted, "DateTime.."); + applyAndVerifyPartialChange(textChange, PartialParseResult.Accepted, "DateTime.."); - old = changed; - changed = new StringTextBuffer("@{" + Environment.NewLine - + " @DateTime.Now." + Environment.NewLine - + "}"); - textChange = new TextChange(18, 0, old, 3, changed); + old = changed; + changed = new StringTextBuffer("@{" + Environment.NewLine + + " @DateTime.Now." + Environment.NewLine + + "}"); + textChange = new TextChange(16 + Environment.NewLine.Length, 0, old, 3, changed); - applyAndVerifyPartialChange(textChange, PartialParseResult.Accepted, "DateTime.Now."); + applyAndVerifyPartialChange(textChange, PartialParseResult.Accepted, "DateTime.Now."); + } } [Fact] @@ -149,43 +151,45 @@ namespace Microsoft.AspNet.Razor.Test.Parser.PartialParsing + " @DateT" + Environment.NewLine + "}"); - var textChange = new TextChange(14, 0, old, 1, changed); - var manager = CreateParserManager(); - Action applyAndVerifyPartialChange = (changeToApply, expectedResult, expectedCode) => + var textChange = new TextChange(12 + Environment.NewLine.Length, 0, old, 1, changed); + using (var manager = CreateParserManager()) { - var result = manager.CheckForStructureChangesAndWait(textChange); + Action applyAndVerifyPartialChange = (changeToApply, expectedResult, expectedCode) => + { + var result = manager.CheckForStructureChangesAndWait(textChange); - // Assert - Assert.Equal(expectedResult, result); - Assert.Equal(1, manager.ParseCount); - ParserTestBase.EvaluateParseTree(manager.Parser.CurrentParseTree, new MarkupBlock( - factory.EmptyHtml(), - new StatementBlock( - factory.CodeTransition(), - factory.MetaCode("{").Accepts(AcceptedCharacters.None), - factory.Code("\r\n ").AsStatement(), - new ExpressionBlock( + // Assert + Assert.Equal(expectedResult, result); + Assert.Equal(1, manager.ParseCount); + ParserTestBase.EvaluateParseTree(manager.Parser.CurrentParseTree, new MarkupBlock( + factory.EmptyHtml(), + new StatementBlock( factory.CodeTransition(), - factory.Code(expectedCode) - .AsImplicitExpression(CSharpCodeParser.DefaultKeywords, acceptTrailingDot: true) - .Accepts(AcceptedCharacters.NonWhiteSpace)), - factory.Code("\r\n").AsStatement(), - factory.MetaCode("}").Accepts(AcceptedCharacters.None)), - factory.EmptyHtml())); - }; + factory.MetaCode("{").Accepts(AcceptedCharacters.None), + factory.Code(Environment.NewLine + " ").AsStatement(), + new ExpressionBlock( + factory.CodeTransition(), + factory.Code(expectedCode) + .AsImplicitExpression(CSharpCodeParser.DefaultKeywords, acceptTrailingDot: true) + .Accepts(AcceptedCharacters.NonWhiteSpace)), + factory.Code(Environment.NewLine).AsStatement(), + factory.MetaCode("}").Accepts(AcceptedCharacters.None)), + factory.EmptyHtml())); + }; - manager.InitializeWithDocument(textChange.OldBuffer); + manager.InitializeWithDocument(textChange.OldBuffer); - // This is the process of a dotless commit when doing "." insertions to commit intellisense changes. - applyAndVerifyPartialChange(textChange, PartialParseResult.Accepted, "DateT."); + // This is the process of a dotless commit when doing "." insertions to commit intellisense changes. + applyAndVerifyPartialChange(textChange, PartialParseResult.Accepted, "DateT."); - old = changed; - changed = new StringTextBuffer("@{" + Environment.NewLine - + " @DateTime." + Environment.NewLine - + "}"); - textChange = new TextChange(14, 0, old, 3, changed); + old = changed; + changed = new StringTextBuffer("@{" + Environment.NewLine + + " @DateTime." + Environment.NewLine + + "}"); + textChange = new TextChange(12 + Environment.NewLine.Length, 0, old, 3, changed); - applyAndVerifyPartialChange(textChange, PartialParseResult.Accepted, "DateTime."); + applyAndVerifyPartialChange(textChange, PartialParseResult.Accepted, "DateTime."); + } } [Fact] @@ -195,33 +199,35 @@ namespace Microsoft.AspNet.Razor.Test.Parser.PartialParsing var changed = new StringTextBuffer("foo @DateT. baz"); var old = new StringTextBuffer("foo @DateT baz"); var textChange = new TextChange(10, 0, old, 1, changed); - var manager = CreateParserManager(); - Action applyAndVerifyPartialChange = (changeToApply, expectedResult, expectedCode) => + using (var manager = CreateParserManager()) { - var result = manager.CheckForStructureChangesAndWait(textChange); + Action applyAndVerifyPartialChange = (changeToApply, expectedResult, expectedCode) => + { + var result = manager.CheckForStructureChangesAndWait(textChange); - // Assert - Assert.Equal(expectedResult, result); - Assert.Equal(1, manager.ParseCount); + // Assert + Assert.Equal(expectedResult, result); + Assert.Equal(1, manager.ParseCount); - ParserTestBase.EvaluateParseTree(manager.Parser.CurrentParseTree, new MarkupBlock( - factory.Markup("foo "), - new ExpressionBlock( - factory.CodeTransition(), - factory.Code(expectedCode).AsImplicitExpression(CSharpCodeParser.DefaultKeywords).Accepts(AcceptedCharacters.NonWhiteSpace)), - factory.Markup(" baz"))); - }; + ParserTestBase.EvaluateParseTree(manager.Parser.CurrentParseTree, new MarkupBlock( + factory.Markup("foo "), + new ExpressionBlock( + factory.CodeTransition(), + factory.Code(expectedCode).AsImplicitExpression(CSharpCodeParser.DefaultKeywords).Accepts(AcceptedCharacters.NonWhiteSpace)), + factory.Markup(" baz"))); + }; - manager.InitializeWithDocument(textChange.OldBuffer); + manager.InitializeWithDocument(textChange.OldBuffer); - // This is the process of a dotless commit when doing "." insertions to commit intellisense changes. - applyAndVerifyPartialChange(textChange, PartialParseResult.Accepted | PartialParseResult.Provisional, "DateT."); + // This is the process of a dotless commit when doing "." insertions to commit intellisense changes. + applyAndVerifyPartialChange(textChange, PartialParseResult.Accepted | PartialParseResult.Provisional, "DateT."); - old = changed; - changed = new StringTextBuffer("foo @DateTime. baz"); - textChange = new TextChange(10, 0, old, 3, changed); + old = changed; + changed = new StringTextBuffer("foo @DateTime. baz"); + textChange = new TextChange(10, 0, old, 3, changed); - applyAndVerifyPartialChange(textChange, PartialParseResult.Accepted | PartialParseResult.Provisional, "DateTime."); + applyAndVerifyPartialChange(textChange, PartialParseResult.Accepted | PartialParseResult.Provisional, "DateTime."); + } } [Fact] @@ -231,39 +237,41 @@ namespace Microsoft.AspNet.Razor.Test.Parser.PartialParsing var changed = new StringTextBuffer("foo @DateTime. baz"); var old = new StringTextBuffer("foo @DateTime baz"); var textChange = new TextChange(13, 0, old, 1, changed); - var manager = CreateParserManager(); - Action applyAndVerifyPartialChange = (changeToApply, expectedResult, expectedCode) => + using (var manager = CreateParserManager()) { - var result = manager.CheckForStructureChangesAndWait(textChange); + Action applyAndVerifyPartialChange = (changeToApply, expectedResult, expectedCode) => + { + var result = manager.CheckForStructureChangesAndWait(textChange); - // Assert - Assert.Equal(expectedResult, result); - Assert.Equal(1, manager.ParseCount); + // Assert + Assert.Equal(expectedResult, result); + Assert.Equal(1, manager.ParseCount); - ParserTestBase.EvaluateParseTree(manager.Parser.CurrentParseTree, new MarkupBlock( - factory.Markup("foo "), - new ExpressionBlock( - factory.CodeTransition(), - factory.Code(expectedCode).AsImplicitExpression(CSharpCodeParser.DefaultKeywords).Accepts(AcceptedCharacters.NonWhiteSpace)), - factory.Markup(" baz"))); - }; + ParserTestBase.EvaluateParseTree(manager.Parser.CurrentParseTree, new MarkupBlock( + factory.Markup("foo "), + new ExpressionBlock( + factory.CodeTransition(), + factory.Code(expectedCode).AsImplicitExpression(CSharpCodeParser.DefaultKeywords).Accepts(AcceptedCharacters.NonWhiteSpace)), + factory.Markup(" baz"))); + }; - manager.InitializeWithDocument(textChange.OldBuffer); + manager.InitializeWithDocument(textChange.OldBuffer); - // This is the process of a dotless commit when doing "." insertions to commit intellisense changes. - applyAndVerifyPartialChange(textChange, PartialParseResult.Accepted | PartialParseResult.Provisional, "DateTime."); + // This is the process of a dotless commit when doing "." insertions to commit intellisense changes. + applyAndVerifyPartialChange(textChange, PartialParseResult.Accepted | PartialParseResult.Provisional, "DateTime."); - old = changed; - changed = new StringTextBuffer("foo @DateTime.. baz"); - textChange = new TextChange(14, 0, old, 1, changed); + old = changed; + changed = new StringTextBuffer("foo @DateTime.. baz"); + textChange = new TextChange(14, 0, old, 1, changed); - applyAndVerifyPartialChange(textChange, PartialParseResult.Accepted | PartialParseResult.Provisional, "DateTime.."); + applyAndVerifyPartialChange(textChange, PartialParseResult.Accepted | PartialParseResult.Provisional, "DateTime.."); - old = changed; - changed = new StringTextBuffer("foo @DateTime.Now. baz"); - textChange = new TextChange(14, 0, old, 3, changed); + old = changed; + changed = new StringTextBuffer("foo @DateTime.Now. baz"); + textChange = new TextChange(14, 0, old, 3, changed); - applyAndVerifyPartialChange(textChange, PartialParseResult.Accepted | PartialParseResult.Provisional, "DateTime.Now."); + applyAndVerifyPartialChange(textChange, PartialParseResult.Accepted | PartialParseResult.Provisional, "DateTime.Now."); + } } [Fact] @@ -338,19 +346,19 @@ namespace Microsoft.AspNet.Razor.Test.Parser.PartialParsing var old = new StringTextBuffer("@{" + Environment.NewLine + " @foo" + Environment.NewLine + "}"); - RunPartialParseTest(new TextChange(12, 0, old, 1, changed), + RunPartialParseTest(new TextChange(10 + Environment.NewLine.Length, 0, old, 1, changed), new MarkupBlock( factory.EmptyHtml(), new StatementBlock( factory.CodeTransition(), factory.MetaCode("{").Accepts(AcceptedCharacters.None), - factory.Code("\r\n ").AsStatement(), + factory.Code(Environment.NewLine + " ").AsStatement(), new ExpressionBlock( factory.CodeTransition(), factory.Code("food") .AsImplicitExpression(CSharpCodeParser.DefaultKeywords, acceptTrailingDot: true) .Accepts(AcceptedCharacters.NonWhiteSpace)), - factory.Code("\r\n").AsStatement(), + factory.Code(Environment.NewLine).AsStatement(), factory.MetaCode("}").Accepts(AcceptedCharacters.None)), factory.EmptyHtml())); } @@ -365,19 +373,19 @@ namespace Microsoft.AspNet.Razor.Test.Parser.PartialParsing var old = new StringTextBuffer("@{" + Environment.NewLine + " @foo." + Environment.NewLine + "}"); - RunPartialParseTest(new TextChange(13, 0, old, 1, changed), + RunPartialParseTest(new TextChange(11 + Environment.NewLine.Length, 0, old, 1, changed), new MarkupBlock( factory.EmptyHtml(), new StatementBlock( factory.CodeTransition(), factory.MetaCode("{").Accepts(AcceptedCharacters.None), - factory.Code("\r\n ").AsStatement(), + factory.Code(Environment.NewLine + " ").AsStatement(), new ExpressionBlock( factory.CodeTransition(), factory.Code("foo.d") .AsImplicitExpression(CSharpCodeParser.DefaultKeywords, acceptTrailingDot: true) .Accepts(AcceptedCharacters.NonWhiteSpace)), - factory.Code("\r\n").AsStatement(), + factory.Code(Environment.NewLine).AsStatement(), factory.MetaCode("}").Accepts(AcceptedCharacters.None)), factory.EmptyHtml())); } @@ -392,19 +400,19 @@ namespace Microsoft.AspNet.Razor.Test.Parser.PartialParsing var old = new StringTextBuffer("@{" + Environment.NewLine + " @foo" + Environment.NewLine + "}"); - RunPartialParseTest(new TextChange(12, 0, old, 1, changed), + RunPartialParseTest(new TextChange(10 + Environment.NewLine.Length, 0, old, 1, changed), new MarkupBlock( factory.EmptyHtml(), new StatementBlock( factory.CodeTransition(), factory.MetaCode("{").Accepts(AcceptedCharacters.None), - factory.Code("\r\n ").AsStatement(), + factory.Code(Environment.NewLine + " ").AsStatement(), new ExpressionBlock( factory.CodeTransition(), factory.Code(@"foo.") .AsImplicitExpression(CSharpCodeParser.DefaultKeywords, acceptTrailingDot: true) .Accepts(AcceptedCharacters.NonWhiteSpace)), - factory.Code("\r\n").AsStatement(), + factory.Code(Environment.NewLine).AsStatement(), factory.MetaCode("}").Accepts(AcceptedCharacters.None)), factory.EmptyHtml())); } @@ -417,33 +425,35 @@ namespace Microsoft.AspNet.Razor.Test.Parser.PartialParsing // Arrange var dotTyped = new TextChange(8, 0, new StringTextBuffer("foo @foo @bar"), 1, new StringTextBuffer("foo @foo. @bar")); var charTyped = new TextChange(14, 0, new StringTextBuffer("foo @foo. @bar"), 1, new StringTextBuffer("foo @foo. @barb")); - var manager = CreateParserManager(); - manager.InitializeWithDocument(dotTyped.OldBuffer); + using (var manager = CreateParserManager()) + { + manager.InitializeWithDocument(dotTyped.OldBuffer); - // Apply the dot change - Assert.Equal(PartialParseResult.Provisional | PartialParseResult.Accepted, manager.CheckForStructureChangesAndWait(dotTyped)); + // Apply the dot change + Assert.Equal(PartialParseResult.Provisional | PartialParseResult.Accepted, manager.CheckForStructureChangesAndWait(dotTyped)); - // Act (apply the identifier start char change) - var result = manager.CheckForStructureChangesAndWait(charTyped); + // Act (apply the identifier start char change) + var result = manager.CheckForStructureChangesAndWait(charTyped); - // Assert - Assert.Equal(PartialParseResult.Rejected, result); - Assert.False(manager.Parser.LastResultProvisional, "LastResultProvisional flag should have been cleared but it was not"); - ParserTestBase.EvaluateParseTree(manager.Parser.CurrentParseTree, - new MarkupBlock( - factory.Markup("foo "), - new ExpressionBlock( - factory.CodeTransition(), - factory.Code("foo") - .AsImplicitExpression(CSharpCodeParser.DefaultKeywords) - .Accepts(AcceptedCharacters.NonWhiteSpace)), - factory.Markup(". "), - new ExpressionBlock( - factory.CodeTransition(), - factory.Code("barb") - .AsImplicitExpression(CSharpCodeParser.DefaultKeywords) - .Accepts(AcceptedCharacters.NonWhiteSpace)), - factory.EmptyHtml())); + // Assert + Assert.Equal(PartialParseResult.Rejected, result); + Assert.False(manager.Parser.LastResultProvisional, "LastResultProvisional flag should have been cleared but it was not"); + ParserTestBase.EvaluateParseTree(manager.Parser.CurrentParseTree, + new MarkupBlock( + factory.Markup("foo "), + new ExpressionBlock( + factory.CodeTransition(), + factory.Code("foo") + .AsImplicitExpression(CSharpCodeParser.DefaultKeywords) + .Accepts(AcceptedCharacters.NonWhiteSpace)), + factory.Markup(". "), + new ExpressionBlock( + factory.CodeTransition(), + factory.Code("barb") + .AsImplicitExpression(CSharpCodeParser.DefaultKeywords) + .Accepts(AcceptedCharacters.NonWhiteSpace)), + factory.EmptyHtml())); + } } [Fact] @@ -454,27 +464,29 @@ namespace Microsoft.AspNet.Razor.Test.Parser.PartialParsing // Arrange var dotTyped = new TextChange(8, 0, new StringTextBuffer("foo @foo bar"), 1, new StringTextBuffer("foo @foo. bar")); var charTyped = new TextChange(9, 0, new StringTextBuffer("foo @foo. bar"), 1, new StringTextBuffer("foo @foo.b bar")); - var manager = CreateParserManager(); - manager.InitializeWithDocument(dotTyped.OldBuffer); + using (var manager = CreateParserManager()) + { + manager.InitializeWithDocument(dotTyped.OldBuffer); - // Apply the dot change - Assert.Equal(PartialParseResult.Provisional | PartialParseResult.Accepted, manager.CheckForStructureChangesAndWait(dotTyped)); + // Apply the dot change + Assert.Equal(PartialParseResult.Provisional | PartialParseResult.Accepted, manager.CheckForStructureChangesAndWait(dotTyped)); - // Act (apply the identifier start char change) - var result = manager.CheckForStructureChangesAndWait(charTyped); + // Act (apply the identifier start char change) + var result = manager.CheckForStructureChangesAndWait(charTyped); - // Assert - Assert.Equal(PartialParseResult.Accepted, result); - Assert.False(manager.Parser.LastResultProvisional, "LastResultProvisional flag should have been cleared but it was not"); - ParserTestBase.EvaluateParseTree(manager.Parser.CurrentParseTree, - new MarkupBlock( - factory.Markup("foo "), - new ExpressionBlock( - factory.CodeTransition(), - factory.Code("foo.b") - .AsImplicitExpression(CSharpCodeParser.DefaultKeywords) - .Accepts(AcceptedCharacters.NonWhiteSpace)), - factory.Markup(" bar"))); + // Assert + Assert.Equal(PartialParseResult.Accepted, result); + Assert.False(manager.Parser.LastResultProvisional, "LastResultProvisional flag should have been cleared but it was not"); + ParserTestBase.EvaluateParseTree(manager.Parser.CurrentParseTree, + new MarkupBlock( + factory.Markup("foo "), + new ExpressionBlock( + factory.CodeTransition(), + factory.Code("foo.b") + .AsImplicitExpression(CSharpCodeParser.DefaultKeywords) + .Accepts(AcceptedCharacters.NonWhiteSpace)), + factory.Markup(" bar"))); + } } [Fact] diff --git a/test/Microsoft.AspNet.Razor.Test/Parser/PartialParsing/PartialParsingTestBase.cs b/test/Microsoft.AspNet.Razor.Test/Parser/PartialParsing/PartialParsingTestBase.cs index da4d90ce7c..d4d89c1b3f 100644 --- a/test/Microsoft.AspNet.Razor.Test/Parser/PartialParsing/PartialParsingTestBase.cs +++ b/test/Microsoft.AspNet.Razor.Test/Parser/PartialParsing/PartialParsingTestBase.cs @@ -21,30 +21,34 @@ namespace Microsoft.AspNet.Razor.Test.Parser.PartialParsing protected static void RunFullReparseTest(TextChange change, PartialParseResult additionalFlags = (PartialParseResult)0) { // Arrange - var manager = CreateParserManager(); - manager.InitializeWithDocument(change.OldBuffer); + using (var manager = CreateParserManager()) + { + manager.InitializeWithDocument(change.OldBuffer); - // Act - var result = manager.CheckForStructureChangesAndWait(change); + // Act + var result = manager.CheckForStructureChangesAndWait(change); - // Assert - Assert.Equal(PartialParseResult.Rejected | additionalFlags, result); - Assert.Equal(2, manager.ParseCount); + // Assert + Assert.Equal(PartialParseResult.Rejected | additionalFlags, result); + Assert.Equal(2, manager.ParseCount); + } } protected static void RunPartialParseTest(TextChange change, Block newTreeRoot, PartialParseResult additionalFlags = (PartialParseResult)0) { // Arrange - var manager = CreateParserManager(); - manager.InitializeWithDocument(change.OldBuffer); + using (var manager = CreateParserManager()) + { + manager.InitializeWithDocument(change.OldBuffer); - // Act - var result = manager.CheckForStructureChangesAndWait(change); + // Act + var result = manager.CheckForStructureChangesAndWait(change); - // Assert - Assert.Equal(PartialParseResult.Accepted | additionalFlags, result); - Assert.Equal(1, manager.ParseCount); - ParserTestBase.EvaluateParseTree(manager.Parser.CurrentParseTree, newTreeRoot); + // Assert + Assert.Equal(PartialParseResult.Accepted | additionalFlags, result); + Assert.Equal(1, manager.ParseCount); + ParserTestBase.EvaluateParseTree(manager.Parser.CurrentParseTree, newTreeRoot); + } } protected static TestParserManager CreateParserManager() @@ -79,24 +83,26 @@ namespace Microsoft.AspNet.Razor.Test.Parser.PartialParsing RunFullReparseTest(new TextChange(keyword.Length, 0, old, 1, changed), additionalFlags: PartialParseResult.SpanContextChanged); } - protected class TestParserManager + protected class TestParserManager : IDisposable { - public RazorEditorParser Parser; - public ManualResetEventSlim ParserComplete; public int ParseCount; + private readonly ManualResetEventSlim _parserComplete; + public TestParserManager(RazorEditorParser parser) { - ParserComplete = new ManualResetEventSlim(); + _parserComplete = new ManualResetEventSlim(); ParseCount = 0; Parser = parser; parser.DocumentParseComplete += (sender, args) => { Interlocked.Increment(ref ParseCount); - ParserComplete.Set(); + _parserComplete.Set(); }; } + public RazorEditorParser Parser { get; } + public void InitializeWithDocument(ITextBuffer startDocument) { CheckForStructureChangesAndWait(new TextChange(0, 0, new StringTextBuffer(String.Empty), startDocument.Length, startDocument)); @@ -114,8 +120,13 @@ namespace Microsoft.AspNet.Razor.Test.Parser.PartialParsing public void WaitForParse() { - MiscUtils.DoWithTimeoutIfNotDebugging(ParserComplete.Wait); // Wait for the parse to finish - ParserComplete.Reset(); + MiscUtils.DoWithTimeoutIfNotDebugging(_parserComplete.Wait); // Wait for the parse to finish + _parserComplete.Reset(); + } + + public void Dispose() + { + Parser.Dispose(); } } } diff --git a/test/Microsoft.AspNet.Razor.Test/TestFiles/CodeGenerator/CS/Output/AttributeTargetingTagHelpers.cs b/test/Microsoft.AspNet.Razor.Test/TestFiles/CodeGenerator/CS/Output/AttributeTargetingTagHelpers.cs index 54d6f94aac..6b474956de 100644 --- a/test/Microsoft.AspNet.Razor.Test/TestFiles/CodeGenerator/CS/Output/AttributeTargetingTagHelpers.cs +++ b/test/Microsoft.AspNet.Razor.Test/TestFiles/CodeGenerator/CS/Output/AttributeTargetingTagHelpers.cs @@ -1,4 +1,4 @@ -#pragma checksum "AttributeTargetingTagHelpers.cshtml" "{ff1816ec-aa5e-4d10-87f7-6f4963833460}" "e5aa16869aaf5543b30289e98ee5733b08bfe423" +#pragma checksum "AttributeTargetingTagHelpers.cshtml" "{ff1816ec-aa5e-4d10-87f7-6f4963833460}" "edaa271f830648a99892d01bb55f49e328fa621c" namespace TestOutput { using Microsoft.AspNet.Razor.Runtime.TagHelpers; diff --git a/test/Microsoft.AspNet.Razor.Test/TestFiles/CodeGenerator/CS/Output/Await.cs b/test/Microsoft.AspNet.Razor.Test/TestFiles/CodeGenerator/CS/Output/Await.cs index d90faf9ad0..36f827ce73 100644 --- a/test/Microsoft.AspNet.Razor.Test/TestFiles/CodeGenerator/CS/Output/Await.cs +++ b/test/Microsoft.AspNet.Razor.Test/TestFiles/CodeGenerator/CS/Output/Await.cs @@ -1,4 +1,4 @@ -#pragma checksum "Await.cshtml" "{ff1816ec-aa5e-4d10-87f7-6f4963833460}" "5a02c3ec89081f6e0a8f4810e127eed40467c358" +#pragma checksum "Await.cshtml" "{ff1816ec-aa5e-4d10-87f7-6f4963833460}" "00b5e01b7a405dcfde7e4d512ee930daaa1778b5" namespace TestOutput { using System; diff --git a/test/Microsoft.AspNet.Razor.Test/TestFiles/CodeGenerator/CS/Output/BasicTagHelpers.CustomAttributeCodeGenerator.cs b/test/Microsoft.AspNet.Razor.Test/TestFiles/CodeGenerator/CS/Output/BasicTagHelpers.CustomAttributeCodeGenerator.cs index 30dbb75c4c..5d8925a86e 100644 --- a/test/Microsoft.AspNet.Razor.Test/TestFiles/CodeGenerator/CS/Output/BasicTagHelpers.CustomAttributeCodeGenerator.cs +++ b/test/Microsoft.AspNet.Razor.Test/TestFiles/CodeGenerator/CS/Output/BasicTagHelpers.CustomAttributeCodeGenerator.cs @@ -1,4 +1,4 @@ -#pragma checksum "BasicTagHelpers.cshtml" "{ff1816ec-aa5e-4d10-87f7-6f4963833460}" "ef59308f8b0456ad2f49a08604e8ba36ca11a4b2" +#pragma checksum "BasicTagHelpers.cshtml" "{ff1816ec-aa5e-4d10-87f7-6f4963833460}" "90382b3c748e0f948dfb6b452b775ba3024b2fe6" namespace TestOutput { using Microsoft.AspNet.Razor.Runtime.TagHelpers; diff --git a/test/Microsoft.AspNet.Razor.Test/TestFiles/CodeGenerator/CS/Output/BasicTagHelpers.Prefixed.cs b/test/Microsoft.AspNet.Razor.Test/TestFiles/CodeGenerator/CS/Output/BasicTagHelpers.Prefixed.cs index b45ff3baf9..5d99c24a86 100644 --- a/test/Microsoft.AspNet.Razor.Test/TestFiles/CodeGenerator/CS/Output/BasicTagHelpers.Prefixed.cs +++ b/test/Microsoft.AspNet.Razor.Test/TestFiles/CodeGenerator/CS/Output/BasicTagHelpers.Prefixed.cs @@ -1,4 +1,4 @@ -#pragma checksum "BasicTagHelpers.Prefixed.cshtml" "{ff1816ec-aa5e-4d10-87f7-6f4963833460}" "27630097585fd58e68cb0ac5b772154eff02a52a" +#pragma checksum "BasicTagHelpers.Prefixed.cshtml" "{ff1816ec-aa5e-4d10-87f7-6f4963833460}" "da1aeb71c15bd7443662536f58df99382b0a47f2" namespace TestOutput { using Microsoft.AspNet.Razor.Runtime.TagHelpers; diff --git a/test/Microsoft.AspNet.Razor.Test/TestFiles/CodeGenerator/CS/Output/BasicTagHelpers.RemoveTagHelper.cs b/test/Microsoft.AspNet.Razor.Test/TestFiles/CodeGenerator/CS/Output/BasicTagHelpers.RemoveTagHelper.cs index c3caece04a..2c5cbd0dc8 100644 --- a/test/Microsoft.AspNet.Razor.Test/TestFiles/CodeGenerator/CS/Output/BasicTagHelpers.RemoveTagHelper.cs +++ b/test/Microsoft.AspNet.Razor.Test/TestFiles/CodeGenerator/CS/Output/BasicTagHelpers.RemoveTagHelper.cs @@ -1,4 +1,4 @@ -#pragma checksum "BasicTagHelpers.RemoveTagHelper.cshtml" "{ff1816ec-aa5e-4d10-87f7-6f4963833460}" "48dc91408dc7bf6406139461afa4867d176adaf7" +#pragma checksum "BasicTagHelpers.RemoveTagHelper.cshtml" "{ff1816ec-aa5e-4d10-87f7-6f4963833460}" "833fbb5056a48116b0fe6386da7b14bc18d3b330" namespace TestOutput { using System; diff --git a/test/Microsoft.AspNet.Razor.Test/TestFiles/CodeGenerator/CS/Output/BasicTagHelpers.cs b/test/Microsoft.AspNet.Razor.Test/TestFiles/CodeGenerator/CS/Output/BasicTagHelpers.cs index 6ec4ea8d86..b1b35018f7 100644 --- a/test/Microsoft.AspNet.Razor.Test/TestFiles/CodeGenerator/CS/Output/BasicTagHelpers.cs +++ b/test/Microsoft.AspNet.Razor.Test/TestFiles/CodeGenerator/CS/Output/BasicTagHelpers.cs @@ -1,4 +1,4 @@ -#pragma checksum "BasicTagHelpers.cshtml" "{ff1816ec-aa5e-4d10-87f7-6f4963833460}" "ef59308f8b0456ad2f49a08604e8ba36ca11a4b2" +#pragma checksum "BasicTagHelpers.cshtml" "{ff1816ec-aa5e-4d10-87f7-6f4963833460}" "90382b3c748e0f948dfb6b452b775ba3024b2fe6" namespace TestOutput { using Microsoft.AspNet.Razor.Runtime.TagHelpers; diff --git a/test/Microsoft.AspNet.Razor.Test/TestFiles/CodeGenerator/CS/Output/Blocks.cs b/test/Microsoft.AspNet.Razor.Test/TestFiles/CodeGenerator/CS/Output/Blocks.cs index cc7a48ebe2..d8d8010fd4 100644 --- a/test/Microsoft.AspNet.Razor.Test/TestFiles/CodeGenerator/CS/Output/Blocks.cs +++ b/test/Microsoft.AspNet.Razor.Test/TestFiles/CodeGenerator/CS/Output/Blocks.cs @@ -1,4 +1,4 @@ -#pragma checksum "Blocks.cshtml" "{ff1816ec-aa5e-4d10-87f7-6f4963833460}" "ed55fda2b7b0b96b044fc45da658dc062479924f" +#pragma checksum "Blocks.cshtml" "{ff1816ec-aa5e-4d10-87f7-6f4963833460}" "ba7d8f5f5159a2389c780aa606885ef6c917a45a" namespace TestOutput { using System; diff --git a/test/Microsoft.AspNet.Razor.Test/TestFiles/CodeGenerator/CS/Output/CodeBlock.cs b/test/Microsoft.AspNet.Razor.Test/TestFiles/CodeGenerator/CS/Output/CodeBlock.cs index 8b03e579c1..a2ade508bf 100644 --- a/test/Microsoft.AspNet.Razor.Test/TestFiles/CodeGenerator/CS/Output/CodeBlock.cs +++ b/test/Microsoft.AspNet.Razor.Test/TestFiles/CodeGenerator/CS/Output/CodeBlock.cs @@ -1,4 +1,4 @@ -#pragma checksum "CodeBlock.cshtml" "{ff1816ec-aa5e-4d10-87f7-6f4963833460}" "d570564dcb19afbfb9fcd1b8a7e339d22c0d0c97" +#pragma checksum "CodeBlock.cshtml" "{ff1816ec-aa5e-4d10-87f7-6f4963833460}" "019ce8023d064d08ca88c597b764aea895ec5841" namespace TestOutput { using System; diff --git a/test/Microsoft.AspNet.Razor.Test/TestFiles/CodeGenerator/CS/Output/ComplexTagHelpers.cs b/test/Microsoft.AspNet.Razor.Test/TestFiles/CodeGenerator/CS/Output/ComplexTagHelpers.cs index 2981a6e9e0..461c6fb808 100644 --- a/test/Microsoft.AspNet.Razor.Test/TestFiles/CodeGenerator/CS/Output/ComplexTagHelpers.cs +++ b/test/Microsoft.AspNet.Razor.Test/TestFiles/CodeGenerator/CS/Output/ComplexTagHelpers.cs @@ -1,4 +1,4 @@ -#pragma checksum "ComplexTagHelpers.cshtml" "{ff1816ec-aa5e-4d10-87f7-6f4963833460}" "184461ac3cd2d1747e4480d78478e69dbf800e65" +#pragma checksum "ComplexTagHelpers.cshtml" "{ff1816ec-aa5e-4d10-87f7-6f4963833460}" "e63f87bb14f278343a07e293df68e44e88600352" namespace TestOutput { using Microsoft.AspNet.Razor.Runtime.TagHelpers; diff --git a/test/Microsoft.AspNet.Razor.Test/TestFiles/CodeGenerator/CS/Output/ConditionalAttributes.cs b/test/Microsoft.AspNet.Razor.Test/TestFiles/CodeGenerator/CS/Output/ConditionalAttributes.cs index 77e7d58e4f..81bb4c5cba 100644 --- a/test/Microsoft.AspNet.Razor.Test/TestFiles/CodeGenerator/CS/Output/ConditionalAttributes.cs +++ b/test/Microsoft.AspNet.Razor.Test/TestFiles/CodeGenerator/CS/Output/ConditionalAttributes.cs @@ -1,4 +1,4 @@ -#pragma checksum "ConditionalAttributes.cshtml" "{ff1816ec-aa5e-4d10-87f7-6f4963833460}" "f0a97e23ecfbaaaa77b528650156cb123ebdbe60" +#pragma checksum "ConditionalAttributes.cshtml" "{ff1816ec-aa5e-4d10-87f7-6f4963833460}" "088be4e50958bcab0f1d1ac04d2c28dcd8049bf5" namespace TestOutput { using System; diff --git a/test/Microsoft.AspNet.Razor.Test/TestFiles/CodeGenerator/CS/Output/DuplicateTargetTagHelper.cs b/test/Microsoft.AspNet.Razor.Test/TestFiles/CodeGenerator/CS/Output/DuplicateTargetTagHelper.cs index 1b4c70e5a7..37d53acfb5 100644 --- a/test/Microsoft.AspNet.Razor.Test/TestFiles/CodeGenerator/CS/Output/DuplicateTargetTagHelper.cs +++ b/test/Microsoft.AspNet.Razor.Test/TestFiles/CodeGenerator/CS/Output/DuplicateTargetTagHelper.cs @@ -1,4 +1,4 @@ -#pragma checksum "DuplicateTargetTagHelper.cshtml" "{ff1816ec-aa5e-4d10-87f7-6f4963833460}" "9cd2f5a40be40d26a0756bf6a74cee58bd13927f" +#pragma checksum "DuplicateTargetTagHelper.cshtml" "{ff1816ec-aa5e-4d10-87f7-6f4963833460}" "77e70e938d77f71e489354b1e7c351c588001690" namespace TestOutput { using Microsoft.AspNet.Razor.Runtime.TagHelpers; diff --git a/test/Microsoft.AspNet.Razor.Test/TestFiles/CodeGenerator/CS/Output/EmptyAttributeTagHelpers.cs b/test/Microsoft.AspNet.Razor.Test/TestFiles/CodeGenerator/CS/Output/EmptyAttributeTagHelpers.cs index 222ec37db3..0ec84634f2 100644 --- a/test/Microsoft.AspNet.Razor.Test/TestFiles/CodeGenerator/CS/Output/EmptyAttributeTagHelpers.cs +++ b/test/Microsoft.AspNet.Razor.Test/TestFiles/CodeGenerator/CS/Output/EmptyAttributeTagHelpers.cs @@ -1,4 +1,4 @@ -#pragma checksum "EmptyAttributeTagHelpers.cshtml" "{ff1816ec-aa5e-4d10-87f7-6f4963833460}" "20e2b8804c3af56e185a59be9d21ab33fb33774f" +#pragma checksum "EmptyAttributeTagHelpers.cshtml" "{ff1816ec-aa5e-4d10-87f7-6f4963833460}" "cdf68f4aae781fadf4445e465c23df6d758fcd81" namespace TestOutput { using Microsoft.AspNet.Razor.Runtime.TagHelpers; diff --git a/test/Microsoft.AspNet.Razor.Test/TestFiles/CodeGenerator/CS/Output/EscapedTagHelpers.cs b/test/Microsoft.AspNet.Razor.Test/TestFiles/CodeGenerator/CS/Output/EscapedTagHelpers.cs index b679f53c64..5b1980f3cc 100644 --- a/test/Microsoft.AspNet.Razor.Test/TestFiles/CodeGenerator/CS/Output/EscapedTagHelpers.cs +++ b/test/Microsoft.AspNet.Razor.Test/TestFiles/CodeGenerator/CS/Output/EscapedTagHelpers.cs @@ -1,4 +1,4 @@ -#pragma checksum "EscapedTagHelpers.cshtml" "{ff1816ec-aa5e-4d10-87f7-6f4963833460}" "34a293044db8d18ae2c99fc1e4231e9e7ee96137" +#pragma checksum "EscapedTagHelpers.cshtml" "{ff1816ec-aa5e-4d10-87f7-6f4963833460}" "dcdd88b4f52fa03367f94849021a84a290cb3c1e" namespace TestOutput { using Microsoft.AspNet.Razor.Runtime.TagHelpers; diff --git a/test/Microsoft.AspNet.Razor.Test/TestFiles/CodeGenerator/CS/Output/ExplicitExpression.cs b/test/Microsoft.AspNet.Razor.Test/TestFiles/CodeGenerator/CS/Output/ExplicitExpression.cs index d1510afbac..5b4efaa4b0 100644 --- a/test/Microsoft.AspNet.Razor.Test/TestFiles/CodeGenerator/CS/Output/ExplicitExpression.cs +++ b/test/Microsoft.AspNet.Razor.Test/TestFiles/CodeGenerator/CS/Output/ExplicitExpression.cs @@ -1,4 +1,4 @@ -#pragma checksum "ExplicitExpression.cshtml" "{ff1816ec-aa5e-4d10-87f7-6f4963833460}" "0fa6894c606c7426da1d8cacfbacf8be971c777f" +#pragma checksum "ExplicitExpression.cshtml" "{ff1816ec-aa5e-4d10-87f7-6f4963833460}" "a897a227b26c531d644bdff988df46d3c8178346" namespace TestOutput { using System; diff --git a/test/Microsoft.AspNet.Razor.Test/TestFiles/CodeGenerator/CS/Output/ExpressionsInCode.cs b/test/Microsoft.AspNet.Razor.Test/TestFiles/CodeGenerator/CS/Output/ExpressionsInCode.cs index 7e85657494..db8aa9c740 100644 --- a/test/Microsoft.AspNet.Razor.Test/TestFiles/CodeGenerator/CS/Output/ExpressionsInCode.cs +++ b/test/Microsoft.AspNet.Razor.Test/TestFiles/CodeGenerator/CS/Output/ExpressionsInCode.cs @@ -1,4 +1,4 @@ -#pragma checksum "ExpressionsInCode.cshtml" "{ff1816ec-aa5e-4d10-87f7-6f4963833460}" "3ccb5b16f61b84dd82d7402e4a17870a39d09ca9" +#pragma checksum "ExpressionsInCode.cshtml" "{ff1816ec-aa5e-4d10-87f7-6f4963833460}" "8c7ae67489dbddec9f2dbef3c2b65def1149e507" namespace TestOutput { using System; diff --git a/test/Microsoft.AspNet.Razor.Test/TestFiles/CodeGenerator/CS/Output/FunctionsBlock.cs b/test/Microsoft.AspNet.Razor.Test/TestFiles/CodeGenerator/CS/Output/FunctionsBlock.cs index 7f02d25b97..0543d15861 100644 --- a/test/Microsoft.AspNet.Razor.Test/TestFiles/CodeGenerator/CS/Output/FunctionsBlock.cs +++ b/test/Microsoft.AspNet.Razor.Test/TestFiles/CodeGenerator/CS/Output/FunctionsBlock.cs @@ -1,4 +1,4 @@ -#pragma checksum "FunctionsBlock.cshtml" "{ff1816ec-aa5e-4d10-87f7-6f4963833460}" "e6a053bfeb65ba3e17885a8ae1523f28a3483258" +#pragma checksum "FunctionsBlock.cshtml" "{ff1816ec-aa5e-4d10-87f7-6f4963833460}" "94813053694a285515d791c48d703f1131881d0c" namespace TestOutput { using System; diff --git a/test/Microsoft.AspNet.Razor.Test/TestFiles/CodeGenerator/CS/Output/FunctionsBlock_Tabs.cs b/test/Microsoft.AspNet.Razor.Test/TestFiles/CodeGenerator/CS/Output/FunctionsBlock_Tabs.cs index 23131056e4..799be52572 100644 --- a/test/Microsoft.AspNet.Razor.Test/TestFiles/CodeGenerator/CS/Output/FunctionsBlock_Tabs.cs +++ b/test/Microsoft.AspNet.Razor.Test/TestFiles/CodeGenerator/CS/Output/FunctionsBlock_Tabs.cs @@ -1,4 +1,4 @@ -#pragma checksum "FunctionsBlock_Tabs.cshtml" "{ff1816ec-aa5e-4d10-87f7-6f4963833460}" "93dd195557fe9c2e5a15b75d76608f2cb7082f3f" +#pragma checksum "FunctionsBlock_Tabs.cshtml" "{ff1816ec-aa5e-4d10-87f7-6f4963833460}" "3e566e32504e461e14de41901beb954faf0a3724" namespace TestOutput { using System; diff --git a/test/Microsoft.AspNet.Razor.Test/TestFiles/CodeGenerator/CS/Output/HtmlCommentWithQuote_Double.cs b/test/Microsoft.AspNet.Razor.Test/TestFiles/CodeGenerator/CS/Output/HtmlCommentWithQuote_Double.cs index 2dd85ebbd5..e1760a3b79 100644 --- a/test/Microsoft.AspNet.Razor.Test/TestFiles/CodeGenerator/CS/Output/HtmlCommentWithQuote_Double.cs +++ b/test/Microsoft.AspNet.Razor.Test/TestFiles/CodeGenerator/CS/Output/HtmlCommentWithQuote_Double.cs @@ -1,4 +1,4 @@ -#pragma checksum "HtmlCommentWithQuote_Double.cshtml" "{ff1816ec-aa5e-4d10-87f7-6f4963833460}" "520aebbcdbdb163b131356be8f3aef0eb0809c47" +#pragma checksum "HtmlCommentWithQuote_Double.cshtml" "{ff1816ec-aa5e-4d10-87f7-6f4963833460}" "a07711bc1fd0478b3b8329a68ab2028ef93429df" namespace TestOutput { using System; diff --git a/test/Microsoft.AspNet.Razor.Test/TestFiles/CodeGenerator/CS/Output/HtmlCommentWithQuote_Single.cs b/test/Microsoft.AspNet.Razor.Test/TestFiles/CodeGenerator/CS/Output/HtmlCommentWithQuote_Single.cs index b812730631..dee532c5b6 100644 --- a/test/Microsoft.AspNet.Razor.Test/TestFiles/CodeGenerator/CS/Output/HtmlCommentWithQuote_Single.cs +++ b/test/Microsoft.AspNet.Razor.Test/TestFiles/CodeGenerator/CS/Output/HtmlCommentWithQuote_Single.cs @@ -1,4 +1,4 @@ -#pragma checksum "HtmlCommentWithQuote_Single.cshtml" "{ff1816ec-aa5e-4d10-87f7-6f4963833460}" "2080c7f4c5de3e5e7f309c11a6be5c5e8d86e75a" +#pragma checksum "HtmlCommentWithQuote_Single.cshtml" "{ff1816ec-aa5e-4d10-87f7-6f4963833460}" "2d9bb4407e7aac9563aaeac9f0534a48f54e3d44" namespace TestOutput { using System; diff --git a/test/Microsoft.AspNet.Razor.Test/TestFiles/CodeGenerator/CS/Output/ImplicitExpression.cs b/test/Microsoft.AspNet.Razor.Test/TestFiles/CodeGenerator/CS/Output/ImplicitExpression.cs index 851a92881c..2cd6ebeebc 100644 --- a/test/Microsoft.AspNet.Razor.Test/TestFiles/CodeGenerator/CS/Output/ImplicitExpression.cs +++ b/test/Microsoft.AspNet.Razor.Test/TestFiles/CodeGenerator/CS/Output/ImplicitExpression.cs @@ -1,4 +1,4 @@ -#pragma checksum "ImplicitExpression.cshtml" "{ff1816ec-aa5e-4d10-87f7-6f4963833460}" "68460c577f1cb90794f25535a35a82ff2aa4c193" +#pragma checksum "ImplicitExpression.cshtml" "{ff1816ec-aa5e-4d10-87f7-6f4963833460}" "77befd9645f3c2d9ab48b935faebf9f731f42abc" namespace TestOutput { using System; diff --git a/test/Microsoft.AspNet.Razor.Test/TestFiles/CodeGenerator/CS/Output/Imports.cs b/test/Microsoft.AspNet.Razor.Test/TestFiles/CodeGenerator/CS/Output/Imports.cs index e50a12a38d..689763e5a9 100644 --- a/test/Microsoft.AspNet.Razor.Test/TestFiles/CodeGenerator/CS/Output/Imports.cs +++ b/test/Microsoft.AspNet.Razor.Test/TestFiles/CodeGenerator/CS/Output/Imports.cs @@ -1,4 +1,4 @@ -#pragma checksum "Imports.cshtml" "{ff1816ec-aa5e-4d10-87f7-6f4963833460}" "6e81e2fa106d657a3f2e198f0c687cb19b2f7e9e" +#pragma checksum "Imports.cshtml" "{ff1816ec-aa5e-4d10-87f7-6f4963833460}" "1b57def0ce2632d0f50d63dbdc5e0e719c202863" namespace TestOutput { #line 1 "Imports.cshtml" diff --git a/test/Microsoft.AspNet.Razor.Test/TestFiles/CodeGenerator/CS/Output/Inherits.Runtime.cs b/test/Microsoft.AspNet.Razor.Test/TestFiles/CodeGenerator/CS/Output/Inherits.Runtime.cs index aa2825ca89..c875e9d4c1 100644 --- a/test/Microsoft.AspNet.Razor.Test/TestFiles/CodeGenerator/CS/Output/Inherits.Runtime.cs +++ b/test/Microsoft.AspNet.Razor.Test/TestFiles/CodeGenerator/CS/Output/Inherits.Runtime.cs @@ -1,4 +1,4 @@ -#pragma checksum "Inherits.cshtml" "{ff1816ec-aa5e-4d10-87f7-6f4963833460}" "b9264c58289dbea68e46a818fd0c4c4d835b3a84" +#pragma checksum "Inherits.cshtml" "{ff1816ec-aa5e-4d10-87f7-6f4963833460}" "72d6e21c6366f99a17c63abebb46db3470f4d1da" namespace TestOutput { using System; diff --git a/test/Microsoft.AspNet.Razor.Test/TestFiles/CodeGenerator/CS/Output/InlineBlocks.cs b/test/Microsoft.AspNet.Razor.Test/TestFiles/CodeGenerator/CS/Output/InlineBlocks.cs index 85f3739cab..f56f0a9994 100644 --- a/test/Microsoft.AspNet.Razor.Test/TestFiles/CodeGenerator/CS/Output/InlineBlocks.cs +++ b/test/Microsoft.AspNet.Razor.Test/TestFiles/CodeGenerator/CS/Output/InlineBlocks.cs @@ -1,4 +1,4 @@ -#pragma checksum "InlineBlocks.cshtml" "{ff1816ec-aa5e-4d10-87f7-6f4963833460}" "e7fa74a13b1e78fed87942ccd83aa733810e8664" +#pragma checksum "InlineBlocks.cshtml" "{ff1816ec-aa5e-4d10-87f7-6f4963833460}" "e827e93343a95c7254a19287b095dfba9390d29f" namespace TestOutput { using System; diff --git a/test/Microsoft.AspNet.Razor.Test/TestFiles/CodeGenerator/CS/Output/Instrumented.cs b/test/Microsoft.AspNet.Razor.Test/TestFiles/CodeGenerator/CS/Output/Instrumented.cs index 3e21610281..4b1f679ed9 100644 --- a/test/Microsoft.AspNet.Razor.Test/TestFiles/CodeGenerator/CS/Output/Instrumented.cs +++ b/test/Microsoft.AspNet.Razor.Test/TestFiles/CodeGenerator/CS/Output/Instrumented.cs @@ -1,4 +1,4 @@ -#pragma checksum "Instrumented.cshtml" "{ff1816ec-aa5e-4d10-87f7-6f4963833460}" "3d0d9c94b62eeccf0a2a106b257a1ea1e22412a9" +#pragma checksum "Instrumented.cshtml" "{ff1816ec-aa5e-4d10-87f7-6f4963833460}" "9b521264e3e64710635c0f0490a368845d90da66" namespace TestOutput { using System; diff --git a/test/Microsoft.AspNet.Razor.Test/TestFiles/CodeGenerator/CS/Output/LayoutDirective.cs b/test/Microsoft.AspNet.Razor.Test/TestFiles/CodeGenerator/CS/Output/LayoutDirective.cs index 72edca1e9d..1bef53d9e9 100644 --- a/test/Microsoft.AspNet.Razor.Test/TestFiles/CodeGenerator/CS/Output/LayoutDirective.cs +++ b/test/Microsoft.AspNet.Razor.Test/TestFiles/CodeGenerator/CS/Output/LayoutDirective.cs @@ -1,4 +1,4 @@ -#pragma checksum "LayoutDirective.cshtml" "{ff1816ec-aa5e-4d10-87f7-6f4963833460}" "936a0ebedd8d855480541640e61dacbb8b0e56c0" +#pragma checksum "LayoutDirective.cshtml" "{ff1816ec-aa5e-4d10-87f7-6f4963833460}" "018a686988146d5eb7d51f83c22f820e66b276e0" namespace TestOutput { using System; diff --git a/test/Microsoft.AspNet.Razor.Test/TestFiles/CodeGenerator/CS/Output/MarkupInCodeBlock.cs b/test/Microsoft.AspNet.Razor.Test/TestFiles/CodeGenerator/CS/Output/MarkupInCodeBlock.cs index 160538e2c9..6b5dc89a78 100644 --- a/test/Microsoft.AspNet.Razor.Test/TestFiles/CodeGenerator/CS/Output/MarkupInCodeBlock.cs +++ b/test/Microsoft.AspNet.Razor.Test/TestFiles/CodeGenerator/CS/Output/MarkupInCodeBlock.cs @@ -1,4 +1,4 @@ -#pragma checksum "MarkupInCodeBlock.cshtml" "{ff1816ec-aa5e-4d10-87f7-6f4963833460}" "539d5763b7091d29df375085f623b9086e7f8ad6" +#pragma checksum "MarkupInCodeBlock.cshtml" "{ff1816ec-aa5e-4d10-87f7-6f4963833460}" "cf059b36d7e93e260c1d5b852f7a59e6c99ae33d" namespace TestOutput { using System; diff --git a/test/Microsoft.AspNet.Razor.Test/TestFiles/CodeGenerator/CS/Output/NestedCodeBlocks.cs b/test/Microsoft.AspNet.Razor.Test/TestFiles/CodeGenerator/CS/Output/NestedCodeBlocks.cs index 6b7980fdaf..bd30b011cb 100644 --- a/test/Microsoft.AspNet.Razor.Test/TestFiles/CodeGenerator/CS/Output/NestedCodeBlocks.cs +++ b/test/Microsoft.AspNet.Razor.Test/TestFiles/CodeGenerator/CS/Output/NestedCodeBlocks.cs @@ -1,4 +1,4 @@ -#pragma checksum "NestedCodeBlocks.cshtml" "{ff1816ec-aa5e-4d10-87f7-6f4963833460}" "d83923f86f1c84f081916ef7308513ab80a65675" +#pragma checksum "NestedCodeBlocks.cshtml" "{ff1816ec-aa5e-4d10-87f7-6f4963833460}" "a4eb7397719094ea9da5b7d6674d317314fa26b4" namespace TestOutput { using System; diff --git a/test/Microsoft.AspNet.Razor.Test/TestFiles/CodeGenerator/CS/Output/NoLinePragmas.cs b/test/Microsoft.AspNet.Razor.Test/TestFiles/CodeGenerator/CS/Output/NoLinePragmas.cs index c9a60db85f..40e3b800bf 100644 --- a/test/Microsoft.AspNet.Razor.Test/TestFiles/CodeGenerator/CS/Output/NoLinePragmas.cs +++ b/test/Microsoft.AspNet.Razor.Test/TestFiles/CodeGenerator/CS/Output/NoLinePragmas.cs @@ -1,4 +1,4 @@ -#pragma checksum "" "{ff1816ec-aa5e-4d10-87f7-6f4963833460}" "c6fa3992fa56644768995c97941d682d90f6d8ec" +#pragma checksum "" "{ff1816ec-aa5e-4d10-87f7-6f4963833460}" "682929a2038f56f4737f1b7aa3c9eaa5488cc001" namespace TestOutput { using System; diff --git a/test/Microsoft.AspNet.Razor.Test/TestFiles/CodeGenerator/CS/Output/RazorComments.cs b/test/Microsoft.AspNet.Razor.Test/TestFiles/CodeGenerator/CS/Output/RazorComments.cs index e925232a75..1f172b5715 100644 --- a/test/Microsoft.AspNet.Razor.Test/TestFiles/CodeGenerator/CS/Output/RazorComments.cs +++ b/test/Microsoft.AspNet.Razor.Test/TestFiles/CodeGenerator/CS/Output/RazorComments.cs @@ -1,4 +1,4 @@ -#pragma checksum "RazorComments.cshtml" "{ff1816ec-aa5e-4d10-87f7-6f4963833460}" "051345e2cc0313fea445db2f6cf48fe28b0b4edf" +#pragma checksum "RazorComments.cshtml" "{ff1816ec-aa5e-4d10-87f7-6f4963833460}" "45c16f152aef80d7de27c7df32dc522af5842197" namespace TestOutput { using System; diff --git a/test/Microsoft.AspNet.Razor.Test/TestFiles/CodeGenerator/CS/Output/ResolveUrl.cs b/test/Microsoft.AspNet.Razor.Test/TestFiles/CodeGenerator/CS/Output/ResolveUrl.cs index e380b895a2..320645bfcc 100644 --- a/test/Microsoft.AspNet.Razor.Test/TestFiles/CodeGenerator/CS/Output/ResolveUrl.cs +++ b/test/Microsoft.AspNet.Razor.Test/TestFiles/CodeGenerator/CS/Output/ResolveUrl.cs @@ -1,4 +1,4 @@ -#pragma checksum "ResolveUrl.cshtml" "{ff1816ec-aa5e-4d10-87f7-6f4963833460}" "ef2ca9797f9fbd9788685830524a0daacb2a30e8" +#pragma checksum "ResolveUrl.cshtml" "{ff1816ec-aa5e-4d10-87f7-6f4963833460}" "ee17a91893cee3c8590202192de89abe32776cc2" namespace TestOutput { using System; diff --git a/test/Microsoft.AspNet.Razor.Test/TestFiles/CodeGenerator/CS/Output/Sections.cs b/test/Microsoft.AspNet.Razor.Test/TestFiles/CodeGenerator/CS/Output/Sections.cs index d5e57d2460..f1faa0744f 100644 --- a/test/Microsoft.AspNet.Razor.Test/TestFiles/CodeGenerator/CS/Output/Sections.cs +++ b/test/Microsoft.AspNet.Razor.Test/TestFiles/CodeGenerator/CS/Output/Sections.cs @@ -1,4 +1,4 @@ -#pragma checksum "Sections.cshtml" "{ff1816ec-aa5e-4d10-87f7-6f4963833460}" "0bd579cc5b9e6bd12b720003df47899d0a0207cf" +#pragma checksum "Sections.cshtml" "{ff1816ec-aa5e-4d10-87f7-6f4963833460}" "19b065ba387522fb8b9b4aea4820b3752d898d0a" namespace TestOutput { using System; diff --git a/test/Microsoft.AspNet.Razor.Test/TestFiles/CodeGenerator/CS/Output/SingleTagHelper.cs b/test/Microsoft.AspNet.Razor.Test/TestFiles/CodeGenerator/CS/Output/SingleTagHelper.cs index 8fcb818a5d..94490c4238 100644 --- a/test/Microsoft.AspNet.Razor.Test/TestFiles/CodeGenerator/CS/Output/SingleTagHelper.cs +++ b/test/Microsoft.AspNet.Razor.Test/TestFiles/CodeGenerator/CS/Output/SingleTagHelper.cs @@ -1,4 +1,4 @@ -#pragma checksum "SingleTagHelper.cshtml" "{ff1816ec-aa5e-4d10-87f7-6f4963833460}" "60ad52f4a16ebc0499d729dfd4b79358331907f4" +#pragma checksum "SingleTagHelper.cshtml" "{ff1816ec-aa5e-4d10-87f7-6f4963833460}" "070b72826371f13e4d364e6324cf512220ec1c0f" namespace TestOutput { using Microsoft.AspNet.Razor.Runtime.TagHelpers; diff --git a/test/Microsoft.AspNet.Razor.Test/TestFiles/CodeGenerator/CS/Output/TagHelpersInSection.cs b/test/Microsoft.AspNet.Razor.Test/TestFiles/CodeGenerator/CS/Output/TagHelpersInSection.cs index 90d90d2fd8..f8d49606d7 100644 --- a/test/Microsoft.AspNet.Razor.Test/TestFiles/CodeGenerator/CS/Output/TagHelpersInSection.cs +++ b/test/Microsoft.AspNet.Razor.Test/TestFiles/CodeGenerator/CS/Output/TagHelpersInSection.cs @@ -1,4 +1,4 @@ -#pragma checksum "TagHelpersInSection.cshtml" "{ff1816ec-aa5e-4d10-87f7-6f4963833460}" "f228c34bdcee3e7f64bc3de14469d11a61efb825" +#pragma checksum "TagHelpersInSection.cshtml" "{ff1816ec-aa5e-4d10-87f7-6f4963833460}" "b6492c68360b85d4993de94eeac547b7fb012a26" namespace TestOutput { using System; diff --git a/test/Microsoft.AspNet.Razor.Test/TestFiles/CodeGenerator/CS/Output/Templates.cs b/test/Microsoft.AspNet.Razor.Test/TestFiles/CodeGenerator/CS/Output/Templates.cs index a524c9ed43..78243fcdb8 100644 --- a/test/Microsoft.AspNet.Razor.Test/TestFiles/CodeGenerator/CS/Output/Templates.cs +++ b/test/Microsoft.AspNet.Razor.Test/TestFiles/CodeGenerator/CS/Output/Templates.cs @@ -1,4 +1,4 @@ -#pragma checksum "Templates.cshtml" "{ff1816ec-aa5e-4d10-87f7-6f4963833460}" "3a6da4fcc3d9b28618d5703e4925d45491b5a013" +#pragma checksum "Templates.cshtml" "{ff1816ec-aa5e-4d10-87f7-6f4963833460}" "32d88538b3b0ca3648493b240101d304878756fe" namespace TestOutput { using System; diff --git a/test/Microsoft.AspNet.Razor.Test/Tokenizer/CSharpTokenizerLiteralTest.cs b/test/Microsoft.AspNet.Razor.Test/Tokenizer/CSharpTokenizerLiteralTest.cs index 567dd282ac..43712af29a 100644 --- a/test/Microsoft.AspNet.Razor.Test/Tokenizer/CSharpTokenizerLiteralTest.cs +++ b/test/Microsoft.AspNet.Razor.Test/Tokenizer/CSharpTokenizerLiteralTest.cs @@ -1,6 +1,7 @@ // 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.Tokenizer.Symbols; using Xunit; @@ -189,13 +190,13 @@ namespace Microsoft.AspNet.Razor.Test.Tokenizer [Fact] public void Character_Literal_Terminated_By_CRLF_Even_When_Last_Char_Is_Slash() { - TestTokenizer("'foo\\\r\n", new CSharpSymbol(0, 0, 0, "'foo\\", CSharpSymbolType.CharacterLiteral), IgnoreRemaining); + TestTokenizer("'foo\\" + Environment.NewLine, new CSharpSymbol(0, 0, 0, "'foo\\", CSharpSymbolType.CharacterLiteral), IgnoreRemaining); } [Fact] public void Character_Literal_Terminated_By_CRLF_Even_When_Last_Char_Is_Slash_And_Followed_By_Stuff() { - TestTokenizer("'foo\\\r\nflarg", new CSharpSymbol(0, 0, 0, "'foo\\", CSharpSymbolType.CharacterLiteral), IgnoreRemaining); + TestTokenizer($"'foo\\{Environment.NewLine}flarg", new CSharpSymbol(0, 0, 0, "'foo\\", CSharpSymbolType.CharacterLiteral), IgnoreRemaining); } [Fact] @@ -243,13 +244,13 @@ namespace Microsoft.AspNet.Razor.Test.Tokenizer [Fact] public void String_Literal_Terminated_By_CRLF_Even_When_Last_Char_Is_Slash() { - TestTokenizer("\"foo\\\r\n", new CSharpSymbol(0, 0, 0, "\"foo\\", CSharpSymbolType.StringLiteral), IgnoreRemaining); + TestTokenizer("\"foo\\" + Environment.NewLine, new CSharpSymbol(0, 0, 0, "\"foo\\", CSharpSymbolType.StringLiteral), IgnoreRemaining); } [Fact] public void String_Literal_Terminated_By_CRLF_Even_When_Last_Char_Is_Slash_And_Followed_By_Stuff() { - TestTokenizer("\"foo\\\r\nflarg", new CSharpSymbol(0, 0, 0, "\"foo\\", CSharpSymbolType.StringLiteral), IgnoreRemaining); + TestTokenizer($"\"foo\\{Environment.NewLine}flarg", new CSharpSymbol(0, 0, 0, "\"foo\\", CSharpSymbolType.StringLiteral), IgnoreRemaining); } [Fact] diff --git a/test/Microsoft.AspNet.Razor.Test/Tokenizer/TokenizerTestBase.cs b/test/Microsoft.AspNet.Razor.Test/Tokenizer/TokenizerTestBase.cs index ebd45b0c85..8cdd4a2557 100644 --- a/test/Microsoft.AspNet.Razor.Test/Tokenizer/TokenizerTestBase.cs +++ b/test/Microsoft.AspNet.Razor.Test/Tokenizer/TokenizerTestBase.cs @@ -65,7 +65,7 @@ namespace Microsoft.AspNet.Razor.Test.Tokenizer } } } - Assert.True(success, "\r\n" + output.ToString()); + Assert.True(success, Environment.NewLine + output.ToString()); WriteTraceLine(output.Replace("{", "{{").Replace("}", "}}").ToString()); }