Skip to content

Commit 9a89e7e

Browse files
committed
Separate corruption and mismatch tests
1 parent 7dec71a commit 9a89e7e

File tree

1 file changed

+5
-4
lines changed

1 file changed

+5
-4
lines changed

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

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -141,8 +141,10 @@ public Task BadRequestIfHostHeaderDoesNotMatchRequestTarget(string requestTarget
141141
CoreStrings.FormatBadRequest_InvalidHostHeader_Detail(host.Trim()));
142142
}
143143

144-
[Fact]
145-
public async Task CanOptOutOfBadRequestIfHostHeaderDoesNotMatchRequestTarget()
144+
[Theory]
145+
[InlineData("Host: www.foo.comConnection: keep-alive")] // Corrupted - missing line-break
146+
[InlineData("Host: www.notfoo.com")] // Syntactically correct but not matching
147+
public async Task CanOptOutOfBadRequestIfHostHeaderDoesNotMatchRequestTarget(string hostHeader)
146148
{
147149
var receivedHost = StringValues.Empty;
148150
await using var server = new TestServer(context =>
@@ -158,8 +160,7 @@ public async Task CanOptOutOfBadRequestIfHostHeaderDoesNotMatchRequestTarget()
158160
});
159161
using var client = server.CreateConnection();
160162

161-
// Note the missing line-reak between the Host and Connection headers
162-
await client.SendAll($"GET http://www.foo.com/api/data HTTP/1.1\r\nHost: www.foo.comConnection: keep-alive\r\n\r\n");
163+
await client.SendAll($"GET http://www.foo.com/api/data HTTP/1.1\r\n{hostHeader}\r\n\r\n");
163164

164165
await client.Receive("HTTP/1.1 200 OK");
165166

0 commit comments

Comments
 (0)