diff --git a/.azure/pipelines/blazor-daily-tests.yml b/.azure/pipelines/blazor-daily-tests.yml new file mode 100644 index 000000000000..77ac645ff504 --- /dev/null +++ b/.azure/pipelines/blazor-daily-tests.yml @@ -0,0 +1,67 @@ +# Uses Scheduled Triggers, which aren't supported in YAML yet. +# https://docs.microsoft.com/en-us/azure/devops/pipelines/build/triggers?view=vsts&tabs=yaml#scheduled + +# Daily Tests for Blazor +# These use Sauce Labs resources, hence they run daily rather than per-commit. + +# We just need one Windows machine because all it does is trigger SauceLabs. +variables: + - ${{ if ne(variables['System.TeamProject'], 'public') }}: + - group: DotNet-MSRC-Storage + - group: AzureDevOps-Artifact-Feeds-Pats + - name: SAUCE_CONNECT_DOWNLOAD_ON_INSTALL + value: true + - name: E2ETESTS_SauceTest + value: true + - name: E2ETESTS_Sauce__TunnelIdentifier + value: 'blazor-e2e-sc-proxy-tunnel' + - name: E2ETESTS_Sauce__HostName + value: 'sauce.local' + +jobs: +- template: jobs/default-build.yml + parameters: + buildDirectory: src/Components + isTestingJob: true + agentOs: Windows + jobName: BlazorDailyTests + jobDisplayName: "Blazor Daily Tests" + afterBuild: + + # macOS/Safari + - script: 'dotnet test --no-build --configuration Release --filter "StandaloneAppTest"' + workingDirectory: 'src/Components/test/E2ETest' + displayName: 'Run Blazor tests - macOS/Safari' + condition: succeededOrFailed() + env: + # Secrets need to be explicitly mapped to env variables. + E2ETESTS_Sauce__Username: '$(asplab-sauce-labs-username)' + E2ETESTS_Sauce__AccessKey: '$(asplab-sauce-labs-access-key)' + # Set platform/browser configuration. + E2ETESTS_Sauce__TestName: 'Blazor Daily Tests - macOS/Safari' + E2ETESTS_Sauce__PlatformName: 'macOS 10.14' + E2ETESTS_Sauce__BrowserName: 'Safari' + # Need to explicitly set version here because some older versions don't support timeouts in Safari. + E2ETESTS_Sauce__SeleniumVersion: '3.4.0' + + # Android/Chrome + - script: 'dotnet test --no-build --configuration Release --filter "StandaloneAppTest"' + workingDirectory: 'src/Components/test/E2ETest' + displayName: 'Run Blazor tests - Android/Chrome' + condition: succeededOrFailed() + env: + # Secrets need to be explicitly mapped to env variables. + E2ETESTS_Sauce__Username: '$(asplab-sauce-labs-username)' + E2ETESTS_Sauce__AccessKey: '$(asplab-sauce-labs-access-key)' + # Set platform/browser configuration. + E2ETESTS_Sauce__TestName: 'Blazor Daily Tests - Android/Chrome' + E2ETESTS_Sauce__PlatformName: 'Android' + E2ETESTS_Sauce__PlatformVersion: '10.0' + E2ETESTS_Sauce__BrowserName: 'Chrome' + E2ETESTS_Sauce__DeviceName: 'Android GoogleAPI Emulator' + E2ETESTS_Sauce__DeviceOrientation: 'portrait' + E2ETESTS_Sauce__AppiumVersion: '1.9.1' + artifacts: + - name: Windows_Logs + path: artifacts/log/ + publishOnError: true \ No newline at end of file diff --git a/.azure/pipelines/ci.yml b/.azure/pipelines/ci.yml index 3cbd594ec303..2591d8271ed4 100644 --- a/.azure/pipelines/ci.yml +++ b/.azure/pipelines/ci.yml @@ -511,6 +511,40 @@ stages: parameters: inputName: Linux_musl_x64 + # Build Linux Musl ARM + - template: jobs/default-build.yml + parameters: + jobName: Linux_musl_arm_build + jobDisplayName: "Build: Linux Musl ARM" + agentOs: Linux + useHostedUbuntu: false + container: mcr.microsoft.com/dotnet-buildtools/prereqs:ubuntu-18.04-cross-arm-alpine-20200827125937-14441ae + buildScript: ./build.sh + buildArgs: + --arch arm + --os-name linux-musl + --pack + --all + --no-build-nodejs + --no-build-java + -p:OnlyPackPlatformSpecificPackages=true + -p:AssetManifestFileName=aspnetcore-Linux_musl_arm.xml + $(_BuildArgs) + $(_PublishArgs) + $(_InternalRuntimeDownloadArgs) + installNodeJs: false + installJdk: false + artifacts: + - name: Linux_musl_arm_Logs + path: artifacts/log/ + publishOnError: true + includeForks: true + - name: Linux_musl_arm_Packages + path: artifacts/packages/ + - template: jobs/codesign-xplat.yml + parameters: + inputName: Linux_musl_arm + # Build Linux Musl ARM64 - template: jobs/default-build.yml parameters: @@ -739,6 +773,7 @@ stages: - CodeSign_Xplat_Linux_arm - CodeSign_Xplat_Linux_arm64 - CodeSign_Xplat_Linux_musl_x64 + - CodeSign_Xplat_Linux_musl_arm - CodeSign_Xplat_Linux_musl_arm64 # In addition to the dependencies above, ensure the build was successful overall. - Source_Build diff --git a/.github/ISSUE_TEMPLATE/razor_tooling.md b/.github/ISSUE_TEMPLATE/razor_tooling.md index 1441431a6695..8b5971cc9e73 100644 --- a/.github/ISSUE_TEMPLATE/razor_tooling.md +++ b/.github/ISSUE_TEMPLATE/razor_tooling.md @@ -34,26 +34,13 @@ We will close this issue if: Please collect the data below before reporting your issue to aid us in diagnosing the root cause. -#### Activity log +#### Activity log (only needed if VS crashes) [Here](https://docs.microsoft.com/en-us/visualstudio/extensibility/how-to-use-the-activity-log?view=vs-2019#to-examine-the-activity-log) are the instructions on how to generate/acquire one. Note that GitHub does not generally allow .xml files to be uploaded with issues. -#### Razor Language Server Client log - -
-Razor Language Server Client Log Output - -Paste log output here - -
- -#### HTML Language Server Client log - -
-HTML Language Server Client Log Output - -Paste log output here - -
+#### Language Server logs +1. Run Visual Studio with the [/Log](https://docs.microsoft.com/en-us/visualstudio/ide/reference/log-devenv-exe?view=vs-2019) command line switch +2. Reproduce the issue +3. Provide the logs located at `%Temp%\VisualStudio\LSP` ### Further technical details - VS version (Help => About Microsoft Visual Studio, i.e. 16.8.0 Preview 1 30313.27...). If in Codespaces there will be two versions (server and client), please provide both. diff --git a/.github/workflows/runtime-sync.yml b/.github/workflows/runtime-sync.yml index 03e7e8f9d6ba..0b70c9551c96 100644 --- a/.github/workflows/runtime-sync.yml +++ b/.github/workflows/runtime-sync.yml @@ -21,14 +21,14 @@ jobs: # Test this script using changes in a fork repository: 'dotnet/aspnetcore' path: aspnetcore - ref: release/5.0 + ref: master - name: Checkout runtime uses: actions/checkout@v2.0.0 with: # Test this script using changes in a fork repository: 'dotnet/runtime' path: runtime - ref: release/5.0 + ref: master - name: Copy shell: cmd working-directory: .\runtime\src\libraries\Common\src\System\Net\Http\aspnetcore\ @@ -67,6 +67,6 @@ jobs: title: 'Sync shared code from runtime' body: 'This PR was automatically generated to sync shared code changes from runtime. Fixes #18943' labels: area-servers - base: release/5.0 + base: master branch: github-action/sync-runtime branch-suffix: timestamp diff --git a/AspNetCore.sln b/AspNetCore.sln index ceb029889f9e..836e7c0389cf 100644 --- a/AspNetCore.sln +++ b/AspNetCore.sln @@ -1503,7 +1503,7 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.AspNetCore.App.Un EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Localization", "Localization", "{3D34C81F-2CB5-459E-87E9-0CC04757A2A0}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "GlobalizationWasmApp", "src\Components\test\testassets\GlobalizationWasmApp\GlobalizationWasmApp.csproj", "{04CFE286-6D32-41EF-8887-4B5F8086A365}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "GlobalizationWasmApp", "src\Components\test\testassets\GlobalizationWasmApp\GlobalizationWasmApp.csproj", "{04CFE286-6D32-41EF-8887-4B5F8086A365}" EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Localization.Abstractions", "src\Localization\Abstractions\src\Microsoft.Extensions.Localization.Abstractions.csproj", "{FEF97646-9BC9-4D1B-A939-784D915C18A4}" EndProject @@ -1519,6 +1519,14 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Loggin EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Logging.AzureAppServices.Tests", "src\Logging.AzureAppServices\test\Microsoft.Extensions.Logging.AzureAppServices.Tests.csproj", "{43E3B132-2486-44A3-92C6-39E39724FAFD}" EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "testassets", "testassets", "{7B739F28-21DE-435D-9EA6-579064932350}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "RoutingWebSite", "src\Http\Routing\test\testassets\RoutingWebSite\RoutingWebSite.csproj", "{F502ED22-EB37-4EF8-BFA0-3EFB3E2BE20C}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "RoutingSandbox", "src\Http\Routing\test\testassets\RoutingSandbox\RoutingSandbox.csproj", "{0EBEE047-CBAD-4A69-8095-E3961B863446}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Benchmarks", "src\Http\Routing\test\testassets\Benchmarks\Benchmarks.csproj", "{B4F76DF0-1638-42DA-B46A-30DC16AECEAB}" +EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "SiteExtensions", "SiteExtensions", "{DFC4F588-B4B4-484B-AB93-B36721374AD3}" EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "LoggingAggregate", "LoggingAggregate", "{48FF1D87-5066-4294-B802-2D1B478C6EB6}" @@ -1539,6 +1547,8 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Sdk", "Sdk", "{E83B0BCC-A8E EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "HostingStartup", "src\SiteExtensions\Sdk\HostingStartup\HostingStartup.csproj", "{5D6F99C5-D292-4459-B8BD-8E4AD42E1B21}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "IgnitorSample", "src\Components\Samples\IgnitorSample\IgnitorSample.csproj", "{CAFD1885-B87B-4A7A-8BE6-86B0C238C2B1}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -7199,18 +7209,6 @@ Global {BAD47859-95DF-4C8F-9AF7-C48B68F478A1}.Release|x64.Build.0 = Release|Any CPU {BAD47859-95DF-4C8F-9AF7-C48B68F478A1}.Release|x86.ActiveCfg = Release|Any CPU {BAD47859-95DF-4C8F-9AF7-C48B68F478A1}.Release|x86.Build.0 = Release|Any CPU - {04CFE286-6D32-41EF-8887-4B5F8086A365}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {04CFE286-6D32-41EF-8887-4B5F8086A365}.Debug|Any CPU.Build.0 = Debug|Any CPU - {04CFE286-6D32-41EF-8887-4B5F8086A365}.Debug|x64.ActiveCfg = Debug|Any CPU - {04CFE286-6D32-41EF-8887-4B5F8086A365}.Debug|x64.Build.0 = Debug|Any CPU - {04CFE286-6D32-41EF-8887-4B5F8086A365}.Debug|x86.ActiveCfg = Debug|Any CPU - {04CFE286-6D32-41EF-8887-4B5F8086A365}.Debug|x86.Build.0 = Debug|Any CPU - {04CFE286-6D32-41EF-8887-4B5F8086A365}.Release|Any CPU.ActiveCfg = Release|Any CPU - {04CFE286-6D32-41EF-8887-4B5F8086A365}.Release|Any CPU.Build.0 = Release|Any CPU - {04CFE286-6D32-41EF-8887-4B5F8086A365}.Release|x64.ActiveCfg = Release|Any CPU - {04CFE286-6D32-41EF-8887-4B5F8086A365}.Release|x64.Build.0 = Release|Any CPU - {04CFE286-6D32-41EF-8887-4B5F8086A365}.Release|x86.ActiveCfg = Release|Any CPU - {04CFE286-6D32-41EF-8887-4B5F8086A365}.Release|x86.Build.0 = Release|Any CPU {010A9638-F20E-4FE6-A186-85732BFC9CB0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {010A9638-F20E-4FE6-A186-85732BFC9CB0}.Debug|Any CPU.Build.0 = Debug|Any CPU {010A9638-F20E-4FE6-A186-85732BFC9CB0}.Debug|x64.ActiveCfg = Debug|Any CPU @@ -7223,6 +7221,18 @@ Global {010A9638-F20E-4FE6-A186-85732BFC9CB0}.Release|x64.Build.0 = Release|Any CPU {010A9638-F20E-4FE6-A186-85732BFC9CB0}.Release|x86.ActiveCfg = Release|Any CPU {010A9638-F20E-4FE6-A186-85732BFC9CB0}.Release|x86.Build.0 = Release|Any CPU + {04CFE286-6D32-41EF-8887-4B5F8086A365}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {04CFE286-6D32-41EF-8887-4B5F8086A365}.Debug|Any CPU.Build.0 = Debug|Any CPU + {04CFE286-6D32-41EF-8887-4B5F8086A365}.Debug|x64.ActiveCfg = Debug|Any CPU + {04CFE286-6D32-41EF-8887-4B5F8086A365}.Debug|x64.Build.0 = Debug|Any CPU + {04CFE286-6D32-41EF-8887-4B5F8086A365}.Debug|x86.ActiveCfg = Debug|Any CPU + {04CFE286-6D32-41EF-8887-4B5F8086A365}.Debug|x86.Build.0 = Debug|Any CPU + {04CFE286-6D32-41EF-8887-4B5F8086A365}.Release|Any CPU.ActiveCfg = Release|Any CPU + {04CFE286-6D32-41EF-8887-4B5F8086A365}.Release|Any CPU.Build.0 = Release|Any CPU + {04CFE286-6D32-41EF-8887-4B5F8086A365}.Release|x64.ActiveCfg = Release|Any CPU + {04CFE286-6D32-41EF-8887-4B5F8086A365}.Release|x64.Build.0 = Release|Any CPU + {04CFE286-6D32-41EF-8887-4B5F8086A365}.Release|x86.ActiveCfg = Release|Any CPU + {04CFE286-6D32-41EF-8887-4B5F8086A365}.Release|x86.Build.0 = Release|Any CPU {FEF97646-9BC9-4D1B-A939-784D915C18A4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {FEF97646-9BC9-4D1B-A939-784D915C18A4}.Debug|Any CPU.Build.0 = Debug|Any CPU {FEF97646-9BC9-4D1B-A939-784D915C18A4}.Debug|x64.ActiveCfg = Debug|Any CPU @@ -7295,6 +7305,42 @@ Global {43E3B132-2486-44A3-92C6-39E39724FAFD}.Release|x64.Build.0 = Release|Any CPU {43E3B132-2486-44A3-92C6-39E39724FAFD}.Release|x86.ActiveCfg = Release|Any CPU {43E3B132-2486-44A3-92C6-39E39724FAFD}.Release|x86.Build.0 = Release|Any CPU + {F502ED22-EB37-4EF8-BFA0-3EFB3E2BE20C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {F502ED22-EB37-4EF8-BFA0-3EFB3E2BE20C}.Debug|Any CPU.Build.0 = Debug|Any CPU + {F502ED22-EB37-4EF8-BFA0-3EFB3E2BE20C}.Debug|x64.ActiveCfg = Debug|Any CPU + {F502ED22-EB37-4EF8-BFA0-3EFB3E2BE20C}.Debug|x64.Build.0 = Debug|Any CPU + {F502ED22-EB37-4EF8-BFA0-3EFB3E2BE20C}.Debug|x86.ActiveCfg = Debug|Any CPU + {F502ED22-EB37-4EF8-BFA0-3EFB3E2BE20C}.Debug|x86.Build.0 = Debug|Any CPU + {F502ED22-EB37-4EF8-BFA0-3EFB3E2BE20C}.Release|Any CPU.ActiveCfg = Release|Any CPU + {F502ED22-EB37-4EF8-BFA0-3EFB3E2BE20C}.Release|Any CPU.Build.0 = Release|Any CPU + {F502ED22-EB37-4EF8-BFA0-3EFB3E2BE20C}.Release|x64.ActiveCfg = Release|Any CPU + {F502ED22-EB37-4EF8-BFA0-3EFB3E2BE20C}.Release|x64.Build.0 = Release|Any CPU + {F502ED22-EB37-4EF8-BFA0-3EFB3E2BE20C}.Release|x86.ActiveCfg = Release|Any CPU + {F502ED22-EB37-4EF8-BFA0-3EFB3E2BE20C}.Release|x86.Build.0 = Release|Any CPU + {0EBEE047-CBAD-4A69-8095-E3961B863446}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {0EBEE047-CBAD-4A69-8095-E3961B863446}.Debug|Any CPU.Build.0 = Debug|Any CPU + {0EBEE047-CBAD-4A69-8095-E3961B863446}.Debug|x64.ActiveCfg = Debug|Any CPU + {0EBEE047-CBAD-4A69-8095-E3961B863446}.Debug|x64.Build.0 = Debug|Any CPU + {0EBEE047-CBAD-4A69-8095-E3961B863446}.Debug|x86.ActiveCfg = Debug|Any CPU + {0EBEE047-CBAD-4A69-8095-E3961B863446}.Debug|x86.Build.0 = Debug|Any CPU + {0EBEE047-CBAD-4A69-8095-E3961B863446}.Release|Any CPU.ActiveCfg = Release|Any CPU + {0EBEE047-CBAD-4A69-8095-E3961B863446}.Release|Any CPU.Build.0 = Release|Any CPU + {0EBEE047-CBAD-4A69-8095-E3961B863446}.Release|x64.ActiveCfg = Release|Any CPU + {0EBEE047-CBAD-4A69-8095-E3961B863446}.Release|x64.Build.0 = Release|Any CPU + {0EBEE047-CBAD-4A69-8095-E3961B863446}.Release|x86.ActiveCfg = Release|Any CPU + {0EBEE047-CBAD-4A69-8095-E3961B863446}.Release|x86.Build.0 = Release|Any CPU + {B4F76DF0-1638-42DA-B46A-30DC16AECEAB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {B4F76DF0-1638-42DA-B46A-30DC16AECEAB}.Debug|Any CPU.Build.0 = Debug|Any CPU + {B4F76DF0-1638-42DA-B46A-30DC16AECEAB}.Debug|x64.ActiveCfg = Debug|Any CPU + {B4F76DF0-1638-42DA-B46A-30DC16AECEAB}.Debug|x64.Build.0 = Debug|Any CPU + {B4F76DF0-1638-42DA-B46A-30DC16AECEAB}.Debug|x86.ActiveCfg = Debug|Any CPU + {B4F76DF0-1638-42DA-B46A-30DC16AECEAB}.Debug|x86.Build.0 = Debug|Any CPU + {B4F76DF0-1638-42DA-B46A-30DC16AECEAB}.Release|Any CPU.ActiveCfg = Release|Any CPU + {B4F76DF0-1638-42DA-B46A-30DC16AECEAB}.Release|Any CPU.Build.0 = Release|Any CPU + {B4F76DF0-1638-42DA-B46A-30DC16AECEAB}.Release|x64.ActiveCfg = Release|Any CPU + {B4F76DF0-1638-42DA-B46A-30DC16AECEAB}.Release|x64.Build.0 = Release|Any CPU + {B4F76DF0-1638-42DA-B46A-30DC16AECEAB}.Release|x86.ActiveCfg = Release|Any CPU + {B4F76DF0-1638-42DA-B46A-30DC16AECEAB}.Release|x86.Build.0 = Release|Any CPU {563A3FFA-32DA-4ADA-891C-E00897BD919E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {563A3FFA-32DA-4ADA-891C-E00897BD919E}.Debug|Any CPU.Build.0 = Debug|Any CPU {563A3FFA-32DA-4ADA-891C-E00897BD919E}.Debug|x64.ActiveCfg = Debug|Any CPU @@ -7367,6 +7413,18 @@ Global {5D6F99C5-D292-4459-B8BD-8E4AD42E1B21}.Release|x64.Build.0 = Release|Any CPU {5D6F99C5-D292-4459-B8BD-8E4AD42E1B21}.Release|x86.ActiveCfg = Release|Any CPU {5D6F99C5-D292-4459-B8BD-8E4AD42E1B21}.Release|x86.Build.0 = Release|Any CPU + {CAFD1885-B87B-4A7A-8BE6-86B0C238C2B1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {CAFD1885-B87B-4A7A-8BE6-86B0C238C2B1}.Debug|Any CPU.Build.0 = Debug|Any CPU + {CAFD1885-B87B-4A7A-8BE6-86B0C238C2B1}.Debug|x64.ActiveCfg = Debug|Any CPU + {CAFD1885-B87B-4A7A-8BE6-86B0C238C2B1}.Debug|x64.Build.0 = Debug|Any CPU + {CAFD1885-B87B-4A7A-8BE6-86B0C238C2B1}.Debug|x86.ActiveCfg = Debug|Any CPU + {CAFD1885-B87B-4A7A-8BE6-86B0C238C2B1}.Debug|x86.Build.0 = Debug|Any CPU + {CAFD1885-B87B-4A7A-8BE6-86B0C238C2B1}.Release|Any CPU.ActiveCfg = Release|Any CPU + {CAFD1885-B87B-4A7A-8BE6-86B0C238C2B1}.Release|Any CPU.Build.0 = Release|Any CPU + {CAFD1885-B87B-4A7A-8BE6-86B0C238C2B1}.Release|x64.ActiveCfg = Release|Any CPU + {CAFD1885-B87B-4A7A-8BE6-86B0C238C2B1}.Release|x64.Build.0 = Release|Any CPU + {CAFD1885-B87B-4A7A-8BE6-86B0C238C2B1}.Release|x86.ActiveCfg = Release|Any CPU + {CAFD1885-B87B-4A7A-8BE6-86B0C238C2B1}.Release|x86.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -8117,10 +8175,10 @@ Global {37329855-01B8-4B03-9765-1A941B06E43C} = {8C15FD04-7F90-43FC-B488-023432FE3CE1} {D3246226-BC1A-47F1-8E3E-C3380A8F13FB} = {8C15FD04-7F90-43FC-B488-023432FE3CE1} {B06ADD57-E855-4D8C-85DC-B323509AE540} = {898F7E0B-1671-42CB-9DFB-689AFF212ED3} - {04CFE286-6D32-41EF-8887-4B5F8086A365} = {6126DCE4-9692-4EE2-B240-C65743572995} {BAD47859-95DF-4C8F-9AF7-C48B68F478A1} = {A4C26078-B6D8-4FD8-87A6-7C15A3482038} {010A9638-F20E-4FE6-A186-85732BFC9CB0} = {A4C26078-B6D8-4FD8-87A6-7C15A3482038} {3D34C81F-2CB5-459E-87E9-0CC04757A2A0} = {017429CC-C5FB-48B4-9C46-034E29EE2F06} + {04CFE286-6D32-41EF-8887-4B5F8086A365} = {6126DCE4-9692-4EE2-B240-C65743572995} {FEF97646-9BC9-4D1B-A939-784D915C18A4} = {3D34C81F-2CB5-459E-87E9-0CC04757A2A0} {839CE175-E0D9-43B9-9FA8-F32C47E7F56B} = {3D34C81F-2CB5-459E-87E9-0CC04757A2A0} {50BF2926-7435-4F4B-88A9-3D0EDEB67FC8} = {3D34C81F-2CB5-459E-87E9-0CC04757A2A0} @@ -8128,6 +8186,10 @@ Global {3EAB9890-2C01-444C-ACA0-D77B29CDE08B} = {017429CC-C5FB-48B4-9C46-034E29EE2F06} {3E29454A-C4DC-44B7-AF0A-A782AD2E73BC} = {3EAB9890-2C01-444C-ACA0-D77B29CDE08B} {43E3B132-2486-44A3-92C6-39E39724FAFD} = {3EAB9890-2C01-444C-ACA0-D77B29CDE08B} + {7B739F28-21DE-435D-9EA6-579064932350} = {17DD5861-0635-46D0-84BA-6B163150AA4F} + {F502ED22-EB37-4EF8-BFA0-3EFB3E2BE20C} = {7B739F28-21DE-435D-9EA6-579064932350} + {0EBEE047-CBAD-4A69-8095-E3961B863446} = {7B739F28-21DE-435D-9EA6-579064932350} + {B4F76DF0-1638-42DA-B46A-30DC16AECEAB} = {7B739F28-21DE-435D-9EA6-579064932350} {DFC4F588-B4B4-484B-AB93-B36721374AD3} = {017429CC-C5FB-48B4-9C46-034E29EE2F06} {48FF1D87-5066-4294-B802-2D1B478C6EB6} = {DFC4F588-B4B4-484B-AB93-B36721374AD3} {563A3FFA-32DA-4ADA-891C-E00897BD919E} = {48FF1D87-5066-4294-B802-2D1B478C6EB6} @@ -8138,6 +8200,7 @@ Global {545751D5-71FC-4889-A3A0-BBD731DBA18A} = {56B45580-B089-424E-A847-A6115D591950} {E83B0BCC-A8E0-4FBD-BE51-9A533C9CB972} = {DFC4F588-B4B4-484B-AB93-B36721374AD3} {5D6F99C5-D292-4459-B8BD-8E4AD42E1B21} = {E83B0BCC-A8E0-4FBD-BE51-9A533C9CB972} + {CAFD1885-B87B-4A7A-8BE6-86B0C238C2B1} = {5FE1FBC1-8CE3-4355-9866-44FE1307C5F1} EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution SolutionGuid = {3E8720B3-DBDD-498C-B383-2CC32A054E8F} diff --git a/Directory.Build.props b/Directory.Build.props index 258a01d38823..71fa1aa6afc1 100644 --- a/Directory.Build.props +++ b/Directory.Build.props @@ -153,6 +153,7 @@ win-arm64; osx-x64; linux-musl-x64; + linux-musl-arm; linux-musl-arm64; linux-x64; linux-arm; diff --git a/NuGet.config b/NuGet.config index 59247ff46f60..1213c87110ec 100644 --- a/NuGet.config +++ b/NuGet.config @@ -6,6 +6,8 @@ + + diff --git a/dockerbuild.sh b/dockerbuild.sh index ff24d88a9a4a..13366cc6faf9 100755 --- a/dockerbuild.sh +++ b/dockerbuild.sh @@ -136,6 +136,7 @@ docker run \ -e BUILD_BUILDID \ -e SYSTEM_TEAMPROJECT \ -e BUILD_BUILDNUMBER \ + -e BUILD_REPOSITORY_NAME \ -e BUILD_REPOSITORY_URI \ -e BUILD_REPOSITORY_NAME \ -e BUILD_SOURCEVERSION \ diff --git a/docs/BuildFromSource.md b/docs/BuildFromSource.md index 95858315fc09..d7ab2e9b66ef 100644 --- a/docs/BuildFromSource.md +++ b/docs/BuildFromSource.md @@ -32,11 +32,12 @@ Building ASP.NET Core on Windows requires: * To install the exact required components, run [eng/scripts/InstallVisualStudio.ps1](/eng/scripts/InstallVisualStudio.ps1). ```ps1 - PS> ./eng/scripts/InstallVisualStudio.ps1 + PS> ./eng/scripts/InstallVisualStudio.ps1 [-Edition {Enterprise|Community|Professional}] ``` However, any Visual Studio 2019 instance that meets the requirements should be fine. See [global.json](/global.json) and [eng/scripts/vs.json](/eng/scripts/vs.json) for those requirements. By default, the script will install Visual Studio Enterprise Edition, however you can use a different edition by passing the `-Edition` flag. + Even if you have installed Visual Studio, still recommend you should use this script to install again to avoid errors due to missing components just in case. * Git. * NodeJS. LTS version of 10.14.2 or newer . * Install yarn globally (`npm install -g yarn`) @@ -52,7 +53,7 @@ Building ASP.NET Core on Windows requires: However, the build should find any JDK 11 or newer installation on the machine. * Set the `JAVA_HOME` environment variable with the path of the java installation directory if your installation did not do that automatically. (Gradle needs this for execution.) * This will be `RepoRoot/.tools/jdk/win-x64/` if you used the `InstallJdk.ps1` script - * This will be `C:/Program FIles/Java/jdk/` if you installed the JDK globally + * This will be `C:/Program Files/Java/jdk/` if you installed the JDK globally * Chrome - Selenium-based tests require a version of Chrome to be installed. Download and install it from ### macOS/Linux @@ -289,4 +290,4 @@ These are available in the [Visual Studio Preview](https://www.visualstudio.com/ ## Resx files -If you need to make changes to a .resx file, run `dotnet msbuild /t:Resx `. This will update the generated C#. +If you need to make changes to a .resx file, run `dotnet msbuild t:/Resgen `. This will update the generated C#. diff --git a/docs/TriageProcess.md b/docs/TriageProcess.md index 0d9577e45831..61955f123cdc 100644 --- a/docs/TriageProcess.md +++ b/docs/TriageProcess.md @@ -53,7 +53,7 @@ We may not investigate issues which haven't received many votes/comments and cho For some feature requests and bug reports, depending on the user involvement, we may choose to move these to the backlog at this point. What this means, is that they will not be looked at again up until the next major release planning. ## Release Planning -Once we approach to the end of the release cylce (.NET Core 3, .NET 5) we will look through the accumulated issues in the `Backlog` milestone. This is a long process as the amount of issues accumulated in this milestone is quite large. +Once we approach to the end of the release cycle (.NET Core 3, .NET 5) we will look through the accumulated issues in the `Backlog` milestone. This is a long process as the amount of issues accumulated in this milestone is quite large. We will try to prioritize issues with most community requests / upvotes assuming these are aligned with our goals. Issues, which we will think are candidates for the upcoming release, will be moved to the `Next Sprint Planning` milestone. diff --git a/docs/area-owners.md b/docs/area-owners.md index e4d6e72071e0..de68f8183151 100644 --- a/docs/area-owners.md +++ b/docs/area-owners.md @@ -2,22 +2,21 @@ The below table lists all the `area-`labels used in the `aspnetcore` repository | Area label | Owner | Description| |--- | ---| --- | -| area-azure | anurse | | +| area-azure | BrennanConroy | | | area-blazor | mkArtakMSFT | Blazor server and Blazor WASM related | -| area-commandlinetools | anurse, mkArtakMSFT | dev certs, dotnet watch, | -| area-dataprotection | anurse | | +| area-commandlinetools | mkArtakMSFT | dev certs, dotnet watch, | +| area-dataprotection | Pilchie | | | area-grpc | shirhatti | | -| area-healthchecks | rynowak | | -| area-hosting | anurse | | -| area-httpclientfactory | anurse | | +| area-healthchecks | mkArtakMSFT | | +| area-hosting | BrennanConroy | | | area-identity | blowdart | | | area-infrastructure | dougbu | | -| area-installers | anurse | | -| area-middleware | anurse | | +| area-installers | dougbu | | +| area-middleware | BrennanConroy | | | area-mvc | mkArtakMSFT | | -| area-perf | anurse | | -| area-platform | anurse | | +| area-perf | sebastienros | | +| area-platform | JunTaoLuo | | | area-security | blowdart | | -| area-servers | anurse | | -| area-signalr | anurse | | -| area-websockets | anurse | | +| area-servers | BrennanConroy | | +| area-signalr | BrennanConroy | | +| area-websockets | BrennanConroy | | diff --git a/eng/Baseline.Designer.props b/eng/Baseline.Designer.props index d3894b52f088..d1991880ab97 100644 --- a/eng/Baseline.Designer.props +++ b/eng/Baseline.Designer.props @@ -2,7 +2,7 @@ $(MSBuildAllProjects);$(MSBuildThisFileFullPath) - 3.1.7 + 3.1.8 @@ -14,7 +14,7 @@ - 3.1.7 + 3.1.8 @@ -25,83 +25,83 @@ - 3.1.7 + 3.1.8 - - - + + + - + - 3.1.7 + 3.1.8 - 3.1.7 + 3.1.8 - - + + - 3.1.7 + 3.1.8 - - + + - 3.1.7 + 3.1.8 - 3.1.7 + 3.1.8 - 3.1.7 + 3.1.8 - 3.1.7 + 3.1.8 - 3.1.7 + 3.1.8 - 3.1.7 + 3.1.8 - + - 3.1.7 + 3.1.8 - 3.1.7 + 3.1.8 - 3.1.7 + 3.1.8 @@ -109,97 +109,97 @@ - 3.1.7 + 3.1.8 - - - + + + - - - + + + - 3.1.7 + 3.1.8 - - + + - 3.1.7 + 3.1.8 - + - 3.1.7 + 3.1.8 - + - 3.1.7 + 3.1.8 - - - + + + - - - + + + - 3.1.7 + 3.1.8 - 3.1.7 + 3.1.8 - - + + - - + + - 3.1.7 + 3.1.8 - + - + - 3.1.7 + 3.1.8 - - - - + + + + - - - - + + + + @@ -244,215 +244,215 @@ - 3.1.7 + 3.1.8 - - + + - 3.1.7 + 3.1.8 - - + + - + - + - - + + - 3.1.7 + 3.1.8 - 3.1.7 + 3.1.8 - + - + - + - 3.1.7 + 3.1.8 - - - - - - + + + + + + - - - - - - + + + + + + - 3.1.7 + 3.1.8 - 3.1.7 + 3.1.8 - + - 3.1.7 + 3.1.8 - + - 3.1.7 + 3.1.8 - - + + - 3.1.7 + 3.1.8 - - + + - - + + - 3.1.7 + 3.1.8 - + - 3.1.7 + 3.1.8 - + - 3.1.7 + 3.1.8 - - + + - 3.1.7 + 3.1.8 - 3.1.7 + 3.1.8 - - - + + + - - - + + + - 3.1.7 + 3.1.8 - + - + - 3.1.7 + 3.1.8 - - + + - - + + - 3.1.7 + 3.1.8 - - + + - - + + - 3.1.7 + 3.1.8 - - - + + + - 3.1.7 + 3.1.8 - - + + - 3.1.7 + 3.1.8 @@ -460,236 +460,236 @@ - 3.1.7 + 3.1.8 - 3.1.7 + 3.1.8 - + - 3.1.7 + 3.1.8 - + - 3.1.7 + 3.1.8 - - - + + + - 3.1.7 + 3.1.8 - - - + + + - 3.1.7 + 3.1.8 - + - 3.1.7 + 3.1.8 - 3.1.7 + 3.1.8 - + - - + + - 3.1.7 + 3.1.8 - - + + - 3.1.7 + 3.1.8 - - + + - - + + - - - - + + + + - 3.1.7 + 3.1.8 - - + + - - + + - 3.1.7 + 3.1.8 - + - + - 3.1.7 + 3.1.8 - + - 3.1.7 + 3.1.8 - + - 3.1.7 + 3.1.8 - - - - + + + + - 3.1.7 + 3.1.8 - + - 3.1.7 + 3.1.8 - + - 3.1.7 + 3.1.8 - - + + - 3.1.7 + 3.1.8 - + - 3.1.7 + 3.1.8 - 3.1.7 + 3.1.8 - 3.1.7 + 3.1.8 - 3.1.7 + 3.1.8 - 3.1.7 + 3.1.8 - 3.1.7 + 3.1.8 - 3.1.7 + 3.1.8 - 3.1.7 + 3.1.8 - - - + + + - 3.1.7 + 3.1.8 - - - + + + - - - + + + - 3.1.7 + 3.1.8 - - - + + + - - - + + + \ No newline at end of file diff --git a/eng/Baseline.xml b/eng/Baseline.xml index ca3b6217b81f..ce5a601fe356 100644 --- a/eng/Baseline.xml +++ b/eng/Baseline.xml @@ -4,87 +4,87 @@ This file contains a list of all the packages and their versions which were rele Update this list when preparing for a new patch. --> - + - + - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/eng/Dependencies.props b/eng/Dependencies.props index 62a7ac2e0f82..a0acb2d7924b 100644 --- a/eng/Dependencies.props +++ b/eng/Dependencies.props @@ -94,15 +94,17 @@ and are generated based on the last package release. + - + + diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 105f1cfef75b..e58b95517b03 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -9,304 +9,309 @@ --> - + https://github.com/dotnet/efcore - c7f1393ce30f5ef86fcfb1ca5a47620fa01e9b10 + 240357902498da01c35ea9027be6a721b99e61ee - + https://github.com/dotnet/efcore - c7f1393ce30f5ef86fcfb1ca5a47620fa01e9b10 + 240357902498da01c35ea9027be6a721b99e61ee - + https://github.com/dotnet/efcore - c7f1393ce30f5ef86fcfb1ca5a47620fa01e9b10 + 240357902498da01c35ea9027be6a721b99e61ee - + https://github.com/dotnet/efcore - c7f1393ce30f5ef86fcfb1ca5a47620fa01e9b10 + 240357902498da01c35ea9027be6a721b99e61ee - + https://github.com/dotnet/efcore - c7f1393ce30f5ef86fcfb1ca5a47620fa01e9b10 + 240357902498da01c35ea9027be6a721b99e61ee - + https://github.com/dotnet/efcore - c7f1393ce30f5ef86fcfb1ca5a47620fa01e9b10 + 240357902498da01c35ea9027be6a721b99e61ee - + https://github.com/dotnet/efcore - c7f1393ce30f5ef86fcfb1ca5a47620fa01e9b10 + 240357902498da01c35ea9027be6a721b99e61ee - + https://github.com/dotnet/efcore - c7f1393ce30f5ef86fcfb1ca5a47620fa01e9b10 + 240357902498da01c35ea9027be6a721b99e61ee - + https://github.com/dotnet/runtime - 62eb1b22c608957b3fa701d53bc9619d6f6c49f7 + 214458e2748c7857ab2e2cfdb3a3d32d65e95bfe - + https://github.com/dotnet/runtime - 62eb1b22c608957b3fa701d53bc9619d6f6c49f7 + 214458e2748c7857ab2e2cfdb3a3d32d65e95bfe - + https://github.com/dotnet/runtime - 62eb1b22c608957b3fa701d53bc9619d6f6c49f7 + 214458e2748c7857ab2e2cfdb3a3d32d65e95bfe - + https://github.com/dotnet/runtime - 62eb1b22c608957b3fa701d53bc9619d6f6c49f7 + 214458e2748c7857ab2e2cfdb3a3d32d65e95bfe - + https://github.com/dotnet/runtime - 62eb1b22c608957b3fa701d53bc9619d6f6c49f7 + 214458e2748c7857ab2e2cfdb3a3d32d65e95bfe - + https://github.com/dotnet/runtime - 62eb1b22c608957b3fa701d53bc9619d6f6c49f7 + 214458e2748c7857ab2e2cfdb3a3d32d65e95bfe - + https://github.com/dotnet/runtime - 62eb1b22c608957b3fa701d53bc9619d6f6c49f7 + 214458e2748c7857ab2e2cfdb3a3d32d65e95bfe - + https://github.com/dotnet/runtime - 62eb1b22c608957b3fa701d53bc9619d6f6c49f7 + 214458e2748c7857ab2e2cfdb3a3d32d65e95bfe - + https://github.com/dotnet/runtime - 62eb1b22c608957b3fa701d53bc9619d6f6c49f7 + 214458e2748c7857ab2e2cfdb3a3d32d65e95bfe - + https://github.com/dotnet/runtime - 62eb1b22c608957b3fa701d53bc9619d6f6c49f7 + 214458e2748c7857ab2e2cfdb3a3d32d65e95bfe - + https://github.com/dotnet/runtime - 62eb1b22c608957b3fa701d53bc9619d6f6c49f7 + 214458e2748c7857ab2e2cfdb3a3d32d65e95bfe - + https://github.com/dotnet/runtime - 62eb1b22c608957b3fa701d53bc9619d6f6c49f7 + 214458e2748c7857ab2e2cfdb3a3d32d65e95bfe - + https://github.com/dotnet/runtime - 62eb1b22c608957b3fa701d53bc9619d6f6c49f7 + 214458e2748c7857ab2e2cfdb3a3d32d65e95bfe - + https://github.com/dotnet/runtime - 62eb1b22c608957b3fa701d53bc9619d6f6c49f7 + 214458e2748c7857ab2e2cfdb3a3d32d65e95bfe - + https://github.com/dotnet/runtime - 62eb1b22c608957b3fa701d53bc9619d6f6c49f7 + 214458e2748c7857ab2e2cfdb3a3d32d65e95bfe - + https://github.com/dotnet/runtime - 62eb1b22c608957b3fa701d53bc9619d6f6c49f7 + 214458e2748c7857ab2e2cfdb3a3d32d65e95bfe - + https://github.com/dotnet/runtime - 62eb1b22c608957b3fa701d53bc9619d6f6c49f7 + 214458e2748c7857ab2e2cfdb3a3d32d65e95bfe - + https://github.com/dotnet/runtime - 62eb1b22c608957b3fa701d53bc9619d6f6c49f7 + 214458e2748c7857ab2e2cfdb3a3d32d65e95bfe - + https://github.com/dotnet/runtime - 62eb1b22c608957b3fa701d53bc9619d6f6c49f7 + 214458e2748c7857ab2e2cfdb3a3d32d65e95bfe - + https://github.com/dotnet/runtime - 62eb1b22c608957b3fa701d53bc9619d6f6c49f7 + 214458e2748c7857ab2e2cfdb3a3d32d65e95bfe - + https://github.com/dotnet/runtime - 62eb1b22c608957b3fa701d53bc9619d6f6c49f7 + 214458e2748c7857ab2e2cfdb3a3d32d65e95bfe - + https://github.com/dotnet/runtime - 62eb1b22c608957b3fa701d53bc9619d6f6c49f7 + 214458e2748c7857ab2e2cfdb3a3d32d65e95bfe - + https://github.com/dotnet/runtime - 62eb1b22c608957b3fa701d53bc9619d6f6c49f7 + 214458e2748c7857ab2e2cfdb3a3d32d65e95bfe - + https://github.com/dotnet/runtime - 62eb1b22c608957b3fa701d53bc9619d6f6c49f7 + 214458e2748c7857ab2e2cfdb3a3d32d65e95bfe - + https://github.com/dotnet/runtime - 62eb1b22c608957b3fa701d53bc9619d6f6c49f7 + 214458e2748c7857ab2e2cfdb3a3d32d65e95bfe - + https://github.com/dotnet/runtime - 62eb1b22c608957b3fa701d53bc9619d6f6c49f7 + 214458e2748c7857ab2e2cfdb3a3d32d65e95bfe - + https://github.com/dotnet/runtime - 62eb1b22c608957b3fa701d53bc9619d6f6c49f7 + 214458e2748c7857ab2e2cfdb3a3d32d65e95bfe - + https://github.com/dotnet/runtime - 62eb1b22c608957b3fa701d53bc9619d6f6c49f7 + 214458e2748c7857ab2e2cfdb3a3d32d65e95bfe - + https://github.com/dotnet/runtime - 62eb1b22c608957b3fa701d53bc9619d6f6c49f7 + 214458e2748c7857ab2e2cfdb3a3d32d65e95bfe - + https://github.com/dotnet/runtime - 62eb1b22c608957b3fa701d53bc9619d6f6c49f7 + 214458e2748c7857ab2e2cfdb3a3d32d65e95bfe - + https://github.com/dotnet/runtime - 62eb1b22c608957b3fa701d53bc9619d6f6c49f7 + 214458e2748c7857ab2e2cfdb3a3d32d65e95bfe - + https://github.com/dotnet/runtime - 62eb1b22c608957b3fa701d53bc9619d6f6c49f7 + 214458e2748c7857ab2e2cfdb3a3d32d65e95bfe - + https://github.com/dotnet/runtime - 62eb1b22c608957b3fa701d53bc9619d6f6c49f7 + 214458e2748c7857ab2e2cfdb3a3d32d65e95bfe - + https://github.com/dotnet/runtime - 62eb1b22c608957b3fa701d53bc9619d6f6c49f7 + 214458e2748c7857ab2e2cfdb3a3d32d65e95bfe - + https://github.com/dotnet/runtime - 62eb1b22c608957b3fa701d53bc9619d6f6c49f7 + 214458e2748c7857ab2e2cfdb3a3d32d65e95bfe - + https://github.com/dotnet/runtime - 62eb1b22c608957b3fa701d53bc9619d6f6c49f7 + 214458e2748c7857ab2e2cfdb3a3d32d65e95bfe - + https://github.com/dotnet/runtime - 62eb1b22c608957b3fa701d53bc9619d6f6c49f7 + 214458e2748c7857ab2e2cfdb3a3d32d65e95bfe - + https://github.com/dotnet/runtime - 62eb1b22c608957b3fa701d53bc9619d6f6c49f7 + 214458e2748c7857ab2e2cfdb3a3d32d65e95bfe - + https://github.com/dotnet/runtime - 62eb1b22c608957b3fa701d53bc9619d6f6c49f7 + 214458e2748c7857ab2e2cfdb3a3d32d65e95bfe - + https://github.com/dotnet/runtime - 62eb1b22c608957b3fa701d53bc9619d6f6c49f7 + 214458e2748c7857ab2e2cfdb3a3d32d65e95bfe - + https://github.com/dotnet/runtime - 62eb1b22c608957b3fa701d53bc9619d6f6c49f7 + 214458e2748c7857ab2e2cfdb3a3d32d65e95bfe - + https://github.com/dotnet/runtime - 62eb1b22c608957b3fa701d53bc9619d6f6c49f7 + 214458e2748c7857ab2e2cfdb3a3d32d65e95bfe - + https://github.com/dotnet/runtime - 62eb1b22c608957b3fa701d53bc9619d6f6c49f7 + 214458e2748c7857ab2e2cfdb3a3d32d65e95bfe - + https://github.com/dotnet/runtime - 62eb1b22c608957b3fa701d53bc9619d6f6c49f7 + 214458e2748c7857ab2e2cfdb3a3d32d65e95bfe - + https://github.com/dotnet/runtime - 62eb1b22c608957b3fa701d53bc9619d6f6c49f7 + 214458e2748c7857ab2e2cfdb3a3d32d65e95bfe - + https://github.com/dotnet/runtime - 62eb1b22c608957b3fa701d53bc9619d6f6c49f7 + 214458e2748c7857ab2e2cfdb3a3d32d65e95bfe - + https://github.com/dotnet/runtime - 62eb1b22c608957b3fa701d53bc9619d6f6c49f7 + 214458e2748c7857ab2e2cfdb3a3d32d65e95bfe - + https://github.com/dotnet/runtime - 62eb1b22c608957b3fa701d53bc9619d6f6c49f7 + 214458e2748c7857ab2e2cfdb3a3d32d65e95bfe - + https://github.com/dotnet/runtime - 62eb1b22c608957b3fa701d53bc9619d6f6c49f7 + 214458e2748c7857ab2e2cfdb3a3d32d65e95bfe - + + https://github.com/dotnet/runtime - 62eb1b22c608957b3fa701d53bc9619d6f6c49f7 + 214458e2748c7857ab2e2cfdb3a3d32d65e95bfe - + https://github.com/dotnet/runtime - 62eb1b22c608957b3fa701d53bc9619d6f6c49f7 + 214458e2748c7857ab2e2cfdb3a3d32d65e95bfe - + https://github.com/dotnet/runtime - 62eb1b22c608957b3fa701d53bc9619d6f6c49f7 + 214458e2748c7857ab2e2cfdb3a3d32d65e95bfe - + https://github.com/dotnet/runtime - 62eb1b22c608957b3fa701d53bc9619d6f6c49f7 + 214458e2748c7857ab2e2cfdb3a3d32d65e95bfe - + https://github.com/dotnet/runtime - 62eb1b22c608957b3fa701d53bc9619d6f6c49f7 + 214458e2748c7857ab2e2cfdb3a3d32d65e95bfe - + https://github.com/dotnet/runtime - 62eb1b22c608957b3fa701d53bc9619d6f6c49f7 + 214458e2748c7857ab2e2cfdb3a3d32d65e95bfe - + https://github.com/dotnet/runtime - 62eb1b22c608957b3fa701d53bc9619d6f6c49f7 + 214458e2748c7857ab2e2cfdb3a3d32d65e95bfe - + https://github.com/dotnet/runtime - 62eb1b22c608957b3fa701d53bc9619d6f6c49f7 + 214458e2748c7857ab2e2cfdb3a3d32d65e95bfe - + https://github.com/dotnet/runtime - 62eb1b22c608957b3fa701d53bc9619d6f6c49f7 + 214458e2748c7857ab2e2cfdb3a3d32d65e95bfe - + https://github.com/dotnet/runtime - 62eb1b22c608957b3fa701d53bc9619d6f6c49f7 + 214458e2748c7857ab2e2cfdb3a3d32d65e95bfe - + https://github.com/dotnet/runtime - 62eb1b22c608957b3fa701d53bc9619d6f6c49f7 + 214458e2748c7857ab2e2cfdb3a3d32d65e95bfe - + https://github.com/dotnet/runtime - 62eb1b22c608957b3fa701d53bc9619d6f6c49f7 + 214458e2748c7857ab2e2cfdb3a3d32d65e95bfe + + + https://github.com/dotnet/runtime + 214458e2748c7857ab2e2cfdb3a3d32d65e95bfe - + https://github.com/dotnet/runtime - 62eb1b22c608957b3fa701d53bc9619d6f6c49f7 + 214458e2748c7857ab2e2cfdb3a3d32d65e95bfe - + https://github.com/dotnet/runtime - 62eb1b22c608957b3fa701d53bc9619d6f6c49f7 + 214458e2748c7857ab2e2cfdb3a3d32d65e95bfe - + https://github.com/dotnet/runtime - 62eb1b22c608957b3fa701d53bc9619d6f6c49f7 + 214458e2748c7857ab2e2cfdb3a3d32d65e95bfe - + https://github.com/dotnet/runtime - 62eb1b22c608957b3fa701d53bc9619d6f6c49f7 + 214458e2748c7857ab2e2cfdb3a3d32d65e95bfe https://github.com/dotnet/arcade diff --git a/eng/Versions.props b/eng/Versions.props index 8c72cec99e3a..753f436a3f70 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -26,18 +26,18 @@ true true - $(AspNetCoreMajorVersion).$(AspNetCoreMinorVersion).$(AspNetCorePatchVersion) + $(AspNetCoreMajorMinorVersion).$(AspNetCorePatchVersion) $(VersionPrefix) - $(AspNetCoreMajorVersion).$(AspNetCoreMinorVersion).0 + $(AspNetCoreMajorMinorVersion).0 0.3.$(AspNetCorePatchVersion) $([MSBuild]::Add(10, $(AspNetCoreMajorVersion))) $(AspNetCoreMinorVersion) $(AspNetCorePatchVersion) - $(AspNetCoreMajorVersion).$(AspNetCoreMinorVersion).$([MSBuild]::Subtract($(AspNetCorePatchVersion), 1)) + $(AspNetCoreMajorMinorVersion).$([MSBuild]::Subtract($(AspNetCorePatchVersion), 1)) @@ -59,81 +59,83 @@ --> - 5.0.0-rtm.20508.2 - 5.0.0-rtm.20508.2 - 5.0.0-rtm.20508.2 - 5.0.0-rtm.20508.2 - 5.0.0-rtm.20508.2 - 5.0.0-rtm.20508.2 - 5.0.0-rtm.20508.2 - 5.0.0-rtm.20508.2 - 5.0.0-rtm.20508.2 - 5.0.0-rtm.20508.2 - 5.0.0-rtm.20508.2 - 5.0.0-rtm.20508.2 - 5.0.0-rtm.20508.2 - 5.0.0-rtm.20508.2 - 5.0.0-rtm.20508.2 - 5.0.0-rtm.20508.2 - 5.0.0-rtm.20508.2 - 5.0.0-rtm.20508.2 - 5.0.0-rtm.20508.2 - 5.0.0-rtm.20508.2 - 5.0.0-rtm.20508.2 - 5.0.0-rtm.20508.2 - 5.0.0-rtm.20508.2 - 5.0.0-rtm.20508.2 - 5.0.0-rtm.20508.2 - 5.0.0-rtm.20508.2 - 5.0.0-rtm.20508.2 - 5.0.0-rtm.20508.2 - 5.0.0-rtm.20508.2 - 5.0.0-rtm.20508.2 - 5.0.0-rtm.20508.2 - 5.0.0-rtm.20508.2 - 5.0.0-rtm.20508.2 - 5.0.0-rtm.20508.2 - 5.0.0-rtm.20508.2 - 5.0.0-rtm.20508.2 - 5.0.0-rtm.20508.2 - 5.0.0-rtm.20508.2 - 5.0.0-rtm.20508.2 - 5.0.0-rtm.20508.2 - 5.0.0-rtm.20508.2 - 5.0.0-rtm.20508.2 - 5.0.0-rtm.20508.2 - 5.0.0-rtm.20508.2 - 5.0.0-rtm.20508.2 - 5.0.0-rtm.20508.2 - 5.0.0-rtm.20508.2 - 5.0.0-rtm.20508.2 - 5.0.0-rtm.20508.2 - 5.0.0-rtm.20508.2 - 5.0.0-rtm.20508.2 - 5.0.0-rtm.20508.2 - 5.0.0-rtm.20508.2 - 5.0.0-rtm.20508.2 - 5.0.0-rtm.20508.2 - 5.0.0-rtm.20508.2 - 5.0.0-rtm.20508.2 - 5.0.0-rtm.20508.2 - 5.0.0-rtm.20508.2 - 5.0.0-rtm.20508.2 - 5.0.0-rtm.20508.2 - 5.0.0-rtm.20508.2 - 5.0.0-rtm.20508.2 - 5.0.0-rtm.20508.2 + 6.0.0-alpha.1.20505.12 + 6.0.0-alpha.1.20505.12 + 6.0.0-alpha.1.20505.12 + 6.0.0-alpha.1.20505.12 + 6.0.0-alpha.1.20505.12 + 6.0.0-alpha.1.20505.12 + 6.0.0-alpha.1.20505.12 + 6.0.0-alpha.1.20505.12 + 6.0.0-alpha.1.20505.12 + 6.0.0-alpha.1.20505.12 + 6.0.0-alpha.1.20505.12 + 6.0.0-alpha.1.20505.12 + 6.0.0-alpha.1.20505.12 + 6.0.0-alpha.1.20505.12 + 6.0.0-alpha.1.20505.12 + 6.0.0-alpha.1.20505.12 + 6.0.0-alpha.1.20505.12 + 6.0.0-alpha.1.20505.12 + 6.0.0-alpha.1.20505.12 + 6.0.0-alpha.1.20505.12 + 6.0.0-alpha.1.20505.12 + 6.0.0-alpha.1.20505.12 + 6.0.0-alpha.1.20505.12 + 6.0.0-alpha.1.20505.12 + 6.0.0-alpha.1.20505.12 + 6.0.0-alpha.1.20505.12 + 6.0.0-alpha.1.20505.12 + 6.0.0-alpha.1.20505.12 + 6.0.0-alpha.1.20505.12 + 6.0.0-alpha.1.20505.12 + 6.0.0-alpha.1.20505.12 + 6.0.0-alpha.1.20505.12 + 6.0.0-alpha.1.20505.12 + 6.0.0-alpha.1.20505.12 + 6.0.0-alpha.1.20505.12 + 6.0.0-alpha.1.20505.12 + 6.0.0-alpha.1.20505.12 + 6.0.0-alpha.1.20505.12 + 6.0.0-alpha.1.20505.12 + 6.0.0-alpha.1.20505.12 + 6.0.0-alpha.1.20505.12 + 6.0.0-alpha.1.20505.12 + 6.0.0-alpha.1.20505.12 + 6.0.0-alpha.1.20505.12 + 6.0.0-alpha.1.20505.12 + 6.0.0-alpha.1.20505.12 + 6.0.0-alpha.1.20505.12 + 6.0.0-alpha.1.20505.12 + 6.0.0-alpha.1.20505.12 + 6.0.0-alpha.1.20505.12 + 6.0.0-alpha.1.20505.12 + 6.0.0-alpha.1.20505.12 + 6.0.0-alpha.1.20505.12 + 6.0.0-alpha.1.20505.12 + + 6.0.0-alpha.1.20505.12 + 6.0.0-alpha.1.20505.12 + 6.0.0-alpha.1.20505.12 + 6.0.0-alpha.1.20505.12 + 6.0.0-alpha.1.20505.12 + 6.0.0-alpha.1.20505.12 + 6.0.0-alpha.1.20505.12 + 6.0.0-alpha.1.20505.12 + 6.0.0-alpha.1.20505.12 + 6.0.0-alpha.1.20505.12 + 6.0.0-alpha.1.20505.12 - 5.0.0-rtm.20508.2 + 6.0.0-alpha.1.20505.12 - 5.0.0-rtm.20507.1 - 5.0.0-rtm.20507.1 - 5.0.0-rtm.20507.1 - 5.0.0-rtm.20507.1 - 5.0.0-rtm.20507.1 - 5.0.0-rtm.20507.1 - 5.0.0-rtm.20507.1 - 5.0.0-rtm.20507.1 + 6.0.0-alpha.1.20507.2 + 6.0.0-alpha.1.20507.2 + 6.0.0-alpha.1.20507.2 + 6.0.0-alpha.1.20507.2 + 6.0.0-alpha.1.20507.2 + 6.0.0-alpha.1.20507.2 + 6.0.0-alpha.1.20507.2 + 6.0.0-alpha.1.20507.2 5.0.0-beta.20506.7 @@ -154,6 +156,7 @@ $(MicrosoftNETCoreAppRuntimewinx64PackageVersion) + 3.8.0-3.20458.6 5.0.0-preview.4.20180.4 @@ -202,12 +205,15 @@ 1.4.0 6.7.1 5.7.0 - + 2.1.1 2.2.0 3.1.8-servicing-20421-6 $(MicrosoftAspNetCoreAzureAppServicesSiteExtension31PackageVersion) $(MicrosoftAspNetCoreAzureAppServicesSiteExtension31PackageVersion) + 5.0.0-preview-7-20365-19 + $(MicrosoftAspNetCoreAzureAppServicesSiteExtension50PackageVersion) + $(MicrosoftAspNetCoreAzureAppServicesSiteExtension50PackageVersion) 0.9.9 0.12.1 @@ -225,9 +231,9 @@ 4.1.0 4.1.0 2.1.90 - 1.0.0 - 1.0.0 - 1.0.0 + 0.4.0-preview + 0.4.0-preview + 0.4.0-preview $(MessagePackPackageVersion) 4.10.0 0.11.2 @@ -236,7 +242,7 @@ 13.0.4 4.0.0-alpha05 17.17134.0 - 85.0.4183.8300 + 86.0.4240.2200-beta 4.0.0-alpha05 1.4.0 4.0.0 diff --git a/eng/helix/content/RunTests/RunTestsOptions.cs b/eng/helix/content/RunTests/RunTestsOptions.cs index 13bd50a80fad..031326ba8a14 100644 --- a/eng/helix/content/RunTests/RunTestsOptions.cs +++ b/eng/helix/content/RunTests/RunTestsOptions.cs @@ -50,6 +50,11 @@ public static RunTestsOptions Parse(string[] args) aliases: new string[] { "--helixTimeout" }, description: "The timeout duration of the Helix job") { Argument = new Argument(), Required = true }, + + new Option( + aliases: new string[] { "--source" }, + description: "The restore sources to use during testing") + { Argument = new Argument() { Arity = ArgumentArity.ZeroOrMore }, Required = true } }; var parseResult = command.Parse(args); diff --git a/eng/targets/Helix.Common.props b/eng/targets/Helix.Common.props index 07b8246029c9..58809ff01d24 100644 --- a/eng/targets/Helix.Common.props +++ b/eng/targets/Helix.Common.props @@ -32,6 +32,7 @@ + diff --git a/eng/tools/BaselineGenerator/BaselineGenerator.csproj b/eng/tools/BaselineGenerator/BaselineGenerator.csproj index 775e7523c847..d80ea1277248 100644 --- a/eng/tools/BaselineGenerator/BaselineGenerator.csproj +++ b/eng/tools/BaselineGenerator/BaselineGenerator.csproj @@ -7,8 +7,8 @@ + - diff --git a/eng/tools/BaselineGenerator/Program.cs b/eng/tools/BaselineGenerator/Program.cs index e77b35edeeeb..a68406a3cd68 100644 --- a/eng/tools/BaselineGenerator/Program.cs +++ b/eng/tools/BaselineGenerator/Program.cs @@ -4,6 +4,7 @@ using System; using System.IO; using System.Linq; +using System.Collections.Generic; using System.Net.Http; using System.Text; using System.Threading; @@ -30,16 +31,18 @@ static void Main(string[] args) new Program().Execute(args); } - private readonly CommandOption _source; + private readonly CommandOption _sources; private readonly CommandOption _output; private readonly CommandOption _update; + private static readonly string[] _defaultSources = new string[] { "https://api.nuget.org/v3/index.json" }; + public Program() { - _source = Option( - "-s|--package-source ", - "The NuGet source of packages to fetch", - CommandOptionType.SingleValue); + _sources = Option( + "-s|--package-sources ", + "The NuGet source(s) of packages to fetch", + CommandOptionType.MultipleValue); _output = Option("-o|--output ", "The generated file output path", CommandOptionType.SingleValue); _update = Option("-u|--update", "Regenerate the input (Baseline.xml) file.", CommandOptionType.NoValue); @@ -56,26 +59,32 @@ private async Task Run() var inputPath = Path.Combine(Directory.GetCurrentDirectory(), "Baseline.xml"); var input = XDocument.Load(inputPath); - var source = _source.HasValue() ? _source.Value().TrimEnd('/') : "https://api.nuget.org/v3/index.json"; - var packageSource = new PackageSource(source); + var sources = _sources.HasValue() ? _sources.Values.Select(s => s.TrimEnd('/')) : _defaultSources; + var packageSources = sources.Select(s => new PackageSource(s)); var providers = Repository.Provider.GetCoreV3(); // Get v2 and v3 API support - var sourceRepository = new SourceRepository(packageSource, providers); + var sourceRepositories = packageSources.Select(ps => new SourceRepository(ps, providers)); if (_update.HasValue()) { - var updateResult = await RunUpdateAsync(inputPath, input, sourceRepository); + var updateResult = await RunUpdateAsync(inputPath, input, sourceRepositories); if (updateResult != 0) { return updateResult; } } - var feedType = await sourceRepository.GetFeedType(CancellationToken.None); - var feedV3 = feedType == FeedType.HttpV3; - var packageBase = source + "/package"; - if (feedV3) + List<(string packageBase, bool feedV3)> packageBases = new List<(string, bool)>(); + foreach (var sourceRepository in sourceRepositories) { - var resources = await sourceRepository.GetResourceAsync(); - packageBase = resources.GetServiceEntryUri(ServiceTypes.PackageBaseAddress).ToString().TrimEnd('/'); + var feedType = await sourceRepository.GetFeedType(CancellationToken.None); + var feedV3 = feedType == FeedType.HttpV3; + var packageBase = sourceRepository.PackageSource + "/package"; + if (feedV3) + { + var resources = await sourceRepository.GetResourceAsync(); + packageBase = resources.GetServiceEntryUri(ServiceTypes.PackageBaseAddress).ToString().TrimEnd('/'); + } + + packageBases.Add((packageBase, feedV3)); } var output = _output.HasValue() @@ -116,18 +125,34 @@ private async Task Run() if (!File.Exists(nupkgPath)) { - var url = feedV3 ? - $"{packageBase}/{id.ToLowerInvariant()}/{version}/{id.ToLowerInvariant()}.{version}.nupkg" : - $"{packageBase}/{id}/{version}"; - - Console.WriteLine($"Downloading {url}"); - using (var response = await client.GetStreamAsync(url)) + foreach ((string packageBase, bool feedV3) in packageBases) { - using (var file = File.Create(nupkgPath)) + var url = feedV3 ? + $"{packageBase}/{id.ToLowerInvariant()}/{version}/{id.ToLowerInvariant()}.{version}.nupkg" : + $"{packageBase}/{id}/{version}"; + + Console.WriteLine($"Downloading {url}"); + try + { + using (var response = await client.GetStreamAsync(url)) + { + using (var file = File.Create(nupkgPath)) + { + await response.CopyToAsync(file); + } + } + } + catch (HttpRequestException e) when (e.StatusCode == System.Net.HttpStatusCode.NotFound) { - await response.CopyToAsync(file); + // If it's not found, continue onto the next one. + continue; } } + + if (!File.Exists(nupkgPath)) + { + throw new Exception($"Could not download package {id} @ {version} using any input feed"); + } } using (var reader = new PackageArchiveReader(nupkgPath)) @@ -195,9 +220,11 @@ private async Task Run() private async Task RunUpdateAsync( string documentPath, XDocument document, - SourceRepository sourceRepository) + IEnumerable sourceRepositories) { - var packageMetadataResource = await sourceRepository.GetResourceAsync(); + var packageMetadataResources = await Task.WhenAll(sourceRepositories.Select(async sr => + await sr.GetResourceAsync())); + var logger = new Logger(Error, Out); var hasChanged = false; using (var cacheContext = new SourceCacheContext { NoCache = true }) @@ -206,7 +233,7 @@ private async Task RunUpdateAsync( hasChanged = await TryUpdateVersionAsync( versionAttribute, "Microsoft.AspNetCore.App.Runtime.win-x64", - packageMetadataResource, + packageMetadataResources, logger, cacheContext); @@ -217,7 +244,7 @@ private async Task RunUpdateAsync( var attributeChanged = await TryUpdateVersionAsync( versionAttribute, id, - packageMetadataResource, + packageMetadataResources, logger, cacheContext); @@ -261,25 +288,36 @@ private async Task RunUpdateAsync( private static async Task TryUpdateVersionAsync( XAttribute versionAttribute, string packageId, - PackageMetadataResource packageMetadataResource, + IEnumerable packageMetadataResources, ILogger logger, SourceCacheContext cacheContext) { - var searchMetadata = await packageMetadataResource.GetMetadataAsync( - packageId, - includePrerelease: false, - includeUnlisted: true, // Microsoft.AspNetCore.DataOrotection.Redis package is not listed. - sourceCacheContext: cacheContext, - log: logger, - token: CancellationToken.None); - var currentVersion = NuGetVersion.Parse(versionAttribute.Value); var versionRange = new VersionRange( currentVersion, new FloatRange(NuGetVersionFloatBehavior.Patch, currentVersion)); - var latestVersion = versionRange.FindBestMatch( - searchMetadata.Select(metadata => metadata.Identity.Version)); + var searchMetadatas = await Task.WhenAll( + packageMetadataResources.Select(async pmr => await pmr.GetMetadataAsync( + packageId, + includePrerelease: false, + includeUnlisted: true, // Microsoft.AspNetCore.DataOrotection.Redis package is not listed. + sourceCacheContext: cacheContext, + log: logger, + token: CancellationToken.None))); + + // Find the latest version among each search metadata + NuGetVersion latestVersion = null; + foreach (var searchMetadata in searchMetadatas) + { + var potentialLatestVersion = versionRange.FindBestMatch( + searchMetadata.Select(metadata => metadata.Identity.Version)); + if (latestVersion == null || + (potentialLatestVersion != null && potentialLatestVersion.CompareTo(latestVersion) > 0)) + { + latestVersion = potentialLatestVersion; + } + } if (latestVersion == null) { diff --git a/global.json b/global.json index 5cfae0f5d450..069019ed17b9 100644 --- a/global.json +++ b/global.json @@ -1,9 +1,9 @@ { "sdk": { - "version": "5.0.100-rc.1.20452.10" + "version": "6.0.100-alpha.1.20472.11" }, "tools": { - "dotnet": "5.0.100-rc.1.20452.10", + "dotnet": "6.0.100-alpha.1.20472.11", "runtimes": { "dotnet/x64": [ "2.1.18", diff --git a/src/Components/Components/src/ComponentBase.cs b/src/Components/Components/src/ComponentBase.cs index dd80af0fd3bf..6d4eb6109554 100644 --- a/src/Components/Components/src/ComponentBase.cs +++ b/src/Components/Components/src/ComponentBase.cs @@ -200,9 +200,8 @@ void IComponent.Attach(RenderHandle renderHandle) /// A that completes when the component has finished updating and rendering itself. /// /// - /// The method should be passed the entire set of parameter values each - /// time is called. It not required that the caller supply a parameter - /// value for all parameters that are logically understood by the component. + /// Parameters are passed when is called. It is not required that + /// the caller supply a parameter value for all of the parameters that are logically understood by the component. /// /// /// The default implementation of will set the value of each property diff --git a/src/Components/ComponentsNoDeps.slnf b/src/Components/ComponentsNoDeps.slnf index 0596b3bc64a1..f4c4daa62617 100644 --- a/src/Components/ComponentsNoDeps.slnf +++ b/src/Components/ComponentsNoDeps.slnf @@ -14,6 +14,7 @@ "src\\Components\\Ignitor\\src\\Ignitor.csproj", "src\\Components\\Ignitor\\test\\Ignitor.Test.csproj", "src\\Components\\Samples\\BlazorServerApp\\BlazorServerApp.csproj", + "src\\Components\\Samples\\IgnitorSample\\IgnitorSample.csproj", "src\\Components\\Server\\src\\Microsoft.AspNetCore.Components.Server.csproj", "src\\Components\\Server\\test\\Microsoft.AspNetCore.Components.Server.Tests.csproj", "src\\Components\\WebAssembly\\Authentication.Msal\\src\\Microsoft.Authentication.WebAssembly.Msal.csproj", @@ -48,4 +49,4 @@ "src\\Components\\test\\testassets\\TestServer\\Components.TestServer.csproj" ] } -} +} \ No newline at end of file diff --git a/src/Components/Ignitor/src/BlazorClient.cs b/src/Components/Ignitor/src/BlazorClient.cs index b19ab8b3dd5f..c0dbc563aff6 100644 --- a/src/Components/Ignitor/src/BlazorClient.cs +++ b/src/Components/Ignitor/src/BlazorClient.cs @@ -2,6 +2,7 @@ // Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. using System; +using System.Diagnostics; using System.Linq; using System.Net.Http; using System.Text.Json; @@ -35,8 +36,10 @@ public BlazorClient() }); } - public TimeSpan? DefaultConnectionTimeout { get; set; } = TimeSpan.FromSeconds(20); - public TimeSpan? DefaultOperationTimeout { get; set; } = TimeSpan.FromMilliseconds(500); + public TimeSpan? DefaultConnectionTimeout { get; set; } = Debugger.IsAttached ? + Timeout.InfiniteTimeSpan : TimeSpan.FromSeconds(20); + public TimeSpan? DefaultOperationTimeout { get; set; } = Debugger.IsAttached ? + Timeout.InfiniteTimeSpan : TimeSpan.FromMilliseconds(500); /// /// Gets or sets a value that determines whether the client will capture data such diff --git a/src/Components/Ignitor/src/ElementHive.cs b/src/Components/Ignitor/src/ElementHive.cs index b7819b427634..07e551c870bf 100644 --- a/src/Components/Ignitor/src/ElementHive.cs +++ b/src/Components/Ignitor/src/ElementHive.cs @@ -259,7 +259,7 @@ private int InsertFrame(RenderBatch batch, ContainerNode parent, int childIndex, case RenderTreeFrameType.Region: { - return InsertFrameRange(batch, parent, childIndex, frames, frameIndex + 1, frameIndex + CountDescendantFrames(frame)); + return InsertFrameRange(batch, parent, childIndex, frames, frameIndex + 1, frameIndex + frame.RegionSubtreeLength); } case RenderTreeFrameType.ElementReferenceCapture: @@ -322,7 +322,8 @@ private void InsertElement(RenderBatch batch, ContainerNode parent, int childInd { // Note: we don't handle SVG here var newElement = new ElementNode(frame.ElementName); - parent.InsertLogicalChild(newElement, childIndex); + + var inserted = false; // Apply attributes for (var i = frameIndex + 1; i < frameIndex + frame.ElementSubtreeLength; i++) @@ -334,12 +335,21 @@ private void InsertElement(RenderBatch batch, ContainerNode parent, int childInd } else { + parent.InsertLogicalChild(newElement, childIndex); + inserted = true; + // As soon as we see a non-attribute child, all the subsequent child frames are // not attributes, so bail out and insert the remnants recursively InsertFrameRange(batch, newElement, 0, frames, i, frameIndex + frame.ElementSubtreeLength); break; } } + + // this element did not have any children, so it's not inserted yet. + if (!inserted) + { + parent.InsertLogicalChild(newElement, childIndex); + } } private void ApplyAttribute(RenderBatch batch, ElementNode elementNode, RenderTreeFrame attributeFrame) diff --git a/src/Components/Samples/BlazorServerApp/Pages/Counter.razor b/src/Components/Samples/BlazorServerApp/Pages/Counter.razor index 59c0d242c3aa..946512d45a7e 100644 --- a/src/Components/Samples/BlazorServerApp/Pages/Counter.razor +++ b/src/Components/Samples/BlazorServerApp/Pages/Counter.razor @@ -2,7 +2,7 @@

