# # test-uri-list.txt : URI test input list # # Author: # Atsushi Enomoto # # Usage: # You need Microsoft.NET to make use of this tool. # 1. compile uri-test-generator.cs and create uri-test-generator.exe. # 2. add whatever url string you want to test to this file. # (note that it can check only "correct" uri, which can pass on MS.NET). # 3. run uri-test-generator.exe. It will generate uri-test-props.txt. # 4. UriTest2 test class will load the new test file and check Uri class. # # It would be better to edit this file as utf-8 text. I put some # non-ASCII characters for tests (Japanese and Chinese traditional). # # Remember that # - relative URI are not allowed for input to Uri.ctor(). # In some cases, it became ambiguous to parse. For example, # file://readme.txt is treated as file server whose host name is # "readme", domain name is "txt". # # - MS.NET does not conform to RFC 2396 in some places. # # - Uri escape is done inside System.Uri itself (unless you explicitly # specify dontEscape = true). This means that Uri.ctor() may allows # non RFC-conformant string. It accepts, and escapes internally. # http://server http://server/ http://server/maybe_file http://server/directory/ http://server.com http://server.com/ http://server.com/maybe_file http://server.com/directory/ # http:server ... should not be allowed c:/foo.txt c:\foo.txt file://c:/foo.txt # /usr/local/bin ... doesn't pass. it is critical problem of MS.NET \\server # //server ... this test causes different interpretation between Windows and Unix. On Unix the path is condesnsed to /server # ///server ... this became UNC server name in MS.NET file://server file://server/ file://server/maybe_file file://server/directory/ file://server.com ## below should be treated as UNC server file://readme.txt file://server.com/ # file:server.com # file:server.com/ # file:server file://server.com/maybe_file file://server.com/directory/ ## Below are taken from UriTest.cs http://contoso.com?subject=uri mailto:user:pwd@contoso.com?subject=uri \\myserver\mydir\mysubdir\myfile.ext http://www.contoso.com http://www.contoso.com/foo/bar/index.html?x=0 c:\tmp\hello.txt # This AbsoluteUri should be ///cygwin/tmp/hello.txt # file:////////cygwin/tmp/hello.txt file://mymachine/cygwin/tmp/hello.txt # This AbsoluteUri should be ///cygwin/tmp/hello.txt # file://///c:/cygwin/tmp/hello.txt file://one_file.txt file://cygwin/tmp/hello.txt file://server/filename.ext \\server\share\filename.ext http://1.2.3.4 file://1.2.3.4 file:///c:/name%20with%20space.txt # file: # http: # makefile # gopher: # ftp: # file:/ # file:// # file:/// ... however, should be allowed in Unix file path. # file://\ # file://c: # file:///c: ... however, should be allowed in Windows file path. # news: ... in fact MS passes this. # Below should be allowed http://localhost/c# http://localhost/c#bookmark file://localhost/c#fragment file://test.domain.com/c# file://test.domain.com/c#bookmark # //localhost/c# ... this is commented out as the same reason why //server is also commented out. # below should not be allowed ... file://c:/c# # this passes... it breaks RFC 2396 rule. http://c# mailto:c# http://c#bookmark # # non-standard scheme # urn:mono-uri-test # This "8080" is not a port specifier. This is "opaque part" (RFC 2396) urn:mono-uri-test:8080 # But here, it is interpreted as a host name. urn://mono-uri-test:8080 # Scheme cannot start with non-alphabetic character, but MS fails to reject #ファイル:myserver/foo.txt #ファイル://myserver/foo.txt #辭典://cn_to_ja/ # # still looks TODO (EscapeString) # http://web.app.com/test.cgi?value=あいうえお #辭典:cn_to_ja/ファイル #ファイル: #辭典: # # # MS.NET supplies no host info (consoto.com), but I think Mono is better. # news:123456@contoso.com