From f781efb37b12e0e5f53f492cf8493b79d285e481 Mon Sep 17 00:00:00 2001
From: Brennan <brecon@microsoft.com>
Date: Thu, 23 Jun 2022 16:16:44 -0700
Subject: [PATCH] Split Blazor templates into 2 projects (#42382)

---
 AspNetCore.sln                                | 21 +++++-
 src/ProjectTemplates/ProjectTemplates.slnf    |  7 +-
 .../ProjectTemplatesNoDeps.slnf               |  3 +-
 .../BlazorTemplateTest.cs                     |  0
 .../.gitattributes                            |  0
 .../BlazorServerTemplateTest.cs               |  0
 .../EmptyBlazorServerTemplateTest.cs          |  0
 .../Templates.Blazor.Server.Tests.csproj}     |  2 +-
 .../BlazorWasmTemplateTest.cs                 |  0
 .../EmptyBlazorWasmTemplateTest.cs            |  0
 .../Templates.Blazor.WebAssembly.Tests.csproj | 68 +++++++++++++++++++
 11 files changed, 95 insertions(+), 6 deletions(-)
 rename src/ProjectTemplates/{test/Templates.Blazor.Tests => Shared}/BlazorTemplateTest.cs (100%)
 rename src/ProjectTemplates/test/{Templates.Blazor.Tests => Templates.Blazor.Server.Tests}/.gitattributes (100%)
 rename src/ProjectTemplates/test/{Templates.Blazor.Tests => Templates.Blazor.Server.Tests}/BlazorServerTemplateTest.cs (100%)
 rename src/ProjectTemplates/test/{Templates.Blazor.Tests => Templates.Blazor.Server.Tests}/EmptyBlazorServerTemplateTest.cs (100%)
 rename src/ProjectTemplates/test/{Templates.Blazor.Tests/Templates.Blazor.Tests.csproj => Templates.Blazor.Server.Tests/Templates.Blazor.Server.Tests.csproj} (97%)
 rename src/ProjectTemplates/test/{Templates.Blazor.Tests => Templates.Blazor.WebAssembly.Tests}/BlazorWasmTemplateTest.cs (100%)
 rename src/ProjectTemplates/test/{Templates.Blazor.Tests => Templates.Blazor.WebAssembly.Tests}/EmptyBlazorWasmTemplateTest.cs (100%)
 create mode 100644 src/ProjectTemplates/test/Templates.Blazor.WebAssembly.Tests/Templates.Blazor.WebAssembly.Tests.csproj

diff --git a/AspNetCore.sln b/AspNetCore.sln
index c43d2523898..28b0be916a4 100644
--- a/AspNetCore.sln
+++ b/AspNetCore.sln
@@ -1748,7 +1748,7 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "TestInfrastructure", "TestI
 EndProject
 Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Templates.Mvc.Tests", "src\ProjectTemplates\test\Templates.Mvc.Tests\Templates.Mvc.Tests.csproj", "{AA7445F5-BD28-400C-8507-E2E0D3CF7D7E}"
 EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Templates.Blazor.Tests", "src\ProjectTemplates\test\Templates.Blazor.Tests\Templates.Blazor.Tests.csproj", "{281BF9DB-7B8A-446B-9611-10A60903F125}"
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Templates.Blazor.Server.Tests", "src\ProjectTemplates\test\Templates.Blazor.Server.Tests\Templates.Blazor.Server.Tests.csproj", "{281BF9DB-7B8A-446B-9611-10A60903F125}"
 EndProject
 Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "stress", "stress", "{A5946454-4788-4871-8F23-A9471D55F115}"
 EndProject
@@ -1756,6 +1756,8 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.AspNetCore.Compon
 EndProject
 Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "CustomElements", "CustomElements", "{0BB58FB6-8B66-4C6D-BA8A-DF3AFAF9AB8F}"
 EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Templates.Blazor.WebAssembly.Tests", "src\ProjectTemplates\test\Templates.Blazor.WebAssembly.Tests\Templates.Blazor.WebAssembly.Tests.csproj", "{7CA0A9AF-9088-471C-B0B6-EBF43F21D3B9}"
