Example #1
0
		public void ContentEncoding_Disposed ()
		{
			IPEndPoint ep = new IPEndPoint (IPAddress.Loopback, 8000);
			string url = "http://" + ep.ToString () + "/test/";

			using (SocketResponder responder = new SocketResponder (ep, new SocketRequestHandler (FullResponseHandler))) {
				responder.Start ();

				HttpWebRequest req = (HttpWebRequest) WebRequest.Create (url);
				req.Method = "GET";
				req.Timeout = 2000;
				req.ReadWriteTimeout = 2000;
				req.KeepAlive = false;

				HttpWebResponse resp = (HttpWebResponse) req.GetResponse ();
				((IDisposable) resp).Dispose ();

				try {
					string enc = resp.ContentEncoding;
					Assert.Fail ("#1:" + enc);
				} catch (ObjectDisposedException ex) {
					Assert.AreEqual (typeof (ObjectDisposedException), ex.GetType (), "#2");
					Assert.IsNull (ex.InnerException, "#3");
					Assert.IsNotNull (ex.Message, "#4");
					Assert.AreEqual (typeof (HttpWebResponse).FullName, ex.ObjectName, "#5");
				}
			}
		}
Example #2
0
        public void Read_Count_Negative()
        {
            IPEndPoint ep  = new IPEndPoint(IPAddress.Loopback, 8000);
            string     url = "http://" + ep.ToString() + "/test/";

            using (SocketResponder responder = new SocketResponder(ep, new SocketRequestHandler(HttpWebResponseTest.FullResponseHandler))) {
                responder.Start();

                HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url);
                req.Method           = "GET";
                req.Timeout          = 2000;
                req.ReadWriteTimeout = 2000;
                req.KeepAlive        = false;

                using (HttpWebResponse resp = (HttpWebResponse)req.GetResponse()) {
                    Stream  rs     = resp.GetResponseStream();
                    byte [] buffer = new byte [5];
                    try {
                        try {
                            rs.Read(buffer, 1, -1);
                            Assert.Fail("#A1");
                        } catch (ArgumentOutOfRangeException ex) {
                            // Specified argument was out of the range of valid values
                            Assert.AreEqual(typeof(ArgumentOutOfRangeException), ex.GetType(), "#A2");
                            Assert.IsNull(ex.InnerException, "#A3");
                            Assert.IsNotNull(ex.Message, "#A4");
                            Assert.AreEqual("size", ex.ParamName, "#A5");
                        }

                        // read full response
                        buffer = new byte [24];
                        Assert.AreEqual(9, rs.Read(buffer, 0, buffer.Length));

                        try {
                            rs.Read(buffer, 1, -1);
                            Assert.Fail("#B1");
                        } catch (ArgumentOutOfRangeException ex) {
                            // Specified argument was out of the range of valid values
                            Assert.AreEqual(typeof(ArgumentOutOfRangeException), ex.GetType(), "#B2");
                            Assert.IsNull(ex.InnerException, "#B3");
                            Assert.IsNotNull(ex.Message, "#B4");
                            Assert.AreEqual("size", ex.ParamName, "#B5");
                        }
                    } finally {
                        rs.Close();
                        req.Abort();
                    }
                }
            }
        }
        public void Read_Buffer_Null()
        {
            IPEndPoint ep  = NetworkHelpers.LocalEphemeralEndPoint();
            string     url = "http://" + ep.ToString() + "/test/";

            using (SocketResponder responder = new SocketResponder(ep, new SocketRequestHandler(HttpWebResponseTest.FullResponseHandler))) {
                responder.Start();

                HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url);
                req.Method           = "GET";
                req.Timeout          = 2000;
                req.ReadWriteTimeout = 2000;
                req.KeepAlive        = false;

                using (HttpWebResponse resp = (HttpWebResponse)req.GetResponse()) {
                    Stream  rs     = resp.GetResponseStream();
                    byte [] buffer = null;
                    try {
                        try {
                            rs.Read(buffer, 0, 0);
                            Assert.Fail("#A1");
                        } catch (ArgumentNullException ex) {
                            Assert.AreEqual(typeof(ArgumentNullException), ex.GetType(), "#A2");
                            Assert.IsNull(ex.InnerException, "#A3");
                            Assert.IsNotNull(ex.Message, "#A4");
                            Assert.AreEqual("buffer", ex.ParamName, "#A5");
                        }

                        // read full response
                        buffer = new byte [24];
                        Assert.AreEqual(9, rs.Read(buffer, 0, buffer.Length));

                        buffer = null;
                        try {
                            rs.Read(buffer, 0, 0);
                            Assert.Fail("#B1");
                        } catch (ArgumentNullException ex) {
                            Assert.AreEqual(typeof(ArgumentNullException), ex.GetType(), "#B2");
                            Assert.IsNull(ex.InnerException, "#B3");
                            Assert.IsNotNull(ex.Message, "#B4");
                            Assert.AreEqual("buffer", ex.ParamName, "#B5");
                        }
                    } finally {
                        rs.Close();
                        req.Abort();
                    }
                }
            }
        }
