﻿#
# test-uri-list.txt : URI test input list
#
# Author:
#	Atsushi Enomoto <atushi@ximian.com>
#
# 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
