Imported Upstream version 4.4.0.122

Former-commit-id: a99f46acaeba3ab496c7afc02c29b839e30a0d0b
This commit is contained in:
Xamarin Public Jenkins
2016-04-12 13:19:31 -04:00
parent a632333cc7
commit d444f0caa4
118 changed files with 4121 additions and 1632 deletions

View File

@ -313,6 +313,20 @@ namespace System.Net.Http.Headers
start = pos - 1;
while (pos < s.Length) {
ch = s [pos++];
//
// The backslash character ("\") MAY be used as a single-character
// quoting mechanism only within quoted-string
//
if (ch == '\\') {
if (pos + 1 < s.Length) {
++pos;
continue;
}
break;
}
if (ch == '"') {
ttype = Token.Type.QuotedString;
break;

View File

@ -74,6 +74,12 @@ namespace MonoTests.System.Net.Http.Headers
Assert.AreEqual ("\"mm\"", res.Tag, "#11");
Assert.IsTrue (res.IsWeak, "#12");
Assert.AreEqual ("W/\"mm\"", res.ToString (), "#13");
res = EntityTagHeaderValue.Parse ("\"\\\"123\\\"\"");
Assert.AreEqual ("\"\\\"123\\\"\"", res.Tag, "#21");
Assert.IsFalse (res.IsWeak, "#22");
Assert.AreEqual ("\"\\\"123\\\"\"", res.ToString (), "#23");
}
[Test]

View File

@ -152,15 +152,16 @@ namespace MonoTests.System.Net.Http
const int WaitTimeout = 5000;
string port, TestHost, LocalServer;
string TestHost, LocalServer;
int port;
[SetUp]
public void SetupFixture ()
{
if (Environment.OSVersion.Platform == PlatformID.Win32NT) {
port = "810";
port = 810;
} else {
port = "8810";
port = 8810;
}
TestHost = "localhost:" + port;
@ -1060,9 +1061,20 @@ namespace MonoTests.System.Net.Http
var response = l.Response;
response.StatusCode = (int)HttpStatusCode.Moved;
response.RedirectLocation = "http://xamarin.com/";
response.RedirectLocation = "http://localhost:8811/";
});
var listener2 = CreateListener (l => {
var response = l.Response;
response.StatusCode = (int)HttpStatusCode.OK;
response.OutputStream.WriteByte (0x68);
response.OutputStream.WriteByte (0x65);
response.OutputStream.WriteByte (0x6c);
response.OutputStream.WriteByte (0x6c);
response.OutputStream.WriteByte (0x6f);
}, 8811);
try {
var chandler = new HttpClientHandler ();
chandler.AllowAutoRedirect = true;
@ -1071,10 +1083,13 @@ namespace MonoTests.System.Net.Http
var r = client.GetAsync (LocalServer);
Assert.IsTrue (r.Wait (WaitTimeout), "#1");
var resp = r.Result;
Assert.AreEqual ("http://xamarin.com/", resp.RequestMessage.RequestUri.AbsoluteUri, "#2");
Assert.AreEqual ("http://localhost:8811/", resp.RequestMessage.RequestUri.AbsoluteUri, "#2");
Assert.AreEqual ("hello", resp.Content.ReadAsStringAsync ().Result, "#3");
} finally {
listener.Abort ();
listener.Close ();
listener2.Abort ();
listener2.Close ();
}
}
@ -1131,6 +1146,11 @@ namespace MonoTests.System.Net.Http
}
HttpListener CreateListener (Action<HttpListenerContext> contextAssert)
{
return CreateListener (contextAssert, port);
}
HttpListener CreateListener (Action<HttpListenerContext> contextAssert, int port)
{
var l = new HttpListener ();
l.Prefixes.Add (string.Format ("http://+:{0}/", port));