blob: 21c3aa944005b38be71c58b6ea644d09120d8742 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
|
// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the MIT license.
// See the LICENSE file in the project root for more information.
using System.Net.Http;
using System.Net.Test.Common;
using System.Threading.Tasks;
using Xunit;
namespace System.Net.Tests
{
public class HttpWebResponseTest
{
[Theory]
[InlineData("text/html")]
[InlineData("text/html; charset=utf-8")]
#if netstandard17 // Depends on a bug fix made for 1.1 release. Can be un-ifdef'd once an updated package is available on NuGet
[InlineData("TypeAndNoSubType")]
#endif
public async Task ContentType_ServerResponseHasContentTypeHeader_ContentTypeReceivedCorrectly(string expectedContentType)
{
await LoopbackServer.CreateServerAsync(async (server, url) =>
{
HttpWebRequest request = WebRequest.CreateHttp(url);
request.Method = HttpMethod.Get.Method;
Task<WebResponse> getResponse = request.GetResponseAsync();
await LoopbackServer.ReadRequestAndSendResponseAsync(server,
$"HTTP/1.1 200 OK\r\n" +
$"Date: {DateTimeOffset.UtcNow:R}\r\n" +
$"Content-Type: {expectedContentType}\r\n" +
"Content-Length: 5\r\n" +
"\r\n" +
"12345");
using (WebResponse response = await getResponse)
{
Assert.Equal(expectedContentType, response.ContentType);
}
});
}
[Fact]
public async Task ContentType_ServerResponseMissingContentTypeHeader_ContentTypeIsEmptyString()
{
await LoopbackServer.CreateServerAsync(async (server, url) =>
{
HttpWebRequest request = WebRequest.CreateHttp(url);
request.Method = HttpMethod.Get.Method;
Task<WebResponse> getResponse = request.GetResponseAsync();
await LoopbackServer.ReadRequestAndSendResponseAsync(server,
$"HTTP/1.1 200 OK\r\n" +
$"Date: {DateTimeOffset.UtcNow:R}\r\n" +
"Content-Length: 5\r\n" +
"\r\n" +
"12345");
using (WebResponse response = await getResponse)
{
Assert.Equal(string.Empty, response.ContentType);
}
});
}
}
}
|