[System] Use default parsing rules for Uri.IsWellFormedUriString. Fixes #45129
authorMarek Safar <marek.safar@gmail.com>
Fri, 7 Oct 2016 11:55:50 +0000 (13:55 +0200)
committerMarek Safar <marek.safar@gmail.com>
Fri, 7 Oct 2016 11:56:29 +0000 (13:56 +0200)
mcs/class/System/Test/System/UriTest3.cs
mcs/class/referencesource/System/net/System/UriExt.cs

index 9b2e93b730cdb572d1d230c1da5f8566e66c9087..a39ac73d0afa0949dcd04172bdeae22851faef21 100644 (file)
@@ -312,6 +312,8 @@ namespace MonoTests.System
                        Assert.IsFalse (Uri.IsWellFormedUriString (null, UriKind.Absolute), "null");
                        Assert.IsFalse (Uri.IsWellFormedUriString ("data", UriKind.Absolute), "data");
                        Assert.IsTrue (Uri.IsWellFormedUriString ("http://www.go-mono.com/Main_Page#1", UriKind.Absolute), "http/hex");
+                       Assert.IsTrue (Uri.IsWellFormedUriString ("test", UriKind.RelativeOrAbsolute), "rel1");
+                       Assert.IsTrue (Uri.IsWellFormedUriString ("/test", UriKind.RelativeOrAbsolute), "rel2");
                }
 
                [Test]
index 9f55631246f21d5a8d9579df9422dc10efdc4183..1a587adf4e833b9fe51d569212471200a7005722 100644 (file)
@@ -443,6 +443,11 @@ namespace System {
         {
             Uri result;
 
+#if MONO
+            if (uriKind == UriKind.RelativeOrAbsolute)
+                uriKind = DotNetRelativeOrAbsolute;
+#endif
+
             if (!Uri.TryCreate(uriString, uriKind, out result))
                 return false;