Skip to content

Commit fd335a0

Browse files
Copilotilonatommy
andcommitted
Address PR feedback: remove test, fix nullability, add comments
Co-authored-by: ilonatommy <[email protected]>
1 parent b6bec12 commit fd335a0

File tree

3 files changed

+4
-65
lines changed

3 files changed

+4
-65
lines changed

src/Middleware/Diagnostics/src/PublicAPI.Shipped.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -89,7 +89,7 @@ static Microsoft.AspNetCore.Builder.StatusCodePagesExtensions.UseStatusCodePages
8989
static Microsoft.AspNetCore.Builder.StatusCodePagesExtensions.UseStatusCodePages(this Microsoft.AspNetCore.Builder.IApplicationBuilder! app, System.Action<Microsoft.AspNetCore.Builder.IApplicationBuilder!>! configuration) -> Microsoft.AspNetCore.Builder.IApplicationBuilder!
9090
static Microsoft.AspNetCore.Builder.StatusCodePagesExtensions.UseStatusCodePages(this Microsoft.AspNetCore.Builder.IApplicationBuilder! app, System.Func<Microsoft.AspNetCore.Diagnostics.StatusCodeContext!, System.Threading.Tasks.Task!>! handler) -> Microsoft.AspNetCore.Builder.IApplicationBuilder!
9191
static Microsoft.AspNetCore.Builder.StatusCodePagesExtensions.UseStatusCodePagesWithRedirects(this Microsoft.AspNetCore.Builder.IApplicationBuilder! app, string! locationFormat) -> Microsoft.AspNetCore.Builder.IApplicationBuilder!
92-
static Microsoft.AspNetCore.Builder.StatusCodePagesExtensions.UseStatusCodePagesWithReExecute(this Microsoft.AspNetCore.Builder.IApplicationBuilder! app, string! pathFormat, string? queryFormat) -> Microsoft.AspNetCore.Builder.IApplicationBuilder!
92+
static Microsoft.AspNetCore.Builder.StatusCodePagesExtensions.UseStatusCodePagesWithReExecute(this Microsoft.AspNetCore.Builder.IApplicationBuilder! app, string! pathFormat, string! queryFormat) -> Microsoft.AspNetCore.Builder.IApplicationBuilder!
9393
static Microsoft.AspNetCore.Builder.WelcomePageExtensions.UseWelcomePage(this Microsoft.AspNetCore.Builder.IApplicationBuilder! app) -> Microsoft.AspNetCore.Builder.IApplicationBuilder!
9494
static Microsoft.AspNetCore.Builder.WelcomePageExtensions.UseWelcomePage(this Microsoft.AspNetCore.Builder.IApplicationBuilder! app, Microsoft.AspNetCore.Builder.WelcomePageOptions! options) -> Microsoft.AspNetCore.Builder.IApplicationBuilder!
9595
static Microsoft.AspNetCore.Builder.WelcomePageExtensions.UseWelcomePage(this Microsoft.AspNetCore.Builder.IApplicationBuilder! app, Microsoft.AspNetCore.Http.PathString path) -> Microsoft.AspNetCore.Builder.IApplicationBuilder!

src/Middleware/Diagnostics/src/StatusCodePage/StatusCodePagesExtensions.cs

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -133,6 +133,7 @@ public static IApplicationBuilder UseStatusCodePages(this IApplicationBuilder ap
133133
return app.UseStatusCodePages(context => tangent(context.HttpContext));
134134
}
135135

