-
Notifications
You must be signed in to change notification settings - Fork 5.4k
Expand file tree
/
Copy pathHttpClientHandlerTestBase.WinHttpHandler.cs
More file actions
54 lines (42 loc) · 1.91 KB
/
HttpClientHandlerTestBase.WinHttpHandler.cs
File metadata and controls
54 lines (42 loc) · 1.91 KB
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
// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the MIT license.
using System.Net.Test.Common;
using System.IO;
namespace System.Net.Http.Functional.Tests
{
public abstract partial class HttpClientHandlerTestBase : FileCleanupTestBase
{
protected static bool IsWinHttpHandler => true;
protected static WinHttpClientHandler CreateHttpClientHandler(Version useVersion = null, bool allowAllCertificates = true)
{
useVersion ??= HttpVersion.Version11;
WinHttpClientHandler handler = new WinHttpClientHandler(useVersion);
if (allowAllCertificates)
{
handler.ServerCertificateCustomValidationCallback = TestHelper.AllowAllCertificates;
}
return handler;
}
protected WinHttpClientHandler CreateHttpClientHandler() => CreateHttpClientHandler(UseVersion);
protected static WinHttpClientHandler CreateHttpClientHandler(string useVersionString) =>
CreateHttpClientHandler(Version.Parse(useVersionString));
protected static HttpRequestMessage CreateRequest(HttpMethod method, Uri uri, Version version, bool exactVersion = false) =>
new HttpRequestMessage(method, uri)
{
Version = version
};
protected LoopbackServerFactory LoopbackServerFactory => GetFactoryForVersion(UseVersion);
protected static LoopbackServerFactory GetFactoryForVersion(Version useVersion)
{
return useVersion.Major switch
{
1 => Http11LoopbackServerFactory.Singleton,
2 => Http2LoopbackServerFactory.Singleton,
#if NET
3 => Http3LoopbackServerFactory.Singleton,
#endif
_ => throw new InvalidOperationException($"Unexpected HTTP version: {useVersion}")
};
}
}
}