Merge pull request #2073 from BrzVlad/fix-sgen
[mono.git] / mcs / class / System.Net.Http / Test / System.Net.Http / HttpClientHandlerTest.cs
index e02db43791908b370e40341f76108c842f5d4f8a..78f8a0c225d5eb089658e94aa3aa821bc1706f42 100644 (file)
@@ -38,6 +38,28 @@ namespace MonoTests.System.Net.Http
        [TestFixture]
        public class HttpClientHandlerTest
        {
+               class Proxy : IWebProxy
+               {
+                       public ICredentials Credentials {
+                               get {
+                                       throw new NotImplementedException ();
+                               }
+                               set {
+                                       throw new NotImplementedException ();
+                               }
+                       }
+
+                       public Uri GetProxy (Uri destination)
+                       {
+                               throw new NotImplementedException ();
+                       }
+
+                       public bool IsBypassed (Uri host)
+                       {
+                               throw new NotImplementedException ();
+                       }
+               }
+
                [Test]
                public void Properties_Defaults ()
                {
@@ -48,7 +70,7 @@ namespace MonoTests.System.Net.Http
                        Assert.AreEqual (4096, h.CookieContainer.MaxCookieSize, "#3b");
                        Assert.AreEqual (null, h.Credentials, "#4");
                        Assert.AreEqual (50, h.MaxAutomaticRedirections, "#5");
-                       Assert.AreEqual (0x10000, h.MaxRequestContentBufferSize, "#6");
+                       Assert.AreEqual (int.MaxValue, h.MaxRequestContentBufferSize, "#6");
                        Assert.IsFalse (h.PreAuthenticate, "#7");
                        Assert.IsNull (h.Proxy, "#8");
                        Assert.IsTrue (h.SupportsAutomaticDecompression, "#9");
@@ -57,6 +79,7 @@ namespace MonoTests.System.Net.Http
                        Assert.IsTrue (h.UseCookies, "#12");
                        Assert.IsFalse (h.UseDefaultCredentials, "#13");
                        Assert.IsTrue (h.UseProxy, "#14");
+                       Assert.AreEqual (ClientCertificateOption.Manual, h.ClientCertificateOptions, "#15");
                }
 
                [Test]
@@ -75,6 +98,38 @@ namespace MonoTests.System.Net.Http
                        } catch (ArgumentOutOfRangeException) {
                        }
 
+                       h.UseProxy = false;
+                       try {
+                               h.Proxy = new Proxy ();
+                               Assert.Fail ("#3");
+                       } catch (InvalidOperationException) {
+                       }
+               }
+
+               [Test]
+               public void Properties_AfterClientCreation ()
+               {
+                       var h = new HttpClientHandler ();
+                       h.AllowAutoRedirect = true;
+
+                       // We may modify properties after creating the HttpClient.
+                       using (var c = new HttpClient (h, true)) {
+                               h.AllowAutoRedirect = false;
+                       }
+               }
+
+               [Test]
+               public void Disposed ()
+               {
+                       var h = new HttpClientHandler ();
+                       h.Dispose ();
+                       var c = new HttpClient (h);
+                       try {
+                               c.GetAsync ("http://google.com").Wait ();
+                               Assert.Fail ("#1");
+                       } catch (AggregateException e) {
+                               Assert.IsTrue (e.InnerException is ObjectDisposedException, "#2");
+                       }
                }
        }
 }