+EndProject
 Global
 	GlobalSection(SolutionConfigurationPlatforms) = preSolution
 		Debug|Any CPU = Debug|Any CPU
@@ -10501,6 +10503,22 @@ Global
 		{76C3E22D-092B-4E8A-81F0-DCF071BFF4CD}.Release|x64.Build.0 = Release|Any CPU
 		{76C3E22D-092B-4E8A-81F0-DCF071BFF4CD}.Release|x86.ActiveCfg = Release|Any CPU
 		{76C3E22D-092B-4E8A-81F0-DCF071BFF4CD}.Release|x86.Build.0 = Release|Any CPU
+		{7CA0A9AF-9088-471C-B0B6-EBF43F21D3B9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{7CA0A9AF-9088-471C-B0B6-EBF43F21D3B9}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{7CA0A9AF-9088-471C-B0B6-EBF43F21D3B9}.Debug|arm64.ActiveCfg = Debug|Any CPU
+		{7CA0A9AF-9088-471C-B0B6-EBF43F21D3B9}.Debug|arm64.Build.0 = Debug|Any CPU
+		{7CA0A9AF-9088-471C-B0B6-EBF43F21D3B9}.Debug|x64.ActiveCfg = Debug|Any CPU
+		{7CA0A9AF-9088-471C-B0B6-EBF43F21D3B9}.Debug|x64.Build.0 = Debug|Any CPU
+		{7CA0A9AF-9088-471C-B0B6-EBF43F21D3B9}.Debug|x86.ActiveCfg = Debug|Any CPU
+		{7CA0A9AF-9088-471C-B0B6-EBF43F21D3B9}.Debug|x86.Build.0 = Debug|Any CPU
+		{7CA0A9AF-9088-471C-B0B6-EBF43F21D3B9}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{7CA0A9AF-9088-471C-B0B6-EBF43F21D3B9}.Release|Any CPU.Build.0 = Release|Any CPU
+		{7CA0A9AF-9088-471C-B0B6-EBF43F21D3B9}.Release|arm64.ActiveCfg = Release|Any CPU
+		{7CA0A9AF-9088-471C-B0B6-EBF43F21D3B9}.Release|arm64.Build.0 = Release|Any CPU
+		{7CA0A9AF-9088-471C-B0B6-EBF43F21D3B9}.Release|x64.ActiveCfg = Release|Any CPU
+		{7CA0A9AF-9088-471C-B0B6-EBF43F21D3B9}.Release|x64.Build.0 = Release|Any CPU
+		{7CA0A9AF-9088-471C-B0B6-EBF43F21D3B9}.Release|x86.ActiveCfg = Release|Any CPU
+		{7CA0A9AF-9088-471C-B0B6-EBF43F21D3B9}.Release|x86.Build.0 = Release|Any CPU
 	EndGlobalSection
 	GlobalSection(SolutionProperties) = preSolution
 		HideSolutionNode = FALSE
@@ -11368,6 +11386,7 @@ Global
 		{A5946454-4788-4871-8F23-A9471D55F115} = {4FDDC525-4E60-4CAF-83A3-261C5B43721F}
 		{76C3E22D-092B-4E8A-81F0-DCF071BFF4CD} = {0BB58FB6-8B66-4C6D-BA8A-DF3AFAF9AB8F}
 		{0BB58FB6-8B66-4C6D-BA8A-DF3AFAF9AB8F} = {60D51C98-2CC0-40DF-B338-44154EFEE2FF}
+		{7CA0A9AF-9088-471C-B0B6-EBF43F21D3B9} = {08D53E58-4AAE-40C4-8497-63EC8664F304}
 	EndGlobalSection
 	GlobalSection(ExtensibilityGlobals) = postSolution
 		SolutionGuid = {3E8720B3-DBDD-498C-B383-2CC32A054E8F}
diff --git a/src/ProjectTemplates/ProjectTemplates.slnf b/src/ProjectTemplates/ProjectTemplates.slnf
index be4040672d2..e54935c13a1 100644
--- a/src/ProjectTemplates/ProjectTemplates.slnf
+++ b/src/ProjectTemplates/ProjectTemplates.slnf
@@ -66,9 +66,10 @@
       "src\\ProjectTemplates\\Web.Client.ItemTemplates\\Microsoft.DotNet.Web.Client.ItemTemplates.csproj",
       "src\\ProjectTemplates\\Web.ItemTemplates\\Microsoft.DotNet.Web.ItemTemplates.csproj",
       "src\\ProjectTemplates\\Web.ProjectTemplates\\Microsoft.DotNet.Web.ProjectTemplates.csproj",
-      "src\\ProjectTemplates\\test\\Templates.Tests\\Templates.Tests.csproj",
+      "src\\ProjectTemplates\\test\\Templates.Blazor.Server.Tests\\Templates.Blazor.Server.Tests.csproj",
+      "src\\ProjectTemplates\\test\\Templates.Blazor.WebAssembly.Tests\\Templates.Blazor.WebAssembly.Tests.csproj",
       "src\\ProjectTemplates\\test\\Templates.Mvc.Tests\\Templates.Mvc.Tests.csproj",
-      "src\\ProjectTemplates\\test\\Templates.Blazor.Tests\\Templates.Blazor.Tests.csproj",
+      "src\\ProjectTemplates\\test\\Templates.Tests\\Templates.Tests.csproj",
       "src\\Razor\\Razor.Runtime\\src\\Microsoft.AspNetCore.Razor.Runtime.csproj",
       "src\\Razor\\Razor\\src\\Microsoft.AspNetCore.Razor.csproj",
       "src\\Security\\Authentication\\Cookies\\src\\Microsoft.AspNetCore.Authentication.Cookies.csproj",
@@ -94,4 +95,4 @@
       "src\\submodules\\spa-templates\\src\\Microsoft.DotNet.Web.Spa.ProjectTemplates.csproj"
     ]
   }