136+
// 1.0 BACKCOMPAT OVERLOAD -- DO NOT TOUCH
136137
/// <summary>
137138
/// Adds a StatusCodePages middleware to the pipeline. Specifies that the response body should be generated by
138139
/// re-executing the request pipeline using an alternate path. This path may contain a '{0}' placeholder of the status code.
@@ -144,7 +145,7 @@ public static IApplicationBuilder UseStatusCodePages(this IApplicationBuilder ap
144145
public static IApplicationBuilder UseStatusCodePagesWithReExecute(
145146
this IApplicationBuilder app,
146147
string pathFormat,
147-
string? queryFormat)
148+
string queryFormat)
148149
{
149150
ArgumentNullException.ThrowIfNull(app);
150151

@@ -169,7 +170,7 @@ public static IApplicationBuilder UseStatusCodePagesWithReExecute(
169170
/// <param name="app"></param>
170171
/// <param name="pathFormat"></param>
171172
/// <param name="queryFormat"></param>
172-
/// <param name="createScopeForStatusCodePages"></param>
173+
/// <param name="createScopeForStatusCodePages">Whether or not to create a new <see cref="IServiceProvider"/> scope.</param>
173174
/// <returns></returns>
174175
[SuppressMessage("ApiDesign", "RS0026:Do not add multiple overloads with optional parameters", Justification = "Required to maintain compatibility")]
175176
public static IApplicationBuilder UseStatusCodePagesWithReExecute(

src/Middleware/Diagnostics/test/UnitTests/StatusCodeMiddlewareTest.cs

Lines changed: 0 additions & 62 deletions
Original file line numberDiff line numberDiff line change
@@ -390,68 +390,6 @@ public async Task SkipStatusCodePages_WorksIfUsedBeforeRouting()
390390
Assert.Equal("Status: 400", content);
391391
}
392392

393-
[Fact]
394-
public async Task CreateScopeForStatusCodePages_ConfiguresOptionCorrectly()
395-
{
396-
var expectedStatusCode = 432;
397-
var destination = "/location";
398-
StatusCodePagesOptions capturedOptions = null;
399-
400-
using var host = new HostBuilder()
401-
.ConfigureWebHost(webHostBuilder =>
402-
{
403-
webHostBuilder
404-
.UseTestServer()
405-
.Configure(app =>
406-
{
407-
// Use the new overload
408-
app.UseStatusCodePagesWithReExecute(pathFormat: "/errorPage", queryFormat: null, createScopeForStatusCodePages: true);
409-
410-
app.Map(destination, (innerAppBuilder) =>
411-
{
412-
innerAppBuilder.Run((httpContext) =>
413-
{
414-
httpContext.Response.StatusCode = expectedStatusCode;
415-
return Task.FromResult(1);
416-
});
417-
});
418-
419-
app.Map("/errorPage", (innerAppBuilder) =>
420-
{
421-
innerAppBuilder.Run((httpContext) =>
422-
{
423-
// Capture the options to verify they were set correctly
424-
var statusCodePagesFeature = httpContext.Features.Get<IStatusCodePagesFeature>();
425-
if (statusCodePagesFeature != null)
426-
{
427-
// Access the middleware context to get options if possible
428-
var statusCodeContext = new StatusCodeContext(httpContext, new StatusCodePagesOptions(), _ => Task.CompletedTask);
429-
var field = typeof(StatusCodeContext).GetProperty("Options");
430-
capturedOptions = field?.GetValue(statusCodeContext) as StatusCodePagesOptions;
431-
}
432-
return httpContext.Response.WriteAsync("Error page");
433-
});
434-
});
435-
436-
app.Run((context) =>
437-
{
438-
throw new InvalidOperationException("Invalid input provided.");
439-
});
440-
});
441-
}).Build();
442-
443-
await host.StartAsync();
444-
445-
using var server = host.GetTestServer();
446-
var client = server.CreateClient();
447-
var response = await client.GetAsync(destination);
448-
var content = await response.Content.ReadAsStringAsync();
449-
450-
Assert.Equal("Error page", content);
451-
// Just verify that the API accepts the parameter, since it's hard to test the internal behavior
452-
Assert.True(true); // Test passes if we get here without exceptions
453-
}
454-
455393
[Fact]
456394
public async Task CreateScopeForStatusCodePages_DefaultParameterWorks()
457395
{

0 commit comments

Comments
 (0)