Example #4
0
        public void Close_Disposed()
        {
            IPEndPoint ep  = NetworkHelpers.LocalEphemeralEndPoint();
            string     url = "http://" + ep.ToString() + "/test/";

            using (SocketResponder responder = new SocketResponder(ep, s => FullResponseHandler(s))) {
                HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url);
                req.Method           = "GET";
                req.Timeout          = 2000;
                req.ReadWriteTimeout = 2000;
                req.KeepAlive        = false;

                HttpWebResponse resp = (HttpWebResponse)req.GetResponse();
                ((IDisposable)resp).Dispose();
                resp.Close();
            }
        }
Example #5
0
		public void Close_Disposed ()
		{
			IPEndPoint ep = new IPEndPoint (IPAddress.Loopback, 8000);
			string url = "http://" + ep.ToString () + "/test/";

			using (SocketResponder responder = new SocketResponder (ep, new SocketRequestHandler (FullResponseHandler))) {
				responder.Start ();

				HttpWebRequest req = (HttpWebRequest) WebRequest.Create (url);
				req.Method = "GET";
				req.Timeout = 2000;
				req.ReadWriteTimeout = 2000;
				req.KeepAlive = false;

				HttpWebResponse resp = (HttpWebResponse) req.GetResponse ();
				((IDisposable) resp).Dispose ();
				resp.Close ();
			}
		}
Example #6
0
        public void Close_Disposed()
        {
            IPEndPoint ep  = new IPEndPoint(IPAddress.Loopback, 8000);
            string     url = "http://" + ep.ToString() + "/test/";

            using (SocketResponder responder = new SocketResponder(ep, new SocketRequestHandler(FullResponseHandler))) {
                responder.Start();

                HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url);
                req.Method           = "GET";
                req.Timeout          = 2000;
                req.ReadWriteTimeout = 2000;
                req.KeepAlive        = false;

                HttpWebResponse resp = (HttpWebResponse)req.GetResponse();
                ((IDisposable)resp).Dispose();
                resp.Close();
            }
        }
        public void StatusCode_Disposed()
        {
            IPEndPoint ep  = NetworkHelpers.LocalEphemeralEndPoint();
            string     url = "http://" + ep.ToString() + "/test/";

            using (SocketResponder responder = new SocketResponder(ep, new SocketRequestHandler(FullResponseHandler))) {
                responder.Start();

                HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url);
                req.Method           = "GET";
                req.Timeout          = 2000;
                req.ReadWriteTimeout = 2000;
                req.KeepAlive        = false;

                HttpWebResponse resp = (HttpWebResponse)req.GetResponse();
                ((IDisposable)resp).Dispose();

                Assert.AreEqual(HttpStatusCode.OK, resp.StatusCode);
            }
        }
