Merge pull request #3066 from alexanderkyte/pedump_sgen
[mono.git] / mcs / class / System / Test / System.Net / WebProxyTest.cs
index 664892a4f6dafab142148718e167ecddcfa89aeb..0257ff50fecd19026c2de0e1019aa883ddebb3b0 100644 (file)
@@ -25,54 +25,42 @@ namespace MonoTests.System.Net
        [TestFixture]
        public class WebProxyTest
        {
-               private Uri googleUri;
-               private Uri yahooUri;
-               private Uri apacheUri;
-
-               [SetUp]
-               public void GetReady ()
-               {
-                       googleUri = new Uri ("http://www.google.com");
-                       yahooUri = new Uri ("http://www.yahoo.com");
-                       apacheUri = new Uri ("http://www.apache.org");
-               }
-
                [Test]
                public void Constructors ()
                {
                        WebProxy p = new WebProxy ();
-                       Assertion.Assert ("#1", p.Address == null);
-                       Assertion.AssertEquals ("#2", 0, p.BypassArrayList.Count);
-                       Assertion.AssertEquals ("#3", 0, p.BypassList.Length);
-                       Assertion.AssertEquals ("#4", false, p.BypassProxyOnLocal);
+                       Assert.IsTrue (p.Address == null, "#1");
+                       Assert.AreEqual (0, p.BypassArrayList.Count, "#2");
+                       Assert.AreEqual (0, p.BypassList.Length, "#3");
+                       Assert.AreEqual (false, p.BypassProxyOnLocal, "#4");
                        try {
                                p.BypassList = null;
-                               Assertion.Fail ("#5 not spec'd, but should follow ms.net implementation");
+                               Assert.Fail ("#5 not spec'd, but should follow ms.net implementation");
                        } catch (ArgumentNullException) { }
 
                        p = new WebProxy ("webserver.com", 8080);
-                       Assertion.AssertEquals ("#6", new Uri ("http://webserver.com:8080/"), p.Address);
+                       Assert.AreEqual (new Uri ("http://webserver.com:8080/"), p.Address, "#6");
 
                        p = new WebProxy ("webserver");
-                       Assertion.AssertEquals ("#7", new Uri ("http://webserver"), p.Address);
+                       Assert.AreEqual (new Uri ("http://webserver"), p.Address, "#7");
 
                        p = new WebProxy ("webserver.com");
-                       Assertion.AssertEquals ("#8", new Uri ("http://webserver.com"), p.Address);
+                       Assert.AreEqual (new Uri ("http://webserver.com"), p.Address, "#8");
 
                        p = new WebProxy ("http://webserver.com");
-                       Assertion.AssertEquals ("#9", new Uri ("http://webserver.com"), p.Address);
+                       Assert.AreEqual (new Uri ("http://webserver.com"), p.Address, "#9");
 
                        p = new WebProxy ("file://webserver");
-                       Assertion.AssertEquals ("#10", new Uri ("file://webserver"), p.Address);
+                       Assert.AreEqual (new Uri ("file://webserver"), p.Address, "#10");
 
                        p = new WebProxy ("http://www.contoso.com", true, null, null);
-                       Assertion.AssertEquals ("#11", 0, p.BypassList.Length);
-                       Assertion.AssertEquals ("#12", 0, p.BypassArrayList.Count);
+                       Assert.AreEqual (0, p.BypassList.Length, "#11");
+                       Assert.AreEqual (0, p.BypassArrayList.Count, "#12");
 
                        try {
                                p = new WebProxy ("http://contoso.com", true,
                                        new string [] { "?^!@#$%^&}{][" }, null);
-                               Assertion.Fail ("#13: illegal regular expression");
+                               Assert.Fail ("#13: illegal regular expression");
                        } catch (ArgumentException) {
                        }
                }
@@ -86,24 +74,24 @@ namespace MonoTests.System.Net
                        WebProxy p = new WebProxy (proxy1, true);
                        p.BypassArrayList.Add ("http://proxy2.contoso.com");
                        p.BypassArrayList.Add ("http://proxy2.contoso.com");
-                       Assertion.AssertEquals ("#1", 2, p.BypassList.Length);
-                       Assertion.Assert ("#2", !p.IsBypassed (new Uri ("http://www.google.com")));
-                       Assertion.Assert ("#3", p.IsBypassed (proxy2));
-                       Assertion.AssertEquals ("#4", proxy2, p.GetProxy (proxy2));
+                       Assert.AreEqual (2, p.BypassList.Length, "#1");
+                       Assert.IsTrue (!p.IsBypassed (new Uri ("http://www.google.com")), "#2");
+                       Assert.IsTrue (p.IsBypassed (proxy2), "#3");
+                       Assert.AreEqual (proxy2, p.GetProxy (proxy2), "#4");
 
                        p.BypassArrayList.Add ("?^!@#$%^&}{][");
-                       Assertion.AssertEquals ("#10", 3, p.BypassList.Length);
+                       Assert.AreEqual (3, p.BypassList.Length, "#10");
                        try {
-                               Assertion.Assert ("#11", !p.IsBypassed (proxy2));
-                               Assertion.Assert ("#12", !p.IsBypassed (new Uri ("http://www.x.com")));
-                               Assertion.AssertEquals ("#13", proxy1, p.GetProxy (proxy2));
+                               Assert.IsTrue (!p.IsBypassed (proxy2), "#11");
+                               Assert.IsTrue (!p.IsBypassed (new Uri ("http://www.x.com")), "#12");
+                               Assert.AreEqual (proxy1, p.GetProxy (proxy2), "#13");
                                // hmm... although #11 and #13 succeeded before (#3 resp. #4), 
                                // it now fails to bypass, and the IsByPassed and GetProxy 
                                // methods do not fail.. so when an illegal regular 
                                // expression is added through this property it's ignored. 
                                // probably an ms.net bug?? :(
                        } catch (ArgumentException) {
-                               Assertion.Fail ("#15: illegal regular expression");
+                               Assert.Fail ("#15: illegal regular expression");
                        }
                }
 
