X-Git-Url: http://wien.tomnetworks.com/gitweb/?a=blobdiff_plain;f=mcs%2Fclass%2FSystem%2FTest%2FSystem%2FUriTest2.cs;h=6738006fbc9b7eac0848a04478d820caf2932d54;hb=07ec1253c277856bdbb74213e2defc8ed23cf8e3;hp=4e5452ad8fd2274056985dc4826a53cc1746724e;hpb=19b973e87b861209c50876c28a9a1f56efa57d8f;p=mono.git diff --git a/mcs/class/System/Test/System/UriTest2.cs b/mcs/class/System/Test/System/UriTest2.cs old mode 100755 new mode 100644 index 4e5452ad8fd..6738006fbc9 --- a/mcs/class/System/Test/System/UriTest2.cs +++ b/mcs/class/System/Test/System/UriTest2.cs @@ -1,3 +1,7 @@ +// +// UriTest2.cs - More NUnit Test Cases for System.Uri +// + using System; using System.IO; using System.Reflection; @@ -7,7 +11,7 @@ using NUnit.Framework; namespace MonoTests.System { [TestFixture] - public class UriTest2 : Assertion + public class UriTest2 { // Segments cannot be validated here... public void AssertUri (string relsrc, Uri uri, @@ -29,28 +33,31 @@ namespace MonoTests.System string fragment, string userInfo) { - AssertEquals (relsrc + " AbsoluteUri", absoluteUri, uri.AbsoluteUri); - AssertEquals (relsrc + " Scheme", scheme, uri.Scheme); - AssertEquals (relsrc + " Host", host, uri.Host); - AssertEquals (relsrc + " Port", port, uri.Port); + Assert.AreEqual (absoluteUri, uri.AbsoluteUri, relsrc + " AbsoluteUri"); + Assert.AreEqual (scheme, uri.Scheme, relsrc + " Scheme"); + Assert.AreEqual (host, uri.Host, relsrc + " Host"); + Assert.AreEqual (port, uri.Port, relsrc + " Port"); // Windows UNC path is not automatically testable on *nix environment, if (relsrc.StartsWith ("\\\\") && Path.DirectorySeparatorChar == '\\') - AssertEquals (relsrc + " LocalPath", localPath, uri.LocalPath); - AssertEquals (relsrc + " Query", query, uri.Query); - AssertEquals (relsrc + " Fragment", fragment, uri.Fragment); - AssertEquals (relsrc + " IsFile", isFile, uri.IsFile); - AssertEquals (relsrc + " IsUnc", isUnc, uri.IsUnc); - AssertEquals (relsrc + " IsLoopback", isLoopback, uri.IsLoopback); - AssertEquals (relsrc + " Authority", authority, uri.Authority); - AssertEquals (relsrc + " UserEscaped", userEscaped, uri.UserEscaped); - AssertEquals (relsrc + " UserInfo", userInfo, uri.UserInfo); - AssertEquals (relsrc + " HostNameType", hostNameType, uri.HostNameType); - AssertEquals (relsrc + " AbsolutePath", absolutePath, uri.AbsolutePath); - AssertEquals (relsrc + " PathAndQuery", pathAndQuery, uri.PathAndQuery); - AssertEquals (relsrc + " ToString()", toString, uri.ToString ()); + Assert.AreEqual (localPath, uri.LocalPath, relsrc + " LocalPath"); + Assert.AreEqual (query, uri.Query, relsrc + " Query"); + Assert.AreEqual (fragment, uri.Fragment, relsrc + " Fragment"); + Assert.AreEqual (isFile, uri.IsFile, relsrc + " IsFile"); + Assert.AreEqual (isUnc, uri.IsUnc, relsrc + " IsUnc"); + Assert.AreEqual (isLoopback, uri.IsLoopback, relsrc + " IsLoopback"); + Assert.AreEqual (authority, uri.Authority, relsrc + " Authority"); + Assert.AreEqual (userEscaped, uri.UserEscaped, relsrc + " UserEscaped"); + Assert.AreEqual (userInfo, uri.UserInfo, relsrc + " UserInfo"); + Assert.AreEqual (hostNameType, uri.HostNameType, relsrc + " HostNameType"); + Assert.AreEqual (absolutePath, uri.AbsolutePath, relsrc + " AbsolutePath"); + Assert.AreEqual (pathAndQuery, uri.PathAndQuery, relsrc + " PathAndQuery"); + Assert.AreEqual (toString, uri.ToString (), relsrc + " ToString()"); } [Test] +#if NET_2_0 + [Ignore ("Tests needs to be updated for 2.0")] +#endif public void AbsoluteUriFromFile () { FromResource ("test-uri-props.txt", null); @@ -58,12 +65,18 @@ namespace MonoTests.System [Test] [Category("NotDotNet")] +#if NET_2_0 + [Ignore ("Tests needs to be updated for 2.0")] +#endif public void AbsoluteUriFromFileManual () { FromResource ("test-uri-props-manual.txt", null); } [Test] +#if NET_2_0 + [Ignore ("Tests needs to be updated for 2.0")] +#endif public void RelativeUriFromFile () { FromResource ("test-uri-relative-props.txt", new Uri ("http://www.go-mono.com")); @@ -126,7 +139,7 @@ TextWriter sw = Console.Out; sr.ReadLine ()); // Console.WriteLine ("Passed: " + uriString); } catch (UriFormatException ex) { - Fail (String.Format ("Construction failed: [{0}] {1}", uriString, ex.Message)); + Assert.Fail (String.Format ("Construction failed: [{0}] {1}", uriString, ex.Message)); } } } @@ -135,10 +148,91 @@ TextWriter sw = Console.Out; public void MoreUnescape () // bug 733316 { int index = 0; - char unesc = Uri.HexUnescape ("%F6", ref index); - AssertEquals ("#01", 3, index); - AssertEquals ("#02", 0xf6, unesc); - } + char unesc = Uri.HexUnescape ("%F6", ref index); + Assert.AreEqual (3, index, "#01"); + Assert.AreEqual (0xf6, unesc, "#02"); + } + + [Test] + public void UriScheme () + { + Assert.AreEqual ("://", Uri.SchemeDelimiter, "://"); + Assert.AreEqual ("file", Uri.UriSchemeFile, "file"); + Assert.AreEqual ("ftp", Uri.UriSchemeFtp, "ftp"); + Assert.AreEqual ("gopher", Uri.UriSchemeGopher, "gopher"); + Assert.AreEqual ("http", Uri.UriSchemeHttp, "http"); + Assert.AreEqual ("https", Uri.UriSchemeHttps, "https"); + Assert.AreEqual ("mailto", Uri.UriSchemeMailto, "mailto"); + Assert.AreEqual ("news", Uri.UriSchemeNews, "news"); + Assert.AreEqual ("nntp", Uri.UriSchemeNntp, "file"); +#if NET_2_0 + Assert.AreEqual ("net.pipe", Uri.UriSchemeNetPipe, "net.pipe"); + Assert.AreEqual ("net.tcp", Uri.UriSchemeNetTcp, "net.tcp"); +#endif + } + + [Test] // bug #71049 + [ExpectedException (typeof (UriFormatException))] + public void StarsInHost () + { + new Uri ("http://w*w*w.go-mono.com"); + } + + [Test] +#if ONLY_1_1 + [Category ("NotDotNet")] // 1.x throws an UriFormatException +#endif + public void NoHostName1_Bug76146 () + { + Uri u = new Uri ("foo:///?bar"); + Assert.AreEqual ("/", u.AbsolutePath, "AbsolutePath"); + Assert.AreEqual ("foo:///?bar", u.AbsoluteUri, "AbsoluteUri"); + Assert.AreEqual (String.Empty, u.Authority, "Authority"); + Assert.AreEqual (String.Empty, u.Fragment, "Fragment"); + Assert.AreEqual (String.Empty, u.Host, "Host"); + // FIXME (2.0) - Normally this is never Basic without an Host name :( + // Assert.AreEqual (UriHostNameType.Basic, u.HostNameType, "HostNameType"); + Assert.IsTrue (u.IsDefaultPort, "IsDefaultPort"); + Assert.IsFalse (u.IsFile, "IsFile"); + // FIXME Assert.IsTrue (u.IsLoopback, "IsLoopback"); + Assert.IsFalse (u.IsUnc, "IsUnc"); + Assert.AreEqual ("/", u.LocalPath, "LocalPath"); + Assert.AreEqual ("/?bar", u.PathAndQuery, "PathAndQuery"); + Assert.AreEqual ("foo", u.Scheme, "Scheme"); + Assert.IsFalse (u.UserEscaped, "UserEscaped"); + Assert.AreEqual (String.Empty, u.UserInfo, "UserInfo"); + } + + [Test] +#if ONLY_1_1 + [Category ("NotDotNet")] // 1.x throws an UriFormatException +#endif + public void NoHostName2_Bug76146 () + { + Uri u = new Uri ("foo:///bar"); + Assert.AreEqual ("/bar", u.AbsolutePath, "AbsolutePath"); + Assert.AreEqual ("foo:///bar", u.AbsoluteUri, "AbsoluteUri"); + Assert.AreEqual (String.Empty, u.Authority, "Authority"); + Assert.AreEqual (String.Empty, u.Fragment, "Fragment"); + Assert.AreEqual (String.Empty, u.Host, "Host"); + // FIXME (2.0) - Normally this is never Basic without an Host name :( + // Assert.AreEqual (UriHostNameType.Basic, u.HostNameType, "HostNameType"); + Assert.IsTrue (u.IsDefaultPort, "IsDefaultPort"); + Assert.IsFalse (u.IsFile, "IsFile"); + // FIXME Assert.IsTrue (u.IsLoopback, "IsLoopback"); + Assert.IsFalse (u.IsUnc, "IsUnc"); + Assert.AreEqual ("/bar", u.LocalPath, "LocalPath"); + Assert.AreEqual ("/bar", u.PathAndQuery, "PathAndQuery"); + Assert.AreEqual ("foo", u.Scheme, "Scheme"); + Assert.IsFalse (u.UserEscaped, "UserEscaped"); + Assert.AreEqual (String.Empty, u.UserInfo, "UserInfo"); + } + [Test] + [ExpectedException (typeof (UriFormatException))] + public void InvalidIPAddress_Bug76659 () + { + new Uri ("http://127.0.0.1::::/"); + } } }