{\r
new Uri ("http://127.0.0.1::::/");\r
}\r
+#if NET_2_0\r
+ [Test]\r
+ public void File ()\r
+ {\r
+ string s = "file:///dir1%2f..%2fdir%2fapp.xap#header";\r
+ Uri uri = new Uri (s);\r
+ Assert.AreEqual ("/dir/app.xap", uri.AbsolutePath, "AbsolutePath");\r
+ // default port is removed\r
+ Assert.AreEqual ("file:///dir/app.xap#header", uri.AbsoluteUri, "AbsoluteUri");\r
+ Assert.AreEqual (String.Empty, uri.DnsSafeHost, "DnsSafeHost");\r
+ Assert.AreEqual ("#header", uri.Fragment, "Fragment");\r
+ Assert.AreEqual (String.Empty, uri.Host, "Host");\r
+ Assert.IsTrue (uri.IsAbsoluteUri, "IsAbsoluteUri");\r
+ Assert.IsFalse (uri.IsUnc, "IsUnc");\r
+ Assert.AreEqual ("/dir/app.xap", uri.LocalPath, "LocalPath");\r
+ Assert.AreEqual (s, uri.OriginalString, "OriginalString");\r
+ Assert.AreEqual (-1, uri.Port, "Port");\r
+ Assert.AreEqual (String.Empty, uri.Query, "Query");\r
+ Assert.AreEqual ("file", uri.Scheme, "Scheme");\r
+ Assert.IsFalse (uri.UserEscaped, "UserEscaped");\r
+ Assert.AreEqual (String.Empty, uri.UserInfo, "UserInfo");\r
+ Assert.AreEqual (uri.AbsoluteUri, uri.ToString (), "ToString");\r
+ }\r
+\r
+ [Test]\r
+ public void HttpWithDefaultPort ()\r
+ {\r
+ string s = "HTTP://host.domain.com:80/app.xap";\r
+ Uri uri = new Uri (s);\r
+ Assert.AreEqual ("/app.xap", uri.AbsolutePath, "AbsolutePath");\r
+ // default port is removed\r
+ Assert.AreEqual ("http://host.domain.com/app.xap", uri.AbsoluteUri, "AbsoluteUri");\r
+ Assert.AreEqual ("host.domain.com", uri.DnsSafeHost, "DnsSafeHost");\r
+ Assert.AreEqual (String.Empty, uri.Fragment, "Fragment");\r
+ Assert.AreEqual ("host.domain.com", uri.Host, "Host");\r
+ Assert.IsTrue (uri.IsAbsoluteUri, "IsAbsoluteUri");\r
+ Assert.IsFalse (uri.IsUnc, "IsUnc");\r
+ Assert.AreEqual ("/app.xap", uri.LocalPath, "LocalPath");\r
+ Assert.AreEqual (s, uri.OriginalString, "OriginalString");\r
+ Assert.AreEqual (80, uri.Port, "Port");\r
+ Assert.AreEqual (String.Empty, uri.Query, "Query");\r
+ Assert.AreEqual ("http", uri.Scheme, "Scheme");\r
+ Assert.IsFalse (uri.UserEscaped, "UserEscaped");\r
+ Assert.AreEqual (String.Empty, uri.UserInfo, "UserInfo");\r
+ Assert.AreEqual (uri.AbsoluteUri, uri.ToString (), "ToString");\r
+ }\r
+\r
+ [Test]\r
+ public void HttpWithoutPort ()\r
+ {\r
+ string s = "Http://host.DOMAIN.com/dir/app.xap#options";\r
+ Uri uri = new Uri (s);\r
+ Assert.AreEqual ("/dir/app.xap", uri.AbsolutePath, "AbsolutePath");\r
+ Assert.AreEqual ("http://host.domain.com/dir/app.xap#options", uri.AbsoluteUri, "AbsoluteUri");\r
+ Assert.AreEqual ("host.domain.com", uri.DnsSafeHost, "DnsSafeHost");\r
+ Assert.AreEqual ("#options", uri.Fragment, "Fragment");\r
+ Assert.AreEqual ("host.domain.com", uri.Host, "Host");\r
+ Assert.IsTrue (uri.IsAbsoluteUri, "IsAbsoluteUri");\r
+ Assert.IsFalse (uri.IsUnc, "IsUnc");\r
+ Assert.AreEqual ("/dir/app.xap", uri.LocalPath, "LocalPath");\r
+ Assert.AreEqual (s, uri.OriginalString, "OriginalString");\r
+ Assert.AreEqual (80, uri.Port, "Port");\r
+ Assert.AreEqual (String.Empty, uri.Query, "Query");\r
+ Assert.AreEqual ("http", uri.Scheme, "Scheme");\r
+ Assert.IsFalse (uri.UserEscaped, "UserEscaped");\r
+ Assert.AreEqual (String.Empty, uri.UserInfo, "UserInfo");\r
+ Assert.AreEqual (uri.AbsoluteUri, uri.ToString (), "ToString");\r
+ }\r
+\r
+ [Test]\r
+ public void HttpWithNonStandardPort ()\r
+ {\r
+ string s = "http://monkey:s3kr3t@HOST.domain.Com:8080/dir/../app.xap?option=1";\r
+ Uri uri = new Uri (s);\r
+ Assert.AreEqual ("/app.xap", uri.AbsolutePath, "AbsolutePath");\r
+ // non-standard port is present\r
+ Assert.AreEqual ("http://monkey:s3kr3t@host.domain.com:8080/app.xap?option=1", uri.AbsoluteUri, "AbsoluteUri");\r
+ Assert.AreEqual ("host.domain.com", uri.DnsSafeHost, "DnsSafeHost");\r
+ Assert.AreEqual (String.Empty, uri.Fragment, "Fragment");\r
+ Assert.AreEqual ("host.domain.com", uri.Host, "Host");\r
+ Assert.IsTrue (uri.IsAbsoluteUri, "IsAbsoluteUri");\r
+ Assert.IsFalse (uri.IsUnc, "IsUnc");\r
+ Assert.AreEqual ("/app.xap", uri.LocalPath, "LocalPath");\r
+ Assert.AreEqual (s, uri.OriginalString, "OriginalString");\r
+ Assert.AreEqual (8080, uri.Port, "Port");\r
+ Assert.AreEqual ("?option=1", uri.Query, "Query");\r
+ Assert.AreEqual ("http", uri.Scheme, "Scheme");\r
+ Assert.IsFalse (uri.UserEscaped, "UserEscaped");\r
+ Assert.AreEqual ("monkey:s3kr3t", uri.UserInfo, "UserInfo");\r
+ Assert.AreEqual (uri.AbsoluteUri, uri.ToString (), "ToString");\r
+ }\r
+\r
+ [Test]\r
+ public void HttpsWithDefaultPort ()\r
+ {\r
+ string s = "httpS://host.domain.com:443/";\r
+ Uri uri = new Uri (s);\r
+ Assert.AreEqual ("/", uri.AbsolutePath, "AbsolutePath");\r
+ // default port is removed\r
+ Assert.AreEqual ("https://host.domain.com/", uri.AbsoluteUri, "AbsoluteUri");\r
+ Assert.AreEqual ("host.domain.com", uri.DnsSafeHost, "DnsSafeHost");\r
+ Assert.AreEqual (String.Empty, uri.Fragment, "Fragment");\r
+ Assert.AreEqual ("host.domain.com", uri.Host, "Host");\r
+ Assert.IsTrue (uri.IsAbsoluteUri, "IsAbsoluteUri");\r
+ Assert.IsFalse (uri.IsUnc, "IsUnc");\r
+ Assert.AreEqual ("/", uri.LocalPath, "LocalPath");\r
+ Assert.AreEqual (s, uri.OriginalString, "OriginalString");\r
+ Assert.AreEqual (443, uri.Port, "Port");\r
+ Assert.AreEqual (String.Empty, uri.Query, "Query");\r
+ Assert.AreEqual ("https", uri.Scheme, "Scheme");\r
+ Assert.IsFalse (uri.UserEscaped, "UserEscaped");\r
+ Assert.AreEqual (String.Empty, uri.UserInfo, "UserInfo");\r
+ Assert.AreEqual (uri.AbsoluteUri, uri.ToString (), "ToString");\r
+ }\r
+\r
+ [Test]\r
+ public void HttpsWithoutPort ()\r
+ {\r
+ string s = "Https://host.DOMAIN.com/dir%2fapp.xap#";\r
+ Uri uri = new Uri (s);\r
+ Assert.AreEqual ("/dir/app.xap", uri.AbsolutePath, "AbsolutePath");\r
+ Assert.AreEqual ("https://host.domain.com/dir/app.xap#", uri.AbsoluteUri, "AbsoluteUri");\r
+ Assert.AreEqual ("host.domain.com", uri.DnsSafeHost, "DnsSafeHost");\r
+ Assert.AreEqual ("#", uri.Fragment, "Fragment");\r
+ Assert.AreEqual ("host.domain.com", uri.Host, "Host");\r
+ Assert.IsTrue (uri.IsAbsoluteUri, "IsAbsoluteUri");\r
+ Assert.IsFalse (uri.IsUnc, "IsUnc");\r
+ Assert.AreEqual ("/dir/app.xap", uri.LocalPath, "LocalPath");\r
+ Assert.AreEqual (s, uri.OriginalString, "OriginalString");\r
+ Assert.AreEqual (443, uri.Port, "Port");\r
+ Assert.AreEqual (String.Empty, uri.Query, "Query");\r
+ Assert.AreEqual ("https", uri.Scheme, "Scheme");\r
+ Assert.IsFalse (uri.UserEscaped, "UserEscaped");\r
+ Assert.AreEqual (String.Empty, uri.UserInfo, "UserInfo");\r
+ Assert.AreEqual (uri.AbsoluteUri, uri.ToString (), "ToString");\r
+ }\r
+\r
+ [Test]\r
+ public void HttpsWithNonStandardPort ()\r
+ {\r
+ string s = "https://monkey:s3kr3t@HOST.domain.Com:4430/dir/..%5Capp.xap?";\r
+ Uri uri = new Uri (s);\r
+ Assert.AreEqual ("/app.xap", uri.AbsolutePath, "AbsolutePath");\r
+ // non-standard port is present\r
+ Assert.AreEqual ("https://monkey:s3kr3t@host.domain.com:4430/app.xap?", uri.AbsoluteUri, "AbsoluteUri");\r
+ Assert.AreEqual ("host.domain.com", uri.DnsSafeHost, "DnsSafeHost");\r
+ Assert.AreEqual (String.Empty, uri.Fragment, "Fragment");\r
+ Assert.AreEqual ("host.domain.com", uri.Host, "Host");\r
+ Assert.IsTrue (uri.IsAbsoluteUri, "IsAbsoluteUri");\r
+ Assert.IsFalse (uri.IsUnc, "IsUnc");\r
+ Assert.AreEqual ("/app.xap", uri.LocalPath, "LocalPath");\r
+ Assert.AreEqual (s, uri.OriginalString, "OriginalString");\r
+ Assert.AreEqual (4430, uri.Port, "Port");\r
+ Assert.AreEqual ("?", uri.Query, "Query");\r
+ Assert.AreEqual ("https", uri.Scheme, "Scheme");\r
+ Assert.IsFalse (uri.UserEscaped, "UserEscaped");\r
+ Assert.AreEqual ("monkey:s3kr3t", uri.UserInfo, "UserInfo");\r
+ Assert.AreEqual (uri.AbsoluteUri, uri.ToString (), "ToString");\r
+ }\r
+#endif\r
}\r
}\r