Example #8
0
        public void Headers_Disposed()
        {
            IPEndPoint ep  = new IPEndPoint(IPAddress.Loopback, 8000);
            string     url = "http://" + ep.ToString() + "/test/";

            using (SocketResponder responder = new SocketResponder(ep, new SocketRequestHandler(FullResponseHandler))) {
                responder.Start();

                HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url);
                req.Method           = "GET";
                req.Timeout          = 2000;
                req.ReadWriteTimeout = 2000;
                req.KeepAlive        = false;

                HttpWebResponse resp = (HttpWebResponse)req.GetResponse();
                ((IDisposable)resp).Dispose();

#if NET_2_0
                WebHeaderCollection headers = resp.Headers;
                Assert.AreEqual(6, headers.Count, "#1");
                Assert.AreEqual("9", headers ["Content-Length"], "#2");
                Assert.AreEqual("utf-8", headers ["Content-Encoding"], "#3");
                Assert.AreEqual("text/xml; charset=UTF-8", headers ["Content-Type"], "#4");
                Assert.AreEqual("Wed, 08 Jan 2003 23:11:55 GMT", headers ["Last-Modified"], "#5");
                Assert.AreEqual("UserID=Miguel,StoreProfile=true", headers ["Set-Cookie"], "#6");
                Assert.AreEqual("Mono/Test", headers ["Server"], "#7");
#else
                try {
                    WebHeaderCollection headers = resp.Headers;
                    Assert.Fail("#1:" + headers);
                } catch (ObjectDisposedException ex) {
                    Assert.AreEqual(typeof(ObjectDisposedException), ex.GetType(), "#2");
                    Assert.IsNull(ex.InnerException, "#3");
                    Assert.IsNotNull(ex.Message, "#4");
                    Assert.AreEqual(typeof(HttpWebResponse).FullName, ex.ObjectName, "#5");
                }
#endif
            }
        }
Example #9
0
        public void Cookies_Disposed()
        {
            IPEndPoint ep  = new IPEndPoint(IPAddress.Loopback, 8000);
            string     url = "http://" + ep.ToString() + "/test/";

            using (SocketResponder responder = new SocketResponder(ep, new SocketRequestHandler(FullResponseHandler))) {
                responder.Start();

                HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url);
                req.Method           = "GET";
                req.Timeout          = 2000;
                req.ReadWriteTimeout = 2000;
                req.KeepAlive        = false;

                HttpWebResponse resp = (HttpWebResponse)req.GetResponse();
                ((IDisposable)resp).Dispose();

                try {
                    CookieCollection cookies = resp.Cookies;
                    Assert.Fail("#A1:" + cookies);
                } catch (ObjectDisposedException ex) {
                    Assert.AreEqual(typeof(ObjectDisposedException), ex.GetType(), "#A2");
                    Assert.IsNull(ex.InnerException, "#A3");
                    Assert.IsNotNull(ex.Message, "#A4");
                    Assert.AreEqual(typeof(HttpWebResponse).FullName, ex.ObjectName, "#A5");
                }

                try {
                    resp.Cookies = new CookieCollection();
                    Assert.Fail("#B1");
                } catch (ObjectDisposedException ex) {
                    Assert.AreEqual(typeof(ObjectDisposedException), ex.GetType(), "#B2");
                    Assert.IsNull(ex.InnerException, "#B3");
                    Assert.IsNotNull(ex.Message, "#B4");
                    Assert.AreEqual(typeof(HttpWebResponse).FullName, ex.ObjectName, "#B5");
                }
            }
        }
