Module: wine Branch: master Commit: ffe9f1aed0773ba7678230f72f589057aebb663e URL: http://source.winehq.org/git/wine.git/?a=commit;h=ffe9f1aed0773ba7678230f72f...
Author: Thomas Mullaly thomas.mullaly@gmail.com Date: Thu Jul 8 16:42:12 2010 -0400
urlmon/tests: Added more test URIs for IPv6 canonicalization.
---
dlls/urlmon/tests/uri.c | 120 +++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 120 insertions(+), 0 deletions(-)
diff --git a/dlls/urlmon/tests/uri.c b/dlls/urlmon/tests/uri.c index fc5e5da..be4d464 100644 --- a/dlls/urlmon/tests/uri.c +++ b/dlls/urlmon/tests/uri.c @@ -2043,6 +2043,126 @@ static const uri_properties uri_tests[] = { {URL_SCHEME_HTTP,S_OK,FALSE}, {URLZONE_INVALID,E_NOTIMPL,FALSE} } + }, + /* IPv4 addresses attached to IPv6 can be included in elisions. */ + { "http://%5B1:2:3:4:5:6:0.0.0.0]", 0, S_OK, FALSE, + Uri_HAS_ABSOLUTE_URI|Uri_HAS_AUTHORITY|Uri_HAS_DISPLAY_URI|Uri_HAS_HOST| + Uri_HAS_PATH|Uri_HAS_PATH_AND_QUERY|Uri_HAS_RAW_URI|Uri_HAS_SCHEME_NAME| + Uri_HAS_HOST_TYPE|Uri_HAS_PORT|Uri_HAS_SCHEME, + TRUE, + { + {"http://%5B1:2:3:4:5:6::%5D/%22,S_OK,TRUE%7D, + {"[1:2:3:4:5:6::]",S_OK,TRUE}, + {"http://%5B1:2:3:4:5:6::%5D/%22,S_OK,TRUE%7D, + {"",S_FALSE,TRUE}, + {"",S_FALSE,TRUE}, + {"",S_FALSE,TRUE}, + {"1:2:3:4:5:6::",S_OK,FALSE}, + {"",S_FALSE,FALSE}, + {"/",S_OK,TRUE}, + {"/",S_OK,TRUE}, + {"",S_FALSE,TRUE}, + {"http://%5B1:2:3:4:5:6:0.0.0.0%5D%22,S_OK,FALSE%7D, + {"http",S_OK,FALSE}, + {"",S_FALSE,FALSE}, + {"",S_FALSE,FALSE}, + }, + { + {Uri_HOST_IPV6,S_OK,TRUE}, + {80,S_OK,TRUE}, + {URL_SCHEME_HTTP,S_OK,FALSE}, + {URLZONE_INVALID,E_NOTIMPL,FALSE} + } + }, + /* IPv4 addresses get normalized. */ + { "http://%5B::001.002.003.000]", 0, S_OK, FALSE, + Uri_HAS_ABSOLUTE_URI|Uri_HAS_AUTHORITY|Uri_HAS_DISPLAY_URI|Uri_HAS_HOST| + Uri_HAS_PATH|Uri_HAS_PATH_AND_QUERY|Uri_HAS_RAW_URI|Uri_HAS_SCHEME_NAME| + Uri_HAS_HOST_TYPE|Uri_HAS_PORT|Uri_HAS_SCHEME, + TRUE, + { + {"http://%5B::1.2.3.0%5D/%22,S_OK,TRUE%7D, + {"[::1.2.3.0]",S_OK,TRUE}, + {"http://%5B::1.2.3.0%5D/%22,S_OK,TRUE%7D, + {"",S_FALSE,TRUE}, + {"",S_FALSE,TRUE}, + {"",S_FALSE,TRUE}, + {"::1.2.3.0",S_OK,FALSE}, + {"",S_FALSE,FALSE}, + {"/",S_OK,TRUE}, + {"/",S_OK,TRUE}, + {"",S_FALSE,TRUE}, + {"http://%5B::001.002.003.000%5D%22,S_OK,FALSE%7D, + {"http",S_OK,FALSE}, + {"",S_FALSE,FALSE}, + {"",S_FALSE,FALSE}, + }, + { + {Uri_HOST_IPV6,S_OK,TRUE}, + {80,S_OK,TRUE}, + {URL_SCHEME_HTTP,S_OK,FALSE}, + {URLZONE_INVALID,E_NOTIMPL,FALSE} + } + }, + /* Windows doesn't do anything to IPv6's in unknown schemes. */ + { "zip://[0001:0:000:0004:0005:0006:001.002.003.000]", 0, S_OK, FALSE, + Uri_HAS_ABSOLUTE_URI|Uri_HAS_AUTHORITY|Uri_HAS_DISPLAY_URI|Uri_HAS_HOST| + Uri_HAS_PATH|Uri_HAS_PATH_AND_QUERY|Uri_HAS_RAW_URI|Uri_HAS_SCHEME_NAME| + Uri_HAS_HOST_TYPE|Uri_HAS_SCHEME, + TRUE, + { + {"zip://[0001:0:000:0004:0005:0006:001.002.003.000]/",S_OK,TRUE}, + {"[0001:0:000:0004:0005:0006:001.002.003.000]",S_OK,TRUE}, + {"zip://[0001:0:000:0004:0005:0006:001.002.003.000]/",S_OK,TRUE}, + {"",S_FALSE,TRUE}, + {"",S_FALSE,TRUE}, + {"",S_FALSE,TRUE}, + {"0001:0:000:0004:0005:0006:001.002.003.000",S_OK,FALSE}, + {"",S_FALSE,FALSE}, + {"/",S_OK,TRUE}, + {"/",S_OK,TRUE}, + {"",S_FALSE,TRUE}, + {"zip://[0001:0:000:0004:0005:0006:001.002.003.000]",S_OK,FALSE}, + {"zip",S_OK,FALSE}, + {"",S_FALSE,FALSE}, + {"",S_FALSE,FALSE}, + }, + { + {Uri_HOST_IPV6,S_OK,TRUE}, + {0,S_FALSE,TRUE}, + {URL_SCHEME_UNKNOWN,S_OK,FALSE}, + {URLZONE_INVALID,E_NOTIMPL,FALSE} + } + }, + /* IPv4 address is converted into 2 h16 components. */ + { "http://%5Bffff::192.222.111.32]", 0, S_OK, FALSE, + Uri_HAS_ABSOLUTE_URI|Uri_HAS_AUTHORITY|Uri_HAS_DISPLAY_URI|Uri_HAS_HOST| + Uri_HAS_PATH|Uri_HAS_PATH_AND_QUERY|Uri_HAS_RAW_URI|Uri_HAS_SCHEME_NAME| + Uri_HAS_HOST_TYPE|Uri_HAS_PORT|Uri_HAS_SCHEME, + TRUE, + { + {"http://%5Bffff::c0de:6f20%5D/%22,S_OK,TRUE%7D, + {"[ffff::c0de:6f20]",S_OK,TRUE}, + {"http://%5Bffff::c0de:6f20%5D/%22,S_OK,TRUE%7D, + {"",S_FALSE,TRUE}, + {"",S_FALSE,TRUE}, + {"",S_FALSE,TRUE}, + {"ffff::c0de:6f20",S_OK,FALSE}, + {"",S_FALSE,FALSE}, + {"/",S_OK,TRUE}, + {"/",S_OK,TRUE}, + {"",S_FALSE,TRUE}, + {"http://%5Bffff::192.222.111.32%5D%22,S_OK,FALSE%7D, + {"http",S_OK,FALSE}, + {"",S_FALSE,FALSE}, + {"",S_FALSE,FALSE}, + }, + { + {Uri_HOST_IPV6,S_OK,TRUE}, + {80,S_OK,TRUE}, + {URL_SCHEME_HTTP,S_OK,FALSE}, + {URLZONE_INVALID,E_NOTIMPL,FALSE} + } } };