6 namespace MonoTests
.System
9 public class UriTest2
: Assertion
11 // Segments cannot be validated here...
12 public void AssertUri (string relsrc
, Uri uri
,
24 UriHostNameType hostNameType
,
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 ());
53 public void AbsoluteUriFromFile ()
55 FromFile ("Test/System/test-uri-props.txt", null);
59 public void AbsoluteUriFromFileManual ()
61 FromFile ("Test/System/test-uri-props-manual.txt", null);
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)
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
,
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),
123 // Console.WriteLine ("Passed: " + uriString);
124 } catch (UriFormatException ex
) {
125 Fail (String
.Format ("Construction failed: [{0}] {1}", uriString
, ex
.Message
));