Example #10
0
        public void Read()
        {
            IPEndPoint ep  = new IPEndPoint(IPAddress.Loopback, 8000);
            string     url = "http://" + ep.ToString() + "/test/";

            using (SocketResponder responder = new SocketResponder(ep, new SocketRequestHandler(HttpWebResponseTest.FullResponseHandler))) {
                responder.Start();

                HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url);
                req.Method           = "GET";
                req.Timeout          = 2000;
                req.ReadWriteTimeout = 2000;
                req.KeepAlive        = false;

                using (HttpWebResponse resp = (HttpWebResponse)req.GetResponse()) {
                    Stream  rs     = resp.GetResponseStream();
                    byte [] buffer = new byte [5];
                    try {
                        Assert.AreEqual(1, rs.Read(buffer, 4, 1), "#A1");
                        Assert.AreEqual(new byte [] { 0x00, 0x00, 0x00, 0x00, 0x3c }, buffer, "#A2");
                        Assert.AreEqual(2, rs.Read(buffer, 0, 2), "#B1");
                        Assert.AreEqual(new byte [] { 0x64, 0x75, 0x00, 0x00, 0x3c }, buffer, "#B2");
                        Assert.AreEqual(4, rs.Read(buffer, 1, 4), "#C1");
                        Assert.AreEqual(new byte [] { 0x64, 0x6d, 0x6d, 0x79, 0x20 }, buffer, "#C2");
                        Assert.AreEqual(2, rs.Read(buffer, 0, 3), "#D1");
                        Assert.AreEqual(new byte [] { 0x2f, 0x3e, 0x6d, 0x79, 0x20 }, buffer, "#D2");
                        Assert.AreEqual(0, rs.Read(buffer, 1, 3), "#E1");
                        Assert.AreEqual(new byte [] { 0x2f, 0x3e, 0x6d, 0x79, 0x20 }, buffer, "#E2");
                        Assert.AreEqual(0, rs.Read(buffer, buffer.Length, 0), "#G1");
                        Assert.AreEqual(new byte [] { 0x2f, 0x3e, 0x6d, 0x79, 0x20 }, buffer, "#G2");
                    } finally {
                        rs.Close();
                        req.Abort();
                    }
                }
            }
        }
Example #11
0
		public void Read_Stream_Closed ()
		{
			IPEndPoint ep = new IPEndPoint (IPAddress.Loopback, 8000);
			string url = "http://" + ep.ToString () + "/test/";

			using (SocketResponder responder = new SocketResponder (ep, new SocketRequestHandler (HttpWebResponseTest.FullResponseHandler))) {
				responder.Start ();

				HttpWebRequest req;
				
				req = (HttpWebRequest) WebRequest.Create (url);
				req.Method = "GET";
				req.Timeout = 2000;
				req.ReadWriteTimeout = 2000;
				req.KeepAlive = false;

				using (HttpWebResponse resp = (HttpWebResponse) req.GetResponse ()) {
					Stream rs = resp.GetResponseStream ();
					rs.Close ();
					try {
						rs.Read (new byte [0], 0, 0);
						Assert.Fail ("#A1");
					} catch (WebException ex) {
						// The request was aborted: The connection was closed unexpectedly
						Assert.AreEqual (typeof (WebException), ex.GetType (), "#A2");
						Assert.IsNull (ex.InnerException, "#A3");
						Assert.IsNotNull (ex.Message, "#A4");
						Assert.IsNull (ex.Response, "#A5");
						Assert.AreEqual (WebExceptionStatus.ConnectionClosed, ex.Status, "#A6");
					} finally {
						rs.Close ();
						req.Abort ();
					}
				}

				req = (HttpWebRequest) WebRequest.Create (url);
				req.Method = "GET";
				req.Timeout = 2000;
				req.ReadWriteTimeout = 2000;
				req.KeepAlive = false;

				using (HttpWebResponse resp = (HttpWebResponse) req.GetResponse ()) {
					Stream rs = resp.GetResponseStream ();
					byte [] buffer = new byte [24];
					Assert.AreEqual (9, rs.Read (buffer, 0, buffer.Length));
					rs.Close ();
					try {
						rs.Read (new byte [0], 0, 0);
						Assert.Fail ("#B1");
					} catch (WebException ex) {
						// The request was aborted: The connection was closed unexpectedly
						Assert.AreEqual (typeof (WebException), ex.GetType (), "#B2");
						Assert.IsNull (ex.InnerException, "#B3");
						Assert.IsNotNull (ex.Message, "#B4");
						Assert.IsNull (ex.Response, "#B5");
						Assert.AreEqual (WebExceptionStatus.ConnectionClosed, ex.Status, "#B6");
					} finally {
						rs.Close ();
						req.Abort ();
					}
				}
			}
		}