@@ -116,60 +104,65 @@ namespace MonoTests.System.Net
                        WebProxy p = new WebProxy (proxy1, true);
                        try {
                                p.BypassList = new string [] { "http://proxy2.contoso.com", "?^!@#$%^&}{][" };
-                               Assertion.Fail ("#1");
+                               Assert.Fail ("#1");
                        } catch (ArgumentException) {
                                // weird, this way invalid regex's fail again..
                        }
 
-                       Assertion.AssertEquals ("#2", 2, p.BypassList.Length);
+                       Assert.AreEqual (2, p.BypassList.Length, "#2");
                        // but it did apparenly store the regex's !
 
                        p.BypassList = new string [] { "http://www.x.com" };
-                       Assertion.AssertEquals ("#3", 1, p.BypassList.Length);
+                       Assert.AreEqual (1, p.BypassList.Length, "#3");
 
                        try {
                                p.BypassList = null;
-                               Assertion.Fail ("#4");
+                               Assert.Fail ("#4");
                        } catch (ArgumentNullException) { }
 
-                       Assertion.AssertEquals ("#4", 1, p.BypassList.Length);
-               }
-
-               [Test]
-               public void GetProxy ()
-               {
+                       Assert.AreEqual (1, p.BypassList.Length, "#4");
                }
 
                [Test]
                public void IsByPassed ()
                {
                        WebProxy p = new WebProxy ("http://proxy.contoso.com", true);
-                       Assertion.Assert ("#1", !p.IsBypassed (new Uri ("http://www.google.com")));
-                       Assertion.Assert ("#2", p.IsBypassed (new Uri ("http://localhost/index.html")));
-                       Assertion.Assert ("#3", p.IsBypassed (new Uri ("http://localhost:8080/index.html")));
-                       Assertion.Assert ("#4", p.IsBypassed (new Uri ("http://loopback:8080/index.html")));
-                       Assertion.Assert ("#5", p.IsBypassed (new Uri ("http://127.0.0.01:8080/index.html")));
-                       Assertion.Assert ("#6", p.IsBypassed (new Uri ("http://webserver/index.html")));
-                       Assertion.Assert ("#7", !p.IsBypassed (new Uri ("http://webserver.com/index.html")));
+                       Assert.IsTrue (!p.IsBypassed (new Uri ("http://www.google.com")), "#1");
+                       Assert.IsTrue (p.IsBypassed (new Uri ("http://localhost/index.html")), "#2");
+                       Assert.IsTrue (p.IsBypassed (new Uri ("http://localhost:8080/index.html")), "#3");
+                       Assert.IsTrue (p.IsBypassed (new Uri ("http://loopback:8080/index.html")), "#4");
+                       Assert.IsTrue (p.IsBypassed (new Uri ("http://127.0.0.01:8080/index.html")), "#5");
+                       Assert.IsTrue (p.IsBypassed (new Uri ("http://webserver/index.html")), "#6");
+                       Assert.IsTrue (!p.IsBypassed (new Uri ("http://webserver.com/index.html")), "#7");
 
                        p = new WebProxy ("http://proxy.contoso.com", false);
-                       Assertion.Assert ("#11", !p.IsBypassed (new Uri ("http://www.google.com")));
-                       Assertion.Assert ("#12: lamespec of ms.net", p.IsBypassed (new Uri ("http://localhost/index.html")));
-                       Assertion.Assert ("#13: lamespec of ms.net", p.IsBypassed (new Uri ("http://localhost:8080/index.html")));
-                       Assertion.Assert ("#14: lamespec of ms.net", p.IsBypassed (new Uri ("http://loopback:8080/index.html")));
-                       Assertion.Assert ("#15: lamespec of ms.net", p.IsBypassed (new Uri ("http://127.0.0.01:8080/index.html")));
-                       Assertion.Assert ("#16", !p.IsBypassed (new Uri ("http://webserver/index.html")));
+                       Assert.IsTrue (!p.IsBypassed (new Uri ("http://www.google.com")), "#11");
+                       Assert.IsTrue (p.IsBypassed (new Uri ("http://localhost/index.html")), "#12: lamespec of ms.net");
+                       Assert.IsTrue (p.IsBypassed (new Uri ("http://localhost:8080/index.html")), "#13: lamespec of ms.net");
+                       Assert.IsTrue (p.IsBypassed (new Uri ("http://loopback:8080/index.html")), "#14: lamespec of ms.net");
+                       Assert.IsTrue (p.IsBypassed (new Uri ("http://127.0.0.01:8080/index.html")), "#15: lamespec of ms.net");
+                       Assert.IsTrue (!p.IsBypassed (new Uri ("http://webserver/index.html")), "#16");
 
                        p.BypassList = new string [] { "google.com", "contoso.com" };
-                       Assertion.Assert ("#20", p.IsBypassed (new Uri ("http://www.google.com")));
-                       Assertion.Assert ("#21", p.IsBypassed (new Uri ("http://www.GOOGLE.com")));
-                       Assertion.Assert ("#22", p.IsBypassed (new Uri ("http://www.contoso.com:8080/foo/bar/index.html")));
-                       Assertion.Assert ("#23", !p.IsBypassed (new Uri ("http://www.contoso2.com:8080/foo/bar/index.html")));
-                       Assertion.Assert ("#24", !p.IsBypassed (new Uri ("http://www.foo.com:8080/contoso.com.html")));
+                       Assert.IsTrue (p.IsBypassed (new Uri ("http://www.google.com")), "#20");
+                       Assert.IsTrue (p.IsBypassed (new Uri ("http://www.GOOGLE.com")), "#21");
+                       Assert.IsTrue (p.IsBypassed (new Uri ("http://www.contoso.com:8080/foo/bar/index.html")), "#22");
+                       Assert.IsTrue (!p.IsBypassed (new Uri ("http://www.contoso2.com:8080/foo/bar/index.html")), "#23");
+                       Assert.IsTrue (!p.IsBypassed (new Uri ("http://www.foo.com:8080/contoso.com.html")), "#24");
 
                        p.BypassList = new string [] { "https" };
-                       Assertion.Assert ("#30", !p.IsBypassed (new Uri ("http://www.google.com")));
-                       Assertion.Assert ("#31", p.IsBypassed (new Uri ("https://www.google.com")));
+                       Assert.IsTrue (!p.IsBypassed (new Uri ("http://www.google.com")), "#30");
+                       Assert.IsTrue (p.IsBypassed (new Uri ("https://www.google.com")), "#31");
+               }
+
+               [Test]
+               public void IsByPassed_Address_Null ()
+               {
+                       WebProxy p = new WebProxy ((Uri) null, false);
+                       Assert.IsTrue (p.IsBypassed (new Uri ("http://www.google.com")), "#1");
+
+                       p = new WebProxy ((Uri) null, true);
+                       Assert.IsTrue (p.IsBypassed (new Uri ("http://www.google.com")), "#2");
                }
 
                [Test]
