Thomas Mullaly : urlmon/tests: Added more test URIs for IPv6 canonicalization.
Alexandre Julliard
julliard at winehq.org
Mon Jul 26 13:22:31 CDT 2010
Module: wine
Branch: master
Commit: ffe9f1aed0773ba7678230f72f589057aebb663e
URL: http://source.winehq.org/git/wine.git/?a=commit;h=ffe9f1aed0773ba7678230f72f589057aebb663e
Author: Thomas Mullaly <thomas.mullaly at 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://[1: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://[1:2:3:4:5:6::]/",S_OK,TRUE},
+ {"[1:2:3:4:5:6::]",S_OK,TRUE},
+ {"http://[1:2:3:4:5:6::]/",S_OK,TRUE},
+ {"",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://[1:2:3:4:5:6:0.0.0.0]",S_OK,FALSE},
+ {"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://[::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://[::1.2.3.0]/",S_OK,TRUE},
+ {"[::1.2.3.0]",S_OK,TRUE},
+ {"http://[::1.2.3.0]/",S_OK,TRUE},
+ {"",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://[::001.002.003.000]",S_OK,FALSE},
+ {"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://[ffff::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://[ffff::c0de:6f20]/",S_OK,TRUE},
+ {"[ffff::c0de:6f20]",S_OK,TRUE},
+ {"http://[ffff::c0de:6f20]/",S_OK,TRUE},
+ {"",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://[ffff::192.222.111.32]",S_OK,FALSE},
+ {"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}
+ }
}
};
More information about the wine-cvs
mailing list