Skip to content

Commit e4501b1

Browse files
committed
Fix tests.
1 parent 3aa6023 commit e4501b1

File tree

2 files changed

+34
-9
lines changed

2 files changed

+34
-9
lines changed

src/libraries/Common/tests/System/Net/Http/GenericLoopbackServer.cs

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -258,6 +258,24 @@ public static async Task<HttpRequestData> FromHttpRequestMessageAsync(System.Net
258258
return result;
259259
}
260260

261+
public HttpHeaderData[] GetHeaderData(string headerName)
262+
{
263+
return Headers.Where(h => h.Name.Equals(headerName, StringComparison.OrdinalIgnoreCase)).ToArray();
264+
}
265+
266+
public HttpHeaderData GetSingleHeaderData(string headerName)
267+
{
268+
HttpHeaderData[] data = GetHeaderData(headerName);
269+
if (data.Length != 1)
270+
{
271+
throw new Exception(
272+
$"Expected single value for {headerName} header, actual count: {data.Length}{Environment.NewLine}" +
273+
$"{"\t"}{string.Join(Environment.NewLine + "\t", data)}");
274+
}
275+
276+
return data[0];
277+
}
278+
261279
public string[] GetHeaderValues(string headerName)
262280
{
263281
return Headers.Where(h => h.Name.Equals(headerName, StringComparison.OrdinalIgnoreCase))

src/libraries/Common/tests/System/Net/Http/HttpClientHandlerTest.cs

Lines changed: 16 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -2283,23 +2283,30 @@ await LoopbackServerFactory.CreateClientAndServerAsync(async uri =>
22832283
}, async server =>
22842284
{
22852285
var data = await server.AcceptConnectionSendResponseAndCloseAsync();
2286-
var expectedValue = headerValue;
2287-
if (safeChar > 0x7F)
2288-
{
2289-
Assert.True(IsWinHttpHandler);
2290-
expectedValue = headerValue.Replace(safeChar, '?'); // WinHttpHandler replaces Latin-1 characters with '?'.
2291-
}
2286+
var encoding = Encoding.GetEncoding("ISO-8859-1");
22922287
switch (headerType)
22932288
{
22942289
case HeaderType.Request:
2295-
Assert.Equal(expectedValue, data.GetSingleHeaderValue("Custom-Header"));
2290+
{
2291+
var headerLine = encoding.GetString(data.GetSingleHeaderData("Custom-Header").Raw);
2292+
var receivedHeaderValue = headerLine.Substring(headerLine.IndexOf(':') + 1).TrimStart();
2293+
Assert.Equal(headerValue, receivedHeaderValue);
22962294
break;
2295+
}
22972296
case HeaderType.Content:
2298-
Assert.Equal(expectedValue, data.GetSingleHeaderValue("Custom-Content-Header"));
2297+
{
2298+
var headerLine = encoding.GetString(data.GetSingleHeaderData("Custom-Content-Header").Raw);
2299+
var receivedHeaderValue = headerLine.Substring(headerLine.IndexOf(':') + 1).TrimStart();
2300+
Assert.Equal(headerValue, receivedHeaderValue);
22992301
break;
2302+
}
23002303
case HeaderType.Cookie:
2301-
Assert.Equal($"CustomCookie={expectedValue}", data.GetSingleHeaderValue("cookie"));
2304+
{
2305+
var headerLine = encoding.GetString(data.GetSingleHeaderData("cookie").Raw);
2306+
var receivedHeaderValue = headerLine.Substring(headerLine.IndexOf(':') + 1).TrimStart();
2307+
Assert.Equal($"CustomCookie={headerValue}", receivedHeaderValue);
23022308
break;
2309+
}
23032310
}
23042311
});
23052312
}

0 commit comments

Comments
 (0)