From 0c45a74a967cdc6a84cc8950f1303ad9fe1743b2 Mon Sep 17 00:00:00 2001 From: monojenkins Date: Tue, 18 Feb 2020 07:54:41 -0500 Subject: Move HttpClientHandlerTests.Android.cs to nunit (#18889) Co-authored-by: Egor Bogatov --- .../System.Net.Http_test.dll.sources | 1 + .../HttpClientHandlerTests.Android.cs | 77 ++++++++++++++++++++++ .../UnitTests/HttpClientHandlerTests.Android.cs | 74 --------------------- ...oid_System.Net.Http.UnitTests_xtest.dll.sources | 1 - 4 files changed, 78 insertions(+), 75 deletions(-) create mode 100644 mcs/class/System.Net.Http/Test/System.Net.Http/HttpClientHandlerTests.Android.cs delete mode 100644 mcs/class/System.Net.Http/UnitTests/HttpClientHandlerTests.Android.cs diff --git a/mcs/class/System.Net.Http/System.Net.Http_test.dll.sources b/mcs/class/System.Net.Http/System.Net.Http_test.dll.sources index b243d77279f..6505e0ee774 100644 --- a/mcs/class/System.Net.Http/System.Net.Http_test.dll.sources +++ b/mcs/class/System.Net.Http/System.Net.Http_test.dll.sources @@ -12,6 +12,7 @@ System.Net.Http/MultipartContentTest.cs System.Net.Http/MultipartFormDataContentTest.cs System.Net.Http/StreamContentTest.cs System.Net.Http/StringContentTest.cs +System.Net.Http/HttpClientHandlerTests.Android.cs System.Net.Http.Headers/AuthenticationHeaderValueTest.cs System.Net.Http.Headers/CacheControlHeaderValueTest.cs System.Net.Http.Headers/ContentDispositionHeaderValueTest.cs diff --git a/mcs/class/System.Net.Http/Test/System.Net.Http/HttpClientHandlerTests.Android.cs b/mcs/class/System.Net.Http/Test/System.Net.Http/HttpClientHandlerTests.Android.cs new file mode 100644 index 00000000000..411b067516a --- /dev/null +++ b/mcs/class/System.Net.Http/Test/System.Net.Http/HttpClientHandlerTests.Android.cs @@ -0,0 +1,77 @@ +// 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; +using System.Text; +using System.Net.Http; +using System.Reflection; + +using NUnit.Framework; + +namespace System.Net.Http.Tests +{ + [TestFixture] + public class HttpClientHandlerTestsAndroid + { + static Type GetInnerHandlerType (HttpClient httpClient) + { + BindingFlags bflasgs = BindingFlags.Instance | BindingFlags.NonPublic; + FieldInfo handlerField = typeof (HttpMessageInvoker).GetField("_handler", bflasgs); + Assert.IsNotNull (handlerField); + object handler = handlerField.GetValue (httpClient); + FieldInfo innerHandlerField = handler.GetType ().GetField ("_delegatingHandler", bflasgs); + Assert.IsNotNull (handlerField); + object innerHandler = innerHandlerField.GetValue (handler); + return innerHandler.GetType (); + } + + [Test] + public void TestEnvVarSwitchForInnerHttpHandler () + { +#if !MONODROID + return; +#endif + const string xaHandlerKey = "XA_HTTP_CLIENT_HANDLER_TYPE"; + var prevHandler = Environment.GetEnvironmentVariable (xaHandlerKey); + + // "" + Environment.SetEnvironmentVariable (xaHandlerKey, ""); + var httpClient1 = new HttpClient (); + Assert.AreEqual ("SocketsHttpHandler", GetInnerHandlerType (httpClient1).Name); + + var handler2 = new HttpClientHandler (); + var httpClient2 = new HttpClient (handler2); + Assert.AreEqual ("SocketsHttpHandler", GetInnerHandlerType (httpClient2).Name); + + // "System.Net.Http.MonoWebRequestHandler" + Environment.SetEnvironmentVariable (xaHandlerKey, "System.Net.Http.MonoWebRequestHandler"); + var httpClient3 = new HttpClient (); + Assert.AreEqual ("MonoWebRequestHandler", GetInnerHandlerType (httpClient3).Name); + + var handler4 = new HttpClientHandler (); + var httpClient4 = new HttpClient (handler4); + Assert.AreEqual ("MonoWebRequestHandler", GetInnerHandlerType (httpClient4).Name); + + // "System.Net.Http.MonoWebRequestHandler, System.Net.Http" + Environment.SetEnvironmentVariable (xaHandlerKey, "System.Net.Http.MonoWebRequestHandler, System.Net.Http"); + var httpClient5 = new HttpClient (); + Assert.AreEqual ("MonoWebRequestHandler", GetInnerHandlerType (httpClient5).Name); + + var handler6 = new HttpClientHandler (); + var httpClient6 = new HttpClient (handler6); + Assert.AreEqual ("MonoWebRequestHandler", GetInnerHandlerType (httpClient6).Name); + + // "System.Net.Http.HttpClientHandler" + Environment.SetEnvironmentVariable (xaHandlerKey, "System.Net.Http.HttpClientHandler"); + var httpClient7 = new HttpClient (); + Assert.AreEqual ("SocketsHttpHandler", GetInnerHandlerType (httpClient7).Name); + + var handler8 = new HttpClientHandler (); + var httpClient8 = new HttpClient (handler8); + Assert.AreEqual ("SocketsHttpHandler", GetInnerHandlerType (httpClient8).Name); + + Environment.SetEnvironmentVariable (xaHandlerKey, prevHandler); + } + } +} diff --git a/mcs/class/System.Net.Http/UnitTests/HttpClientHandlerTests.Android.cs b/mcs/class/System.Net.Http/UnitTests/HttpClientHandlerTests.Android.cs deleted file mode 100644 index 00c1cda6405..00000000000 --- a/mcs/class/System.Net.Http/UnitTests/HttpClientHandlerTests.Android.cs +++ /dev/null @@ -1,74 +0,0 @@ -// 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; -using System.Text; -using System.Net.Http; -using System.Reflection; - -using Xunit; -using Xunit.Abstractions; - -namespace System.Net.Http.Tests -{ - public class HttpClientHandlerTestsAndroid - { - static Type GetInnerHandlerType (HttpClient httpClient) - { - BindingFlags bflasgs = BindingFlags.Instance | BindingFlags.NonPublic; - FieldInfo handlerField = typeof (HttpMessageInvoker).GetField("_handler", bflasgs); - Assert.NotNull (handlerField); - object handler = handlerField.GetValue (httpClient); - FieldInfo innerHandlerField = handler.GetType ().GetField ("_delegatingHandler", bflasgs); - Assert.NotNull (handlerField); - object innerHandler = innerHandlerField.GetValue (handler); - return innerHandler.GetType (); - } - - [Fact] - public void TestEnvVarSwitchForInnerHttpHandler () - { - const string xaHandlerKey = "XA_HTTP_CLIENT_HANDLER_TYPE"; - var prevHandler = Environment.GetEnvironmentVariable (xaHandlerKey); - - // "" - Environment.SetEnvironmentVariable (xaHandlerKey, ""); - var httpClient1 = new HttpClient (); - Assert.Equal ("SocketsHttpHandler", GetInnerHandlerType (httpClient1).Name); - - var handler2 = new HttpClientHandler (); - var httpClient2 = new HttpClient (handler2); - Assert.Equal ("SocketsHttpHandler", GetInnerHandlerType (httpClient2).Name); - - // "System.Net.Http.MonoWebRequestHandler" - Environment.SetEnvironmentVariable (xaHandlerKey, "System.Net.Http.MonoWebRequestHandler"); - var httpClient3 = new HttpClient (); - Assert.Equal ("MonoWebRequestHandler", GetInnerHandlerType (httpClient3).Name); - - var handler4 = new HttpClientHandler (); - var httpClient4 = new HttpClient (handler4); - Assert.Equal ("MonoWebRequestHandler", GetInnerHandlerType (httpClient4).Name); - - // "System.Net.Http.MonoWebRequestHandler, System.Net.Http" - Environment.SetEnvironmentVariable (xaHandlerKey, "System.Net.Http.MonoWebRequestHandler, System.Net.Http"); - var httpClient5 = new HttpClient (); - Assert.Equal ("MonoWebRequestHandler", GetInnerHandlerType (httpClient5).Name); - - var handler6 = new HttpClientHandler (); - var httpClient6 = new HttpClient (handler6); - Assert.Equal ("MonoWebRequestHandler", GetInnerHandlerType (httpClient6).Name); - - // "System.Net.Http.HttpClientHandler" - Environment.SetEnvironmentVariable (xaHandlerKey, "System.Net.Http.HttpClientHandler"); - var httpClient7 = new HttpClient (); - Assert.Equal ("SocketsHttpHandler", GetInnerHandlerType (httpClient7).Name); - - var handler8 = new HttpClientHandler (); - var httpClient8 = new HttpClient (handler8); - Assert.Equal ("SocketsHttpHandler", GetInnerHandlerType (httpClient8).Name); - - Environment.SetEnvironmentVariable (xaHandlerKey, prevHandler); - } - } -} diff --git a/mcs/class/System.Net.Http/UnitTests/monodroid_System.Net.Http.UnitTests_xtest.dll.sources b/mcs/class/System.Net.Http/UnitTests/monodroid_System.Net.Http.UnitTests_xtest.dll.sources index 9334d2fcca4..ea8b52eca73 100644 --- a/mcs/class/System.Net.Http/UnitTests/monodroid_System.Net.Http.UnitTests_xtest.dll.sources +++ b/mcs/class/System.Net.Http/UnitTests/monodroid_System.Net.Http.UnitTests_xtest.dll.sources @@ -1,2 +1 @@ #include unit-tests.sources -HttpClientHandlerTests.Android.cs -- cgit v1.2.3