2009-04-21 Sebastien Pouliot <sebastien@ximian.com>
authorSebastien Pouliot <sebastien@ximian.com>
Tue, 21 Apr 2009 14:50:46 +0000 (14:50 -0000)
committerSebastien Pouliot <sebastien@ximian.com>
Tue, 21 Apr 2009 14:50:46 +0000 (14:50 -0000)
* UriParserTest.cs: Ensure "tcp" is not a registred scheme
* UriTest2.cs: Make sure GetComponents and IsBaseOf do not throw
NRE is no UriParser was registred for the URI scheme

svn path=/trunk/mcs/; revision=132265

mcs/class/System/Test/System/ChangeLog
mcs/class/System/Test/System/UriParserTest.cs
mcs/class/System/Test/System/UriTest2.cs

index d838893fd5192de7ca2be7ae273eb9eed40edea3..fbef80d14c247cd09f0391059a20c027c87d7e3e 100644 (file)
@@ -1,3 +1,9 @@
+2009-04-21  Sebastien Pouliot  <sebastien@ximian.com> 
+
+       * UriParserTest.cs: Ensure "tcp" is not a registred scheme
+       * UriTest2.cs: Make sure GetComponents and IsBaseOf do not throw
+       NRE is no UriParser was registred for the URI scheme
+
 2009-04-21  Sebastien Pouliot  <sebastien@ximian.com>
 
        * UriTest2.cs: More constructor test cases
index 30aaeb6e3abdb041a3a47e10c942bd559f10961b..f4a87f780254af0e9334b0dbb4e675f309453834 100644 (file)
@@ -453,6 +453,9 @@ namespace MonoTests.System {
                        // variations - mixed and upper case
                        Assert.IsTrue (UriParser.IsKnownScheme ("FiLe"), "FiLe");
                        Assert.IsTrue (UriParser.IsKnownScheme ("FTP"), "ftp");
+
+                       // see 496783
+                       Assert.IsFalse (UriParser.IsKnownScheme ("tcp"), "tcp");
                }
 
                [Test]
index e1d973bc5d625e7f186cd4bbfdefabd7631a343a..f1d6ed3068cfff1b40d6f304c44a60c1d49650fa 100644 (file)
@@ -519,6 +519,35 @@ TextWriter sw = Console.Out;
                        Uri uri = new Uri ("/Moonlight", UriKind.Relative);\r
                        CheckRelativeUri (uri);\r
                }\r
+\r
+               [Test]\r
+               public void Bug496783 ()\r
+               {\r
+                       string s = "tcp://csve2.csse.unimelb.edu.au:9090/Aneka";\r
+                       Uri uri = new Uri (s);\r
+                       // this is not parsed by a known UriParser\r
+                       Assert.IsFalse (UriParser.IsKnownScheme (uri.Scheme), "UriParser");\r
+\r
+                       Uri uri2 = new Uri ("tcp://csve2.csse.unimelb.edu.au:9090/");\r
+                       Assert.IsTrue (uri2.IsBaseOf (uri), "IsBaseOf");\r
+\r
+                       Assert.AreEqual (uri.AbsoluteUri, uri.GetComponents (UriComponents.AbsoluteUri, UriFormat.Unescaped), "AbsoluteUri");\r
+                       Assert.AreEqual (uri.Fragment, uri.GetComponents (UriComponents.Fragment, UriFormat.Unescaped), "Fragment");\r
+                       Assert.AreEqual (uri.Host, uri.GetComponents (UriComponents.Host, UriFormat.Unescaped), "Host");\r
+                       Assert.AreEqual (uri.Authority, uri.GetComponents (UriComponents.HostAndPort, UriFormat.Unescaped), "HostAndPort");\r
+                       Assert.AreEqual (uri.AbsoluteUri, uri.GetComponents (UriComponents.HttpRequestUrl, UriFormat.Unescaped), "HttpRequestUrl");\r
+                       Assert.AreEqual (String.Empty, uri.GetComponents (UriComponents.KeepDelimiter, UriFormat.Unescaped), "KeepDelimiter");\r
+                       Assert.AreEqual ("Aneka", uri.GetComponents (UriComponents.Path, UriFormat.Unescaped), "Path");\r
+                       Assert.AreEqual (uri.LocalPath, uri.GetComponents (UriComponents.PathAndQuery, UriFormat.Unescaped), "PathAndQuery");\r
+                       Assert.AreEqual (uri.Port.ToString (), uri.GetComponents (UriComponents.Port, UriFormat.Unescaped), "Port");\r
+                       Assert.AreEqual (uri.Query, uri.GetComponents (UriComponents.Query, UriFormat.Unescaped), "Query");\r
+                       Assert.AreEqual (uri.Scheme, uri.GetComponents (UriComponents.Scheme, UriFormat.Unescaped), "Scheme");\r
+                       Assert.AreEqual ("tcp://csve2.csse.unimelb.edu.au:9090", uri.GetComponents (UriComponents.SchemeAndServer, UriFormat.Unescaped), "SchemeAndServer");\r
+                       Assert.AreEqual (uri.OriginalString, uri.GetComponents (UriComponents.SerializationInfoString, UriFormat.Unescaped), "SerializationInfoString");\r
+                       Assert.AreEqual (uri.Authority, uri.GetComponents (UriComponents.StrongAuthority, UriFormat.Unescaped), "StrongAuthority");\r
+                       Assert.AreEqual (uri.Port.ToString (), uri.GetComponents (UriComponents.StrongPort, UriFormat.Unescaped), "StrongPort");\r
+                       Assert.AreEqual (uri.UserInfo, uri.GetComponents (UriComponents.UserInfo, UriFormat.Unescaped), "UserInfo");\r
+               }\r
 #endif\r
        }\r
 }\r