In Test/System:
authorRobert Jordan <robertj@gmx.net>
Sat, 26 Jan 2008 13:42:01 +0000 (13:42 -0000)
committerRobert Jordan <robertj@gmx.net>
Sat, 26 Jan 2008 13:42:01 +0000 (13:42 -0000)
2008-01-23  Robert Jordan  <robertj@gmx.net>

* UriTest3.cs: Add tests for bug #346432.

In System:
2008-01-23  Robert Jordan  <robertj@gmx.net>

* Uri.cs (Parse): Handle uriString.Length == 1 as a valid relative URI.
Fixes #346432.

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

mcs/class/System/System/ChangeLog
mcs/class/System/System/Uri.cs
mcs/class/System/Test/System/ChangeLog
mcs/class/System/Test/System/UriTest3.cs

index dee68749c254002af2241fb4f2a0ccfa19a2126a..f0d6ccccc526e7a131add72eb0783b19edcf1d95 100644 (file)
@@ -1,3 +1,8 @@
+2008-01-23  Robert Jordan  <robertj@gmx.net>
+
+       * Uri.cs (Parse): Handle uriString.Length == 1 as a valid relative URI.
+       Fixes #346432.
+
 2007-12-04  Arina Itkes <arinai@mainsoft.com>
 
        * Uri.cs: Unix absolute path should not be valid on Windows.
index 8c3bb4f699bc4712879481aea3f99d6f78d3e308..2935e87b3a1803a0f43c52b76c2b6bbfc1aba844 100644 (file)
@@ -1272,7 +1272,7 @@ namespace System {
                                }
                        }
                        
-                       if (len <= 1
+                       if (len <= 1 && (kind != UriKind.Relative))
                                throw new UriFormatException ();
 
                        int pos = 0;
index e2100f890331d4657a78b9689e58a39ed1944de1..e5c8074ab3f85285b13486cdf77799d493bf95a4 100644 (file)
@@ -1,3 +1,7 @@
+2008-01-23  Robert Jordan  <robertj@gmx.net>
+
+       * UriTest3.cs: Add tests for bug #346432.
+
 2007-11-06  Gert Driesen  <drieseng@users.sourceforge.net>
 
        * UriBuilderTest.cs: Added tests for regression introduced as part of
index 295797bd467179dfc46248afa19dd5686a0c58fc..e216962c26dd87549519882cb2166ddcf198356f 100644 (file)
@@ -95,6 +95,18 @@ namespace MonoTests.System
                        Assert.AreEqual ("/test.aspx", uri.OriginalString, "#D2");
                        Assert.AreEqual ("/test.aspx", uri.ToString (), "#D3");
                        Assert.IsFalse (uri.UserEscaped, "#D4");
+
+                       uri = new Uri ("", UriKind.Relative);
+                       Assert.IsFalse (uri.IsAbsoluteUri, "#E1");
+                       Assert.AreEqual ("", uri.OriginalString, "#E2");
+                       Assert.AreEqual ("", uri.ToString (), "#E3");
+                       Assert.IsFalse (uri.UserEscaped, "#E4");
+
+                       uri = new Uri ("a", UriKind.Relative);
+                       Assert.IsFalse (uri.IsAbsoluteUri, "#F1");
+                       Assert.AreEqual ("a", uri.OriginalString, "#F2");
+                       Assert.AreEqual ("a", uri.ToString (), "#F3");
+                       Assert.IsFalse (uri.UserEscaped, "#F4");
                }
 
                [Test]