-}
+}
\ No newline at end of file
diff --git a/src/ProjectTemplates/ProjectTemplatesNoDeps.slnf b/src/ProjectTemplates/ProjectTemplatesNoDeps.slnf
index a19e3cfbb51..e79a6da6bee 100644
--- a/src/ProjectTemplates/ProjectTemplatesNoDeps.slnf
+++ b/src/ProjectTemplates/ProjectTemplatesNoDeps.slnf
@@ -9,7 +9,8 @@
       "src\\submodules\\spa-templates\\src\\Microsoft.DotNet.Web.Spa.ProjectTemplates.csproj",
       "src\\ProjectTemplates\\test\\Templates.Tests\\Templates.Tests.csproj",
       "src\\ProjectTemplates\\test\\Templates.Mvc.Tests\\Templates.Mvc.Tests.csproj",
-      "src\\ProjectTemplates\\test\\Templates.Blazor.Tests\\Templates.Blazor.Tests.csproj",
+      "src\\ProjectTemplates\\test\\Templates.Blazor.Server.Tests\\Templates.Blazor.Server.Tests.csproj",
+      "src\\ProjectTemplates\\test\\Templates.Blazor.WebAssembly.Tests\\Templates.Blazor.WebAssembly.Tests.csproj",
       "src\\Shared\\BrowserTesting\\src\\Microsoft.AspNetCore.BrowserTesting.csproj"
     ]
   }