@@ -178,8 +171,7 @@ namespace MonoTests.System.Net
                        WebProxy p = new WebProxy ("http://proxy.contoso.com", true);
                        try {
                                p.IsBypassed (null);
-                               Assertion.Fail ("#A1");
-#if NET_2_0
+                               Assert.Fail ("#A1");
                        } catch (ArgumentNullException ex) {
                                Assert.AreEqual (typeof (ArgumentNullException), ex.GetType (), "#A2");
                                Assert.IsNotNull (ex.Message, "#A3");
@@ -187,16 +179,11 @@ namespace MonoTests.System.Net
                                Assert.AreEqual ("host", ex.ParamName, "#A5");
                                Assert.IsNull (ex.InnerException, "#A6");
                        }
-#else
-                       } catch (NullReferenceException) {
-                       }
-#endif
 
                        p = new WebProxy ((Uri) null);
                        try {
                                p.IsBypassed (null);
-                               Assertion.Fail ("#B1");
-#if NET_2_0
+                               Assert.Fail ("#B1");
                        } catch (ArgumentNullException ex) {
                                Assert.AreEqual (typeof (ArgumentNullException), ex.GetType (), "#B2");
                                Assert.IsNotNull (ex.Message, "#B3");
@@ -204,13 +191,20 @@ namespace MonoTests.System.Net
                                Assert.AreEqual ("host", ex.ParamName, "#B5");
                                Assert.IsNull (ex.InnerException, "#B6");
                        }
