(DISTFILES): Comment out a few missing files.
[mono-project.git] / mcs / class / System / Test / System / UriTest2.cs
blob9b1e526d04df127543f0a7705860fd905be0f2e7
1 using System;
2 using System.IO;
3 using System.Text;
4 using NUnit.Framework;
6 namespace MonoTests.System
8 [TestFixture]
9 public class UriTest2 : Assertion
11 // Segments cannot be validated here...
12 public void AssertUri (string relsrc, Uri uri,
13 string toString,
14 string absoluteUri,
15 string scheme,
16 string host,
17 string localPath,
18 string query,
19 int port,
20 bool isFile,
21 bool isUnc,
22 bool isLoopback,
23 bool userEscaped,
24 UriHostNameType hostNameType,
25 string absolutePath,
26 string pathAndQuery,
27 string authority,
28 string fragment,
29 string userInfo)
31 AssertEquals (relsrc + " AbsoluteUri", absoluteUri, uri.AbsoluteUri);
32 AssertEquals (relsrc + " Scheme", scheme, uri.Scheme);
33 AssertEquals (relsrc + " Host", host, uri.Host);
34 AssertEquals (relsrc + " Port", port, uri.Port);
35 // Windows UNC path is not automatically testable on *nix environment,
36 if (relsrc.StartsWith ("\\\\") && Path.DirectorySeparatorChar == '\\')
37 AssertEquals (relsrc + " LocalPath", localPath, uri.LocalPath);
38 AssertEquals (relsrc + " Query", query, uri.Query);
39 AssertEquals (relsrc + " Fragment", fragment, uri.Fragment);
40 AssertEquals (relsrc + " IsFile", isFile, uri.IsFile);
41 AssertEquals (relsrc + " IsUnc", isUnc, uri.IsUnc);
42 AssertEquals (relsrc + " IsLoopback", isLoopback, uri.IsLoopback);
43 AssertEquals (relsrc + " Authority", authority, uri.Authority);
44 AssertEquals (relsrc + " UserEscaped", userEscaped, uri.UserEscaped);
45 AssertEquals (relsrc + " UserInfo", userInfo, uri.UserInfo);
46 AssertEquals (relsrc + " HostNameType", hostNameType, uri.HostNameType);
47 AssertEquals (relsrc + " AbsolutePath", absolutePath, uri.AbsolutePath);
48 AssertEquals (relsrc + " PathAndQuery", pathAndQuery, uri.PathAndQuery);
49 AssertEquals (relsrc + " ToString()", toString, uri.ToString ());
52 [Test]
53 public void AbsoluteUriFromFile ()
55 FromFile ("Test/System/test-uri-props.txt", null);
58 [Test]
59 public void AbsoluteUriFromFileManual ()
61 FromFile ("Test/System/test-uri-props-manual.txt", null);
64 [Test]
65 public void RelativeUriFromFile ()
67 FromFile ("Test/System/test-uri-relative-props.txt", new Uri ("http://www.go-mono.com"));
70 private void FromFile (string testFile, Uri baseUri)
72 StreamReader sr = new StreamReader (testFile, Encoding.UTF8);
73 while (sr.Peek () > 0) {
74 sr.ReadLine (); // skip
75 string uriString = sr.ReadLine ();
77 TextWriter sw = Console.Out;
78 sw.WriteLine ("-------------------------");
79 sw.WriteLine (uriString);
81 if (uriString == null || uriString.Length == 0)
82 break;
84 try {
85 Uri uri = baseUri == null ? new Uri (uriString) : new Uri (baseUri, uriString);
87 sw.WriteLine ("ToString(): " + uri.ToString ());
88 sw.WriteLine (uri.AbsoluteUri);
89 sw.WriteLine (uri.Scheme);
90 sw.WriteLine (uri.Host);
91 sw.WriteLine (uri.LocalPath);
92 sw.WriteLine (uri.Query);
93 sw.WriteLine ("Port: " + uri.Port);
94 sw.WriteLine (uri.IsFile);
95 sw.WriteLine (uri.IsUnc);
96 sw.WriteLine (uri.IsLoopback);
97 sw.WriteLine (uri.UserEscaped);
98 sw.WriteLine ("HostNameType: " + uri.HostNameType);
99 sw.WriteLine (uri.AbsolutePath);
100 sw.WriteLine ("PathAndQuery: " + uri.PathAndQuery);
101 sw.WriteLine (uri.Authority);
102 sw.WriteLine (uri.Fragment);
103 sw.WriteLine (uri.UserInfo);
105 AssertUri (uriString, uri,
106 sr.ReadLine (),
107 sr.ReadLine (),
108 sr.ReadLine (),
109 sr.ReadLine (),
110 sr.ReadLine (),
111 sr.ReadLine (),
112 int.Parse (sr.ReadLine ()),
113 bool.Parse (sr.ReadLine ()),
114 bool.Parse (sr.ReadLine ()),
115 bool.Parse (sr.ReadLine ()),
116 bool.Parse (sr.ReadLine ()),
117 (UriHostNameType) Enum.Parse (typeof (UriHostNameType), sr.ReadLine (), false),
118 sr.ReadLine (),
119 sr.ReadLine (),
120 sr.ReadLine (),
121 sr.ReadLine (),
122 sr.ReadLine ());
123 // Console.WriteLine ("Passed: " + uriString);
124 } catch (UriFormatException ex) {
125 Fail (String.Format ("Construction failed: [{0}] {1}", uriString, ex.Message));