using System.Net.Sockets;
using System.Text;
using System.Collections.Generic;
+using System.Threading.Tasks;
using NUnit.Framework;
var ips = new List<IPAddress> ();
ips.Add (IPAddress.Loopback);
foreach (var adapter in NetworkInterface.GetAllNetworkInterfaces ()) {
+ if (adapter.OperationalStatus != OperationalStatus.Up)
+ continue;
foreach (var ip in adapter.GetIPProperties ().UnicastAddresses) {
ips.Add (ip.Address);
}
var request = (HttpWebRequest) WebRequest.Create (rawUrl);
request.GetResponseAsync ();
- if(!contextTask.Wait (1000))
- Assert.Fail ("Timeout");
+ Assert.IsTrue (contextTask.Wait (1000));
Assert.AreEqual (expectedUrl, contextTask.Result.Request.Url.AbsoluteUri);
listener.Close ();
}
+
+ [Test]
+#if FEATURE_NO_BSD_SOCKETS
+ [ExpectedException (typeof (PlatformNotSupportedException))]
+#endif
+ public void EmptyWrite ()
+ {
+ var prefix = "http://localhost:" + NetworkHelpers.FindFreePort () + "/";
+
+ HttpListener listener = new HttpListener ();
+ listener.Prefixes.Add (prefix);
+ listener.Start ();
+
+ Task.Run (() => {
+ var context = listener.GetContext ();
+
+ var s = context.Response.OutputStream;
+ s.Write (new byte[10], 0, 0);
+ return;
+ });
+
+ var request = (HttpWebRequest)WebRequest.Create (prefix);
+ var rsp = request.GetResponseAsync ();
+ Assert.IsFalse (rsp.Wait (1000), "Don't send on empty write");
+ }
+
+ [Test]
+ public void HttpRequestIgnoreBadCookies ()
+ {
+ var port = NetworkHelpers.FindFreePort ();
+ HttpListener listener = HttpListener2Test.CreateAndStartListener (
+ "http://127.0.0.1:" + port + "/HttpRequestIgnoreBadCookiesTest/");
+ NetworkStream ns = HttpListener2Test.CreateNS (port);
+ HttpListener2Test.Send (ns, "GET /HttpRequestIgnoreBadCookiesTest/?a=b HTTP/1.1\r\nHost: 127.0.0.1\r\nCookie: ELOQUA=GUID=5ca2346347357f4-f877-4eff-96aa-70fe0b677650; ELQSTATUS=OK; WRUID=609099666.123259461695; CommunityServer-UserCookie2101=lv=Thu, 26 Jul 2012 15:25:11 GMT&mra=Mon, 01 Oct 2012 17:40:05 GMT; PHPSESSID=1234dg3opfjb4qafp0oo645; __utma=9761706.1153317537.1357240270.1357240270.1357317902.2; __utmb=9761706.6.10.1357317902; __utmc=9761706; __utmz=9761706.1357240270.1.1.utmcsr=test.testdomain.com|utmccn=(referral)|utmcmd=referral|utmcct=/test/1234\r\n\r\n");
+ HttpListenerContext ctx = listener.GetContext ();
+ HttpListenerRequest request = ctx.Request;
+ Assert.AreEqual ("/HttpRequestIgnoreBadCookiesTest/?a=b", request.Url.PathAndQuery);
+ listener.Close ();
+ }
}
}