public async Task Execute_ReturnsExpectedValues() { // Arrange var appRoot = "/"; var contentPath = "~/Home/About"; var expectedPath = "/Home/About"; var httpContext = GetHttpContext(appRoot); var result = new LocalRedirectResult(contentPath); // Act await result.ExecuteAsync(httpContext); // Assert Assert.Equal(expectedPath, httpContext.Response.Headers.Location.ToString()); Assert.Equal(StatusCodes.Status302Found, httpContext.Response.StatusCode); }
public async Task Execute_Throws_ForNonLocalUrl( string appRoot, string contentPath) { // Arrange var httpContext = GetHttpContext(appRoot); var result = new LocalRedirectResult(contentPath); // Act & Assert var exception = await Assert.ThrowsAsync <InvalidOperationException>(() => result.ExecuteAsync(httpContext)); Assert.Equal( "The supplied URL is not local. A URL with an absolute path is considered local if it does not " + "have a host/authority part. URLs using virtual paths ('~/') are also local.", exception.Message); }