Example #12
0
		public void Read_Offset_Overflow ()
		{
			IPEndPoint ep = new IPEndPoint (IPAddress.Loopback, 8000);
			string url = "http://" + ep.ToString () + "/test/";

			using (SocketResponder responder = new SocketResponder (ep, new SocketRequestHandler (HttpWebResponseTest.FullResponseHandler))) {
				responder.Start ();

				HttpWebRequest req = (HttpWebRequest) WebRequest.Create (url);
				req.Method = "GET";
				req.Timeout = 2000;
				req.ReadWriteTimeout = 2000;
				req.KeepAlive = false;

				using (HttpWebResponse resp = (HttpWebResponse) req.GetResponse ()) {
					Stream rs = resp.GetResponseStream ();
					byte [] buffer = new byte [5];
					try {
						try {
							rs.Read (buffer, buffer.Length + 1, 0);
							Assert.Fail ("#A1");
						} catch (ArgumentOutOfRangeException ex) {
							// Specified argument was out of the range of valid values
							Assert.AreEqual (typeof (ArgumentOutOfRangeException), ex.GetType (), "#A2");
							Assert.IsNull (ex.InnerException, "#A3");
							Assert.IsNotNull (ex.Message, "#A4");
							Assert.AreEqual ("offset", ex.ParamName, "#A5");
						}

						// read full response
						buffer = new byte [24];
						Assert.AreEqual (9, rs.Read (buffer, 0, buffer.Length));

						try {
							rs.Read (buffer, buffer.Length + 1, 0);
							Assert.Fail ("#B1");
						} catch (ArgumentOutOfRangeException ex) {
							// Specified argument was out of the range of valid values
							Assert.AreEqual (typeof (ArgumentOutOfRangeException), ex.GetType (), "#B2");
							Assert.IsNull (ex.InnerException, "#B3");
							Assert.IsNotNull (ex.Message, "#B4");
							Assert.AreEqual ("offset", ex.ParamName, "#B5");
						}
					} finally {
						rs.Close ();
						req.Abort ();
					}
				}
			}
		}
Example #13
0
		public void BeginWrite ()
		{
			IPEndPoint ep = new IPEndPoint (IPAddress.Loopback, 8000);
			string url = "http://" + ep.ToString () + "/test/";

			using (SocketResponder responder = new SocketResponder (ep, new SocketRequestHandler (HttpWebResponseTest.FullResponseHandler))) {
				responder.Start ();

				HttpWebRequest req = (HttpWebRequest) WebRequest.Create (url);
				req.Method = "GET";
				req.Timeout = 2000;
				req.ReadWriteTimeout = 2000;
				req.KeepAlive = false;

				using (HttpWebResponse resp = (HttpWebResponse) req.GetResponse ()) {
					Stream rs = resp.GetResponseStream ();
					byte [] buffer = new byte [5];
					try {
						rs.BeginWrite (buffer, 0, buffer.Length, null, null);
						Assert.Fail ("#1");
					} catch (NotSupportedException ex) {
						// The stream does not support writing
						Assert.AreEqual (typeof (NotSupportedException), ex.GetType (), "#2");
						Assert.IsNull (ex.InnerException, "#3");
						Assert.IsNotNull (ex.Message, "#4");
					} finally {
						rs.Close ();
						req.Abort ();
					}
				}
			}
		}
Example #14
0
		public void Headers_Disposed ()
		{
			IPEndPoint ep = new IPEndPoint (IPAddress.Loopback, 8000);
			string url = "http://" + ep.ToString () + "/test/";

			using (SocketResponder responder = new SocketResponder (ep, new SocketRequestHandler (FullResponseHandler))) {
				responder.Start ();

				HttpWebRequest req = (HttpWebRequest) WebRequest.Create (url);
				req.Method = "GET";
				req.Timeout = 2000;
				req.ReadWriteTimeout = 2000;
				req.KeepAlive = false;

				HttpWebResponse resp = (HttpWebResponse) req.GetResponse ();
				((IDisposable) resp).Dispose ();

				WebHeaderCollection headers = resp.Headers;
				Assert.AreEqual (6, headers.Count, "#1");
				Assert.AreEqual ("9", headers ["Content-Length"], "#2");
				Assert.AreEqual ("utf-8", headers ["Content-Encoding"], "#3");
				Assert.AreEqual ("text/xml; charset=UTF-8", headers ["Content-Type"], "#4");
				Assert.AreEqual ("Wed, 08 Jan 2003 23:11:55 GMT", headers ["Last-Modified"], "#5");
				Assert.AreEqual ("UserID=Miguel,StoreProfile=true", headers ["Set-Cookie"], "#6");
				Assert.AreEqual ("Mono/Test", headers ["Server"], "#7");
			}
		}