diff --git a/src/ProjectTemplates/test/Templates.Blazor.Tests/BlazorTemplateTest.cs b/src/ProjectTemplates/Shared/BlazorTemplateTest.cs
similarity index 100%
rename from src/ProjectTemplates/test/Templates.Blazor.Tests/BlazorTemplateTest.cs
rename to src/ProjectTemplates/Shared/BlazorTemplateTest.cs
diff --git a/src/ProjectTemplates/test/Templates.Blazor.Tests/.gitattributes b/src/ProjectTemplates/test/Templates.Blazor.Server.Tests/.gitattributes
similarity index 100%
rename from src/ProjectTemplates/test/Templates.Blazor.Tests/.gitattributes
rename to src/ProjectTemplates/test/Templates.Blazor.Server.Tests/.gitattributes
diff --git a/src/ProjectTemplates/test/Templates.Blazor.Tests/BlazorServerTemplateTest.cs b/src/ProjectTemplates/test/Templates.Blazor.Server.Tests/BlazorServerTemplateTest.cs
similarity index 100%
rename from src/ProjectTemplates/test/Templates.Blazor.Tests/BlazorServerTemplateTest.cs
rename to src/ProjectTemplates/test/Templates.Blazor.Server.Tests/BlazorServerTemplateTest.cs
diff --git a/src/ProjectTemplates/test/Templates.Blazor.Tests/EmptyBlazorServerTemplateTest.cs b/src/ProjectTemplates/test/Templates.Blazor.Server.Tests/EmptyBlazorServerTemplateTest.cs
similarity index 100%
rename from src/ProjectTemplates/test/Templates.Blazor.Tests/EmptyBlazorServerTemplateTest.cs
rename to src/ProjectTemplates/test/Templates.Blazor.Server.Tests/EmptyBlazorServerTemplateTest.cs
diff --git a/src/ProjectTemplates/test/Templates.Blazor.Tests/Templates.Blazor.Tests.csproj b/src/ProjectTemplates/test/Templates.Blazor.Server.Tests/Templates.Blazor.Server.Tests.csproj
similarity index 97%
rename from src/ProjectTemplates/test/Templates.Blazor.Tests/Templates.Blazor.Tests.csproj
rename to src/ProjectTemplates/test/Templates.Blazor.Server.Tests/Templates.Blazor.Server.Tests.csproj
index 2e5efd76d42..e7ed1ccb383 100644
--- a/src/ProjectTemplates/test/Templates.Blazor.Tests/Templates.Blazor.Tests.csproj
+++ b/src/ProjectTemplates/test/Templates.Blazor.Server.Tests/Templates.Blazor.Server.Tests.csproj
@@ -4,7 +4,7 @@
 
   <PropertyGroup>
     <TargetFramework>$(DefaultNetCoreTargetFramework)</TargetFramework>
-    <TestGroupName>ProjectTemplates.Blazor.Tests</TestGroupName>
+    <TestGroupName>ProjectTemplates.Blazor.Server.Tests</TestGroupName>
     <DefineConstants>$(DefineConstants);XPLAT</DefineConstants>
 
     <RunTemplateTests Condition="'$(RunTemplateTests)' == ''">true</RunTemplateTests>