Counter

-

Current count: @currentCount

+

Current count: @currentCount

diff --git a/src/Components/Samples/IgnitorSample/IgnitorSample.csproj b/src/Components/Samples/IgnitorSample/IgnitorSample.csproj new file mode 100644 index 000000000000..36c8c55e4153 --- /dev/null +++ b/src/Components/Samples/IgnitorSample/IgnitorSample.csproj @@ -0,0 +1,14 @@ + + + + $(DefaultNetCoreTargetFramework) + false + enable + Exe + + + + + + + diff --git a/src/Components/Samples/IgnitorSample/Program.cs b/src/Components/Samples/IgnitorSample/Program.cs new file mode 100644 index 000000000000..e272dc5b8787 --- /dev/null +++ b/src/Components/Samples/IgnitorSample/Program.cs @@ -0,0 +1,45 @@ +using System; +using System.Diagnostics; +using System.Text.Json; +using System.Threading; +using System.Threading.Tasks; +using Ignitor; +using Microsoft.AspNetCore.SignalR.Client; + +namespace IgnitorSample +{ + /// + /// This is a minimal sample that lets you try out Ignitor against a Blazor Server app. + /// To use this, first launch the server app. Update the code below to point to the host url and run the test. + /// + class Program + { + private static readonly string ServerUrl = "https://localhost:5001"; + private static readonly JsonSerializerOptions jsonSerializerOptions = new JsonSerializerOptions(JsonSerializerDefaults.Web); + + static async Task Main(string[] args) + { + var client = new BlazorClient(); + await client.ConnectAsync(new Uri(ServerUrl)); + + await VerifyNavigationAsync(client); + + Console.WriteLine("Done"); + } + + static async ValueTask VerifyNavigationAsync(BlazorClient client) + { + await client.ExpectRenderBatch(() => client.NavigateAsync($"{ServerUrl}/counter")); + client.Hive.TryFindElementById("counter", out var counter); + Debug.Assert(counter != null, "We must have navigated to counter."); + } + } + + static class BlazorClientExtensions + { + public static Task NavigateAsync(this BlazorClient client, string url, CancellationToken cancellationToken = default) + { + return client.HubConnection.InvokeAsync("OnLocationChanged", url, false, cancellationToken); + } + } +} diff --git a/src/Components/Server/src/Circuits/CircuitOptionsJSInteropDetailedErrorsConfiguration.cs b/src/Components/Server/src/Circuits/CircuitOptionsJSInteropDetailedErrorsConfiguration.cs index ac7be325234c..94c03ea58516 100644 --- a/src/Components/Server/src/Circuits/CircuitOptionsJSInteropDetailedErrorsConfiguration.cs +++ b/src/Components/Server/src/Circuits/CircuitOptionsJSInteropDetailedErrorsConfiguration.cs @@ -1,6 +1,7 @@ // Copyright (c) .NET Foundation. All rights reserved. // Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. +using System; using Microsoft.AspNetCore.Hosting; using Microsoft.Extensions.Configuration; using Microsoft.Extensions.Options; @@ -18,7 +19,9 @@ public CircuitOptionsJSInteropDetailedErrorsConfiguration(IConfiguration configu public void Configure(CircuitOptions options) { - options.DetailedErrors = Configuration.GetValue(WebHostDefaults.DetailedErrorsKey); + var value = Configuration[WebHostDefaults.DetailedErrorsKey]; + options.DetailedErrors = string.Equals(value, "true", StringComparison.OrdinalIgnoreCase) || + string.Equals(value, "1", StringComparison.OrdinalIgnoreCase); } } } diff --git a/src/Components/Web.JS/.gitignore b/src/Components/Web.JS/.gitignore index 10999e07926c..b1e47fe5bdee 100644 --- a/src/Components/Web.JS/.gitignore +++ b/src/Components/Web.JS/.gitignore @@ -1,2 +1,3 @@ node_modules/ dist/Debug/ +dist/Release/blazor.webassembly.js diff --git a/src/Components/WebAssembly/Sdk/integrationtests/WasmBuildLazyLoadTest.cs b/src/Components/WebAssembly/Sdk/integrationtests/WasmBuildLazyLoadTest.cs index 88a7fb842d9a..ed5572fb2ec5 100644 --- a/src/Components/WebAssembly/Sdk/integrationtests/WasmBuildLazyLoadTest.cs +++ b/src/Components/WebAssembly/Sdk/integrationtests/WasmBuildLazyLoadTest.cs @@ -165,6 +165,48 @@ public async Task Publish_LazyLoadExplicitAssembly_Release_Works() Assert.Contains("blazorwasm.dll", assemblies.Keys); } + [Fact] + public async Task Build_LazyLoadExplicitAssembly_InvalidAssembly() + { + // Arrange + using var project = ProjectDirectory.Create("blazorwasm", additionalProjects: new[] { "razorclasslibrary" }); + project.Configuration = "Release"; + + project.AddProjectFileContent( +@" + + + +"); + // Act + var result = await MSBuildProcessManager.DotnetMSBuild(project); + + // Assert + Assert.BuildError(result, "BLAZORSDK1001"); + Assert.BuildFailed(result); + } + + [Fact] + public async Task Publish_LazyLoadExplicitAssembly_InvalidAssembly() + { + // Arrange + using var project = ProjectDirectory.Create("blazorwasm", additionalProjects: new[] { "razorclasslibrary" }); + project.Configuration = "Release"; + + project.AddProjectFileContent( +@" + + + +"); + // Act + var result = await MSBuildProcessManager.DotnetMSBuild(project, "Publish"); + + // Assert + Assert.BuildError(result, "BLAZORSDK1001"); + Assert.BuildFailed(result); + } + private static BootJsonData ReadBootJsonData(MSBuildResult result, string path) { return JsonSerializer.Deserialize( diff --git a/src/Components/WebAssembly/Sdk/src/targets/Microsoft.NET.Sdk.BlazorWebAssembly.Current.targets b/src/Components/WebAssembly/Sdk/src/targets/Microsoft.NET.Sdk.BlazorWebAssembly.Current.targets index 0f9a3d9c2b55..66ac6e99d989 100644 --- a/src/Components/WebAssembly/Sdk/src/targets/Microsoft.NET.Sdk.BlazorWebAssembly.Current.targets +++ b/src/Components/WebAssembly/Sdk/src/targets/Microsoft.NET.Sdk.BlazorWebAssembly.Current.targets @@ -284,9 +284,15 @@ Copyright (c) .NET Foundation. All rights reserved. <_BlazorBuildBootJsonPath>$(IntermediateOutputPath)blazor.boot.json + <_BlazorOutputContent>@(_BlazorOutputWithHash) <_BlazorWebAssemblyLoadAllGlobalizationData Condition="'$(BlazorWebAssemblyLoadAllGlobalizationData)' == ''">false + + + + <_BlazorOutputContent>@(_BlazorPublishBootResourceWithHash) + + + + (); diff --git a/src/Components/test/E2ETest/Tests/GlobalizationTest.cs b/src/Components/test/E2ETest/Tests/GlobalizationTest.cs index 8fca11ec183b..9d1244036bc3 100644 --- a/src/Components/test/E2ETest/Tests/GlobalizationTest.cs +++ b/src/Components/test/E2ETest/Tests/GlobalizationTest.cs @@ -87,7 +87,6 @@ public virtual void CanSetCultureAndParseCultureSensitiveNumbersAndDates(string // We need to do step 4 to make sure that the value we're entering can "stick" in the form field. // We can't use ".Text" because DOM reasons :( [Theory] - [QuarantinedTest("https://github.com/dotnet/aspnetcore/issues/23643")] [InlineData("en-US")] [InlineData("fr-FR")] public void CanSetCultureAndParseCultureInvariantNumbersAndDatesWithInputFields(string culture) diff --git a/src/Components/test/E2ETest/Tests/InputFileTest.cs b/src/Components/test/E2ETest/Tests/InputFileTest.cs index 72d346c9ff70..e238e9c9a95d 100644 --- a/src/Components/test/E2ETest/Tests/InputFileTest.cs +++ b/src/Components/test/E2ETest/Tests/InputFileTest.cs @@ -9,6 +9,7 @@ using BasicTestApp.FormsTest; using Microsoft.AspNetCore.Components.E2ETest.Infrastructure; using Microsoft.AspNetCore.Components.E2ETest.Infrastructure.ServerFixtures; +using Microsoft.AspNetCore.Testing; using Microsoft.AspNetCore.E2ETesting; using OpenQA.Selenium; using OpenQA.Selenium.Support.Extensions; @@ -64,6 +65,7 @@ public void CanUploadSingleSmallFile() } [Fact] + [QuarantinedTest("https://github.com/dotnet/aspnetcore/issues/26331")] public void CanUploadSingleLargeFile() { // Create a large text file @@ -128,6 +130,7 @@ public void CanUploadMultipleFiles() } [Fact] + [QuarantinedTest("https://github.com/dotnet/aspnetcore/issues/25929")] public void CanUploadAndConvertImageFile() { var sourceImageId = "image-source"; diff --git a/src/Components/test/E2ETest/Tests/InteropTest.cs b/src/Components/test/E2ETest/Tests/InteropTest.cs index 4f11502ec40b..bec8607db60d 100644 --- a/src/Components/test/E2ETest/Tests/InteropTest.cs +++ b/src/Components/test/E2ETest/Tests/InteropTest.cs @@ -7,6 +7,7 @@ using Microsoft.AspNetCore.Components.E2ETest.Infrastructure; using Microsoft.AspNetCore.Components.E2ETest.Infrastructure.ServerFixtures; using Microsoft.AspNetCore.E2ETesting; +using Microsoft.AspNetCore.Testing; using OpenQA.Selenium; using OpenQA.Selenium.Support.UI; using Xunit; @@ -32,6 +33,7 @@ protected override void InitializeAsyncCore() } [Fact] + [QuarantinedTest("https://github.com/dotnet/aspnetcore/issues/26288")] public void CanInvokeDotNetMethods() { // Arrange diff --git a/src/Components/test/E2ETest/Tests/KeyTest.cs b/src/Components/test/E2ETest/Tests/KeyTest.cs index 778867f6faf5..71dae5c29032 100644 --- a/src/Components/test/E2ETest/Tests/KeyTest.cs +++ b/src/Components/test/E2ETest/Tests/KeyTest.cs @@ -92,7 +92,6 @@ public void CanInsertUnkeyed() } [Fact] - [QuarantinedTest("https://github.com/dotnet/aspnetcore/issues/24190")] public void CanDeleteUnkeyed() { PerformTest( @@ -112,7 +111,6 @@ public void CanDeleteUnkeyed() } [Fact] - [QuarantinedTest("https://github.com/dotnet/aspnetcore/issues/24190")] public void CanReorder() { PerformTest( diff --git a/src/Components/test/E2ETest/Tests/VirtualizationTest.cs b/src/Components/test/E2ETest/Tests/VirtualizationTest.cs index f047bbb00288..94a92a19134a 100644 --- a/src/Components/test/E2ETest/Tests/VirtualizationTest.cs +++ b/src/Components/test/E2ETest/Tests/VirtualizationTest.cs @@ -167,6 +167,7 @@ public void RerendersWhenItemSizeShrinks_Async() } [Fact] + [QuarantinedTest("https://github.com/dotnet/aspnetcore/issues/25929")] public void CancelsOutdatedRefreshes_Async() { Browser.MountTestComponent(); diff --git a/src/Components/test/E2ETest/Tests/WebAssemblyConfigurationHostedTest.cs b/src/Components/test/E2ETest/Tests/WebAssemblyConfigurationHostedTest.cs index 245c4c3b6183..62941d7c66ed 100644 --- a/src/Components/test/E2ETest/Tests/WebAssemblyConfigurationHostedTest.cs +++ b/src/Components/test/E2ETest/Tests/WebAssemblyConfigurationHostedTest.cs @@ -6,6 +6,7 @@ using Microsoft.AspNetCore.Components.E2ETest.Infrastructure; using Microsoft.AspNetCore.Components.E2ETest.Infrastructure.ServerFixtures; using Microsoft.AspNetCore.E2ETesting; +using Microsoft.AspNetCore.Testing; using OpenQA.Selenium; using Xunit; using Xunit.Abstractions; diff --git a/src/Components/test/testassets/TestServer/AuthenticationStartup.cs b/src/Components/test/testassets/TestServer/AuthenticationStartup.cs index ca6648d13397..2ba73e146e41 100644 --- a/src/Components/test/testassets/TestServer/AuthenticationStartup.cs +++ b/src/Components/test/testassets/TestServer/AuthenticationStartup.cs @@ -1,4 +1,5 @@ using System; +using System.Globalization; using Microsoft.AspNetCore.Authentication.Cookies; using Microsoft.AspNetCore.Builder; using Microsoft.AspNetCore.Hosting; @@ -39,6 +40,10 @@ public void ConfigureServices(IServiceCollection services) // This method gets called by the runtime. Use this method to configure the HTTP request pipeline. public void Configure(IApplicationBuilder app, IWebHostEnvironment env) { + var enUs = new CultureInfo("en-US"); + CultureInfo.DefaultThreadCurrentCulture = enUs; + CultureInfo.DefaultThreadCurrentUICulture = enUs; + if (env.IsDevelopment()) { app.UseDeveloperExceptionPage(); diff --git a/src/Components/test/testassets/TestServer/Components.TestServer.csproj b/src/Components/test/testassets/TestServer/Components.TestServer.csproj index ebe6254a9054..40fb11d8c400 100644 --- a/src/Components/test/testassets/TestServer/Components.TestServer.csproj +++ b/src/Components/test/testassets/TestServer/Components.TestServer.csproj @@ -2,9 +2,12 @@ $(DefaultNetCoreTargetFramework) + + + true - + diff --git a/src/Components/test/testassets/TestServer/CorsStartup.cs b/src/Components/test/testassets/TestServer/CorsStartup.cs index 7459d9fb8698..51d7da9893ec 100644 --- a/src/Components/test/testassets/TestServer/CorsStartup.cs +++ b/src/Components/test/testassets/TestServer/CorsStartup.cs @@ -1,3 +1,4 @@ +using System.Globalization; using Microsoft.AspNetCore.Builder; using Microsoft.AspNetCore.Hosting; using Microsoft.Extensions.Configuration; @@ -38,6 +39,10 @@ public void ConfigureServices(IServiceCollection services) // This method gets called by the runtime. Use this method to configure the HTTP request pipeline. public void Configure(IApplicationBuilder app, IWebHostEnvironment env) { + var enUs = new CultureInfo("en-US"); + CultureInfo.DefaultThreadCurrentCulture = enUs; + CultureInfo.DefaultThreadCurrentUICulture = enUs; + if (env.IsDevelopment()) { app.UseDeveloperExceptionPage(); diff --git a/src/Components/test/testassets/TestServer/MultipleComponents.cs b/src/Components/test/testassets/TestServer/MultipleComponents.cs index 3a3bf468a62a..a965cbfd086b 100644 --- a/src/Components/test/testassets/TestServer/MultipleComponents.cs +++ b/src/Components/test/testassets/TestServer/MultipleComponents.cs @@ -1,3 +1,4 @@ +using System.Globalization; using Microsoft.AspNetCore.Authentication.Cookies; using Microsoft.AspNetCore.Builder; using Microsoft.AspNetCore.Hosting; @@ -27,6 +28,10 @@ public void ConfigureServices(IServiceCollection services) // This method gets called by the runtime. Use this method to configure the HTTP request pipeline. public void Configure(IApplicationBuilder app, IWebHostEnvironment env) { + var enUs = new CultureInfo("en-US"); + CultureInfo.DefaultThreadCurrentCulture = enUs; + CultureInfo.DefaultThreadCurrentUICulture = enUs; + if (env.IsDevelopment()) { app.UseDeveloperExceptionPage(); diff --git a/src/Components/test/testassets/TestServer/PrerenderedStartup.cs b/src/Components/test/testassets/TestServer/PrerenderedStartup.cs index c4d7ad3c94dd..0a3e28bf3418 100644 --- a/src/Components/test/testassets/TestServer/PrerenderedStartup.cs +++ b/src/Components/test/testassets/TestServer/PrerenderedStartup.cs @@ -5,6 +5,7 @@ using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Hosting; using Microsoft.AspNetCore.Components.WebAssembly.Services; +using System.Globalization; namespace TestServer { @@ -29,6 +30,10 @@ public void ConfigureServices(IServiceCollection services) // This method gets called by the runtime. Use this method to configure the HTTP request pipeline. public void Configure(IApplicationBuilder app, IWebHostEnvironment env) { + var enUs = new CultureInfo("en-US"); + CultureInfo.DefaultThreadCurrentCulture = enUs; + CultureInfo.DefaultThreadCurrentUICulture = enUs; + if (env.IsDevelopment()) { app.UseDeveloperExceptionPage(); diff --git a/src/Components/test/testassets/TestServer/ServerStartup.cs b/src/Components/test/testassets/TestServer/ServerStartup.cs index 6b4c5668bdb1..acc321be06a6 100644 --- a/src/Components/test/testassets/TestServer/ServerStartup.cs +++ b/src/Components/test/testassets/TestServer/ServerStartup.cs @@ -1,3 +1,4 @@ +using System.Globalization; using Microsoft.AspNetCore.Builder; using Microsoft.AspNetCore.Hosting; using Microsoft.Extensions.Configuration; @@ -25,6 +26,10 @@ public void ConfigureServices(IServiceCollection services) // This method gets called by the runtime. Use this method to configure the HTTP request pipeline. public void Configure(IApplicationBuilder app, IWebHostEnvironment env) { + var enUs = new CultureInfo("en-US"); + CultureInfo.DefaultThreadCurrentCulture = enUs; + CultureInfo.DefaultThreadCurrentUICulture = enUs; + if (env.IsDevelopment()) { app.UseDeveloperExceptionPage(); diff --git a/src/Components/test/testassets/TestServer/Startup.cs b/src/Components/test/testassets/TestServer/Startup.cs index f110edfaddac..23d927cb4a74 100644 --- a/src/Components/test/testassets/TestServer/Startup.cs +++ b/src/Components/test/testassets/TestServer/Startup.cs @@ -1,3 +1,4 @@ +using System.Globalization; using System.IO; using Microsoft.AspNetCore.Builder; using Microsoft.AspNetCore.Hosting; @@ -26,6 +27,10 @@ public void ConfigureServices(IServiceCollection services) // This method gets called by the runtime. Use this method to configure the HTTP request pipeline. public void Configure(IApplicationBuilder app, IWebHostEnvironment env) { + var enUs = new CultureInfo("en-US"); + CultureInfo.DefaultThreadCurrentCulture = enUs; + CultureInfo.DefaultThreadCurrentUICulture = enUs; + if (env.IsDevelopment()) { app.UseDeveloperExceptionPage(); diff --git a/src/Components/test/testassets/TestServer/StartupWithMapFallbackToClientSideBlazor.cs b/src/Components/test/testassets/TestServer/StartupWithMapFallbackToClientSideBlazor.cs index a65b87c23096..b11cbdfe59a4 100644 --- a/src/Components/test/testassets/TestServer/StartupWithMapFallbackToClientSideBlazor.cs +++ b/src/Components/test/testassets/TestServer/StartupWithMapFallbackToClientSideBlazor.cs @@ -1,6 +1,7 @@ // Copyright (c) .NET Foundation. All rights reserved. // Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. +using System.Globalization; using Microsoft.AspNetCore.Builder; using Microsoft.AspNetCore.Hosting; using Microsoft.Extensions.Configuration; @@ -25,6 +26,10 @@ public void ConfigureServices(IServiceCollection services) public void Configure(IApplicationBuilder app, IWebHostEnvironment env) { + var enUs = new CultureInfo("en-US"); + CultureInfo.DefaultThreadCurrentCulture = enUs; + CultureInfo.DefaultThreadCurrentUICulture = enUs; + if (env.IsDevelopment()) { app.UseDeveloperExceptionPage(); diff --git a/src/DataProtection/Extensions/test/DataProtectionProviderTests.cs b/src/DataProtection/Extensions/test/DataProtectionProviderTests.cs index 951b0030636d..3d5c59419f5e 100644 --- a/src/DataProtection/Extensions/test/DataProtectionProviderTests.cs +++ b/src/DataProtection/Extensions/test/DataProtectionProviderTests.cs @@ -115,7 +115,7 @@ public void System_UsesProvidedDirectory_WithConfigurationCallback() [ConditionalFact] [X509StoreIsAvailable(StoreName.My, StoreLocation.CurrentUser)] - [SkipOnHelix("https://github.com/dotnet/aspnetcore/issues/6720", Queues = "OSX.1014.Amd64;OSX.1014.Amd64.Open")] + [SkipOnHelix("https://github.com/dotnet/aspnetcore/issues/6720", Queues = "All.OSX")] public void System_UsesProvidedDirectoryAndCertificate() { var filePath = Path.Combine(GetTestFilesPath(), "TestCert.pfx"); diff --git a/src/Framework/App.Runtime/src/Microsoft.AspNetCore.App.Runtime.csproj b/src/Framework/App.Runtime/src/Microsoft.AspNetCore.App.Runtime.csproj index 950bf61449ea..ac95e40d8443 100644 --- a/src/Framework/App.Runtime/src/Microsoft.AspNetCore.App.Runtime.csproj +++ b/src/Framework/App.Runtime/src/Microsoft.AspNetCore.App.Runtime.csproj @@ -92,7 +92,7 @@ This package is an internal implementation of the .NET Core SDK and is not meant : %3B - x64_arm + x64_arm x64_arm64 x86_arm diff --git a/src/Framework/Directory.Build.props b/src/Framework/Directory.Build.props index 555b1633d650..13342f6cde8e 100644 --- a/src/Framework/Directory.Build.props +++ b/src/Framework/Directory.Build.props @@ -7,8 +7,8 @@ PlatformManifest.txt $(ArtifactsObjDir)$(PlatformManifestFileName) - - $(AspNetCoreMajorVersion).$(AspNetCoreMinorVersion).0 + + $(AspNetCoreMajorMinorVersion).0 $(ReferencePackSharedFxVersion)-$(VersionSuffix) diff --git a/src/Grpc/test/InteropTests/InteropTests.cs b/src/Grpc/test/InteropTests/InteropTests.cs index 040ccc939188..8e4437b66f4c 100644 --- a/src/Grpc/test/InteropTests/InteropTests.cs +++ b/src/Grpc/test/InteropTests/InteropTests.cs @@ -29,18 +29,15 @@ public InteropTests(ITestOutputHelper output) public Task EmptyUnary() => InteropTestCase("empty_unary"); [Fact] - [QuarantinedTest] public Task LargeUnary() => InteropTestCase("large_unary"); [Fact] - [QuarantinedTest] public Task ClientStreaming() => InteropTestCase("client_streaming"); [Fact] public Task ServerStreaming() => InteropTestCase("server_streaming"); [Fact] - [QuarantinedTest("https://github.com/dotnet/aspnetcore/issues/22101")] public Task PingPong() => InteropTestCase("ping_pong"); [Fact] @@ -56,7 +53,6 @@ public InteropTests(ITestOutputHelper output) public Task TimeoutOnSleepingServer() => InteropTestCase("timeout_on_sleeping_server"); [Fact] - [QuarantinedTest] public Task CustomMetadata() => InteropTestCase("custom_metadata"); [Fact] @@ -72,15 +68,12 @@ public InteropTests(ITestOutputHelper output) public Task UnimplementedMethod() => InteropTestCase("unimplemented_method"); [Fact] - [QuarantinedTest("Server is getting 'identity' encoding. Will resolve in gRPC project when updated SDK is available.")] public Task ClientCompressedUnary() => InteropTestCase("client_compressed_unary"); [Fact] - [QuarantinedTest("Server is getting 'identity' encoding. Will resolve in gRPC project when updated SDK is available.")] public Task ClientCompressedStreaming() => InteropTestCase("client_compressed_streaming"); [Fact] - [QuarantinedTest] public Task ServerCompressedUnary() => InteropTestCase("server_compressed_unary"); [Fact] diff --git a/src/Hosting/Hosting/src/Internal/HostingEventSource.cs b/src/Hosting/Hosting/src/Internal/HostingEventSource.cs index 6fcfa6726060..10420aaa75e6 100644 --- a/src/Hosting/Hosting/src/Internal/HostingEventSource.cs +++ b/src/Hosting/Hosting/src/Internal/HostingEventSource.cs @@ -87,23 +87,23 @@ protected override void OnEventCommand(EventCommandEventArgs command) // This is the convention for initializing counters in the RuntimeEventSource (lazily on the first enable command). // They aren't disabled afterwards... - _requestsPerSecondCounter ??= new IncrementingPollingCounter("requests-per-second", this, () => _totalRequests) + _requestsPerSecondCounter ??= new IncrementingPollingCounter("requests-per-second", this, () => Volatile.Read(ref _totalRequests)) { DisplayName = "Request Rate", DisplayRateTimeScale = TimeSpan.FromSeconds(1) }; - _totalRequestsCounter ??= new PollingCounter("total-requests", this, () => _totalRequests) + _totalRequestsCounter ??= new PollingCounter("total-requests", this, () => Volatile.Read(ref _totalRequests)) { DisplayName = "Total Requests", }; - _currentRequestsCounter ??= new PollingCounter("current-requests", this, () => _currentRequests) + _currentRequestsCounter ??= new PollingCounter("current-requests", this, () => Volatile.Read(ref _currentRequests)) { DisplayName = "Current Requests" }; - _failedRequestsCounter ??= new PollingCounter("failed-requests", this, () => _failedRequests) + _failedRequestsCounter ??= new PollingCounter("failed-requests", this, () => Volatile.Read(ref _failedRequests)) { DisplayName = "Failed Requests" }; diff --git a/src/Hosting/test/FunctionalTests/ShutdownTests.cs b/src/Hosting/test/FunctionalTests/ShutdownTests.cs index ca689f8092f9..37a89fe931af 100644 --- a/src/Hosting/test/FunctionalTests/ShutdownTests.cs +++ b/src/Hosting/test/FunctionalTests/ShutdownTests.cs @@ -73,14 +73,14 @@ private async Task ExecuteShutdownTest(string testName, string shutdownMechanic) { await deployer.DeployAsync(); - var started = new ManualResetEventSlim(); - var completed = new ManualResetEventSlim(); + var startedTcs = new TaskCompletionSource(TaskCreationOptions.RunContinuationsAsynchronously); + var completedTcs = new TaskCompletionSource(TaskCreationOptions.RunContinuationsAsynchronously); var output = string.Empty; deployer.HostProcess.OutputDataReceived += (sender, args) => { if (!string.IsNullOrEmpty(args.Data) && args.Data.StartsWith(StartedMessage)) { - started.Set(); + startedTcs.TrySetResult(); output += args.Data.Substring(StartedMessage.Length) + '\n'; } else @@ -90,26 +90,30 @@ private async Task ExecuteShutdownTest(string testName, string shutdownMechanic) if (output.Contains(CompletionMessage)) { - completed.Set(); + completedTcs.TrySetResult(); } }; - started.Wait(50000); - - if (!started.IsSet) + try + { + await startedTcs.Task.TimeoutAfter(TimeSpan.FromMinutes(1)); + } + catch (TimeoutException ex) { - throw new InvalidOperationException("Application did not start successfully"); + throw new InvalidOperationException("Timeout while waiting for host process to output started message.", ex); } SendSIGINT(deployer.HostProcess.Id); WaitForExitOrKill(deployer.HostProcess); - completed.Wait(50000); - - if (!started.IsSet) + try + { + await completedTcs.Task.TimeoutAfter(TimeSpan.FromMinutes(1)); + } + catch (TimeoutException ex) { - throw new InvalidOperationException($"Application did not write the expected output. The received output is: {output}"); + throw new InvalidOperationException($"Timeout while waiting for host process to output completion message. The received output is: {output}", ex); } output = output.Trim('\n'); diff --git a/src/Hosting/test/FunctionalTests/WebHostBuilderTests.cs b/src/Hosting/test/FunctionalTests/WebHostBuilderTests.cs index a6735ea9e28d..8e5ebd058ed9 100644 --- a/src/Hosting/test/FunctionalTests/WebHostBuilderTests.cs +++ b/src/Hosting/test/FunctionalTests/WebHostBuilderTests.cs @@ -1,6 +1,7 @@ // Copyright (c) .NET Foundation. All rights reserved. // Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. +using System; using System.IO; using System.Threading; using System.Threading.Tasks; @@ -28,7 +29,7 @@ public async Task InjectedStartup_DefaultApplicationNameIsEntryAssembly(TestVari { var logger = loggerFactory.CreateLogger(nameof(InjectedStartup_DefaultApplicationNameIsEntryAssembly)); -// https://github.com/dotnet/aspnetcore/issues/8247 + // https://github.com/dotnet/aspnetcore/issues/8247 #pragma warning disable 0618 var applicationPath = Path.Combine(TestPathUtilities.GetSolutionRootDirectory("Hosting"), "test", "testassets", "IStartupInjectionAssemblyName"); #pragma warning restore 0618 @@ -44,17 +45,24 @@ public async Task InjectedStartup_DefaultApplicationNameIsEntryAssembly(TestVari await deployer.DeployAsync(); string output = string.Empty; - var mre = new ManualResetEventSlim(); + var tcs = new TaskCompletionSource(TaskCreationOptions.RunContinuationsAsynchronously); deployer.HostProcess.OutputDataReceived += (sender, args) => { if (!string.IsNullOrWhiteSpace(args.Data)) { output += args.Data + '\n'; - mre.Set(); + tcs.TrySetResult(); } }; - mre.Wait(50000); + try + { + await tcs.Task.TimeoutAfter(TimeSpan.FromMinutes(1)); + } + catch (TimeoutException ex) + { + throw new InvalidOperationException("Timeout while waiting for output from host process.", ex); + } output = output.Trim('\n'); diff --git a/src/Http/Headers/src/HeaderUtilities.cs b/src/Http/Headers/src/HeaderUtilities.cs index c1e3ad90d42b..b77c610735d9 100644 --- a/src/Http/Headers/src/HeaderUtilities.cs +++ b/src/Http/Headers/src/HeaderUtilities.cs @@ -4,6 +4,7 @@ using System; using System.Collections.Generic; using System.Diagnostics; +using System.Diagnostics.CodeAnalysis; using System.Diagnostics.Contracts; using System.Globalization; using Microsoft.Extensions.Primitives; @@ -228,7 +229,7 @@ private static int AdvanceCacheDirectiveIndex(int current, string headerValue) /// . /// // e.g. { "headerValue=10, targetHeaderValue=30" } - public static bool TryParseSeconds(StringValues headerValues, string targetValue, out TimeSpan? value) + public static bool TryParseSeconds(StringValues headerValues, string targetValue, [NotNullWhen(true)] out TimeSpan? value) { if (StringValues.IsNullOrEmpty(headerValues) || string.IsNullOrEmpty(targetValue)) { diff --git a/src/Http/Headers/src/MediaTypeHeaderValue.cs b/src/Http/Headers/src/MediaTypeHeaderValue.cs index af2bba6e2207..2ba881539b6a 100644 --- a/src/Http/Headers/src/MediaTypeHeaderValue.cs +++ b/src/Http/Headers/src/MediaTypeHeaderValue.cs @@ -437,6 +437,32 @@ public MediaTypeHeaderValue CopyAsReadOnly() return other; } + /// + /// Gets a value indicating whether is a subset of + /// this in terms of type/subType. A "subset" is defined as the same or a more specific media type + /// according to the precedence described in https://www.ietf.org/rfc/rfc2068.txt section 14.1, Accept. + /// + /// The to compare. + /// + /// A value indicating whether is a subset of + /// this . + /// + /// + /// For example "multipart/mixed" is a subset of "multipart/mixed", + /// "multipart/*", and "*/*" but not "multipart/message." + /// + public bool MatchesMediaType(StringSegment otherMediaType) + { + if (StringSegment.IsNullOrEmpty(otherMediaType)) + { + return false; + } + GetMediaTypeExpressionLength(otherMediaType, 0, out var mediaType); + + return MatchesType(mediaType) && MatchesSubtype(mediaType); + } + + public override string ToString() { var builder = new StringBuilder(); @@ -645,6 +671,14 @@ private bool MatchesType(MediaTypeHeaderValue set) set.Type.Equals(Type, StringComparison.OrdinalIgnoreCase); } + private bool MatchesType(StringSegment mediaType) + { + var type = mediaType.Subsegment(0, mediaType.IndexOf(ForwardSlashCharacter)); + + return MatchesAllTypes || + Type.Equals(type, StringComparison.OrdinalIgnoreCase); + } + private bool MatchesSubtype(MediaTypeHeaderValue set) { if (set.MatchesAllSubTypes) @@ -672,18 +706,79 @@ private bool MatchesSubtype(MediaTypeHeaderValue set) } } + private bool MatchesSubtype(StringSegment mediaType) + { + if (MatchesAllSubTypes) + { + return true; + } + + var subType = mediaType.Subsegment(mediaType.IndexOf(ForwardSlashCharacter) + 1); + + StringSegment suffix; + var startOfSuffix = subType.LastIndexOf(PlusCharacter); + if (startOfSuffix == -1) + { + suffix = default(StringSegment); + } + else + { + suffix = subType.Subsegment(startOfSuffix + 1); + } + + if (Suffix.HasValue) + { + if (suffix.HasValue) + { + return MatchesSubtypeWithoutSuffix(subType, startOfSuffix) && MatchesSubtypeSuffix(suffix); + } + else + { + return false; + } + } + else + { + // If this subtype or suffix matches the subtype of the mediaType, + // it is considered a subtype. + // Ex: application/json > application/val+json + return MatchesEitherSubtypeOrSuffix(subType, suffix); + } + } + private bool MatchesSubtypeWithoutSuffix(MediaTypeHeaderValue set) { return set.MatchesAllSubTypesWithoutSuffix || set.SubTypeWithoutSuffix.Equals(SubTypeWithoutSuffix, StringComparison.OrdinalIgnoreCase); } + private bool MatchesSubtypeWithoutSuffix(StringSegment subType, int startOfSuffix) + { + StringSegment subTypeWithoutSuffix; + if (startOfSuffix == -1) + { + subTypeWithoutSuffix = subType; + } + else + { + subTypeWithoutSuffix = subType.Subsegment(0, startOfSuffix); + } + return SubTypeWithoutSuffix.Equals(WildcardString, StringComparison.OrdinalIgnoreCase) || + SubTypeWithoutSuffix.Equals(subTypeWithoutSuffix, StringComparison.OrdinalIgnoreCase); + } + private bool MatchesEitherSubtypeOrSuffix(MediaTypeHeaderValue set) { return set.SubType.Equals(SubType, StringComparison.OrdinalIgnoreCase) || set.SubType.Equals(Suffix, StringComparison.OrdinalIgnoreCase); } + private bool MatchesEitherSubtypeOrSuffix(StringSegment subType, StringSegment suffix) + { + return subType.Equals(SubType, StringComparison.OrdinalIgnoreCase) || + SubType.Equals(suffix, StringComparison.OrdinalIgnoreCase); + } + private bool MatchesParameters(MediaTypeHeaderValue set) { if (set._parameters != null && set._parameters.Count != 0) @@ -728,5 +823,12 @@ private bool MatchesSubtypeSuffix(MediaTypeHeaderValue set) // because there's no clear use case for it. return set.Suffix.Equals(Suffix, StringComparison.OrdinalIgnoreCase); } + + private bool MatchesSubtypeSuffix(StringSegment suffix) + { + // We don't have support for wildcards on suffixes alone (e.g., "application/entity+*") + // because there's no clear use case for it. + return Suffix.Equals(suffix, StringComparison.OrdinalIgnoreCase); + } } } diff --git a/src/Http/Headers/test/MediaTypeHeaderValueTest.cs b/src/Http/Headers/test/MediaTypeHeaderValueTest.cs index 025dcab4b1a7..8a67a2dec90d 100644 --- a/src/Http/Headers/test/MediaTypeHeaderValueTest.cs +++ b/src/Http/Headers/test/MediaTypeHeaderValueTest.cs @@ -5,6 +5,7 @@ using System.Collections.Generic; using System.Linq; using Microsoft.Extensions.Primitives; +using NuGet.Frameworks; using Xunit; namespace Microsoft.Net.Http.Headers @@ -683,6 +684,115 @@ public void TryParseStrictList_WithSomeInvalidValues_ReturnsFalse() Assert.False(MediaTypeHeaderValue.TryParseStrictList(inputs, out var results)); } + [Theory] + [InlineData("*/*;", "*/*")] + [InlineData("text/*", "text/*")] + [InlineData("text/*", "text/plain")] + [InlineData("*/*;", "text/plain")] + [InlineData("text/plain", "text/plain")] + [InlineData("text/plain;", "text/plain")] + [InlineData("text/plain;", "TEXT/PLAIN")] + public void MatchesMediaType_PositiveCases(string mediaType1, string mediaType2) + { + // Arrange + var parsedMediaType1 = MediaTypeHeaderValue.Parse(mediaType1); + var parsedMediaType2 = MediaTypeHeaderValue.Parse(mediaType2); + + // Act + var matches = parsedMediaType1.MatchesMediaType(mediaType2); + var isSubsetOf = parsedMediaType2.IsSubsetOf(parsedMediaType1); + + // Assert + Assert.True(matches); + //Make sure that MatchesMediaType produces consistent result with IsSubsetOf + Assert.Equal(matches, isSubsetOf); + } + + [Theory] + [InlineData("application/html", "text/*")] + [InlineData("application/json", "application/html")] + [InlineData("text/plain;", "*/*")] + public void MatchesMediaType_NegativeCases(string mediaType1, string mediaType2) + { + // Arrange + var parsedMediaType1 = MediaTypeHeaderValue.Parse(mediaType1); + var parsedMediaType2 = MediaTypeHeaderValue.Parse(mediaType2); + + // Act + var matches = parsedMediaType1.MatchesMediaType(mediaType2); + var isSubsetOf = parsedMediaType2.IsSubsetOf(parsedMediaType1); + + // Assert + Assert.False(matches); + //Make sure that MatchesMediaType produces consistent result with IsSubsetOf + Assert.Equal(matches, isSubsetOf); + } + + [Theory] + [InlineData("application/entity+json", "application/entity+json")] + [InlineData("application/json", "application/entity+json")] + [InlineData("application/*+json", "application/entity+json")] + [InlineData("application/*+json", "application/*+json")] + [InlineData("application/json", "application/problem+json")] + [InlineData("application/json", "application/vnd.restful+json")] + [InlineData("application/*", "application/*+JSON")] + [InlineData("application/*", "application/entity+JSON")] + [InlineData("*/*", "application/entity+json")] + public void MatchesMediaTypeWithSuffixes_PositiveCases(string mediaType1, string mediaType2) + { + // Arrange + var parsedMediaType1 = MediaTypeHeaderValue.Parse(mediaType1); + var parsedMediaType2 = MediaTypeHeaderValue.Parse(mediaType2); + + // Act + var result = parsedMediaType1.MatchesMediaType(mediaType2); + var isSubsetOf = parsedMediaType2.IsSubsetOf(parsedMediaType1); + + // Assert + Assert.True(result); + //Make sure that MatchesMediaType produces consistent result with IsSubsetOf + Assert.Equal(result, isSubsetOf); + } + + [Theory] + [InlineData("application/entity+json", "application/entity+txt")] + [InlineData("application/entity+json", "application/json")] + [InlineData("application/entity+json", "application/entity.v2+json")] + [InlineData("application/*+json", "application/entity+txt")] + [InlineData("application/*+*", "application/json")] + [InlineData("application/entity", "application/entity+")] + [InlineData("application/entity+*", "application/entity+json")] // We don't allow suffixes to be wildcards + [InlineData("application/*+*", "application/entity+json")] // We don't allow suffixes to be wildcards + [InlineData("application/entity+json", "application/entity")] + public void MatchesMediaTypeWithSuffixes_NegativeCases(string mediaType1, string mediaType2) + { + // Arrange + var parsedMediaType1 = MediaTypeHeaderValue.Parse(mediaType1); + var parsedMediaType2 = MediaTypeHeaderValue.Parse(mediaType2); + + // Arrange + var result = parsedMediaType1.MatchesMediaType(mediaType2); + var isSubsetOf = parsedMediaType2.IsSubsetOf(parsedMediaType1); + + // Assert + Assert.False(result); + //Make sure that MatchesMediaType produces consistent result with IsSubsetOf + Assert.Equal(result, isSubsetOf); + } + + [Fact] + public void MatchesMediaType_IgnoresParameters() + { + // Arrange + var parsedMediaType1 = MediaTypeHeaderValue.Parse("application/json;param=1"); + + // Arrange + var result = parsedMediaType1.MatchesMediaType("application/json;param2=1"); + + // Assert + Assert.True(result); + } + [Theory] [InlineData("*/*;", "*/*")] [InlineData("text/*", "text/*")] diff --git a/src/Http/Http.Abstractions/src/Extensions/UseMiddlewareExtensions.cs b/src/Http/Http.Abstractions/src/Extensions/UseMiddlewareExtensions.cs index 164b601d57f8..a4afef8b157a 100644 --- a/src/Http/Http.Abstractions/src/Extensions/UseMiddlewareExtensions.cs +++ b/src/Http/Http.Abstractions/src/Extensions/UseMiddlewareExtensions.cs @@ -33,7 +33,7 @@ public static class UseMiddlewareExtensions /// The instance. /// The arguments to pass to the middleware type instance's constructor. /// The instance. - public static IApplicationBuilder UseMiddleware<[DynamicallyAccessedMembers(MiddlewareAccessibility)]TMiddleware>(this IApplicationBuilder app, params object[] args) + public static IApplicationBuilder UseMiddleware<[DynamicallyAccessedMembers(MiddlewareAccessibility)]TMiddleware>(this IApplicationBuilder app, params object?[] args) { return app.UseMiddleware(typeof(TMiddleware), args); } @@ -45,7 +45,7 @@ public static class UseMiddlewareExtensions /// The middleware type. /// The arguments to pass to the middleware type instance's constructor. /// The instance. - public static IApplicationBuilder UseMiddleware(this IApplicationBuilder app, [DynamicallyAccessedMembers(MiddlewareAccessibility)] Type middleware, params object[] args) + public static IApplicationBuilder UseMiddleware(this IApplicationBuilder app, [DynamicallyAccessedMembers(MiddlewareAccessibility)] Type middleware, params object?[] args) { if (typeof(IMiddleware).GetTypeInfo().IsAssignableFrom(middleware.GetTypeInfo())) { diff --git a/src/Identity/ApiAuthorization.IdentityServer/test/Configuration/ConfigureSigningCredentialsTests.cs b/src/Identity/ApiAuthorization.IdentityServer/test/Configuration/ConfigureSigningCredentialsTests.cs index 2ec53f7a53f5..b14fb61d15c2 100644 --- a/src/Identity/ApiAuthorization.IdentityServer/test/Configuration/ConfigureSigningCredentialsTests.cs +++ b/src/Identity/ApiAuthorization.IdentityServer/test/Configuration/ConfigureSigningCredentialsTests.cs @@ -99,7 +99,7 @@ public void Configure_AddsDevelopmentKeyFromConfiguration() } [ConditionalFact] - [SkipOnHelix("https://github.com/dotnet/aspnetcore/issues/6720", Queues = "OSX.1014.Amd64;OSX.1014.Amd64.Open")] + [SkipOnHelix("https://github.com/dotnet/aspnetcore/issues/6720", Queues = "All.OSX")] public void Configure_LoadsPfxCertificateCredentialFromConfiguration() { // Arrange @@ -129,7 +129,7 @@ public void Configure_LoadsPfxCertificateCredentialFromConfiguration() } [ConditionalFact] - [SkipOnHelix("https://github.com/dotnet/aspnetcore/issues/6720", Queues = "OSX.1014.Amd64;OSX.1014.Amd64.Open")] + [SkipOnHelix("https://github.com/dotnet/aspnetcore/issues/6720", Queues = "All.OSX")] public void Configure_LoadsCertificateStoreCertificateCredentialFromConfiguration() { try diff --git a/src/Identity/ApiAuthorization.IdentityServer/test/Configuration/SigningKeysLoaderTests.cs b/src/Identity/ApiAuthorization.IdentityServer/test/Configuration/SigningKeysLoaderTests.cs index 893be873abe1..96a3bf74b764 100644 --- a/src/Identity/ApiAuthorization.IdentityServer/test/Configuration/SigningKeysLoaderTests.cs +++ b/src/Identity/ApiAuthorization.IdentityServer/test/Configuration/SigningKeysLoaderTests.cs @@ -59,7 +59,7 @@ public static void LoadFromStoreCert_ThrowsIfThereIsNoCertificateAvailable() } [ConditionalFact] - [SkipOnHelix("https://github.com/dotnet/aspnetcore/issues/6720", Queues = "OSX.1014.Amd64;OSX.1014.Amd64.Open")] + [SkipOnHelix("https://github.com/dotnet/aspnetcore/issues/6720", Queues = "All.OSX")] public static void LoadFromStoreCert_SkipsCertificatesNotYetValid() { try @@ -82,7 +82,7 @@ public static void LoadFromStoreCert_SkipsCertificatesNotYetValid() } [ConditionalFact] - [SkipOnHelix("https://github.com/dotnet/aspnetcore/issues/6720", Queues = "OSX.1014.Amd64;OSX.1014.Amd64.Open")] + [SkipOnHelix("https://github.com/dotnet/aspnetcore/issues/6720", Queues = "All.OSX")] public static void LoadFromStoreCert_PrefersCertificatesCloserToExpirationDate() { try @@ -105,7 +105,7 @@ public static void LoadFromStoreCert_PrefersCertificatesCloserToExpirationDate() } [ConditionalFact] - [SkipOnHelix("https://github.com/dotnet/aspnetcore/issues/6720", Queues = "OSX.1014.Amd64;OSX.1014.Amd64.Open")] + [SkipOnHelix("https://github.com/dotnet/aspnetcore/issues/6720", Queues = "All.OSX")] public static void LoadFromStoreCert_SkipsExpiredCertificates() { try diff --git a/src/Installers/Debian/Runtime/Debian.Runtime.debproj b/src/Installers/Debian/Runtime/Debian.Runtime.debproj index 70931ff3a4ed..20cdfd1699fe 100644 --- a/src/Installers/Debian/Runtime/Debian.Runtime.debproj +++ b/src/Installers/Debian/Runtime/Debian.Runtime.debproj @@ -8,15 +8,17 @@ $(SharedFrameworkLayoutRoot) - $(RuntimeInstallerBaseName)-$(AspNetCoreMajorVersion).$(AspNetCoreMinorVersion) + $(RuntimeInstallerBaseName)-$(AspNetCoreMajorMinorVersion) $(MicrosoftNETCoreAppRuntimeVersion) $(DotnetRuntimeDependencyVersion.Substring(0, $(DotnetRuntimeDependencyVersion.IndexOf('-'))))~$(DotnetRuntimeDependencyVersion.Substring($([MSBuild]::Add($(DotnetRuntimeDependencyVersion.IndexOf('-')), 1)))) + $(MicrosoftNETCoreAppRuntimeVersion.Split('.')[0]).$(MicrosoftNETCoreAppRuntimeVersion.Split('.')[1]) $(SharedFxProductName) $(SharedFxDescription) + DotnetRuntimeDependencyMajorMinorVersion=$(DotnetRuntimeDependencyMajorMinorVersion); DotnetRuntimeDependencyVersion=$(DotnetRuntimeDependencyVersion); diff --git a/src/Installers/Debian/Runtime/debian_config.json.in b/src/Installers/Debian/Runtime/debian_config.json.in index d9c36fb33d1d..3efa7f5381d3 100644 --- a/src/Installers/Debian/Runtime/debian_config.json.in +++ b/src/Installers/Debian/Runtime/debian_config.json.in @@ -29,7 +29,7 @@ }, "debian_dependencies": { - "dotnet-runtime-${AspNetCoreMajorVersion}.${AspNetCoreMinorVersion}": { + "dotnet-runtime-${DotnetRuntimeDependencyMajorMinorVersion}": { "package_version": "${DotnetRuntimeDependencyVersion}" } } diff --git a/src/Installers/Debian/TargetingPack/Debian.TargetingPack.debproj b/src/Installers/Debian/TargetingPack/Debian.TargetingPack.debproj index 43eba9135887..373149c92fc6 100644 --- a/src/Installers/Debian/TargetingPack/Debian.TargetingPack.debproj +++ b/src/Installers/Debian/TargetingPack/Debian.TargetingPack.debproj @@ -8,18 +8,20 @@ $(TargetingPackLayoutRoot) - $(TargetingPackInstallerBaseName)-$(AspNetCoreMajorVersion).$(AspNetCoreMinorVersion) + $(TargetingPackInstallerBaseName)-$(AspNetCoreMajorMinorVersion) ASP.NET Core Targeting Pack - Provides a default set of APIs for building an ASP.NET Core $(AspNetCoreMajorVersion).$(AspNetCoreMinorVersion) application. Contains reference assemblies, documentation, and other design-time assets. + Provides a default set of APIs for building an ASP.NET Core $(AspNetCoreMajorMinorVersion) application. Contains reference assemblies, documentation, and other design-time assets. $(MicrosoftNETCoreAppRefPackageVersion) $(DotnetTargetingPackDependencyVersion.Substring(0, $(DotnetTargetingPackDependencyVersion.IndexOf('-'))))~$(DotnetTargetingPackDependencyVersion.Substring($([MSBuild]::Add($(DotnetTargetingPackDependencyVersion.IndexOf('-')), 1)))) + $(MicrosoftNETCoreAppRefPackageVersion.Split('.')[0]).$(MicrosoftNETCoreAppRefPackageVersion.Split('.')[1]) $(SharedFxProductName) $(SharedFxDescription) + DotnetTargetingPackDependencyMajorMinorVersion=$(DotnetTargetingPackDependencyMajorMinorVersion); DotnetTargetingPackDependencyVersion=$(DotnetTargetingPackDependencyVersion); diff --git a/src/Installers/Debian/TargetingPack/debian_config.json.in b/src/Installers/Debian/TargetingPack/debian_config.json.in index 74b38efff5a4..4df3587a0951 100644 --- a/src/Installers/Debian/TargetingPack/debian_config.json.in +++ b/src/Installers/Debian/TargetingPack/debian_config.json.in @@ -29,7 +29,7 @@ }, "debian_dependencies": { - "dotnet-targeting-pack-${AspNetCoreMajorVersion}.${AspNetCoreMinorVersion}": { + "dotnet-targeting-pack-${DotnetTargetingPackDependencyMajorMinorVersion}": { "package_version": "${DotnetTargetingPackDependencyVersion}" } } diff --git a/src/Installers/Rpm/Rpm.Runtime.Common.targets b/src/Installers/Rpm/Rpm.Runtime.Common.targets index dea8c0148d67..c2013eca0f7a 100644 --- a/src/Installers/Rpm/Rpm.Runtime.Common.targets +++ b/src/Installers/Rpm/Rpm.Runtime.Common.targets @@ -4,8 +4,8 @@ - $(RuntimeInstallerBaseName)-$(AspNetCoreMajorVersion).$(AspNetCoreMinorVersion) - $(AspNetCoreMajorVersion).$(AspNetCoreMinorVersion).$(AspNetCorePatchVersion) + $(RuntimeInstallerBaseName)-$(AspNetCoreMajorMinorVersion) + $(AspNetCoreMajorMinorVersion).$(AspNetCorePatchVersion) 1 @@ -15,6 +15,8 @@ $(SharedFxDescription) $(SharedFrameworkLayoutRoot) + + $(MicrosoftNETCoreAppRuntimeVersion.Split('.')[0]).$(MicrosoftNETCoreAppRuntimeVersion.Split('.')[1]) @@ -24,6 +26,6 @@ - + diff --git a/src/Installers/Rpm/TargetingPack/Rpm.TargetingPack.rpmproj b/src/Installers/Rpm/TargetingPack/Rpm.TargetingPack.rpmproj index 38f5fbf78bb6..aa0af5374884 100644 --- a/src/Installers/Rpm/TargetingPack/Rpm.TargetingPack.rpmproj +++ b/src/Installers/Rpm/TargetingPack/Rpm.TargetingPack.rpmproj @@ -8,10 +8,12 @@ - $(TargetingPackInstallerBaseName)-$(AspNetCoreMajorVersion).$(AspNetCoreMinorVersion) + $(TargetingPackInstallerBaseName)-$(AspNetCoreMajorMinorVersion) ASP.NET Core Targeting Pack - Provides a default set of APIs for building an ASP.NET Core $(AspNetCoreMajorVersion).$(AspNetCoreMinorVersion) application. Contains reference assemblies, documentation, and other design-time assets. + Provides a default set of APIs for building an ASP.NET Core $(AspNetCoreMajorMinorVersion) application. Contains reference assemblies, documentation, and other design-time assets. + + $(MicrosoftNETCoreAppRefPackageVersion.Split('.')[0]).$(MicrosoftNETCoreAppRefPackageVersion.Split('.')[1]) @@ -21,7 +23,7 @@ - + diff --git a/src/Installers/Windows/AspNetCoreModule-Setup/Directory.Build.props b/src/Installers/Windows/AspNetCoreModule-Setup/Directory.Build.props index d08b147e4ae5..cf5ef5f48827 100644 --- a/src/Installers/Windows/AspNetCoreModule-Setup/Directory.Build.props +++ b/src/Installers/Windows/AspNetCoreModule-Setup/Directory.Build.props @@ -15,7 +15,7 @@ $(BUILD_MINOR) - 1$(AspNetCoreMajorVersion).$(AspNetCoreMinorVersion).$(BUILD_MAJOR) + 1$(AspNetCoreMajorMinorVersion).$(BUILD_MAJOR) $(ANCMFolderVersion).0 diff --git a/src/ProjectTemplates/Web.Spa.ProjectTemplates/content/Angular-CSharp/ClientApp/src/api-authorization/login-menu/login-menu.component.ts b/src/ProjectTemplates/Web.Spa.ProjectTemplates/content/Angular-CSharp/ClientApp/src/api-authorization/login-menu/login-menu.component.ts index d1fa469908f5..5853edff2442 100644 --- a/src/ProjectTemplates/Web.Spa.ProjectTemplates/content/Angular-CSharp/ClientApp/src/api-authorization/login-menu/login-menu.component.ts +++ b/src/ProjectTemplates/Web.Spa.ProjectTemplates/content/Angular-CSharp/ClientApp/src/api-authorization/login-menu/login-menu.component.ts @@ -1,7 +1,7 @@ import { Component, OnInit } from '@angular/core'; import { AuthorizeService } from '../authorize.service'; import { Observable } from 'rxjs'; -import { map, tap } from 'rxjs/operators'; +import { map } from 'rxjs/operators'; @Component({ selector: 'app-login-menu', diff --git a/src/ProjectTemplates/test/EmptyWebTemplateTest.cs b/src/ProjectTemplates/test/EmptyWebTemplateTest.cs index ada7b31fac44..e96a713c28f1 100644 --- a/src/ProjectTemplates/test/EmptyWebTemplateTest.cs +++ b/src/ProjectTemplates/test/EmptyWebTemplateTest.cs @@ -32,7 +32,7 @@ public ITestOutputHelper Output } [ConditionalFact] - [SkipOnHelix("Cert failures", Queues = "OSX.1014.Amd64;OSX.1014.Amd64.Open")] + [SkipOnHelix("Cert failures", Queues = "All.OSX")] public async Task EmptyWebTemplateCSharp() { await EmtpyTemplateCore(languageOverride: null); diff --git a/src/ProjectTemplates/test/GrpcTemplateTest.cs b/src/ProjectTemplates/test/GrpcTemplateTest.cs index f5a9b73064f1..d05f3aacebce 100644 --- a/src/ProjectTemplates/test/GrpcTemplateTest.cs +++ b/src/ProjectTemplates/test/GrpcTemplateTest.cs @@ -33,7 +33,7 @@ public ITestOutputHelper Output } [ConditionalFact] - [SkipOnHelix("Not supported queues", Queues = "Windows.7.Amd64;Windows.7.Amd64.Open;Windows.81.Amd64.Open;OSX.1014.Amd64;OSX.1014.Amd64.Open")] + [SkipOnHelix("Not supported queues", Queues = "Windows.7.Amd64;Windows.7.Amd64.Open;Windows.81.Amd64.Open;All.OSX")] public async Task GrpcTemplate() { var project = await ProjectFactory.GetOrCreateProject("grpc", Output); diff --git a/src/ProjectTemplates/test/IdentityUIPackageTest.cs b/src/ProjectTemplates/test/IdentityUIPackageTest.cs index 94c569496efa..6d749ea85b21 100644 --- a/src/ProjectTemplates/test/IdentityUIPackageTest.cs +++ b/src/ProjectTemplates/test/IdentityUIPackageTest.cs @@ -74,8 +74,7 @@ public ITestOutputHelper Output }; [ConditionalFact] - [SkipOnHelix("cert failure", Queues = "OSX.1014.Amd64;OSX.1014.Amd64.Open")] - [QuarantinedTest("https://github.com/dotnet/aspnetcore/issues/19716")] + [SkipOnHelix("cert failure", Queues = "All.OSX")] public async Task IdentityUIPackage_WorksWithDifferentOptions() { var packageOptions = new Dictionary(); diff --git a/src/ProjectTemplates/test/MvcTemplateTest.cs b/src/ProjectTemplates/test/MvcTemplateTest.cs index 649286396976..ec3acab033b9 100644 --- a/src/ProjectTemplates/test/MvcTemplateTest.cs +++ b/src/ProjectTemplates/test/MvcTemplateTest.cs @@ -40,7 +40,7 @@ public ITestOutputHelper Output public async Task MvcTemplate_NoAuthFSharp() => await MvcTemplateCore(languageOverride: "F#"); [ConditionalFact] - [SkipOnHelix("cert failure", Queues = "OSX.1014.Amd64;OSX.1014.Amd64.Open")] + [SkipOnHelix("cert failure", Queues = "All.OSX")] public async Task MvcTemplate_NoAuthCSharp() => await MvcTemplateCore(languageOverride: null); private async Task MvcTemplateCore(string languageOverride) @@ -118,7 +118,7 @@ private async Task MvcTemplateCore(string languageOverride) [ConditionalTheory] [InlineData(true)] [InlineData(false)] - [SkipOnHelix("cert failure", Queues = "OSX.1014.Amd64;OSX.1014.Amd64.Open")] + [SkipOnHelix("cert failure", Queues = "All.OSX")] public async Task MvcTemplate_IndividualAuth(bool useLocalDB) { var project = await ProjectFactory.GetOrCreateProject("mvcindividual" + (useLocalDB ? "uld" : ""), Output); @@ -146,6 +146,7 @@ public async Task MvcTemplate_IndividualAuth(bool useLocalDB) Assert.True(0 == migrationsResult.ExitCode, ErrorMessages.GetFailedProcessMessage("run EF migrations", project, migrationsResult)); project.AssertEmptyMigration("mvc"); + // Note: if any links are updated here, RazorPagesTemplateTest.cs should be updated as well var pages = new List { new Page { @@ -234,7 +235,7 @@ public async Task MvcTemplate_IndividualAuth(bool useLocalDB) } [ConditionalFact(Skip = "https://github.com/dotnet/aspnetcore/issues/25103")] - [SkipOnHelix("cert failure", Queues = "OSX.1014.Amd64;OSX.1014.Amd64.Open")] + [SkipOnHelix("cert failure", Queues = "All.OSX")] public async Task MvcTemplate_SingleFileExe() { // This test verifies publishing an MVC app as a single file exe works. We'll limit testing diff --git a/src/ProjectTemplates/test/RazorPagesTemplateTest.cs b/src/ProjectTemplates/test/RazorPagesTemplateTest.cs index 919f410f0f61..61a0d47fb75d 100644 --- a/src/ProjectTemplates/test/RazorPagesTemplateTest.cs +++ b/src/ProjectTemplates/test/RazorPagesTemplateTest.cs @@ -35,7 +35,7 @@ public ITestOutputHelper Output } [ConditionalFact] - [SkipOnHelix("Cert failures", Queues = "OSX.1014.Amd64;OSX.1014.Amd64.Open")] + [SkipOnHelix("Cert failures", Queues = "All.OSX")] public async Task RazorPagesTemplate_NoAuth() { var project = await ProjectFactory.GetOrCreateProject("razorpagesnoauth", Output); @@ -106,8 +106,7 @@ public async Task RazorPagesTemplate_NoAuth() [ConditionalTheory] [InlineData(false)] [InlineData(true)] - [SkipOnHelix("cert failure", Queues = "OSX.1014.Amd64;OSX.1014.Amd64.Open")] - [QuarantinedTest("https://github.com/dotnet/aspnetcore/issues/19716")] + [SkipOnHelix("cert failure", Queues = "All.OSX")] public async Task RazorPagesTemplate_IndividualAuth(bool useLocalDB) { var project = await ProjectFactory.GetOrCreateProject("razorpagesindividual" + (useLocalDB ? "uld" : ""), Output); @@ -135,16 +134,17 @@ public async Task RazorPagesTemplate_IndividualAuth(bool useLocalDB) Assert.True(0 == migrationsResult.ExitCode, ErrorMessages.GetFailedProcessMessage("run EF migrations", project, migrationsResult)); project.AssertEmptyMigration("razorpages"); + // Note: if any links are updated here, MvcTemplateTest.cs should be updated as well var pages = new List { new Page { Url = PageUrls.ForgotPassword, Links = new string [] { PageUrls.HomeUrl, - PageUrls.RegisterUrl, - PageUrls.LoginUrl, PageUrls.HomeUrl, PageUrls.PrivacyUrl, + PageUrls.RegisterUrl, + PageUrls.LoginUrl, PageUrls.PrivacyUrl } }, @@ -153,10 +153,10 @@ public async Task RazorPagesTemplate_IndividualAuth(bool useLocalDB) Url = PageUrls.HomeUrl, Links = new string[] { PageUrls.HomeUrl, - PageUrls.RegisterUrl, - PageUrls.LoginUrl, PageUrls.HomeUrl, PageUrls.PrivacyUrl, + PageUrls.RegisterUrl, + PageUrls.LoginUrl, PageUrls.DocsUrl, PageUrls.PrivacyUrl } @@ -166,10 +166,10 @@ public async Task RazorPagesTemplate_IndividualAuth(bool useLocalDB) Url = PageUrls.PrivacyUrl, Links = new string[] { PageUrls.HomeUrl, - PageUrls.RegisterUrl, - PageUrls.LoginUrl, PageUrls.HomeUrl, PageUrls.PrivacyUrl, + PageUrls.RegisterUrl, + PageUrls.LoginUrl, PageUrls.PrivacyUrl } }, @@ -178,10 +178,10 @@ public async Task RazorPagesTemplate_IndividualAuth(bool useLocalDB) Url = PageUrls.LoginUrl, Links = new string[] { PageUrls.HomeUrl, - PageUrls.RegisterUrl, - PageUrls.LoginUrl, PageUrls.HomeUrl, PageUrls.PrivacyUrl, + PageUrls.RegisterUrl, + PageUrls.LoginUrl, PageUrls.ForgotPassword, PageUrls.RegisterUrl, PageUrls.ResendEmailConfirmation, @@ -193,10 +193,10 @@ public async Task RazorPagesTemplate_IndividualAuth(bool useLocalDB) Url = PageUrls.RegisterUrl, Links = new string [] { PageUrls.HomeUrl, - PageUrls.RegisterUrl, - PageUrls.LoginUrl, PageUrls.HomeUrl, PageUrls.PrivacyUrl, + PageUrls.RegisterUrl, + PageUrls.LoginUrl, PageUrls.ExternalArticle, PageUrls.PrivacyUrl } diff --git a/src/ProjectTemplates/test/WebApiTemplateTest.cs b/src/ProjectTemplates/test/WebApiTemplateTest.cs index 5e18beaf0381..66432b54cdf7 100644 --- a/src/ProjectTemplates/test/WebApiTemplateTest.cs +++ b/src/ProjectTemplates/test/WebApiTemplateTest.cs @@ -44,11 +44,11 @@ public ITestOutputHelper Output public Task WebApiTemplateFSharp() => WebApiTemplateCore(languageOverride: "F#"); [ConditionalFact] - [SkipOnHelix("Cert failures", Queues = "OSX.1014.Amd64;OSX.1014.Amd64.Open")] + [SkipOnHelix("Cert failures", Queues = "All.OSX")] public Task WebApiTemplateCSharp() => WebApiTemplateCore(languageOverride: null); [ConditionalFact] - [SkipOnHelix("Cert failures", Queues = "OSX.1014.Amd64;OSX.1014.Amd64.Open")] + [SkipOnHelix("Cert failures", Queues = "All.OSX")] public async Task WebApiTemplateCSharp_WithoutOpenAPI() { var project = await FactoryFixture.GetOrCreateProject("webapinoopenapi", Output); diff --git a/src/ProjectTemplates/test/WorkerTemplateTest.cs b/src/ProjectTemplates/test/WorkerTemplateTest.cs index 0b04d17c6d79..fca3e8c10879 100644 --- a/src/ProjectTemplates/test/WorkerTemplateTest.cs +++ b/src/ProjectTemplates/test/WorkerTemplateTest.cs @@ -34,6 +34,7 @@ public ITestOutputHelper Output [OSSkipCondition(OperatingSystems.Linux, SkipReason = "https://github.com/dotnet/sdk/issues/12831")] [InlineData("C#")] [InlineData("F#")] + [QuarantinedTest("https://github.com/dotnet/aspnetcore/issues/25404")] public async Task WorkerTemplateAsync(string language) { var project = await ProjectFactory.GetOrCreateProject( diff --git a/src/Razor/Microsoft.AspNetCore.Mvc.Razor.Extensions/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/AttributeDirectiveWithViewImports_DesignTime.codegen.html b/src/Razor/Microsoft.AspNetCore.Mvc.Razor.Extensions/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/AttributeDirectiveWithViewImports_DesignTime.codegen.html index e2017f6ce6f8..672af16a9f7d 100644 --- a/src/Razor/Microsoft.AspNetCore.Mvc.Razor.Extensions/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/AttributeDirectiveWithViewImports_DesignTime.codegen.html +++ b/src/Razor/Microsoft.AspNetCore.Mvc.Razor.Extensions/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/AttributeDirectiveWithViewImports_DesignTime.codegen.html @@ -1 +1 @@ - \ No newline at end of file +~~~~~~~~~~ ~~~~~~~~~~~~~~ \ No newline at end of file diff --git a/src/Razor/Microsoft.AspNetCore.Mvc.Razor.Extensions/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/BasicComponent_DesignTime.codegen.html b/src/Razor/Microsoft.AspNetCore.Mvc.Razor.Extensions/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/BasicComponent_DesignTime.codegen.html index e7b0219a389d..212a52af7b23 100644 --- a/src/Razor/Microsoft.AspNetCore.Mvc.Razor.Extensions/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/BasicComponent_DesignTime.codegen.html +++ b/src/Razor/Microsoft.AspNetCore.Mvc.Razor.Extensions/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/BasicComponent_DesignTime.codegen.html @@ -1,9 +1,9 @@ - -
+~~~~~~~~~~~ ~~~~~~~~~~~ +
Hello world - + ~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~
- - - +~~~~~~~~~~ ~ + ~~~~ ~~~~~~~~~~~~~~~~~~~~~~ ~ +~ diff --git a/src/Razor/Microsoft.AspNetCore.Mvc.Razor.Extensions/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/Basic_DesignTime.codegen.html b/src/Razor/Microsoft.AspNetCore.Mvc.Razor.Extensions/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/Basic_DesignTime.codegen.html index 08d042e89793..1d05c8edd11c 100644 --- a/src/Razor/Microsoft.AspNetCore.Mvc.Razor.Extensions/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/Basic_DesignTime.codegen.html +++ b/src/Razor/Microsoft.AspNetCore.Mvc.Razor.Extensions/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/Basic_DesignTime.codegen.html @@ -1,8 +1,8 @@ -
+
Hello world - + ~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~
- - - -

+~~ + ~~~ ~~~ ~ ~~~~~~ +~ +

diff --git a/src/Razor/Microsoft.AspNetCore.Mvc.Razor.Extensions/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/IncompleteDirectives_DesignTime.codegen.html b/src/Razor/Microsoft.AspNetCore.Mvc.Razor.Extensions/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/IncompleteDirectives_DesignTime.codegen.html index 85fabc0abd8a..41bd21fb73e0 100644 --- a/src/Razor/Microsoft.AspNetCore.Mvc.Razor.Extensions/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/IncompleteDirectives_DesignTime.codegen.html +++ b/src/Razor/Microsoft.AspNetCore.Mvc.Razor.Extensions/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/IncompleteDirectives_DesignTime.codegen.html @@ -1,15 +1,15 @@ - +~~ ~~~~~ ~~~~ ~~~~~ ~~~~~~~~ ~~~~ ~~~~~~~~~~~ ~~~~~~~~~~ ~~~~~~~~~~ ~~~~~ ~~~~~~ ~~ - - - " +~~~~~ +~~~~~ +~~~~~ " - - +~~~~~~ +~~~~~~ - - - +~~~~~~~ +~~~~~~~ +~~~~~~~ ~~~~~~~~~~~~~~~~~ - - +~~~~~~~~~~ +~~~~~~~~~~ diff --git a/src/Razor/Microsoft.AspNetCore.Mvc.Razor.Extensions/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/InheritsViewModel_DesignTime.codegen.html b/src/Razor/Microsoft.AspNetCore.Mvc.Razor.Extensions/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/InheritsViewModel_DesignTime.codegen.html index 6adf1586e10f..7c8f96178083 100644 --- a/src/Razor/Microsoft.AspNetCore.Mvc.Razor.Extensions/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/InheritsViewModel_DesignTime.codegen.html +++ b/src/Razor/Microsoft.AspNetCore.Mvc.Razor.Extensions/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/InheritsViewModel_DesignTime.codegen.html @@ -1,2 +1,2 @@ - - +~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~ +~~~~~~ ~~~~~~~ diff --git a/src/Razor/Microsoft.AspNetCore.Mvc.Razor.Extensions/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/InheritsWithViewImports_DesignTime.codegen.html b/src/Razor/Microsoft.AspNetCore.Mvc.Razor.Extensions/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/InheritsWithViewImports_DesignTime.codegen.html index b1214751a93b..cc39225641f6 100644 --- a/src/Razor/Microsoft.AspNetCore.Mvc.Razor.Extensions/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/InheritsWithViewImports_DesignTime.codegen.html +++ b/src/Razor/Microsoft.AspNetCore.Mvc.Razor.Extensions/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/InheritsWithViewImports_DesignTime.codegen.html @@ -1,2 +1,2 @@ - - +~~~~~ +~~~~~~ ~~~~~~~ diff --git a/src/Razor/Microsoft.AspNetCore.Mvc.Razor.Extensions/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/InjectWithModel_DesignTime.codegen.html b/src/Razor/Microsoft.AspNetCore.Mvc.Razor.Extensions/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/InjectWithModel_DesignTime.codegen.html index b05e435fdae9..b9ccc4dd9435 100644 --- a/src/Razor/Microsoft.AspNetCore.Mvc.Razor.Extensions/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/InjectWithModel_DesignTime.codegen.html +++ b/src/Razor/Microsoft.AspNetCore.Mvc.Razor.Extensions/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/InjectWithModel_DesignTime.codegen.html @@ -1,3 +1,3 @@ - - - +~~~~~~ ~~~~~~~ +~~~~~~~ ~~~~~ ~~~~~~~~~~~~~~ +~~~~~~~ ~~~~~~~~~~~~~~~~~ ~~~~ diff --git a/src/Razor/Microsoft.AspNetCore.Mvc.Razor.Extensions/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/InjectWithSemicolon_DesignTime.codegen.html b/src/Razor/Microsoft.AspNetCore.Mvc.Razor.Extensions/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/InjectWithSemicolon_DesignTime.codegen.html index 0c20f0ce0ce5..6b3f658f9627 100644 --- a/src/Razor/Microsoft.AspNetCore.Mvc.Razor.Extensions/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/InjectWithSemicolon_DesignTime.codegen.html +++ b/src/Razor/Microsoft.AspNetCore.Mvc.Razor.Extensions/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/InjectWithSemicolon_DesignTime.codegen.html @@ -1,5 +1,5 @@ - - - - - +~~~~~~ ~~~~~~~ +~~~~~~~ ~~~~~ ~~~~~~~~~~~~~~~ +~~~~~~~ ~~~~~~~~~~~~~~~~~ ~~~~~ +~~~~~~~ ~~~~~ ~~~~~~~~~~~~~~~ ~ +~~~~~~~ ~~~~~~~~~~~~~~~~~ ~~~~~ ~ diff --git a/src/Razor/Microsoft.AspNetCore.Mvc.Razor.Extensions/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/Inject_DesignTime.codegen.html b/src/Razor/Microsoft.AspNetCore.Mvc.Razor.Extensions/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/Inject_DesignTime.codegen.html index 8a218bdd8dad..579717aaec4e 100644 --- a/src/Razor/Microsoft.AspNetCore.Mvc.Razor.Extensions/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/Inject_DesignTime.codegen.html +++ b/src/Razor/Microsoft.AspNetCore.Mvc.Razor.Extensions/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/Inject_DesignTime.codegen.html @@ -1 +1 @@ - +~~~~~~~ ~~~~~ ~~~~~~~~~~~~~~ diff --git a/src/Razor/Microsoft.AspNetCore.Mvc.Razor.Extensions/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/InvalidNamespaceAtEOF_DesignTime.codegen.html b/src/Razor/Microsoft.AspNetCore.Mvc.Razor.Extensions/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/InvalidNamespaceAtEOF_DesignTime.codegen.html index c72931e132ba..8a36a67848ae 100644 --- a/src/Razor/Microsoft.AspNetCore.Mvc.Razor.Extensions/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/InvalidNamespaceAtEOF_DesignTime.codegen.html +++ b/src/Razor/Microsoft.AspNetCore.Mvc.Razor.Extensions/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/InvalidNamespaceAtEOF_DesignTime.codegen.html @@ -1 +1 @@ - Test. \ No newline at end of file +~~~~~~~~~~ Test. \ No newline at end of file diff --git a/src/Razor/Microsoft.AspNetCore.Mvc.Razor.Extensions/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/MalformedPageDirective_DesignTime.codegen.html b/src/Razor/Microsoft.AspNetCore.Mvc.Razor.Extensions/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/MalformedPageDirective_DesignTime.codegen.html index 9645bac584dd..ef573d0f478c 100644 --- a/src/Razor/Microsoft.AspNetCore.Mvc.Razor.Extensions/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/MalformedPageDirective_DesignTime.codegen.html +++ b/src/Razor/Microsoft.AspNetCore.Mvc.Razor.Extensions/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/MalformedPageDirective_DesignTime.codegen.html @@ -1,4 +1,4 @@ - "foo +~~~~~ "foo

About Us

We are awesome.

\ No newline at end of file diff --git a/src/Razor/Microsoft.AspNetCore.Mvc.Razor.Extensions/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/ModelExpressionTagHelper_DesignTime.codegen.html b/src/Razor/Microsoft.AspNetCore.Mvc.Razor.Extensions/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/ModelExpressionTagHelper_DesignTime.codegen.html index 4649d9d2d64b..0109819d0a0f 100644 --- a/src/Razor/Microsoft.AspNetCore.Mvc.Razor.Extensions/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/ModelExpressionTagHelper_DesignTime.codegen.html +++ b/src/Razor/Microsoft.AspNetCore.Mvc.Razor.Extensions/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/ModelExpressionTagHelper_DesignTime.codegen.html @@ -1,6 +1,6 @@ - +~~~~~~ ~~~~~~~~ - +~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~ - - + + diff --git a/src/Razor/Microsoft.AspNetCore.Mvc.Razor.Extensions/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/Model_DesignTime.codegen.html b/src/Razor/Microsoft.AspNetCore.Mvc.Razor.Extensions/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/Model_DesignTime.codegen.html index 1638a82fb44c..9eb7434ef14a 100644 --- a/src/Razor/Microsoft.AspNetCore.Mvc.Razor.Extensions/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/Model_DesignTime.codegen.html +++ b/src/Razor/Microsoft.AspNetCore.Mvc.Razor.Extensions/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/Model_DesignTime.codegen.html @@ -1 +1 @@ - +~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ diff --git a/src/Razor/Microsoft.AspNetCore.Mvc.Razor.Extensions/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/MultipleModels_DesignTime.codegen.html b/src/Razor/Microsoft.AspNetCore.Mvc.Razor.Extensions/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/MultipleModels_DesignTime.codegen.html index 4a2f4743cfc7..338f2c39940e 100644 --- a/src/Razor/Microsoft.AspNetCore.Mvc.Razor.Extensions/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/MultipleModels_DesignTime.codegen.html +++ b/src/Razor/Microsoft.AspNetCore.Mvc.Razor.Extensions/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/MultipleModels_DesignTime.codegen.html @@ -1,2 +1,2 @@ - - +~~~~~~ ~~~~~~~~~~~~~~~~~~~~~ +~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ diff --git a/src/Razor/Microsoft.AspNetCore.Mvc.Razor.Extensions/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/PageWithNamespace_DesignTime.codegen.html b/src/Razor/Microsoft.AspNetCore.Mvc.Razor.Extensions/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/PageWithNamespace_DesignTime.codegen.html index 6742b0a9e33d..f3527d34b88c 100644 --- a/src/Razor/Microsoft.AspNetCore.Mvc.Razor.Extensions/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/PageWithNamespace_DesignTime.codegen.html +++ b/src/Razor/Microsoft.AspNetCore.Mvc.Razor.Extensions/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/PageWithNamespace_DesignTime.codegen.html @@ -1,3 +1,3 @@ - - +~~~~~ +~~~~~~~~~~ ~~~~~~~~~~~~~~

Hi There!

diff --git a/src/Razor/Microsoft.AspNetCore.Mvc.Razor.Extensions/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/RazorPageWithNoLeadingPageDirective_DesignTime.codegen.html b/src/Razor/Microsoft.AspNetCore.Mvc.Razor.Extensions/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/RazorPageWithNoLeadingPageDirective_DesignTime.codegen.html index 8f9ba3e6233b..e1debaeb457f 100644 --- a/src/Razor/Microsoft.AspNetCore.Mvc.Razor.Extensions/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/RazorPageWithNoLeadingPageDirective_DesignTime.codegen.html +++ b/src/Razor/Microsoft.AspNetCore.Mvc.Razor.Extensions/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/RazorPageWithNoLeadingPageDirective_DesignTime.codegen.html @@ -1,2 +1,2 @@
Some text here.
- +~~~~~ diff --git a/src/Razor/Microsoft.AspNetCore.Mvc.Razor.Extensions/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/RazorPagesWithRouteTemplate_DesignTime.codegen.html b/src/Razor/Microsoft.AspNetCore.Mvc.Razor.Extensions/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/RazorPagesWithRouteTemplate_DesignTime.codegen.html index dbfd76ba01f2..6ea17442f79b 100644 --- a/src/Razor/Microsoft.AspNetCore.Mvc.Razor.Extensions/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/RazorPagesWithRouteTemplate_DesignTime.codegen.html +++ b/src/Razor/Microsoft.AspNetCore.Mvc.Razor.Extensions/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/RazorPagesWithRouteTemplate_DesignTime.codegen.html @@ -1,13 +1,13 @@ - +~~~~~ ~~~~~~~~ - - +~~~~~~ ~~~~~~~~ +~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - - - - - - +~~~~~~~~~~ ~ + ~~~~~~ ~~~~~ ~~~~~~~~ ~ ~~~~~~~~~ + ~ + ~~~~~~ ~~~~~~ ~~~~ ~ ~~~~ ~~~~ ~ + ~ +~ -

New Customer

+

New Customer ~~~~~~~~~~~

diff --git a/src/Razor/Microsoft.AspNetCore.Mvc.Razor.Extensions/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/RazorPagesWithoutModel_DesignTime.codegen.html b/src/Razor/Microsoft.AspNetCore.Mvc.Razor.Extensions/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/RazorPagesWithoutModel_DesignTime.codegen.html index ae827b127094..1788ff55ca6f 100644 --- a/src/Razor/Microsoft.AspNetCore.Mvc.Razor.Extensions/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/RazorPagesWithoutModel_DesignTime.codegen.html +++ b/src/Razor/Microsoft.AspNetCore.Mvc.Razor.Extensions/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/RazorPagesWithoutModel_DesignTime.codegen.html @@ -1,28 +1,28 @@ - +~~~~~ - - +~~~~~~~~~~~~~ ~~~ ~~~~~~~~ +~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - - - - - - +~~~~~~~~~~ ~ + ~~~~~~ ~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~ ~~~~~~~~~ + ~ + ~~~~ ~ ~~~~~~~~~~~~~~ + ~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + ~ - + ~~~~~~ ~~~~~~ ~~~~ ~ ~~~~ ~~~~ ~ - - - - - + ~~~~~~ ~~~~~ ~~~~~~~~ + ~ + ~~~~~~ ~~~~~~ ~~~~ ~ ~~~~ ~~~~ ~ + ~ +~

New Customer

- +
diff --git a/src/Razor/Microsoft.AspNetCore.Mvc.Razor.Extensions/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/RazorPages_DesignTime.codegen.html b/src/Razor/Microsoft.AspNetCore.Mvc.Razor.Extensions/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/RazorPages_DesignTime.codegen.html index dc0c2ec4e1b7..3bc18cff89a6 100644 --- a/src/Razor/Microsoft.AspNetCore.Mvc.Razor.Extensions/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/RazorPages_DesignTime.codegen.html +++ b/src/Razor/Microsoft.AspNetCore.Mvc.Razor.Extensions/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/RazorPages_DesignTime.codegen.html @@ -1,32 +1,32 @@ - +~~~~~ - - - +~~~~~~ ~~~~~~~~ +~~~~~~~~~~~~~ ~~~ ~~~~~~~~ +~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - - - - - - - - +~~~~~~~~~~ ~ + ~~~~~~ ~~~~~ ~~~~~~~~ ~ ~~~~~~~~~ + ~ + ~~~~~~ ~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~ ~~~~~~~~~ + ~ + ~~~~ ~ ~~~~~~~~~~~~~~ + ~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + ~ - - + ~~~~~~ ~~~~~~ ~~~~ ~ ~~~~ ~~~~ ~ + ~ - - - - - + ~~~~~~ ~~~~~ ~~~~~~~~ + ~ + ~~~~~~ ~~~~~~ ~~~~ ~ ~~~~ ~~~~ ~ + ~ +~

New Customer

- +
diff --git a/src/Razor/Microsoft.AspNetCore.Mvc.Razor.Extensions/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/Sections_DesignTime.codegen.html b/src/Razor/Microsoft.AspNetCore.Mvc.Razor.Extensions/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/Sections_DesignTime.codegen.html index 849f18b01572..1dc5378382f5 100644 --- a/src/Razor/Microsoft.AspNetCore.Mvc.Razor.Extensions/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/Sections_DesignTime.codegen.html +++ b/src/Razor/Microsoft.AspNetCore.Mvc.Razor.Extensions/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/Sections_DesignTime.codegen.html @@ -1,14 +1,14 @@ - +~~~~~~ ~~~~~~~~ - +~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~ - - - +~~ + ~~~~~~ ~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +~
Some body
- +~~~~~~~~ ~~~~~~~~ ~
This is in Section 1
- - \ No newline at end of file + +~ \ No newline at end of file diff --git a/src/Razor/Microsoft.AspNetCore.Mvc.Razor.Extensions/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/UsingDirectives_DesignTime.codegen.html b/src/Razor/Microsoft.AspNetCore.Mvc.Razor.Extensions/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/UsingDirectives_DesignTime.codegen.html index 52fe51a13096..38bab0bda99b 100644 --- a/src/Razor/Microsoft.AspNetCore.Mvc.Razor.Extensions/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/UsingDirectives_DesignTime.codegen.html +++ b/src/Razor/Microsoft.AspNetCore.Mvc.Razor.Extensions/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/UsingDirectives_DesignTime.codegen.html @@ -1,4 +1,4 @@ - - - - \ No newline at end of file +~~~~~~ ~~~~~~~~~~~~~~~~~~~~~ +~~~~~~ ~~~~~~~~~~~~~~~~~~ +~~~~~~ ~~~~~~ +~~~~~~ ~~~~~~ \ No newline at end of file diff --git a/src/Razor/Microsoft.AspNetCore.Mvc.Razor.Extensions/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/ViewComponentTagHelper_DesignTime.codegen.html b/src/Razor/Microsoft.AspNetCore.Mvc.Razor.Extensions/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/ViewComponentTagHelper_DesignTime.codegen.html index 5b456be824f8..e3c647d97a4f 100644 --- a/src/Razor/Microsoft.AspNetCore.Mvc.Razor.Extensions/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/ViewComponentTagHelper_DesignTime.codegen.html +++ b/src/Razor/Microsoft.AspNetCore.Mvc.Razor.Extensions/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/ViewComponentTagHelper_DesignTime.codegen.html @@ -1,6 +1,6 @@ - - - - +~~~~~~~~~~~~~ ~~~ ~~~~~~~~ +~~ + ~~~ ~~~ ~ ~~~~~~~~ +~ - \ No newline at end of file + \ No newline at end of file diff --git a/src/Razor/Microsoft.AspNetCore.Mvc.Razor.Extensions/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/ViewWithNamespace_DesignTime.codegen.html b/src/Razor/Microsoft.AspNetCore.Mvc.Razor.Extensions/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/ViewWithNamespace_DesignTime.codegen.html index 835b3a68caea..30c2f53307d5 100644 --- a/src/Razor/Microsoft.AspNetCore.Mvc.Razor.Extensions/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/ViewWithNamespace_DesignTime.codegen.html +++ b/src/Razor/Microsoft.AspNetCore.Mvc.Razor.Extensions/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/ViewWithNamespace_DesignTime.codegen.html @@ -1,2 +1,2 @@ - +~~~~~~~~~~ ~~~~~~~~~~~~~~

Hi There!

diff --git a/src/Razor/Microsoft.AspNetCore.Mvc.Razor.Extensions/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/_ViewImports_DesignTime.codegen.html b/src/Razor/Microsoft.AspNetCore.Mvc.Razor.Extensions/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/_ViewImports_DesignTime.codegen.html index 262e601e9cc7..f53681d3d2e4 100644 --- a/src/Razor/Microsoft.AspNetCore.Mvc.Razor.Extensions/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/_ViewImports_DesignTime.codegen.html +++ b/src/Razor/Microsoft.AspNetCore.Mvc.Razor.Extensions/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/_ViewImports_DesignTime.codegen.html @@ -1 +1 @@ - \ No newline at end of file +~~~~~~~ ~~~~~~~~~~~~~~~~~~~ ~~~~~~ \ No newline at end of file diff --git a/src/Razor/Microsoft.AspNetCore.Razor.Language/src/DefaultRazorSourceLineCollection.cs b/src/Razor/Microsoft.AspNetCore.Razor.Language/src/DefaultRazorSourceLineCollection.cs index 42767671c0fb..482d88624f09 100644 --- a/src/Razor/Microsoft.AspNetCore.Razor.Language/src/DefaultRazorSourceLineCollection.cs +++ b/src/Razor/Microsoft.AspNetCore.Razor.Language/src/DefaultRazorSourceLineCollection.cs @@ -1,4 +1,4 @@ -// Copyright (c) .NET Foundation. All rights reserved. +// Copyright (c) .NET Foundation. All rights reserved. // Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. using System; @@ -38,7 +38,7 @@ public override int GetLineLength(int index) internal override SourceLocation GetLocation(int position) { - if (position < 0 || position >= _document.Length) + if (position < 0 || position > _document.Length) { throw new IndexOutOfRangeException(nameof(position)); } diff --git a/src/Razor/Microsoft.AspNetCore.Razor.Language/src/RazorHtmlWriter.cs b/src/Razor/Microsoft.AspNetCore.Razor.Language/src/RazorHtmlWriter.cs index 6d29531efb9f..d8c06a379dcf 100644 --- a/src/Razor/Microsoft.AspNetCore.Razor.Language/src/RazorHtmlWriter.cs +++ b/src/Razor/Microsoft.AspNetCore.Razor.Language/src/RazorHtmlWriter.cs @@ -1,4 +1,4 @@ -// Copyright (c) .NET Foundation. All rights reserved. +// Copyright (c) .NET Foundation. All rights reserved. // Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. using System; @@ -141,7 +141,7 @@ private void WriteToken(SyntaxToken token) return; } - // We're in non-HTML context. Let's replace all non-whitespace chars with a space. + // We're in non-HTML context. Let's replace all non-whitespace chars with a tilde(~). foreach (var c in content) { if (char.IsWhiteSpace(c)) @@ -150,7 +150,7 @@ private void WriteToken(SyntaxToken token) } else { - Builder.Append(' '); + Builder.Append('~'); } } } diff --git a/src/Razor/Microsoft.AspNetCore.Razor.Language/test/DefaultRazorSourceLineCollectionTest.cs b/src/Razor/Microsoft.AspNetCore.Razor.Language/test/DefaultRazorSourceLineCollectionTest.cs new file mode 100644 index 000000000000..748e195f9060 --- /dev/null +++ b/src/Razor/Microsoft.AspNetCore.Razor.Language/test/DefaultRazorSourceLineCollectionTest.cs @@ -0,0 +1,132 @@ +// Copyright (c) .NET Foundation. All rights reserved. +// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. + +using System; +using Xunit; + +namespace Microsoft.AspNetCore.Razor.Language.Test +{ + public class DefaultRazorSourceLineCollectionTest + { + [Fact] + public void GetLocation_Negative() + { + // Arrange + var content = @"@addTagHelper, * Stuff +@* A comment *@"; + var document = TestRazorSourceDocument.Create(content); + var collection = new DefaultRazorSourceLineCollection(document); + + // Act & Assert + Assert.Throws(() => collection.GetLocation(-1)); + } + + [Fact] + public void GetLocation_TooBig() + { + // Arrange + var content = @"addTagHelper, * Stuff +@* A comment *@"; + var document = TestRazorSourceDocument.Create(content); + var collection = new DefaultRazorSourceLineCollection(document); + + // Act & Assert + Assert.Throws(() => collection.GetLocation(40)); + } + + [Fact] + public void GetLocation_AtStart() + { + // Arrange + var content = @"@addTaghelper, * Stuff +@* A comment *@"; + var document = TestRazorSourceDocument.Create(content); + var collection = new DefaultRazorSourceLineCollection(document); + + // Act + var location = collection.GetLocation(0); + + // Assert + var expected = new SourceLocation("test.cshtml", 0, 0, 0); + Assert.Equal(expected, location); + } + + [Fact] + public void GetLocation_AtEnd() + { + // Arrange + var content = @"@addTagHelper, * Stuff +@* A comment *@"; + var document = TestRazorSourceDocument.Create(content); + var collection = new DefaultRazorSourceLineCollection(document); + var length = content.Length; + + // Act + var location = collection.GetLocation(length); + + // Assert + var expected = new SourceLocation("test.cshtml", length, 1, 15); + Assert.Equal(expected, location); + } + + [Fact] + public void GetLineLength_Negative() + { + // Arrange + var content = @"@addTagHelper, * Stuff +@* A comment *@"; + var document = TestRazorSourceDocument.Create(content); + var collection = new DefaultRazorSourceLineCollection(document); + + // Act & Assert + Assert.Throws(() => collection.GetLineLength(-1)); + } + + [Fact] + public void GetLineLength_Bigger() + { + // Arrange + var content = @"@addTagHelper, * Stuff +@* A comment *@"; + var document = TestRazorSourceDocument.Create(content); + var collection = new DefaultRazorSourceLineCollection(document); + + // Act & Assert + Assert.Throws(() => collection.GetLineLength(40)); + } + + [Fact] + public void GetLineLength_AtStart() + { + // Arrange + var content = @"@addTagHelper, * Stuff +@* A comment *@"; + var document = TestRazorSourceDocument.Create(content); + var collection = new DefaultRazorSourceLineCollection(document); + + // Act + var lineLength = collection.GetLineLength(0); + + // Assert + var expectedLineLength = 22 + Environment.NewLine.Length; + Assert.Equal(expectedLineLength, lineLength); + } + + [Fact] + public void GetLineLength_AtEnd() + { + // Arrange + var content = @"@addTagHelper, * Stuff +@* A comment *@"; + var document = TestRazorSourceDocument.Create(content); + var collection = new DefaultRazorSourceLineCollection(document); + + // Act + var lineLength = collection.GetLineLength(1); + + // Assert + var expectedLineLength = 15; + Assert.Equal(expectedLineLength, lineLength); + } + } +} diff --git a/src/Razor/Microsoft.AspNetCore.Razor.Language/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/AddTagHelperDirective_DesignTime.codegen.html b/src/Razor/Microsoft.AspNetCore.Razor.Language/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/AddTagHelperDirective_DesignTime.codegen.html index 0da46f2152d1..9798fda642fa 100644 --- a/src/Razor/Microsoft.AspNetCore.Razor.Language/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/AddTagHelperDirective_DesignTime.codegen.html +++ b/src/Razor/Microsoft.AspNetCore.Razor.Language/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/AddTagHelperDirective_DesignTime.codegen.html @@ -1 +1 @@ - +~~~~~~~~~~~~~ ~~~ ~~~~~~~~~~~~~ diff --git a/src/Razor/Microsoft.AspNetCore.Razor.Language/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/AttributeDirective_DesignTime.codegen.html b/src/Razor/Microsoft.AspNetCore.Razor.Language/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/AttributeDirective_DesignTime.codegen.html index fd82d1980659..bc07a83107e3 100644 --- a/src/Razor/Microsoft.AspNetCore.Razor.Language/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/AttributeDirective_DesignTime.codegen.html +++ b/src/Razor/Microsoft.AspNetCore.Razor.Language/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/AttributeDirective_DesignTime.codegen.html @@ -1,6 +1,6 @@ - - - - +~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +~~~~~~~~~~ ~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~ +~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~ +~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~ Hello World \ No newline at end of file diff --git a/src/Razor/Microsoft.AspNetCore.Razor.Language/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/Await_DesignTime.codegen.html b/src/Razor/Microsoft.AspNetCore.Razor.Language/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/Await_DesignTime.codegen.html index 22593ca1ef47..9206eae15e5b 100644 --- a/src/Razor/Microsoft.AspNetCore.Razor.Language/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/Await_DesignTime.codegen.html +++ b/src/Razor/Microsoft.AspNetCore.Razor.Language/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/Await_DesignTime.codegen.html @@ -1,26 +1,26 @@ - - - - - - +~~~~~~~~~~ ~ + ~~~~~~ ~~~~~ ~~~~~~~~~~~~ ~~~~~ + ~ + ~~~~~~ ~~~~~~ + ~ +~

Basic Asynchronous Expression Test

-

Basic Asynchronous Expression:

-

Basic Asynchronous Template:

-

Basic Asynchronous Statement:

-

Basic Asynchronous Statement Nested:

-

Basic Incomplete Asynchronous Statement:

+

Basic Asynchronous Expression: ~~~~~~ ~~~~~

+

Basic Asynchronous Template: ~~~~~~~ ~~~~~~

+

Basic Asynchronous Statement: ~~ ~~~~~ ~~~~~~ ~

+

Basic Asynchronous Statement Nested: ~~ ~~~~~~ ~~~~~ ~

+

Basic Incomplete Asynchronous Statement: ~~~~~~

Advanced Asynchronous Expression Test

-

Advanced Asynchronous Expression:

-

Advanced Asynchronous Expression Extended:

-

Advanced Asynchronous Template:

-

Advanced Asynchronous Statement:

-

Advanced Asynchronous Statement Extended:

-

Advanced Asynchronous Statement Nested:

-

Advanced Incomplete Asynchronous Statement:

+

Advanced Asynchronous Expression: ~~~~~~ ~~~~~~ ~~

+

Advanced Asynchronous Expression Extended: ~~~~~~ ~~~~~~~~~~ ~~

+

Advanced Asynchronous Template: ~~~~~~~ ~~~~~~~~~~ ~~~~~~

+

Advanced Asynchronous Statement: ~~ ~~~~~ ~~~~~~~~~~~~~~ ~~~~~~ ~~~~~~~~~ ~

+

Advanced Asynchronous Statement Extended: ~~ ~~~~~ ~~~~~~~~~~ ~~ ~

+

Advanced Asynchronous Statement Nested: ~~ ~~~~~~ ~~~~~~~~~~~~~~ ~~~~~~ ~

+

Advanced Incomplete Asynchronous Statement: ~~~~~~ ~~~~~~~~~~~~~

\ No newline at end of file diff --git a/src/Razor/Microsoft.AspNetCore.Razor.Language/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/Blocks_DesignTime.codegen.html b/src/Razor/Microsoft.AspNetCore.Razor.Language/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/Blocks_DesignTime.codegen.html index dc08c79219d9..b36df6862afd 100644 --- a/src/Razor/Microsoft.AspNetCore.Razor.Language/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/Blocks_DesignTime.codegen.html +++ b/src/Razor/Microsoft.AspNetCore.Razor.Language/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/Blocks_DesignTime.codegen.html @@ -1,37 +1,37 @@ - - - +~~ + ~~~ ~ ~ ~~ +~ - -

Hello from C#, #

- - +~~~~~~~~ ~~ ~~~ ~ +

Hello from C#, #~~~~

+ ~ ~~ ~~ +~ - +~~~~~ ~~ ~~~ ~

We wrote 10 lines!

- +~ - - +~~~~~~~~~~ ~ + ~~~~ ~~~

No really, we wrote 10 lines!

- - + ~~~~~~ + ~~~~~~~~

Actually, we didn't...

- - + ~~~~~~ +~ - -

Hello again from C#, #

- +~~~~~~~~ ~ ~ ~~ ~ ~~ ~~~ ~ ~~ ~~ ~ +

Hello again from C#, #~~~~

+~ - +~~~~ ~

That time, we wrote 5 lines!

- -

Oh no! An error occurred:

- +~ ~~~~~~~~~~~~~~~ ~~~ ~ +

Oh no! An error occurred: ~~~~~~~~~~~~~

+~ -

i is now

+

i is now ~~

- +~~~~~~~~~ ~~~~~~~~~ ~

This block is locked, for your security!

- \ No newline at end of file +~ \ No newline at end of file diff --git a/src/Razor/Microsoft.AspNetCore.Razor.Language/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/CSharp7_DesignTime.codegen.html b/src/Razor/Microsoft.AspNetCore.Razor.Language/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/CSharp7_DesignTime.codegen.html index a2aad32abe93..d3e8f46d6bae 100644 --- a/src/Razor/Microsoft.AspNetCore.Razor.Language/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/CSharp7_DesignTime.codegen.html +++ b/src/Razor/Microsoft.AspNetCore.Razor.Language/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/CSharp7_DesignTime.codegen.html @@ -1,43 +1,43 @@ - - - - - + ~~ + ~~~ ~~~~~~~~~~ ~ ~~~ ~~~~~~~~~~~~~~~~~~ ~~~~~~~ ~~~~~~~~~~ ~~~~~~ ~~~~~~~~~ ~~~~~~ ~~~~~~~~~ + ~ + ~~~~~~ ~~~~~ ~ ~~~~~~~~ ~~~~~~ ~~~~~ + ~~ - + ~~ ~~~~ ~~ ~~~ ~~ ~ ~~~~ ~~~~ ~~~~~~ ~~~~~ ~~ - - - - - + ~~~ ~~~~~~~ ~ ~~~~~~~~~~~~ + ~~~~ ~~~~~~~~~~~~~~~~~~~ ~ ~~~~~~~~~~~~~~~~ + ~~~~~~ ~~~~~~~~~~~~~~~~ ~ ~~~~~~~~~~~~~~~~~~~~~~~~~ + ~~~~~~~ ~~~~~~~~~~~ ~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + ~ - - - - - - - + ~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~ ~~~ ~~~ ~~~~~~~ + ~ + ~~ ~~~~~~~~~~~~ ~~ ~~~~ ~~~~~~ + ~ + ~~ ~~ ~~~~~~~~~ + ~ + ~

- Here's a very unique number: + Here's a very unique number: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

- + ~~~~~~~~~ ~~~~~~~ ~~~~~ ~~~~~~~~~~~~~ ~~ ~~~~~ ~~~~~~ ~~
- - - - - - - - - - - - + ~~~~~~~ ~~~~~~~~~~~~~ + ~ + ~~~~ ~~~ ~~~~ + ~~ ~~ ~~~~~~~~~ + ~~~~~~ + ~~~~ ~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~ + ~~ ~~ ~~~~ ~~~~~~~~~ + ~~~~~~ + ~~~~ ~~~~~ + ~~ ~~ ~~~~ ~~~~ ~~ ~~~~~~~~~ + ~~~~~~ + ~ \ No newline at end of file diff --git a/src/Razor/Microsoft.AspNetCore.Razor.Language/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/CSharp8_DesignTime.codegen.html b/src/Razor/Microsoft.AspNetCore.Razor.Language/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/CSharp8_DesignTime.codegen.html index 2e0ee4dc6ebb..25245b195da1 100644 --- a/src/Razor/Microsoft.AspNetCore.Razor.Language/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/CSharp8_DesignTime.codegen.html +++ b/src/Razor/Microsoft.AspNetCore.Razor.Language/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/CSharp8_DesignTime.codegen.html @@ -1,67 +1,67 @@ - +~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~ - - - - - +~~ + ~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~ + ~ + ~~~~~~ ~~~~~ + ~ - - + ~~~~~ ~~~~~~~ ~~~~ ~~~ ~~ ~~~~~~~~~~~~~~~~~~~~~ + ~ - + ~ - - + ~~~~~ ~~~~~ ~ ~~~~~ + ~~~~~ ~~~ ~~~~~~~~~~ ~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - - - - - - - + ~~~ ~~~~~ ~ ~~~~~~~~~~~~~~~~~~~~~~ + ~~~ ~~~~~~~~ ~ ~~~~~~~~~~ + ~~~~~~ ~~~~~~~~ ~~~~~~~~~ + ~ + ~~~~~~ ~~~~~~~~~~~~~~~ + ~ +~ - - +~~~~~~~~~~~~ +~~~~~~~~~~~~~~~~ - - - - - - +~~~~~~~~~~ ~~~~~~ +~ + ~~~~~~~~~~~~~~ ~~ ~~~~ ~~~~~~~~ + ~~~~~~~~~~~~~~~ ~~ ~~~~ ~~~~~~~~~ + ~ ~~ ~~~~ ~~~~~~~~ +~~ - - - - +~~~~~~ ~~~~~~~ ~~~~ ~~~ ~~ ~~~~~~~~~~~~~~~~~~~~~ +~ + ~~~~ +~ - - - +~~~~~~~~~~~~~ +~~~~~~~~~~~~~~~~~~~~~ +~~~~~~~~~~~~~~~~~~~~~~ - - - - - - +~~~~~~~~~~ ~ + ~~~~ ~~~~~~~~ + ~ + ~~~~~~ + ~~~~~~ + ~ - - - - - + ~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~ + ~ + ~~~ ~~~~~~~~~~~ ~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + ~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~ + ~ - + ~~~~~~~ ~~~~~~ ~~~~~~ ~ ~~~~ ~~~~ ~ - + ~~~~~~~ ~~~~~~~~~ ~~~~~~ ~ ~~~~ ~~~~ ~ - + ~~~~~~~ ~~~~~~~~~~~ ~~~~~~~~ ~~~~~~~~~~~ ~ ~~~~ ~~~~ ~ - - - - - \ No newline at end of file + ~~~~~~~ ~~~~~ ~~~~~ + ~ + ~~~~~~ ~~~~~~~ ~~~~ ~ ~~~~ ~~~~ ~ + ~ +~ \ No newline at end of file diff --git a/src/Razor/Microsoft.AspNetCore.Razor.Language/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/CodeBlockAtEOF_DesignTime.codegen.html b/src/Razor/Microsoft.AspNetCore.Razor.Language/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/CodeBlockAtEOF_DesignTime.codegen.html index 136d06384a4c..68db24f6303b 100644 --- a/src/Razor/Microsoft.AspNetCore.Razor.Language/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/CodeBlockAtEOF_DesignTime.codegen.html +++ b/src/Razor/Microsoft.AspNetCore.Razor.Language/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/CodeBlockAtEOF_DesignTime.codegen.html @@ -1 +1 @@ - \ No newline at end of file +~~ \ No newline at end of file diff --git a/src/Razor/Microsoft.AspNetCore.Razor.Language/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/CodeBlockWithTextElement_DesignTime.codegen.html b/src/Razor/Microsoft.AspNetCore.Razor.Language/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/CodeBlockWithTextElement_DesignTime.codegen.html index a6e01f1a0e64..738f635fb736 100644 --- a/src/Razor/Microsoft.AspNetCore.Razor.Language/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/CodeBlockWithTextElement_DesignTime.codegen.html +++ b/src/Razor/Microsoft.AspNetCore.Razor.Language/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/CodeBlockWithTextElement_DesignTime.codegen.html @@ -1,4 +1,4 @@ - - foo - bar - +~~ + ~~~ ~ ~ ~~ foo + ~~~ ~ ~ ~~ bar ~~~~~~ +~ diff --git a/src/Razor/Microsoft.AspNetCore.Razor.Language/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/CodeBlock_DesignTime.codegen.html b/src/Razor/Microsoft.AspNetCore.Razor.Language/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/CodeBlock_DesignTime.codegen.html index f857199dcf16..9a924676bc4d 100644 --- a/src/Razor/Microsoft.AspNetCore.Razor.Language/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/CodeBlock_DesignTime.codegen.html +++ b/src/Razor/Microsoft.AspNetCore.Razor.Language/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/CodeBlock_DesignTime.codegen.html @@ -1,5 +1,5 @@ - - - - - \ No newline at end of file +~~ + ~~~~~~~ ~ ~ ~~ ~ ~~ ~~~ ~~~~ ~ + ~~~~~~~~~~~~~~~~~~~~~~ ~~~~ ~~~ ~~ ~ ~~~~~~~~~~~~ ~ ~~~~~~~~ + ~ +~ \ No newline at end of file diff --git a/src/Razor/Microsoft.AspNetCore.Razor.Language/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/ConditionalAttributes_DesignTime.codegen.html b/src/Razor/Microsoft.AspNetCore.Razor.Language/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/ConditionalAttributes_DesignTime.codegen.html index 46a4402680ba..6d16f3df2c5f 100644 --- a/src/Razor/Microsoft.AspNetCore.Razor.Language/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/ConditionalAttributes_DesignTime.codegen.html +++ b/src/Razor/Microsoft.AspNetCore.Razor.Language/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/ConditionalAttributes_DesignTime.codegen.html @@ -1,15 +1,15 @@ - - - +~~ + ~~~ ~~ ~ ~~~~~ + ~~~ ~~~ ~ ~~~~~~ -

-

-

- - -

+

+

+

+ + +

- - + + - \ No newline at end of file +~ \ No newline at end of file diff --git a/src/Razor/Microsoft.AspNetCore.Razor.Language/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/DesignTime_DesignTime.codegen.html b/src/Razor/Microsoft.AspNetCore.Razor.Language/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/DesignTime_DesignTime.codegen.html index be5ba4979a03..a8754ea813a0 100644 --- a/src/Razor/Microsoft.AspNetCore.Razor.Language/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/DesignTime_DesignTime.codegen.html +++ b/src/Razor/Microsoft.AspNetCore.Razor.Language/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/DesignTime_DesignTime.codegen.html @@ -1,15 +1,15 @@

- -

Bar Biz

+~~~~~~~~~~~~~~~ +~~~~~~

Bar ~~~~ Biz

~

- +~~~~~~~~ ~~~~~~ ~

Foo

- - \ No newline at end of file + ~~~~ +~ \ No newline at end of file diff --git a/src/Razor/Microsoft.AspNetCore.Razor.Language/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/EmptyCodeBlock_DesignTime.codegen.html b/src/Razor/Microsoft.AspNetCore.Razor.Language/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/EmptyCodeBlock_DesignTime.codegen.html index 9ebe0e3a7822..99a7f08ac047 100644 --- a/src/Razor/Microsoft.AspNetCore.Razor.Language/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/EmptyCodeBlock_DesignTime.codegen.html +++ b/src/Razor/Microsoft.AspNetCore.Razor.Language/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/EmptyCodeBlock_DesignTime.codegen.html @@ -1,3 +1,3 @@ This is markup - \ No newline at end of file +~~~ \ No newline at end of file diff --git a/src/Razor/Microsoft.AspNetCore.Razor.Language/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/EmptyExplicitExpression_DesignTime.codegen.html b/src/Razor/Microsoft.AspNetCore.Razor.Language/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/EmptyExplicitExpression_DesignTime.codegen.html index 9ebe0e3a7822..99a7f08ac047 100644 --- a/src/Razor/Microsoft.AspNetCore.Razor.Language/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/EmptyExplicitExpression_DesignTime.codegen.html +++ b/src/Razor/Microsoft.AspNetCore.Razor.Language/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/EmptyExplicitExpression_DesignTime.codegen.html @@ -1,3 +1,3 @@ This is markup - \ No newline at end of file +~~~ \ No newline at end of file diff --git a/src/Razor/Microsoft.AspNetCore.Razor.Language/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/EmptyImplicitExpressionInCode_DesignTime.codegen.html b/src/Razor/Microsoft.AspNetCore.Razor.Language/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/EmptyImplicitExpressionInCode_DesignTime.codegen.html index 1568f6aa34f3..0c15e1469835 100644 --- a/src/Razor/Microsoft.AspNetCore.Razor.Language/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/EmptyImplicitExpressionInCode_DesignTime.codegen.html +++ b/src/Razor/Microsoft.AspNetCore.Razor.Language/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/EmptyImplicitExpressionInCode_DesignTime.codegen.html @@ -1,3 +1,3 @@ - - - \ No newline at end of file +~~ + ~ +~ \ No newline at end of file diff --git a/src/Razor/Microsoft.AspNetCore.Razor.Language/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/EmptyImplicitExpression_DesignTime.codegen.html b/src/Razor/Microsoft.AspNetCore.Razor.Language/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/EmptyImplicitExpression_DesignTime.codegen.html index 76ee36910b47..758fb714e81e 100644 --- a/src/Razor/Microsoft.AspNetCore.Razor.Language/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/EmptyImplicitExpression_DesignTime.codegen.html +++ b/src/Razor/Microsoft.AspNetCore.Razor.Language/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/EmptyImplicitExpression_DesignTime.codegen.html @@ -1,3 +1,3 @@ This is markup - ! \ No newline at end of file +~! \ No newline at end of file diff --git a/src/Razor/Microsoft.AspNetCore.Razor.Language/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/ExplicitExpressionAtEOF_DesignTime.codegen.html b/src/Razor/Microsoft.AspNetCore.Razor.Language/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/ExplicitExpressionAtEOF_DesignTime.codegen.html index 6eaf3f7aa0bd..d166c19f55a0 100644 --- a/src/Razor/Microsoft.AspNetCore.Razor.Language/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/ExplicitExpressionAtEOF_DesignTime.codegen.html +++ b/src/Razor/Microsoft.AspNetCore.Razor.Language/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/ExplicitExpressionAtEOF_DesignTime.codegen.html @@ -1,3 +1,3 @@ This is markup - \ No newline at end of file +~~ \ No newline at end of file diff --git a/src/Razor/Microsoft.AspNetCore.Razor.Language/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/ExplicitExpressionWithMarkup_DesignTime.codegen.html b/src/Razor/Microsoft.AspNetCore.Razor.Language/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/ExplicitExpressionWithMarkup_DesignTime.codegen.html index fc593178498f..b410eec8a5e2 100644 --- a/src/Razor/Microsoft.AspNetCore.Razor.Language/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/ExplicitExpressionWithMarkup_DesignTime.codegen.html +++ b/src/Razor/Microsoft.AspNetCore.Razor.Language/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/ExplicitExpressionWithMarkup_DesignTime.codegen.html @@ -1 +1 @@ -
\ No newline at end of file +
~~~
\ No newline at end of file diff --git a/src/Razor/Microsoft.AspNetCore.Razor.Language/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/ExplicitExpression_DesignTime.codegen.html b/src/Razor/Microsoft.AspNetCore.Razor.Language/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/ExplicitExpression_DesignTime.codegen.html index 33b749a2f937..152cef197aeb 100644 --- a/src/Razor/Microsoft.AspNetCore.Razor.Language/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/ExplicitExpression_DesignTime.codegen.html +++ b/src/Razor/Microsoft.AspNetCore.Razor.Language/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/ExplicitExpression_DesignTime.codegen.html @@ -1 +1 @@ -1 + 1 = \ No newline at end of file +1 + 1 = ~~~~~~ \ No newline at end of file diff --git a/src/Razor/Microsoft.AspNetCore.Razor.Language/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/ExpressionsInCode_DesignTime.codegen.html b/src/Razor/Microsoft.AspNetCore.Razor.Language/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/ExpressionsInCode_DesignTime.codegen.html index de86958addfc..557c25099c9c 100644 --- a/src/Razor/Microsoft.AspNetCore.Razor.Language/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/ExpressionsInCode_DesignTime.codegen.html +++ b/src/Razor/Microsoft.AspNetCore.Razor.Language/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/ExpressionsInCode_DesignTime.codegen.html @@ -1,16 +1,16 @@ - - - - +~~ + ~~~~~~ ~~~ ~ ~~~~~ + ~~~~~~ ~~~ ~ ~~~~~~ +~ - - - +~~~~~~~ ~~ ~~~~~ ~ + ~~~~ +~ ~~~~ ~

Foo is Null!

- +~

- - - +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~ + ~~~~~~~~~~~~~~~~~~ ~~~~~ +~

\ No newline at end of file diff --git a/src/Razor/Microsoft.AspNetCore.Razor.Language/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/FunctionsBlockMinimal_DesignTime.codegen.html b/src/Razor/Microsoft.AspNetCore.Razor.Language/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/FunctionsBlockMinimal_DesignTime.codegen.html index 6393f9703b5f..2a7f3ddff8a3 100644 --- a/src/Razor/Microsoft.AspNetCore.Razor.Language/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/FunctionsBlockMinimal_DesignTime.codegen.html +++ b/src/Razor/Microsoft.AspNetCore.Razor.Language/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/FunctionsBlockMinimal_DesignTime.codegen.html @@ -1,7 +1,7 @@ - - - - - \ No newline at end of file + ~~~~~~~~~~~ +~~~~~~ ~~~~~~~~~~ ~~~~~~ ~ + ~~~~~~ ~~~~~ ~ ~~~~ +~ +~ \ No newline at end of file diff --git a/src/Razor/Microsoft.AspNetCore.Razor.Language/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/FunctionsBlock_DesignTime.codegen.html b/src/Razor/Microsoft.AspNetCore.Razor.Language/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/FunctionsBlock_DesignTime.codegen.html index 46d84b460b85..896d2c841527 100644 --- a/src/Razor/Microsoft.AspNetCore.Razor.Language/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/FunctionsBlock_DesignTime.codegen.html +++ b/src/Razor/Microsoft.AspNetCore.Razor.Language/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/FunctionsBlock_DesignTime.codegen.html @@ -1,12 +1,12 @@ - +~~~~~~~~~~ ~ - +~ - - - - - - +~~~~~~~~~~ ~ + ~~~~~~ ~~~~~ ~ ~~~ ~~~~~~~~~ + ~~~~~~~ ~~~ ~~~~~~~~~~~ ~ + ~~~~~~ ~~~~~~~~~~~~~ + ~ +~ -Here's a random number: \ No newline at end of file +Here's a random number: ~~~~~~~~~~~~ \ No newline at end of file diff --git a/src/Razor/Microsoft.AspNetCore.Razor.Language/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/HiddenSpansInCode_DesignTime.codegen.html b/src/Razor/Microsoft.AspNetCore.Razor.Language/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/HiddenSpansInCode_DesignTime.codegen.html index 13484a1b456c..88647e0895ab 100644 --- a/src/Razor/Microsoft.AspNetCore.Razor.Language/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/HiddenSpansInCode_DesignTime.codegen.html +++ b/src/Razor/Microsoft.AspNetCore.Razor.Language/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/HiddenSpansInCode_DesignTime.codegen.html @@ -1,3 +1,3 @@ - - - \ No newline at end of file +~~ + ~~~~ +~ \ No newline at end of file diff --git a/src/Razor/Microsoft.AspNetCore.Razor.Language/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/Implements_DesignTime.codegen.html b/src/Razor/Microsoft.AspNetCore.Razor.Language/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/Implements_DesignTime.codegen.html index d0776340e1a6..8d87a8e68a75 100644 --- a/src/Razor/Microsoft.AspNetCore.Razor.Language/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/Implements_DesignTime.codegen.html +++ b/src/Razor/Microsoft.AspNetCore.Razor.Language/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/Implements_DesignTime.codegen.html @@ -1,5 +1,5 @@ - +~~~~~~~~~~~ ~~~~~~~~~~~ - - - \ No newline at end of file +~~~~~~~~~~ ~ + ~~~~ ~~~~~~~~~~~~~~~~~~~~~ ~ ~ +~ \ No newline at end of file diff --git a/src/Razor/Microsoft.AspNetCore.Razor.Language/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/ImplicitExpressionAtEOF_DesignTime.codegen.html b/src/Razor/Microsoft.AspNetCore.Razor.Language/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/ImplicitExpressionAtEOF_DesignTime.codegen.html index f1c2edafa225..28138a2cddf2 100644 --- a/src/Razor/Microsoft.AspNetCore.Razor.Language/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/ImplicitExpressionAtEOF_DesignTime.codegen.html +++ b/src/Razor/Microsoft.AspNetCore.Razor.Language/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/ImplicitExpressionAtEOF_DesignTime.codegen.html @@ -1,3 +1,3 @@ This is markup - \ No newline at end of file +~ \ No newline at end of file diff --git a/src/Razor/Microsoft.AspNetCore.Razor.Language/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/ImplicitExpression_DesignTime.codegen.html b/src/Razor/Microsoft.AspNetCore.Razor.Language/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/ImplicitExpression_DesignTime.codegen.html index c3ca733a2bc7..b8f7cde9f741 100644 --- a/src/Razor/Microsoft.AspNetCore.Razor.Language/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/ImplicitExpression_DesignTime.codegen.html +++ b/src/Razor/Microsoft.AspNetCore.Razor.Language/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/ImplicitExpression_DesignTime.codegen.html @@ -1,3 +1,3 @@ - -

This is item #

- \ No newline at end of file +~~~~~~~~ ~ ~ ~~ ~ ~~ ~~~ ~~~~ ~ +

This is item #~~

+~ \ No newline at end of file diff --git a/src/Razor/Microsoft.AspNetCore.Razor.Language/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/IncompleteDirectives_DesignTime.codegen.html b/src/Razor/Microsoft.AspNetCore.Razor.Language/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/IncompleteDirectives_DesignTime.codegen.html index b7d08f385618..d932435cea17 100644 --- a/src/Razor/Microsoft.AspNetCore.Razor.Language/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/IncompleteDirectives_DesignTime.codegen.html +++ b/src/Razor/Microsoft.AspNetCore.Razor.Language/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/IncompleteDirectives_DesignTime.codegen.html @@ -1,25 +1,25 @@ - +~~ ~~~~~ ~~~~ ~~~~~ ~~~~~~~~ ~~~~ ~~~~~~~~~~~ ~~~~~~~~~~ ~~~~~~~~~~ ~~~~~ ~~~~~~ ~~ - - - +~~~~~~~~~~~~~ +~~~~~~~~~~~~~ +~~~~~~~~~~~~~ ~ - - - +~~~~~~~~~~~~~~~~ +~~~~~~~~~~~~~~~~ +~~~~~~~~~~~~~~~~ ~ - - - +~~~~~~~~~~~~~~~~ +~~~~~~~~~~~~~~~~ +~~~~~~~~~~~~~~~~ ~ - - +~~~~~~~~~ +~~~~~~~~~ - - +~~~~~~~~~~ +~~~~~~~~~~ - - +~~~~~~~~ +~~~~~~~~ - { - \ No newline at end of file +~~~~~~~~ { +~~~~~~~~~~ ~ \ No newline at end of file diff --git a/src/Razor/Microsoft.AspNetCore.Razor.Language/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/Inherits_DesignTime.codegen.html b/src/Razor/Microsoft.AspNetCore.Razor.Language/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/Inherits_DesignTime.codegen.html index b60ac0100e38..9cd1d59959a7 100644 --- a/src/Razor/Microsoft.AspNetCore.Razor.Language/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/Inherits_DesignTime.codegen.html +++ b/src/Razor/Microsoft.AspNetCore.Razor.Language/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/Inherits_DesignTime.codegen.html @@ -1,3 +1,3 @@ - +~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~ - \ No newline at end of file +~~~~~~ \ No newline at end of file diff --git a/src/Razor/Microsoft.AspNetCore.Razor.Language/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/InlineBlocks_DesignTime.codegen.html b/src/Razor/Microsoft.AspNetCore.Razor.Language/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/InlineBlocks_DesignTime.codegen.html index 3b6fa1cd0620..18ebd6d308e5 100644 --- a/src/Razor/Microsoft.AspNetCore.Razor.Language/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/InlineBlocks_DesignTime.codegen.html +++ b/src/Razor/Microsoft.AspNetCore.Razor.Language/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/InlineBlocks_DesignTime.codegen.html @@ -1,3 +1,3 @@ - (string link) { -
+~~~~~~~~ ~~~~(string link) { + } \ No newline at end of file diff --git a/src/Razor/Microsoft.AspNetCore.Razor.Language/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/Instrumented_DesignTime.codegen.html b/src/Razor/Microsoft.AspNetCore.Razor.Language/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/Instrumented_DesignTime.codegen.html index 111d1f7474ce..1c44204c9352 100644 --- a/src/Razor/Microsoft.AspNetCore.Razor.Language/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/Instrumented_DesignTime.codegen.html +++ b/src/Razor/Microsoft.AspNetCore.Razor.Language/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/Instrumented_DesignTime.codegen.html @@ -1,38 +1,38 @@ - - -

Bar

- Hello, World +~~ + ~~~ ~ ~ ~~ + ~~~ ~~~ ~ ~

Bar

~ + ~~Hello, World

Hello, World

- +~ - -

Hello from C#, #

- - +~~~~~~~~ ~~ ~~~ ~ +

Hello from C#, #~~~~

+ ~ ~~ ~~ +~ - +~~~~~ ~~ ~~~ ~

We wrote 10 lines!

- +~ - - +~~~~~~~~~~ ~ + ~~~~ ~~~

No really, we wrote 10 lines!

- - + ~~~~~~ + ~~~~~~~~

Actually, we didn't...

- - + ~~~~~~ +~ - -

Hello again from C#, #

- +~~~~~~~~ ~ ~ ~~ ~ ~~ ~~~ ~ ~~ ~~ ~ +

Hello again from C#, #~~~~

+~ - +~~~~ ~

That time, we wrote 5 lines!

- -

Oh no! An error occurred:

- +~ ~~~~~~~~~~~~~~~ ~~~ ~ +

Oh no! An error occurred: ~~~~~~~~~~~~~

+~ - +~~~~~~~~~ ~~~~~~~~~ ~

This block is locked, for your security!

- \ No newline at end of file +~ \ No newline at end of file diff --git a/src/Razor/Microsoft.AspNetCore.Razor.Language/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/MarkupInCodeBlock_DesignTime.codegen.html b/src/Razor/Microsoft.AspNetCore.Razor.Language/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/MarkupInCodeBlock_DesignTime.codegen.html index 9148ce732370..ad3e1315f2bd 100644 --- a/src/Razor/Microsoft.AspNetCore.Razor.Language/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/MarkupInCodeBlock_DesignTime.codegen.html +++ b/src/Razor/Microsoft.AspNetCore.Razor.Language/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/MarkupInCodeBlock_DesignTime.codegen.html @@ -1,5 +1,5 @@ - - -

Hello from C#, #

- - +~~ + ~~~~~~~ ~ ~ ~~ ~ ~~ ~~~ ~~~~ ~ +

Hello from C#, #~~~~~~~~~~~~~~~

+ ~ +~ diff --git a/src/Razor/Microsoft.AspNetCore.Razor.Language/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/Markup_InCodeBlocks_DesignTime.codegen.html b/src/Razor/Microsoft.AspNetCore.Razor.Language/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/Markup_InCodeBlocks_DesignTime.codegen.html index 4b346c914a4b..554040f8c49a 100644 --- a/src/Razor/Microsoft.AspNetCore.Razor.Language/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/Markup_InCodeBlocks_DesignTime.codegen.html +++ b/src/Razor/Microsoft.AspNetCore.Razor.Language/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/Markup_InCodeBlocks_DesignTime.codegen.html @@ -1,45 +1,45 @@ - - - - - - - - -
- - - - - - - - - - +~~ + ~~~ ~~~~~~ ~ ~~~ ~~~~~~~~ + ~ + ~~~ ~~~~~~~~ ~ ~~~~ ~ ~~~~~~~~~ ~~~ ~ ~~~ ~ + ~~ + + ~~~~ ~~~~~~~~~~~~~~~~ ~~~~~~~ + ~ +
~~~~~~~~~~~~
+ ~ +~ + +~~ ~~~~~~~~~~~~~~~~~~~~ ~ +~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~ + +~~~~~~~~~~ ~ + ~~~~ ~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~ + ~ + ~~~ ~~~~~~~~~ ~ ~~~~~ ~~~~~~~~~~~~~~~
-

Happy birthday !

+

Happy birthday ~~~~~~~~~~~~!

    - - -
  • Happy birthday!
  • - + ~~~~ ~~~~ ~ ~ ~~ ~ ~ ~~~~~~~~~~ ~ ~~~ ~~~~ + ~ +
  • ~~~~ Happy birthday!
  • + ~
- - - - + ~~ ~~~~~~~~~~~ ~ ~~~ + ~ + ~~~~~~~ + ~

Secret message

- - - - - - - - \ No newline at end of file + ~ + + ~~~~~ ~~~~~~ + ~ + ~~~~~~ ~~~~~~ ~~~~ ~ ~~~~ ~~~~ ~ + ~~~~~~ ~~~ ~~~ ~ ~~~~ ~~~~ ~ + ~ +~ \ No newline at end of file diff --git a/src/Razor/Microsoft.AspNetCore.Razor.Language/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/NestedCSharp_DesignTime.codegen.html b/src/Razor/Microsoft.AspNetCore.Razor.Language/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/NestedCSharp_DesignTime.codegen.html index c1b9240ee07a..1a78d3888c91 100644 --- a/src/Razor/Microsoft.AspNetCore.Razor.Language/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/NestedCSharp_DesignTime.codegen.html +++ b/src/Razor/Microsoft.AspNetCore.Razor.Language/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/NestedCSharp_DesignTime.codegen.html @@ -1,8 +1,8 @@ - - - +~~ + ~~~~~~~~ ~~~~ ~~~~~~ ~~ ~~~~~~~~~~~~~ + ~
- . + ~~~~~~~~~~~~~~~~~.
- - \ No newline at end of file + ~ +~ \ No newline at end of file diff --git a/src/Razor/Microsoft.AspNetCore.Razor.Language/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/NestedCodeBlocks_DesignTime.codegen.html b/src/Razor/Microsoft.AspNetCore.Razor.Language/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/NestedCodeBlocks_DesignTime.codegen.html index c56380dfcb99..966b588e290f 100644 --- a/src/Razor/Microsoft.AspNetCore.Razor.Language/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/NestedCodeBlocks_DesignTime.codegen.html +++ b/src/Razor/Microsoft.AspNetCore.Razor.Language/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/NestedCodeBlocks_DesignTime.codegen.html @@ -1,4 +1,4 @@ - - - - \ No newline at end of file +~~~~~~~~ ~ + ~~~~~~~~ ~ + ~ +~ \ No newline at end of file diff --git a/src/Razor/Microsoft.AspNetCore.Razor.Language/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/NoLinePragmas_DesignTime.codegen.html b/src/Razor/Microsoft.AspNetCore.Razor.Language/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/NoLinePragmas_DesignTime.codegen.html index b7c02278c1d0..494393779b10 100644 --- a/src/Razor/Microsoft.AspNetCore.Razor.Language/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/NoLinePragmas_DesignTime.codegen.html +++ b/src/Razor/Microsoft.AspNetCore.Razor.Language/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/NoLinePragmas_DesignTime.codegen.html @@ -1,38 +1,38 @@ - - - +~~ + ~~~ ~ ~ ~~ +~ - -

Hello from C#, #

- - +~~~~~~~~ ~~ ~~~ ~ +

Hello from C#, #~~~~

+ ~ ~~ ~~ +~ - +~~~~~ ~~ ~~~ ~

We wrote 10 lines!

- +~ - - +~~~~~~~~~~ ~ + ~~~~ ~~~

No really, we wrote 10 lines!

- - + ~~~~~~ + ~~~~~~~~

Actually, we didn't...

- - + ~~~~~~ +~ - -

Hello again from C#, #

- +~~~~~~~~ ~ ~ ~~ ~ ~~ ~~~ ~ ~~ ~~ ~ +

Hello again from C#, #~~~~

+~ - +~~~~ ~

That time, we wrote 5 lines!

- -

Oh no! An error occurred:

- +~ ~~~~~~~~~~~~~~~ ~~~ ~ +

Oh no! An error occurred: ~~~~~~~~~~~~~

+~ - -

i is now

+~~ ~~~~ ~~~ ~~ ~~~~~~~~~~ ~~ ~~ ~~ +

i is now ~~

- +~~~~~~~~~ ~~~~~~~~~ ~

This block is locked, for your security!

- \ No newline at end of file +~ \ No newline at end of file diff --git a/src/Razor/Microsoft.AspNetCore.Razor.Language/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/NullConditionalExpressions_DesignTime.codegen.html b/src/Razor/Microsoft.AspNetCore.Razor.Language/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/NullConditionalExpressions_DesignTime.codegen.html index 7ad423b1f29e..e40e3c6f4954 100644 --- a/src/Razor/Microsoft.AspNetCore.Razor.Language/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/NullConditionalExpressions_DesignTime.codegen.html +++ b/src/Razor/Microsoft.AspNetCore.Razor.Language/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/NullConditionalExpressions_DesignTime.codegen.html @@ -1,11 +1,11 @@ - - - - - - +~~ + ~~~~~~~~~~~~~~ + ~~~~~~~~~~~~~~~~~~~~~~~ + ~~~~~~~~~~~~~~~~~~~~~~~~~~~ + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +~ - - - - \ No newline at end of file +~~~~~~~~~~~~~~ +~~~~~~~~~~~~~~~~~~~~~~~ +~~~~~~~~~~~~~~~~~~~~~~~~~~~ +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ \ No newline at end of file diff --git a/src/Razor/Microsoft.AspNetCore.Razor.Language/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/OpenedIf_DesignTime.codegen.html b/src/Razor/Microsoft.AspNetCore.Razor.Language/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/OpenedIf_DesignTime.codegen.html index 1675f6438378..42ba9c64b06a 100644 --- a/src/Razor/Microsoft.AspNetCore.Razor.Language/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/OpenedIf_DesignTime.codegen.html +++ b/src/Razor/Microsoft.AspNetCore.Razor.Language/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/OpenedIf_DesignTime.codegen.html @@ -1,5 +1,5 @@ - +~~~ ~~~~~~ ~ \ No newline at end of file diff --git a/src/Razor/Microsoft.AspNetCore.Razor.Language/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/ParserError_DesignTime.codegen.html b/src/Razor/Microsoft.AspNetCore.Razor.Language/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/ParserError_DesignTime.codegen.html index d0076463280f..61e3b424cb11 100644 --- a/src/Razor/Microsoft.AspNetCore.Razor.Language/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/ParserError_DesignTime.codegen.html +++ b/src/Razor/Microsoft.AspNetCore.Razor.Language/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/ParserError_DesignTime.codegen.html @@ -1,5 +1,5 @@ - - - - - \ No newline at end of file +~~ +~~ +~~~ ~ ~~~~ +~~~ ~ ~~~~ +~ \ No newline at end of file diff --git a/src/Razor/Microsoft.AspNetCore.Razor.Language/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/RazorComments_DesignTime.codegen.html b/src/Razor/Microsoft.AspNetCore.Razor.Language/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/RazorComments_DesignTime.codegen.html index f851e2e59774..d4faa3491649 100644 --- a/src/Razor/Microsoft.AspNetCore.Razor.Language/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/RazorComments_DesignTime.codegen.html +++ b/src/Razor/Microsoft.AspNetCore.Razor.Language/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/RazorComments_DesignTime.codegen.html @@ -1,18 +1,18 @@ - -

This should be shown

+~~~~~~ ~~ ~~~ ~~~~~ ~~ ~~ ~~~~~~~~~~ +

This should ~~ ~~~ ~~ be shown

- - - - - - - +~~ + ~~ ~~~~~ ~~~ ~~~~~~~~~~~~~ ~~~~~ ~~ + ~~~~~~~~~ ~~~ ~ ~~ ~~~ ~~~~~~~~~~~~~ ~~~~~ ~~ ~~~~~ + ~~~~~~ ~~ ~~~~~ ~ + ~~~~~ ~~~~ + ~ +~ - -

But this should show the comment syntax:

+~~ ~~~ ~~~ ~ ~~~ ~~~ ~~~~ ~ +

But this should show the comment syntax: ~~~~

- +~~~~~~~~~ - + diff --git a/src/Razor/Microsoft.AspNetCore.Razor.Language/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/RemoveTagHelperDirective_DesignTime.codegen.html b/src/Razor/Microsoft.AspNetCore.Razor.Language/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/RemoveTagHelperDirective_DesignTime.codegen.html index 77def406f5ff..1460ade1eacc 100644 --- a/src/Razor/Microsoft.AspNetCore.Razor.Language/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/RemoveTagHelperDirective_DesignTime.codegen.html +++ b/src/Razor/Microsoft.AspNetCore.Razor.Language/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/RemoveTagHelperDirective_DesignTime.codegen.html @@ -1 +1 @@ - +~~~~~~~~~~~~~~~~ ~~ ~~~~~~~~~~~~ diff --git a/src/Razor/Microsoft.AspNetCore.Razor.Language/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/Sections_DesignTime.codegen.html b/src/Razor/Microsoft.AspNetCore.Razor.Language/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/Sections_DesignTime.codegen.html index 72ff37f26cb5..b47779a0df74 100644 --- a/src/Razor/Microsoft.AspNetCore.Razor.Language/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/Sections_DesignTime.codegen.html +++ b/src/Razor/Microsoft.AspNetCore.Razor.Language/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/Sections_DesignTime.codegen.html @@ -1,17 +1,17 @@ - - - +~~ + ~~~~~~ ~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~ +~
This is in the Body> - -
This is in Section 2
- +~~~~~~~~ ~~~~~~~~ ~ +
This is in Section 2
+~ - +~~~~~~~~ ~~~~~~~~ ~
This is in Section 1
- +~ - - - \ No newline at end of file +~~~~~~~~ ~~~~~~~~~~~~~~~ ~ + ~~ ~~~~~~~~~~~~~ ~~~~~~~ ~ ~ ~~~~~~~ ~ +~ \ No newline at end of file diff --git a/src/Razor/Microsoft.AspNetCore.Razor.Language/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/SimpleUnspacedIf_DesignTime.codegen.html b/src/Razor/Microsoft.AspNetCore.Razor.Language/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/SimpleUnspacedIf_DesignTime.codegen.html index 11a63ced54cf..221eda5a6c0f 100644 --- a/src/Razor/Microsoft.AspNetCore.Razor.Language/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/SimpleUnspacedIf_DesignTime.codegen.html +++ b/src/Razor/Microsoft.AspNetCore.Razor.Language/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/SimpleUnspacedIf_DesignTime.codegen.html @@ -1,4 +1,4 @@ - - +~~~ ~~~~~~ +~
- \ No newline at end of file +~ \ No newline at end of file diff --git a/src/Razor/Microsoft.AspNetCore.Razor.Language/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/SingleLineControlFlowStatements_DesignTime.codegen.html b/src/Razor/Microsoft.AspNetCore.Razor.Language/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/SingleLineControlFlowStatements_DesignTime.codegen.html index 3d06dc8b909c..897f7e85741e 100644 --- a/src/Razor/Microsoft.AspNetCore.Razor.Language/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/SingleLineControlFlowStatements_DesignTime.codegen.html +++ b/src/Razor/Microsoft.AspNetCore.Razor.Language/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/SingleLineControlFlowStatements_DesignTime.codegen.html @@ -1,102 +1,102 @@

Before Text

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +~~ + ~~ ~~~~~~~~~~~~~~~~~~~~~~~~ ~ ~ ~~ ~~ ~~~~~~~~~~ ~~~~ ~~ ~~~~~~~~~ ~~ ~~~ ~~~~ ~~~~~~~~~~~~~ + + ~~~~~~ ~~~~~ + ~ + ~~ ~~~~~~~~~~~~~~~~~~~~~~~~ ~ ~ ~~ ~~ + ~~~~~~ ~~~~~~~~ ~~~~ ~~ ~~~~~~~~~ ~~ ~~~ + ~~~~ ~~ ~~~~~~~~~~~~~~~~~~~~~~~~ ~ ~ ~~ ~~ + ~~~~~~ ~~~~~~~~ ~~~~ ~~ ~~~~~~~~~ ~~ ~~~ + ~~~~ + ~~~~~~ ~~~~~~~~~~~~~ + ~ + + ~~~ ~~~~ ~ ~ ~~ ~ ~ ~~~ ~~~~ + ~~ ~~~~~~~~~~~~ ~ ~~~~~~ + ~~~~ + + ~~~~~~~~ ~~~~ ~~~~ ~~ ~~~~~ ~~~~~~~~~~ + ~~~~~ + + ~~ + ~~~~~~~~~~~~~ + ~~~~~ ~~~~~~~~~~~~~~~ ~~ ~~~ + + ~~~~~ ~~~~~~~~~~~~~~~ ~~ ~~~ + ~~~~~~~~~~~~~~~ + + ~~~~~ ~~~~ ~~~~~~ ~ ~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + ~~~~~~~~~~~~~~~~~~~ + + ~~~~~ ~~~~~~ + ~~~~~~~~~~~~~~~ +~ + +~~~~~~~~~~ ~ + ~~~~~~ ~~~~~~ ~~~~~ + ~ + ~~~ ~ ~ ~~~ + + ~~ ~~~~~~~~~~~~~~~~~~~~~~~~ ~ ~ ~~ ~~ + ~~~~~~ ~~~~~~~~ ~~~~ ~~ ~~~~~~~~~ ~~ ~~~ + ~~~~ + ~~~~~~ ~~~ ~~~~~ ~~~~~~~~~ ~~ ~~~~~ - - - + ~~~ ~~~~ ~ ~ ~~ ~ ~ ~~~ ~~~~ + ~~ ~~~~~~~~~~~~ ~ ~~~~~~ + ~~~~ - - + ~~~~~~~ ~~~~ ~~~~ ~~ ~~~~~ ~~~~~~~~~~ + ~~~~~ - - - + ~~ + ~~~~~~~~~~~~~ + ~~~~~ ~~~~~~~~~~~~~~~ ~~ ~~~ - - + ~~~~~ ~~~~~~~~~~~~~~~ ~~ ~~~ + ~~~~~~~~~~~~~~~ - - + ~~~~~ ~~~~ ~~~~~~ ~ ~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + ~~~~~~~~~~~~~~~~~~~ - - - + ~~~~ ~~~~~~ + ~~~~~~~~~~~~~~~ + ~ - + ~~~ ~~~~~~~~~~~~ ~ ~~ - - - - + ~~~~~~ ~~~~ ~~~~~~~~~~~~~~~~ + ~ + ~~ ~~~~~~ ~~~~~~~~~~~~~~~ + ~ - +~ - - +~~~~ ~~~~ ~ ~ ~~ ~ ~ ~~~ ~~~~ + ~~ - - +~~~~~~~~ ~~~~ ~~~~ ~~ ~~~~~ ~~~~~~~~~~ + ~~~~~ - - - +~~~ + ~~~~~~~~~~~~~ +~~~~~ ~~~~~~~~~~~~~~~ ~~ ~~~ - - +~~~~~~ ~~~~~~~~~~~~~~~ ~~ ~~~ + ~~~~~~~~~~~~~~~ - - - +~~~~~~ ~~~~ ~~~~~~ ~ ~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + ~~ ~~~~~~~ ~~~ ~~~~~~ ~~~~ + ~~~~~~~~~~~~~~~~~~~ - - +~~~~~ ~~~~~~ + ~~~~~~~~~~~~~~~ -

Hello!

+~~~ ~~~~~~ ~~~~~~~~~~~~~~~~

Hello!

- -

The time is

+~~~ ~~~~~~ + ~~

The time is ~~~~~~~~~~~~~

After Text

\ No newline at end of file diff --git a/src/Razor/Microsoft.AspNetCore.Razor.Language/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/StringLiterals_DesignTime.codegen.html b/src/Razor/Microsoft.AspNetCore.Razor.Language/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/StringLiterals_DesignTime.codegen.html index b47c6a931ccb..823fe9a3eed3 100644 --- a/src/Razor/Microsoft.AspNetCore.Razor.Language/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/StringLiterals_DesignTime.codegen.html +++ b/src/Razor/Microsoft.AspNetCore.Razor.Language/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/StringLiterals_DesignTime.codegen.html @@ -83,7 +83,7 @@

This is line 83

This is line 84


- +~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~ ~

This is line 1 nested

This is line 2 nested

This is line 3 nested

@@ -159,7 +159,7 @@

This is line 73 nested

This is line 74 nested

This is line 75 nested

- +~

This is line 1

This is line 2

This is line 3

@@ -203,7 +203,7 @@

This is line 41

This is line 42

This is line 43

hi! - +~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~ ~

This is line 1 nested

This is line 2 nested

This is line 3 nested

@@ -234,4 +234,4 @@

This is line 28 nested

This is line 29 nested

30

- ! \ No newline at end of file +~! \ No newline at end of file diff --git a/src/Razor/Microsoft.AspNetCore.Razor.Language/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/Tags_DesignTime.codegen.html b/src/Razor/Microsoft.AspNetCore.Razor.Language/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/Tags_DesignTime.codegen.html index 419c13c11c9b..0dfbab3b0cdc 100644 --- a/src/Razor/Microsoft.AspNetCore.Razor.Language/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/Tags_DesignTime.codegen.html +++ b/src/Razor/Microsoft.AspNetCore.Razor.Language/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/Tags_DesignTime.codegen.html @@ -1,6 +1,6 @@ - - - +~~ + +~