Example #15
0
        public void Read_Stream_Closed()
        {
            IPEndPoint ep  = new IPEndPoint(IPAddress.Loopback, 8000);
            string     url = "http://" + ep.ToString() + "/test/";

            using (SocketResponder responder = new SocketResponder(ep, new SocketRequestHandler(HttpWebResponseTest.FullResponseHandler))) {
                responder.Start();

                HttpWebRequest req;

                req                  = (HttpWebRequest)WebRequest.Create(url);
                req.Method           = "GET";
                req.Timeout          = 2000;
                req.ReadWriteTimeout = 2000;
                req.KeepAlive        = false;

                using (HttpWebResponse resp = (HttpWebResponse)req.GetResponse()) {
                    Stream rs = resp.GetResponseStream();
                    rs.Close();
                    try {
                        rs.Read(new byte [0], 0, 0);
                        Assert.Fail("#A1");
                    } catch (WebException ex) {
                        // The request was aborted: The connection was closed unexpectedly
                        Assert.AreEqual(typeof(WebException), ex.GetType(), "#A2");
                        Assert.IsNull(ex.InnerException, "#A3");
                        Assert.IsNotNull(ex.Message, "#A4");
                        Assert.IsNull(ex.Response, "#A5");
                        Assert.AreEqual(WebExceptionStatus.ConnectionClosed, ex.Status, "#A6");
                    } finally {
                        rs.Close();
                        req.Abort();
                    }
                }

                req                  = (HttpWebRequest)WebRequest.Create(url);
                req.Method           = "GET";
                req.Timeout          = 2000;
                req.ReadWriteTimeout = 2000;
                req.KeepAlive        = false;

                using (HttpWebResponse resp = (HttpWebResponse)req.GetResponse()) {
                    Stream  rs     = resp.GetResponseStream();
                    byte [] buffer = new byte [24];
                    Assert.AreEqual(9, rs.Read(buffer, 0, buffer.Length));
                    rs.Close();
                    try {
                        rs.Read(new byte [0], 0, 0);
                        Assert.Fail("#B1");
                    } catch (WebException ex) {
                        // The request was aborted: The connection was closed unexpectedly
                        Assert.AreEqual(typeof(WebException), ex.GetType(), "#B2");
                        Assert.IsNull(ex.InnerException, "#B3");
                        Assert.IsNotNull(ex.Message, "#B4");
                        Assert.IsNull(ex.Response, "#B5");
                        Assert.AreEqual(WebExceptionStatus.ConnectionClosed, ex.Status, "#B6");
                    } finally {
                        rs.Close();
                        req.Abort();
                    }
                }
            }
        }
Example #16
0
		public void UploadAsyncCancelEventTest (Action<WebClient, Uri, EventWaitHandle> uploadAction)
		{
			var ep = new IPEndPoint (IPAddress.Loopback, 8000);
			string url = "http://" + IPAddress.Loopback + ":8000/test/";

			using (var responder = new SocketResponder (ep, EchoRequestHandler))
			{
				responder.Start ();

				var webClient = new WebClient ();

				var cancellationTokenSource = new CancellationTokenSource ();
				cancellationTokenSource.Token.Register (webClient.CancelAsync);

				var cancelEvent = new ManualResetEvent (false);

				uploadAction.Invoke (webClient, new Uri (url), cancelEvent);

				cancellationTokenSource.Cancel ();

				Assert.IsTrue (cancelEvent.WaitOne (1000));
			}
		}