-#else
-                       } catch (NullReferenceException) {
+
+                       p = new WebProxy ((Uri) null, true);
+                       try {
+                               p.IsBypassed (null);
+                               Assert.Fail ("#C1");
+                       } catch (ArgumentNullException ex) {
+                               Assert.AreEqual (typeof (ArgumentNullException), ex.GetType (), "#C2");
+                               Assert.IsNotNull (ex.Message, "#C3");
+                               Assert.IsNotNull (ex.ParamName, "#C4");
+                               Assert.AreEqual ("host", ex.ParamName, "#C5");
+                               Assert.IsNull (ex.InnerException, "#C6");
                        }
-#endif
                }
 
-
                [Test]
                public void GetObjectData ()
                {
@@ -219,11 +213,7 @@ namespace MonoTests.System.Net
 
                        WebProxy proxy = new WebProxy ("proxy.ximian.com");
                        ((ISerializable) proxy).GetObjectData (si, new StreamingContext ());
-#if NET_2_0
                        Assert.AreEqual (4, si.MemberCount, "#A1");
-#else
-                       Assert.AreEqual (3, si.MemberCount, "#A1");
-#endif
                        int i = 0;
                        foreach (SerializationEntry entry in si) {
                                Assert.IsNotNull (entry.Name, "#A2:" + i);
@@ -246,14 +236,12 @@ namespace MonoTests.System.Net
                                        Assert.AreEqual (typeof (object), entry.ObjectType, "#A5:" + i);
                                        Assert.IsNull (entry.Value, "#A6:" + i);
                                        break;
-#if NET_2_0
                                case 3:
                                        Assert.AreEqual ("_UseDefaultCredentials", entry.Name, "#A4:" + i);
                                        Assert.AreEqual (typeof (bool), entry.ObjectType, "#A5:" + i);
                                        Assert.IsNotNull (entry.Value, "#A6:" + i);
                                        Assert.AreEqual (false, entry.Value, "#A7:" + i);
                                        break;
-#endif
                                }
                                i++;
                        }