From 3d1caa474ee0cd9f8e2bc72782f3096393b5cd78 Mon Sep 17 00:00:00 2001 From: Pranav K Date: Fri, 21 Oct 2016 12:00:57 -0700 Subject: [PATCH] Adding a functional test for desktop only project --- TestApps.sln | 6 ++ .../SimpleAppDesktopOnly.Home.Index.txt | 59 ++++++++++++++++ .../SimpleAppDesktopOnlyTest.cs | 48 +++++++++++++ .../Controllers/HomeController.cs | 9 +++ testapps/SimpleAppDesktopOnly/Program.cs | 26 +++++++ .../SimpleAppDesktopOnly.xproj | 19 ++++++ testapps/SimpleAppDesktopOnly/Startup.cs | 26 +++++++ .../Views/Home/Index.cshtml | 5 ++ .../Views/Shared/_Layout.cshtml | 68 +++++++++++++++++++ .../Views/_ViewImports.cshtml | 2 + .../Views/_ViewStart.cshtml | 3 + testapps/SimpleAppDesktopOnly/project.json | 33 +++++++++ 12 files changed, 304 insertions(+) create mode 100644 test/Microsoft.AspNetCore.Mvc.Razor.Precompilation.FunctionalTests/Resources/SimpleAppDesktopOnly.Home.Index.txt create mode 100644 test/Microsoft.AspNetCore.Mvc.Razor.Precompilation.FunctionalTests/SimpleAppDesktopOnlyTest.cs create mode 100644 testapps/SimpleAppDesktopOnly/Controllers/HomeController.cs create mode 100644 testapps/SimpleAppDesktopOnly/Program.cs create mode 100644 testapps/SimpleAppDesktopOnly/SimpleAppDesktopOnly.xproj create mode 100644 testapps/SimpleAppDesktopOnly/Startup.cs create mode 100644 testapps/SimpleAppDesktopOnly/Views/Home/Index.cshtml create mode 100644 testapps/SimpleAppDesktopOnly/Views/Shared/_Layout.cshtml create mode 100644 testapps/SimpleAppDesktopOnly/Views/_ViewImports.cshtml create mode 100644 testapps/SimpleAppDesktopOnly/Views/_ViewStart.cshtml create mode 100644 testapps/SimpleAppDesktopOnly/project.json diff --git a/TestApps.sln b/TestApps.sln index 7b40d9f475..718673b08a 100644 --- a/TestApps.sln +++ b/TestApps.sln @@ -23,6 +23,8 @@ Project("{8BB2217D-0F2D-49D1-97BC-3654ED321F3B}") = "PublishWIthEmbedViewSources EndProject Project("{8BB2217D-0F2D-49D1-97BC-3654ED321F3B}") = "StrongNamedApp", "testapps\StrongNamedApp\StrongNamedApp.xproj", "{88903BE5-0676-4667-8160-B24646E0B76E}" EndProject +Project("{8BB2217D-0F2D-49D1-97BC-3654ED321F3B}") = "SimpleAppDesktopOnly", "testapps\SimpleAppDesktopOnly\SimpleAppDesktopOnly.xproj", "{A0B0A141-A32B-4F33-B85F-5CA8C107105F}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -57,6 +59,10 @@ Global {88903BE5-0676-4667-8160-B24646E0B76E}.Debug|Any CPU.Build.0 = Debug|Any CPU {88903BE5-0676-4667-8160-B24646E0B76E}.Release|Any CPU.ActiveCfg = Release|Any CPU {88903BE5-0676-4667-8160-B24646E0B76E}.Release|Any CPU.Build.0 = Release|Any CPU + {A0B0A141-A32B-4F33-B85F-5CA8C107105F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {A0B0A141-A32B-4F33-B85F-5CA8C107105F}.Debug|Any CPU.Build.0 = Debug|Any CPU + {A0B0A141-A32B-4F33-B85F-5CA8C107105F}.Release|Any CPU.ActiveCfg = Release|Any CPU + {A0B0A141-A32B-4F33-B85F-5CA8C107105F}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/test/Microsoft.AspNetCore.Mvc.Razor.Precompilation.FunctionalTests/Resources/SimpleAppDesktopOnly.Home.Index.txt b/test/Microsoft.AspNetCore.Mvc.Razor.Precompilation.FunctionalTests/Resources/SimpleAppDesktopOnly.Home.Index.txt new file mode 100644 index 0000000000..e047f6ed3e --- /dev/null +++ b/test/Microsoft.AspNetCore.Mvc.Razor.Precompilation.FunctionalTests/Resources/SimpleAppDesktopOnly.Home.Index.txt @@ -0,0 +1,59 @@ + + + + + + Home Page - SimpleApp + + + + + + + + + + +
+ +AspNetCore.Views_Home_Index_cshtml, SimpleAppDesktopOnly.PrecompiledViews, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null +
+
+

© 2016 - SimpleApp

+
+
+ + + + + + + + + + + + AspNetCore.Views_Shared__Layout_cshtml, SimpleAppDesktopOnly.PrecompiledViews, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + + diff --git a/test/Microsoft.AspNetCore.Mvc.Razor.Precompilation.FunctionalTests/SimpleAppDesktopOnlyTest.cs b/test/Microsoft.AspNetCore.Mvc.Razor.Precompilation.FunctionalTests/SimpleAppDesktopOnlyTest.cs new file mode 100644 index 0000000000..e57323bb9a --- /dev/null +++ b/test/Microsoft.AspNetCore.Mvc.Razor.Precompilation.FunctionalTests/SimpleAppDesktopOnlyTest.cs @@ -0,0 +1,48 @@ +// 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.Threading.Tasks; +using Microsoft.AspNetCore.Server.IntegrationTesting; +using Microsoft.AspNetCore.Testing.xunit; +using Xunit; + +namespace Microsoft.AspNetCore.Mvc.Razor.Precompilation +{ + public class SimpleAppDesktopOnlyTest : IClassFixture + { + public SimpleAppDesktopOnlyTest(SimpleAppDesktopOnlyTestFixture fixture) + { + Fixture = fixture; + } + + public ApplicationTestFixture Fixture { get; } + + [Fact] + [OSSkipConditionAttribute(OperatingSystems.Linux)] + [OSSkipConditionAttribute(OperatingSystems.Windows)] + public async Task Precompilation_WorksForSimpleApps() + { + // Arrange + using (var deployer = Fixture.CreateDeployment(RuntimeFlavor.Clr)) + { + var deploymentResult = deployer.Deploy(); + + // Act + var response = await Fixture.HttpClient.GetStringWithRetryAsync( + deploymentResult.ApplicationBaseUri, + Fixture.Logger); + + // Assert + TestEmbeddedResource.AssertContent("SimpleAppDesktopOnly.Home.Index.txt", response); + } + } + + public class SimpleAppDesktopOnlyTestFixture : ApplicationTestFixture + { + public SimpleAppDesktopOnlyTestFixture() + : base("SimpleAppDesktopOnly") + { + } + } + } +} diff --git a/testapps/SimpleAppDesktopOnly/Controllers/HomeController.cs b/testapps/SimpleAppDesktopOnly/Controllers/HomeController.cs new file mode 100644 index 0000000000..0b44851019 --- /dev/null +++ b/testapps/SimpleAppDesktopOnly/Controllers/HomeController.cs @@ -0,0 +1,9 @@ +using Microsoft.AspNetCore.Mvc; + +namespace SimpleApp.Controllers +{ + public class HomeController : Controller + { + public IActionResult Index() => View(); + } +} diff --git a/testapps/SimpleAppDesktopOnly/Program.cs b/testapps/SimpleAppDesktopOnly/Program.cs new file mode 100644 index 0000000000..6ed39c5e32 --- /dev/null +++ b/testapps/SimpleAppDesktopOnly/Program.cs @@ -0,0 +1,26 @@ +using System.IO; +using Microsoft.AspNetCore.Hosting; +using Microsoft.Extensions.Configuration; + +namespace SimpleApp +{ + public class Program + { + public static void Main(string[] args) + { + var config = new ConfigurationBuilder() + .AddCommandLine(args) + .AddEnvironmentVariables(prefix: "ASPNETCORE_") + .Build(); + + var host = new WebHostBuilder() + .UseConfiguration(config) + .UseKestrel() + .UseContentRoot(Directory.GetCurrentDirectory()) + .UseStartup() + .Build(); + + host.Run(); + } + } +} diff --git a/testapps/SimpleAppDesktopOnly/SimpleAppDesktopOnly.xproj b/testapps/SimpleAppDesktopOnly/SimpleAppDesktopOnly.xproj new file mode 100644 index 0000000000..c57afbe851 --- /dev/null +++ b/testapps/SimpleAppDesktopOnly/SimpleAppDesktopOnly.xproj @@ -0,0 +1,19 @@ + + + + 14.0.25420 + $(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion) + + + + a0b0a141-a32b-4f33-b85f-5ca8c107105f + SimpleAppDesktopOnly + .\obj + .\bin\ + + + + 2.0 + + + \ No newline at end of file diff --git a/testapps/SimpleAppDesktopOnly/Startup.cs b/testapps/SimpleAppDesktopOnly/Startup.cs new file mode 100644 index 0000000000..461873a890 --- /dev/null +++ b/testapps/SimpleAppDesktopOnly/Startup.cs @@ -0,0 +1,26 @@ +using Microsoft.AspNetCore.Builder; +using Microsoft.Extensions.DependencyInjection; +using Microsoft.Extensions.Logging; + +namespace SimpleApp +{ + public class Startup + { + public void ConfigureServices(IServiceCollection services) + { + // Add framework services. + services.AddMvc(); + } + + public void Configure(IApplicationBuilder app, ILoggerFactory loggerFactory) + { + loggerFactory.AddConsole(); + app.UseMvc(routes => + { + routes.MapRoute( + name: "default", + template: "{controller=Home}/{action=Index}/{id?}"); + }); + } + } +} diff --git a/testapps/SimpleAppDesktopOnly/Views/Home/Index.cshtml b/testapps/SimpleAppDesktopOnly/Views/Home/Index.cshtml new file mode 100644 index 0000000000..9c6b7fb5ff --- /dev/null +++ b/testapps/SimpleAppDesktopOnly/Views/Home/Index.cshtml @@ -0,0 +1,5 @@ +@{ + ViewData["Title"] = "Home Page"; +} + +@GetType().AssemblyQualifiedName \ No newline at end of file diff --git a/testapps/SimpleAppDesktopOnly/Views/Shared/_Layout.cshtml b/testapps/SimpleAppDesktopOnly/Views/Shared/_Layout.cshtml new file mode 100644 index 0000000000..4f65b1d219 --- /dev/null +++ b/testapps/SimpleAppDesktopOnly/Views/Shared/_Layout.cshtml @@ -0,0 +1,68 @@ + + + + + + @ViewData["Title"] - SimpleApp + + + + + + + + + + + + +
+ @RenderBody() +
+
+

© 2016 - SimpleApp

+
+
+ + + + + + + + + + + + + @RenderSection("scripts", required: false) + @GetType().AssemblyQualifiedName + + diff --git a/testapps/SimpleAppDesktopOnly/Views/_ViewImports.cshtml b/testapps/SimpleAppDesktopOnly/Views/_ViewImports.cshtml new file mode 100644 index 0000000000..71413f674c --- /dev/null +++ b/testapps/SimpleAppDesktopOnly/Views/_ViewImports.cshtml @@ -0,0 +1,2 @@ +@using SimpleApp +@addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers diff --git a/testapps/SimpleAppDesktopOnly/Views/_ViewStart.cshtml b/testapps/SimpleAppDesktopOnly/Views/_ViewStart.cshtml new file mode 100644 index 0000000000..a5f10045db --- /dev/null +++ b/testapps/SimpleAppDesktopOnly/Views/_ViewStart.cshtml @@ -0,0 +1,3 @@ +@{ + Layout = "_Layout"; +} diff --git a/testapps/SimpleAppDesktopOnly/project.json b/testapps/SimpleAppDesktopOnly/project.json new file mode 100644 index 0000000000..1dc433a8ff --- /dev/null +++ b/testapps/SimpleAppDesktopOnly/project.json @@ -0,0 +1,33 @@ +{ + "buildOptions": { + "emitEntryPoint": true, + "preserveCompilationContext": true + }, + "dependencies": { + "Microsoft.AspNetCore.Mvc": "1.1.0-*", + "Microsoft.AspNetCore.Mvc.Razor.Precompilation.Design": { + "version": "1.0.0-*", + "target": "package", + "type": "build" + }, + "Microsoft.AspNetCore.Server.Kestrel": "1.1.0-*", + "Microsoft.Extensions.Configuration.CommandLine": "1.1.0-*", + "Microsoft.Extensions.Logging.Console": "1.1.0-*" + }, + "tools": { + "Microsoft.AspNetCore.Mvc.Razor.Precompilation.Tools": "1.0.0-*" + }, + "frameworks": { + "net451": {} + }, + "publishOptions": { + "include": [ + "wwwroot", + "appsettings.json", + "web.config" + ] + }, + "scripts": { + "postpublish": "dotnet razor-precompile --configuration %publish:Configuration% --framework %publish:TargetFramework% --output-path %publish:OutputPath% %publish:ProjectPath%" + } +} \ No newline at end of file