diff --git a/src/ProjectTemplates/test/Templates.Blazor.Tests/BlazorWasmTemplateTest.cs b/src/ProjectTemplates/test/Templates.Blazor.WebAssembly.Tests/BlazorWasmTemplateTest.cs
similarity index 100%
rename from src/ProjectTemplates/test/Templates.Blazor.Tests/BlazorWasmTemplateTest.cs
rename to src/ProjectTemplates/test/Templates.Blazor.WebAssembly.Tests/BlazorWasmTemplateTest.cs
diff --git a/src/ProjectTemplates/test/Templates.Blazor.Tests/EmptyBlazorWasmTemplateTest.cs b/src/ProjectTemplates/test/Templates.Blazor.WebAssembly.Tests/EmptyBlazorWasmTemplateTest.cs
similarity index 100%
rename from src/ProjectTemplates/test/Templates.Blazor.Tests/EmptyBlazorWasmTemplateTest.cs
rename to src/ProjectTemplates/test/Templates.Blazor.WebAssembly.Tests/EmptyBlazorWasmTemplateTest.cs
diff --git a/src/ProjectTemplates/test/Templates.Blazor.WebAssembly.Tests/Templates.Blazor.WebAssembly.Tests.csproj b/src/ProjectTemplates/test/Templates.Blazor.WebAssembly.Tests/Templates.Blazor.WebAssembly.Tests.csproj
new file mode 100644
index 00000000000..a41d284fc5d
--- /dev/null
+++ b/src/ProjectTemplates/test/Templates.Blazor.WebAssembly.Tests/Templates.Blazor.WebAssembly.Tests.csproj
@@ -0,0 +1,68 @@
+<Project Sdk="Microsoft.NET.Sdk">
+  <!-- Shared testing infrastructure for running E2E tests using selenium -->
+  <Import Condition="'$(SkipTestBuild)' != 'true'" Project="$(SharedSourceRoot)E2ETesting\E2ETesting.props" />
+
+  <PropertyGroup>
+    <TargetFramework>$(DefaultNetCoreTargetFramework)</TargetFramework>
+    <TestGroupName>ProjectTemplates.Blazor.WebAssembly.Tests</TestGroupName>
+    <DefineConstants>$(DefineConstants);XPLAT</DefineConstants>
+
+    <RunTemplateTests Condition="'$(RunTemplateTests)' == ''">true</RunTemplateTests>
+    <SkipTests Condition="'$(RunTemplateTests)' != 'true'">true</SkipTests>
+
+    <BaseOutputPath />
+    <OutputPath />
+
+    <!-- Properties that affect test runs -->
+    <!-- TestTemplateCreationFolder is the folder where the templates will be created. Will point out to $(OutputDir)$(TestTemplateCreationFolder) -->
+    <TestTemplateCreationFolder>TestTemplates\</TestTemplateCreationFolder>
+    <TestPackageRestorePath>$([MSBuild]::EnsureTrailingSlash('$(RepoRoot)'))obj\template-restore\</TestPackageRestorePath>
+    <TestDependsOnAspNetPackages>true</TestDependsOnAspNetPackages>
+    <SkipHelixQueues>
+      $(HelixQueueArmDebian11);
+    </SkipHelixQueues>
+  </PropertyGroup>
+
+  <ItemGroup>
+    <Compile Include="$(SharedSourceRoot)CommandLineUtils\**\*.cs" />
+    <Compile Include="$(SharedSourceRoot)CertificateGeneration\**\*.cs" LinkBase="shared\CertificateGeneration" />
+  </ItemGroup>
+
+  <ItemGroup>
+    <Compile Include="$(SharedSourceRoot)Process\*.cs" LinkBase="shared\Process" />
+    <Compile Include="..\..\Shared\**" LinkBase="Helpers" />
+  </ItemGroup>
+
+  <ItemGroup>
+    <!-- We need the actual templates in the output directory for tests to verify file encodings. -->
+    <Content Include="..\..\Web.ProjectTemplates\**" LinkBase="Assets\Web.ProjectTemplates" />
+  </ItemGroup>
+
+  <ItemGroup>
+    <HelixContent Include="$(OutputPath)$(TargetFramework)Assets\**" />
+  </ItemGroup>
+
+  <ItemGroup>
+    <Reference Include="AngleSharp" />
+    <Reference Include="System.Net.Http" />
+    <ProjectReference Include="$(RepoRoot)src\Framework\App.Runtime\src\Microsoft.AspNetCore.App.Runtime.csproj"
+      Private="false"
+      ReferenceOutputAssembly="false"
+      SkipGetTargetFrameworkProperties="true" />
+
+    <ProjectReference Include="$(RepoRoot)src\Hosting\Server.IntegrationTesting\src\Microsoft.AspNetCore.Server.IntegrationTesting.csproj" />
+    <ProjectReference Include="$(RepoRoot)src\Shared\BrowserTesting\src\Microsoft.AspNetCore.BrowserTesting.csproj" />
+    <ProjectReference Include="../../Web.ProjectTemplates/Microsoft.DotNet.Web.ProjectTemplates.csproj"
+      Private="false"
+      ReferenceOutputAssembly="false"
+      SkipGetTargetFrameworkProperties="true" />
+  </ItemGroup>
+
+  <PropertyGroup>
+    <PreserveExistingLogsInOutput Condition="'$(PreserveExistingLogsInOutput)' == '' AND '$(ContinuousIntegrationBuild)' == 'true'">true</PreserveExistingLogsInOutput>
+    <PreserveExistingLogsInOutput Condition="'$(PreserveExistingLogsInOutput)' == ''">false</PreserveExistingLogsInOutput>
+  </PropertyGroup>
+
+  <!-- Shared testing infrastructure for running E2E tests -->
+  <Import Condition="'$(SkipTestBuild)' != 'true'" Project="..\..\TestInfrastructure\PrepareForTest.targets" />
+</Project>
-- 
GitLab