Imported Upstream version 6.0.0.172

Former-commit-id: f3cc9b82f3e5bd8f0fd3ebc098f789556b44e9cd
This commit is contained in:
Xamarin Public Jenkins (auto-signing)
2019-04-12 14:10:50 +00:00
parent 8016999e4d
commit 64ac736ec5
32155 changed files with 3981439 additions and 75368 deletions

View File

@@ -0,0 +1,27 @@
using System;
using System.Reflection;
using System.Net.Http;
namespace MonoTests.System.Net.Http
{
static class HttpClientTestHelpers
{
#if LEGACY_HTTPCLIENT
internal static bool UsingSocketsHandler => false;
#else
internal static bool UsingSocketsHandler => true;
#endif
internal static bool IsSocketsHandler (HttpClientHandler handler) => UsingSocketsHandler;
internal static HttpClient CreateHttpClientWithHttpClientHandler ()
{
return new HttpClient (CreateHttpClientHandler ());
}
internal static HttpClientHandler CreateHttpClientHandler ()
{
return new HttpClientHandler ();
}
}
}

View File

@@ -120,7 +120,10 @@ namespace MonoTests.System.Net.Http.Headers
headers.TryAddWithoutValidation("User-Agent", "agent2/2.0");
Assert.AreEqual (1, headers.UserAgent.Count, "#1");
Assert.AreEqual ("agent2/2.0user,agent/1.0", headers.UserAgent.ToString (), "#2");
if (HttpClientTestHelpers.UsingSocketsHandler)
Assert.AreEqual ("agent2/2.0 user,agent/1.0", headers.UserAgent.ToString (), "#2");
else
Assert.AreEqual ("agent2/2.0user,agent/1.0", headers.UserAgent.ToString (), "#2");
Assert.AreEqual ("User-Agent: agent2/2.0 user,agent/1.0\r\n", headers.ToString (), "#3");

View File

@@ -55,7 +55,15 @@ namespace MonoTests.System.Net.Http.Headers
{
headers.Add ("aa", "value");
headers.Add ("aa", "value");
headers.Add ("Expires", (string) null);
try {
headers.Add ("Expires", (string)null);
if (HttpClientTestHelpers.UsingSocketsHandler)
Assert.Fail ("#1");
} catch (FormatException) {
if (!HttpClientTestHelpers.UsingSocketsHandler)
throw;
}
}
[Test]

View File

@@ -66,14 +66,13 @@ namespace MonoTests.System.Net.Http
#endif
public void Properties_Defaults ()
{
var h = new HttpClientHandler ();
var h = HttpClientTestHelpers.CreateHttpClientHandler ();
Assert.IsTrue (h.AllowAutoRedirect, "#1");
Assert.AreEqual (DecompressionMethods.None, h.AutomaticDecompression, "#2");
Assert.AreEqual (0, h.CookieContainer.Count, "#3");
Assert.AreEqual (4096, h.CookieContainer.MaxCookieSize, "#3b");
Assert.AreEqual (null, h.Credentials, "#4");
Assert.AreEqual (50, h.MaxAutomaticRedirections, "#5");
Assert.AreEqual (int.MaxValue, h.MaxRequestContentBufferSize, "#6");
Assert.IsFalse (h.PreAuthenticate, "#7");
Assert.IsNull (h.Proxy, "#8");
Assert.IsTrue (h.SupportsAutomaticDecompression, "#9");
@@ -91,7 +90,7 @@ namespace MonoTests.System.Net.Http
#endif
public void Properties_Invalid ()
{
var h = new HttpClientHandler ();
var h = HttpClientTestHelpers.CreateHttpClientHandler ();
try {
h.MaxAutomaticRedirections = 0;
Assert.Fail ("#1");
@@ -104,6 +103,9 @@ namespace MonoTests.System.Net.Http
} catch (ArgumentOutOfRangeException) {
}
if (HttpClientTestHelpers.UsingSocketsHandler)
Assert.Ignore ();
h.UseProxy = false;
try {
h.Proxy = new Proxy ();
@@ -118,7 +120,7 @@ namespace MonoTests.System.Net.Http
#endif
public void Properties_AfterClientCreation ()
{
var h = new HttpClientHandler ();
var h = HttpClientTestHelpers.CreateHttpClientHandler ();
h.AllowAutoRedirect = true;
// We may modify properties after creating the HttpClient.
@@ -133,7 +135,7 @@ namespace MonoTests.System.Net.Http
#endif
public void Disposed ()
{
var h = new HttpClientHandler ();
var h = HttpClientTestHelpers.CreateHttpClientHandler ();
h.Dispose ();
var c = new HttpClient (h);
try {
@@ -141,6 +143,9 @@ namespace MonoTests.System.Net.Http
Assert.Fail ("#1");
} catch (AggregateException e) {
Assert.IsTrue (e.InnerException is ObjectDisposedException, "#2");
Assert.IsFalse (HttpClientTestHelpers.IsSocketsHandler (h), "#3");
} catch (ObjectDisposedException) {
Assert.IsTrue (HttpClientTestHelpers.IsSocketsHandler (h), "#4");
}
}
}

View File

@@ -61,9 +61,13 @@ namespace MonoTests.System.Net.Http
Assert.AreEqual (HttpMethod.Get, m.Method, "#3");
Assert.IsNotNull (m.Properties, "#4");
Assert.IsNull (m.RequestUri, "#5");
Assert.AreEqual (new Version (1, 1), m.Version, "#6");
Assert.AreEqual ("Method: GET, RequestUri: '<null>', Version: 1.1, Content: <null>, Headers:\r\n{\r\n}", m.ToString (), "#7");
if (HttpClientTestHelpers.UsingSocketsHandler) {
Assert.AreEqual (new Version (2, 0), m.Version, "#6");
Assert.AreEqual ("Method: GET, RequestUri: '<null>', Version: 2.0, Content: <null>, Headers:\r\n{\r\n}", m.ToString (), "#7");
} else {
Assert.AreEqual (new Version (1, 1), m.Version, "#6");
Assert.AreEqual ("Method: GET, RequestUri: '<null>', Version: 1.1, Content: <null>, Headers:\r\n{\r\n}", m.ToString (), "#7");
}
}
[Test]
@@ -666,7 +670,10 @@ namespace MonoTests.System.Net.Http
// .NET encloses the "Age: vv" with two whitespaces.
var normalized = Regex.Replace (message.ToString (), @"\s", "");
Assert.AreEqual ("Method:GET,RequestUri:'<null>',Version:1.1,Content:<null>,Headers:{Age:vv}", normalized, "#3");
if (HttpClientTestHelpers.UsingSocketsHandler)
Assert.AreEqual ("Method:GET,RequestUri:'<null>',Version:2.0,Content:<null>,Headers:{Age:vv}", normalized, "#3");
else
Assert.AreEqual ("Method:GET,RequestUri:'<null>',Version:1.1,Content:<null>,Headers:{Age:vv}", normalized, "#3");
}
[Test]

View File

@@ -275,7 +275,10 @@ namespace MonoTests.System.Net.Http
Assert.AreEqual ("v1", values[0]);
break;
case 1:
Assert.AreEqual ("cache-control", entry.Key);
if (HttpClientTestHelpers.UsingSocketsHandler)
Assert.AreEqual ("Cache-Control", entry.Key);
else
Assert.AreEqual ("cache-control", entry.Key);
values = entry.Value.ToList ();
Assert.AreEqual (1, values.Count);
Assert.AreEqual ("audio", values[0]);