Example #17
0
		public void UploadValues1 ()
		{
			IPEndPoint ep = new IPEndPoint (IPAddress.Loopback, 8000);
			string url = "http://" + IPAddress.Loopback.ToString () + ":8000/test/";

			using (SocketResponder responder = new SocketResponder (ep, new SocketRequestHandler (EchoRequestHandler))) {
				responder.Start ();

				WebClient wc = new WebClient ();
				wc.Encoding = Encoding.ASCII;

				NameValueCollection nvc = new NameValueCollection ();
				nvc.Add ("Name", "\u0041\u2262\u0391\u002E");
				nvc.Add ("Address", "\u002E\u2262\u0041\u0391");

				byte [] buffer = wc.UploadValues (url, nvc);
				string response = Encoding.UTF8.GetString (buffer);
				Assert.AreEqual ("Name=A%e2%89%a2%ce%91.&Address=.%e2%89%a2A%ce%91\r\n", response);
			}
		}
Example #18
0
		public void CanWrite ()
		{
			IPEndPoint ep = new IPEndPoint (IPAddress.Loopback, 8000);
			string url = "http://" + ep.ToString () + "/test/";

			using (SocketResponder responder = new SocketResponder (ep, new SocketRequestHandler (HttpWebResponseTest.FullResponseHandler))) {
				responder.Start ();

				HttpWebRequest req = (HttpWebRequest) WebRequest.Create (url);
				req.Method = "GET";
				req.Timeout = 2000;
				req.ReadWriteTimeout = 2000;
				req.KeepAlive = false;

				using (HttpWebResponse resp = (HttpWebResponse) req.GetResponse ()) {
					Stream rs = resp.GetResponseStream ();
					try {
						Assert.IsFalse (rs.CanWrite, "#1");
						rs.Close ();
						Assert.IsFalse (rs.CanWrite, "#2");
					} finally {
						rs.Close ();
						req.Abort ();
					}
				}
			}
		}
Example #19
0
		public void Read ()
		{
			IPEndPoint ep = new IPEndPoint (IPAddress.Loopback, 8000);
			string url = "http://" + ep.ToString () + "/test/";

			using (SocketResponder responder = new SocketResponder (ep, new SocketRequestHandler (HttpWebResponseTest.FullResponseHandler))) {
				responder.Start ();

				HttpWebRequest req = (HttpWebRequest) WebRequest.Create (url);
				req.Method = "GET";
				req.Timeout = 2000;
				req.ReadWriteTimeout = 2000;
				req.KeepAlive = false;

				using (HttpWebResponse resp = (HttpWebResponse) req.GetResponse ()) {
					Stream rs = resp.GetResponseStream ();
					byte [] buffer = new byte [5];
					try {
						Assert.AreEqual (1, rs.Read (buffer, 4, 1), "#A1");
						Assert.AreEqual (new byte [] { 0x00, 0x00, 0x00, 0x00, 0x3c }, buffer, "#A2");
						Assert.AreEqual (2, rs.Read (buffer, 0, 2), "#B1");
						Assert.AreEqual (new byte [] { 0x64, 0x75, 0x00, 0x00, 0x3c }, buffer, "#B2");
						Assert.AreEqual (4, rs.Read (buffer, 1, 4), "#C1");
						Assert.AreEqual (new byte [] { 0x64, 0x6d, 0x6d, 0x79, 0x20 }, buffer, "#C2");
						Assert.AreEqual (2, rs.Read (buffer, 0, 3), "#D1");
						Assert.AreEqual (new byte [] { 0x2f, 0x3e, 0x6d, 0x79, 0x20 }, buffer, "#D2");
						Assert.AreEqual (0, rs.Read (buffer, 1, 3), "#E1");
						Assert.AreEqual (new byte [] { 0x2f, 0x3e, 0x6d, 0x79, 0x20 }, buffer, "#E2");
						Assert.AreEqual (0, rs.Read (buffer, buffer.Length, 0), "#G1");
						Assert.AreEqual (new byte [] { 0x2f, 0x3e, 0x6d, 0x79, 0x20 }, buffer, "#G2");
					} finally {
						rs.Close ();
						req.Abort ();
					}
				}
			}
		}