Imported Upstream version 4.2.0.179

Former-commit-id: 0a113cb3a6feb7873f632839b1307cc6033cd595
This commit is contained in:
Xamarin Public Jenkins
2015-08-26 07:17:56 -04:00
committed by Jo Shields
parent 183bba2c9a
commit 6992685b86
7507 changed files with 90259 additions and 657307 deletions

View File

@@ -0,0 +1,18 @@
using NUnit.Framework;
using System.Net.Http;
namespace MonoTests.System.Net.Http.Headers
{
[TestFixture]
public class HttpRequestHeadersTest
{
[Test]
public void AccessHostAfterAdding()
{
var requestMessage = new HttpRequestMessage ();
requestMessage.Headers.TryAddWithoutValidation ("Host", "MyHost:90");
Assert.AreEqual ("MyHost:90", requestMessage.Headers.Host);
}
}
}

View File

@@ -572,6 +572,97 @@ namespace MonoTests.System.Net.Http
}
}
[Test]
public void Send_Complete_CustomHeaders_SpecialSeparators ()
{
bool? failed = null;
var listener = CreateListener (l => {
var request = l.Request;
try {
Assert.AreEqual ("MLK Android Phone 1.1.9", request.UserAgent, "#1");
failed = false;
} catch {
failed = true;
}
});
try {
var client = new HttpClient ();
client.DefaultRequestHeaders.Add("User-Agent", "MLK Android Phone 1.1.9");
var request = new HttpRequestMessage (HttpMethod.Get, LocalServer);
var response = client.SendAsync (request, HttpCompletionOption.ResponseHeadersRead).Result;
Assert.AreEqual ("", response.Content.ReadAsStringAsync ().Result, "#100");
Assert.AreEqual (HttpStatusCode.OK, response.StatusCode, "#101");
Assert.AreEqual (false, failed, "#102");
} finally {
listener.Abort ();
listener.Close ();
}
}
[Test]
public void Send_Transfer_Encoding_Chunked ()
{
bool? failed = null;
var listener = CreateListener (l => {
var request = l.Request;
try {
Assert.AreEqual (1, request.Headers.Count, "#1");
failed = false;
} catch {
failed = true;
}
});
try {
var client = new HttpClient ();
client.DefaultRequestHeaders.TransferEncodingChunked = true;
client.GetAsync (LocalServer).Wait ();
Assert.AreEqual (false, failed, "#102");
} finally {
listener.Abort ();
listener.Close ();
}
}
[Test]
public void Send_Transfer_Encoding_Custom ()
{
bool? failed = null;
var listener = CreateListener (l => {
failed = true;
});
try {
var client = new HttpClient ();
client.DefaultRequestHeaders.TransferEncoding.Add (new TransferCodingHeaderValue ("chunked2"));
var request = new HttpRequestMessage (HttpMethod.Get, LocalServer);
try {
client.SendAsync (request, HttpCompletionOption.ResponseHeadersRead).Wait ();
Assert.Fail ("#1");
} catch (AggregateException e) {
Assert.AreEqual (typeof (ProtocolViolationException), e.InnerException.GetType (), "#2");
}
Assert.IsNull (failed, "#102");
} finally {
listener.Abort ();
listener.Close ();
}
}
[Test]
public void Send_Complete_Content ()
{

View File

@@ -133,6 +133,16 @@ namespace MonoTests.System.Net.Http
Assert.AreEqual (other, m.First (), "#4");
}
[Test]
public void Add_ParseCustomToString ()
{
var m = new MultipartContent ("a", "b");
m.Headers.Add ("Expires", "Mon, 30 Nov 2020 19:55:22 GMT");
Assert.AreEqual ("Mon, 30 Nov 2020 19:55:22 GMT", m.Headers.Skip (1).First().Value.First ());
}
[Test]
public void Add_Resursive ()
{