diff --git a/test/Microsoft.AspNetCore.Mvc.FunctionalTests/ErrorPageTests.cs b/test/Microsoft.AspNetCore.Mvc.FunctionalTests/ErrorPageTests.cs index bc077e798e..9f22ca6e2f 100644 --- a/test/Microsoft.AspNetCore.Mvc.FunctionalTests/ErrorPageTests.cs +++ b/test/Microsoft.AspNetCore.Mvc.FunctionalTests/ErrorPageTests.cs @@ -115,5 +115,23 @@ namespace Microsoft.AspNetCore.Mvc.FunctionalTests Assert.Contains("/Views/ErrorPageMiddleware/RuntimeError.cshtml", content); Assert.Contains(expectedMessage, content); } + + [Fact] + public async Task LoaderExceptionsFromReflectionTypeLoadExceptionsAreListed() + { + // Arrange + var expectedMessage = "Custom Loader Exception."; + var expectedMediaType = MediaTypeHeaderValue.Parse("text/html; charset=utf-8"); + + // Act + var response = await Client.GetAsync("http://localhost/LoaderException"); + + // Assert + Assert.Equal(HttpStatusCode.InternalServerError, response.StatusCode); + Assert.Equal(expectedMediaType, response.Content.Headers.ContentType); + var content = await response.Content.ReadAsStringAsync(); + Assert.Contains("Loader Exceptions:", content); + Assert.Contains(expectedMessage, content); + } } } \ No newline at end of file diff --git a/test/WebSites/ErrorPageMiddlewareWebSite/ErrorPageMiddlewareController.cs b/test/WebSites/ErrorPageMiddlewareWebSite/ErrorPageMiddlewareController.cs index 68f3b451f5..ba17eca5f8 100644 --- a/test/WebSites/ErrorPageMiddlewareWebSite/ErrorPageMiddlewareController.cs +++ b/test/WebSites/ErrorPageMiddlewareWebSite/ErrorPageMiddlewareController.cs @@ -1,6 +1,8 @@ // 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.Reflection; using Microsoft.AspNetCore.Mvc; namespace ErrorPageMiddlewareWebSite @@ -27,5 +29,17 @@ namespace ErrorPageMiddlewareWebSite [HttpGet("/RuntimeError")] public IActionResult RuntimeError() => View(); + + [HttpGet("/LoaderException")] + public IActionResult ReflectionTypeLoadException() + { + throw new ReflectionTypeLoadException( + new[] { typeof(SomeType) }, + new[] { new TypeLoadException("Custom Loader Exception.") }); + } + + private class SomeType + { + } } }