From e5ccac8bf67ede6b2e75f9c8ce71b258a372e2f4 Mon Sep 17 00:00:00 2001 From: Ryan Brandenburg Date: Wed, 15 Mar 2017 15:43:55 -0700 Subject: [PATCH] Add functional tests for RazorPage routes --- .../RazorPagesTest.cs | 31 +++++++++++++++++-- .../RazorPagesWebSite/RouteData.cshtml | 12 +++++++ 2 files changed, 41 insertions(+), 2 deletions(-) create mode 100644 test/WebSites/RazorPagesWebSite/RouteData.cshtml diff --git a/test/Microsoft.AspNetCore.Mvc.FunctionalTests/RazorPagesTest.cs b/test/Microsoft.AspNetCore.Mvc.FunctionalTests/RazorPagesTest.cs index 2dc590cfd0..7ac6625d94 100644 --- a/test/Microsoft.AspNetCore.Mvc.FunctionalTests/RazorPagesTest.cs +++ b/test/Microsoft.AspNetCore.Mvc.FunctionalTests/RazorPagesTest.cs @@ -93,7 +93,6 @@ namespace Microsoft.AspNetCore.Mvc.FunctionalTests Assert.Equal("CustomActionResult", content); } - [Fact] public async Task PageModel_Handler_FormAction() { @@ -167,6 +166,35 @@ namespace Microsoft.AspNetCore.Mvc.FunctionalTests Assert.Equal("CustomActionResult", content); } + [Fact] + public async Task RouteData_StringValueOnIntProp_ExpectsNotFound() + { + // Arrange + var routeRequest = new HttpRequestMessage(HttpMethod.Get, "http://localhost/RouteData/pizza"); + + // Act + var routeResponse = await Client.SendAsync(routeRequest); + + // Assert + Assert.Equal(HttpStatusCode.NotFound, routeResponse.StatusCode); + } + + [Fact] + public async Task RouteData_IntProperty_IsCoerced() + { + // Arrange + var routeRequest = new HttpRequestMessage(HttpMethod.Get, "http://localhost/RouteData/5"); + + // Act + var routeResponse = await Client.SendAsync(routeRequest); + + // Assert + Assert.Equal(HttpStatusCode.OK, routeResponse.StatusCode); + + var content = await routeResponse.Content.ReadAsStringAsync(); + Assert.Equal("From RouteData: 5", content.Trim()); + } + [Fact] public async Task Page_SetsPath() { @@ -415,7 +443,6 @@ namespace Microsoft.AspNetCore.Mvc.FunctionalTests Assert.Equal("Login Page", content); } - [Fact] public async Task PageStart_IsDiscoveredWhenRootDirectoryIsNotSpecified() { diff --git a/test/WebSites/RazorPagesWebSite/RouteData.cshtml b/test/WebSites/RazorPagesWebSite/RouteData.cshtml new file mode 100644 index 0000000000..89f0eed7f3 --- /dev/null +++ b/test/WebSites/RazorPagesWebSite/RouteData.cshtml @@ -0,0 +1,12 @@ +@page "{intRouteDataStringProperty:int}" + +@functions{ + public string IntRouteDataStringProperty { get; set; } + + public void OnGet(string intRouteDataStringProperty = "default") + { + IntRouteDataStringProperty = intRouteDataStringProperty; + } +} + +From RouteData: @IntRouteDataStringProperty