Skip to content

Commit c637623

Browse files
author
John Luo
committed
Add tests
1 parent da41bac commit c637623

File tree

1 file changed

+31
-0
lines changed

1 file changed

+31
-0
lines changed

src/Servers/Kestrel/test/InMemory.FunctionalTests/HttpsConnectionMiddlewareTests.cs

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -623,6 +623,37 @@ void ConfigureListenOptions(ListenOptions listenOptions)
623623
stream.NegotiatedApplicationProtocol);
624624
}
625625

626+
[ConditionalFact]
627+
[OSSkipCondition(OperatingSystems.MacOSX | OperatingSystems.Linux, SkipReason = "Downgrade logic only applies on Windows")]
628+
[MinimumOSVersion(OperatingSystems.Windows, WindowsVersions.Win7)]
629+
[MaximumOSVersion(OperatingSystems.Windows, WindowsVersions.Win81)]
630+
public void Http1AndHttp2DowngradeToHttp1ForHttpsOnIncompatibleWindowsVersions()
631+
{
632+
var httpConnectionAdapterOptions = new HttpsConnectionAdapterOptions
633+
{
634+
ServerCertificate = _x509Certificate2,
635+
HttpProtocols = HttpProtocols.Http1AndHttp2
636+
};
637+
new HttpsConnectionMiddleware(context => Task.CompletedTask, httpConnectionAdapterOptions);
638+
639+
Assert.Equal(HttpProtocols.Http1, httpConnectionAdapterOptions.HttpProtocols);
640+
}
641+
642+
[ConditionalFact]
643+
[OSSkipCondition(OperatingSystems.MacOSX | OperatingSystems.Linux, SkipReason = "Downgrade logic only applies on Windows")]
644+
[MinimumOSVersion(OperatingSystems.Windows, WindowsVersions.Win10)]
645+
public void Http1AndHttp2DoesNotDowngradeOnCompatibleWindowsVersions()
646+
{
647+
var httpConnectionAdapterOptions = new HttpsConnectionAdapterOptions
648+
{
649+
ServerCertificate = _x509Certificate2,
650+
HttpProtocols = HttpProtocols.Http1AndHttp2
651+
};
652+
new HttpsConnectionMiddleware(context => Task.CompletedTask, httpConnectionAdapterOptions);
653+
654+
Assert.Equal(HttpProtocols.Http1AndHttp2, httpConnectionAdapterOptions.HttpProtocols);
655+
}
656+
626657
private static async Task App(HttpContext httpContext)
627658
{
628659
var request = httpContext.Request;

0 commit comments

Comments
 (0)