using System.Net.Sockets;
using System.Text;
using System.Collections.Generic;
+using System.Threading.Tasks;
using NUnit.Framework;
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");
+
+ listener.Close ();
+ }
}
}