27#define WIN32_LEAN_AND_MEAN
38DEFINE_GUID(CLSID_CUri, 0xDF2FCE13, 0x25EC, 0x45BB, 0x9D,0x4C, 0xCE,0xCD,0x47,0xC2,0x43,0x0C);
40#define URI_STR_PROPERTY_COUNT Uri_PROPERTY_STRING_LAST+1
41#define URI_DWORD_PROPERTY_COUNT (Uri_PROPERTY_DWORD_LAST - Uri_PROPERTY_DWORD_START)+1
42#define URI_BUILDER_STR_PROPERTY_COUNT 7
44#define DEFINE_EXPECT(func) \
45 static BOOL expect_ ## func = FALSE, called_ ## func = FALSE
47#define SET_EXPECT(func) \
48 expect_ ## func = TRUE
50#define CHECK_EXPECT(func) \
52 ok(expect_ ##func, "unexpected call " #func "\n"); \
53 expect_ ## func = FALSE; \
54 called_ ## func = TRUE; \
57#define CHECK_EXPECT2(func) \
59 ok(expect_ ##func, "unexpected call " #func "\n"); \
60 called_ ## func = TRUE; \
63#define CHECK_CALLED(func) \
65 ok(called_ ## func, "expected " #func "\n"); \
66 expect_ ## func = called_ ## func = FALSE; \
82static const WCHAR http_urlW[] = {
'h',
't',
't',
'p',
':',
'/',
'/',
'w',
'w',
'w',
'.',
'w',
'i',
'n',
'e',
'h',
'q',
83 '.',
'o',
'r',
'g',
'/',0};
84static const WCHAR http_url_fragW[] = {
'h',
't',
't',
'p',
':',
'/',
'/',
'w',
'w',
'w',
'.',
'w',
'i',
'n',
'e',
'h',
'q',
85 '.',
'o',
'r',
'g',
'/',
'#',
'F',
'r',
'a',
'g',0};
87static const WCHAR combine_baseW[] = {
'w',
'i',
'n',
'e',
't',
'e',
's',
't',
':',
'?',
't',
88 'e',
's',
't',
'i',
'n',
'g',0};
94static const WCHAR parse_urlW[] = {
'w',
'i',
'n',
'e',
't',
'e',
's',
't',
':',
't',
'e',
's',
't',0};
107 {Uri_CREATE_DECODE_EXTRA_INFO | Uri_CREATE_NO_DECODE_EXTRA_INFO,
E_INVALIDARG},
108 {Uri_CREATE_CANONICALIZE | Uri_CREATE_NO_CANONICALIZE,
E_INVALIDARG},
109 {Uri_CREATE_CRACK_UNKNOWN_SCHEMES | Uri_CREATE_NO_CRACK_UNKNOWN_SCHEMES,
E_INVALIDARG},
110 {Uri_CREATE_PRE_PROCESS_HTML_URI | Uri_CREATE_NO_PRE_PROCESS_HTML_URI,
E_INVALIDARG},
111 {Uri_CREATE_IE_SETTINGS | Uri_CREATE_NO_IE_SETTINGS,
E_INVALIDARG}
141 {
"http://www.winehq.org/tests/../tests/../..", 0,
S_OK,
FALSE,
154 {
"http://www.winehq.org/tests/../tests/../..",
S_OK,
FALSE},
166 {
"http://winehq.org/tests/.././tests", 0,
S_OK,
FALSE,
179 {
"http://winehq.org/tests/.././tests",
S_OK,
FALSE},
191 {
"HtTp://www.winehq.org/tests/..?query=x&return=y", 0,
S_OK,
FALSE,
193 {
"http://www.winehq.org/?query=x&return=y",
S_OK,
FALSE},
195 {
"http://www.winehq.org/?query=x&return=y",
S_OK,
FALSE},
204 {
"HtTp://www.winehq.org/tests/..?query=x&return=y",
S_OK,
FALSE},
216 {
"HtTpS://www.winehq.org/tests/..?query=x&return=y", 0,
S_OK,
FALSE,
218 {
"https://www.winehq.org/?query=x&return=y",
S_OK,
FALSE},
220 {
"https://www.winehq.org/?query=x&return=y",
S_OK,
FALSE},
229 {
"HtTpS://www.winehq.org/tests/..?query=x&return=y",
S_OK,
FALSE},
241 {
"hTTp://us%45r%3Ainfo@examp%4CE.com:80/path/a/b/./c/../%2E%2E/Forbidden'<|> Characters", 0,
S_OK,
FALSE,
243 {
"http://usEr%3Ainfo@example.com/path/a/Forbidden'%3C%7C%3E%20Characters",
S_OK,
FALSE},
245 {
"http://example.com/path/a/Forbidden'%3C%7C%3E%20Characters",
S_OK,
FALSE},
251 {
"/path/a/Forbidden'%3C%7C%3E%20Characters",
S_OK,
FALSE},
252 {
"/path/a/Forbidden'%3C%7C%3E%20Characters",
S_OK,
FALSE},
254 {
"hTTp://us%45r%3Ainfo@examp%4CE.com:80/path/a/b/./c/../%2E%2E/Forbidden'<|> Characters",
S_OK,
FALSE},
266 {
"ftp://winepass:wine@ftp.winehq.org:9999/dir/foo bar.txt", 0,
S_OK,
FALSE,
268 {
"ftp://winepass:wine@ftp.winehq.org:9999/dir/foo%20bar.txt",
S_OK,
FALSE},
269 {
"winepass:wine@ftp.winehq.org:9999",
S_OK,
FALSE},
270 {
"ftp://ftp.winehq.org:9999/dir/foo%20bar.txt",
S_OK,
FALSE},
279 {
"ftp://winepass:wine@ftp.winehq.org:9999/dir/foo bar.txt",
S_OK,
FALSE},
291 {
"file://c:\\tests\\../tests/foo%20bar.mp3", 0,
S_OK,
FALSE,
293 {
"file:///c:/tests/foo%2520bar.mp3",
S_OK,
FALSE},
295 {
"file:///c:/tests/foo%2520bar.mp3",
S_OK,
FALSE},
301 {
"/c:/tests/foo%2520bar.mp3",
S_OK,
FALSE},
302 {
"/c:/tests/foo%2520bar.mp3",
S_OK,
FALSE},
304 {
"file://c:\\tests\\../tests/foo%20bar.mp3",
S_OK,
FALSE},
316 {
"file://c:\\tests\\../tests/foo%20bar.mp3", Uri_CREATE_NO_CANONICALIZE,
S_OK,
FALSE,
318 {
"file:///c:/tests/../tests/foo%2520bar.mp3",
S_OK,
FALSE},
320 {
"file:///c:/tests/../tests/foo%2520bar.mp3",
S_OK,
FALSE},
326 {
"/c:/tests/../tests/foo%2520bar.mp3",
S_OK,
FALSE},
327 {
"/c:/tests/../tests/foo%2520bar.mp3",
S_OK,
FALSE},
329 {
"file://c:\\tests\\../tests/foo%20bar.mp3",
S_OK,
FALSE},
341 {
"FILE://localhost/test dir\\../tests/test%20file.README.txt", 0,
S_OK,
FALSE,
343 {
"file:///tests/test%20file.README.txt",
S_OK,
FALSE},
345 {
"file:///tests/test%20file.README.txt",
S_OK,
FALSE},
351 {
"/tests/test%20file.README.txt",
S_OK,
FALSE},
352 {
"/tests/test%20file.README.txt",
S_OK,
FALSE},
354 {
"FILE://localhost/test dir\\../tests/test%20file.README.txt",
S_OK,
FALSE},
366 {
"file:///z:/test dir/README.txt", 0,
S_OK,
FALSE,
368 {
"file:///z:/test%20dir/README.txt",
S_OK},
370 {
"file:///z:/test%20dir/README.txt",
S_OK},
376 {
"/z:/test%20dir/README.txt",
S_OK},
377 {
"/z:/test%20dir/README.txt",
S_OK},
379 {
"file:///z:/test dir/README.txt",
S_OK},
391 {
"file:///z:/test dir/README.txt#hash part", 0,
S_OK,
FALSE,
393 {
"file:///z:/test%20dir/README.txt#hash%20part",
S_OK},
395 {
"file:///z:/test%20dir/README.txt#hash%20part",
S_OK},
397 {
".txt#hash%20part",
S_OK},
401 {
"/z:/test%20dir/README.txt#hash%20part",
S_OK},
402 {
"/z:/test%20dir/README.txt#hash%20part",
S_OK},
404 {
"file:///z:/test dir/README.txt#hash part",
S_OK},
416 {
"urn:nothing:should:happen here", 0,
S_OK,
FALSE,
418 {
"urn:nothing:should:happen here",
S_OK,
FALSE},
420 {
"urn:nothing:should:happen here",
S_OK,
FALSE},
426 {
"nothing:should:happen here",
S_OK,
FALSE},
427 {
"nothing:should:happen here",
S_OK,
FALSE},
429 {
"urn:nothing:should:happen here",
S_OK,
FALSE},
441 {
"http://127.0.0.1/tests/../test dir/./test.txt", 0,
S_OK,
FALSE,
443 {
"http://127.0.0.1/test%20dir/test.txt",
S_OK,
FALSE},
445 {
"http://127.0.0.1/test%20dir/test.txt",
S_OK,
FALSE},
454 {
"http://127.0.0.1/tests/../test dir/./test.txt",
S_OK,
FALSE},
466 {
"http://[FEDC:BA98:7654:3210:FEDC:BA98:7654:3210]", 0,
S_OK,
FALSE,
468 {
"http://[fedc:ba98:7654:3210:fedc:ba98:7654:3210]/",
S_OK,
FALSE},
469 {
"[fedc:ba98:7654:3210:fedc:ba98:7654:3210]",
S_OK,
FALSE},
470 {
"http://[fedc:ba98:7654:3210:fedc:ba98:7654:3210]/",
S_OK,
FALSE},
474 {
"fedc:ba98:7654:3210:fedc:ba98:7654:3210",
S_OK,
FALSE},
479 {
"http://[FEDC:BA98:7654:3210:FEDC:BA98:7654:3210]",
S_OK,
FALSE},
516 {
"http://[FEDC:BA98:0:0:0:0:0:3210]", 0,
S_OK,
FALSE,
518 {
"http://[fedc:ba98::3210]/",
S_OK,
FALSE},
520 {
"http://[fedc:ba98::3210]/",
S_OK,
FALSE},
529 {
"http://[FEDC:BA98:0:0:0:0:0:3210]",
S_OK,
FALSE},
541 {
"1234://www.winehq.org", 0,
S_OK,
FALSE,
567 {
"C:/test/test.mp3", Uri_CREATE_ALLOW_IMPLICIT_FILE_SCHEME,
S_OK,
FALSE,
593 {
"\\\\Server/test.mp3", Uri_CREATE_ALLOW_IMPLICIT_FILE_SCHEME,
S_OK,
FALSE,
618 {
"C:/test/test.mp3#fragment|part", Uri_CREATE_ALLOW_IMPLICIT_FILE_SCHEME|Uri_CREATE_FILE_USE_DOS_PATH|Uri_CREATE_NO_DECODE_EXTRA_INFO,
S_OK,
FALSE,
620 {
"file://C:\\test\\test.mp3#fragment|part",
S_OK,
FALSE},
622 {
"file://C:\\test\\test.mp3#fragment|part",
S_OK,
FALSE},
628 {
"C:\\test\\test.mp3#fragment|part",
S_OK,
FALSE},
629 {
"C:\\test\\test.mp3#fragment|part",
S_OK,
FALSE},
631 {
"C:/test/test.mp3#fragment|part",
S_OK,
FALSE},
643 {
"C:/test/test.mp3?query|part", Uri_CREATE_ALLOW_IMPLICIT_FILE_SCHEME|Uri_CREATE_FILE_USE_DOS_PATH|Uri_CREATE_NO_DECODE_EXTRA_INFO,
S_OK,
FALSE,
645 {
"file://C:\\test\\test.mp3?query|part",
S_OK,
FALSE},
647 {
"file://C:\\test\\test.mp3?query|part",
S_OK,
FALSE},
654 {
"C:\\test\\test.mp3?query|part",
S_OK,
FALSE},
656 {
"C:/test/test.mp3?query|part",
S_OK,
FALSE},
668 {
"C:/test/test.mp3?query|part#hash|part", Uri_CREATE_ALLOW_IMPLICIT_FILE_SCHEME|Uri_CREATE_FILE_USE_DOS_PATH|Uri_CREATE_NO_DECODE_EXTRA_INFO,
S_OK,
FALSE,
670 {
"file://C:\\test\\test.mp3?query|part#hash|part",
S_OK,
FALSE},
672 {
"file://C:\\test\\test.mp3?query|part#hash|part",
S_OK,
FALSE},
679 {
"C:\\test\\test.mp3?query|part",
S_OK,
FALSE},
681 {
"C:/test/test.mp3?query|part#hash|part",
S_OK,
FALSE},
693 {
"www.winehq.org/test", Uri_CREATE_ALLOW_IMPLICIT_WILDCARD_SCHEME,
S_OK,
FALSE,
719 {
"*:www.winehq.org/test", 0,
S_OK,
FALSE,
744 {
"/../some dir/test.ext", Uri_CREATE_ALLOW_RELATIVE,
S_OK,
FALSE,
769 {
"//implicit/wildcard/uri scheme", Uri_CREATE_ALLOW_RELATIVE|Uri_CREATE_ALLOW_IMPLICIT_WILDCARD_SCHEME,
S_OK,
FALSE,
771 {
"*://implicit/wildcard/uri%20scheme",
S_OK,
FALSE},
773 {
"*://implicit/wildcard/uri%20scheme",
S_OK,
FALSE},
779 {
"//implicit/wildcard/uri%20scheme",
S_OK,
FALSE},
780 {
"//implicit/wildcard/uri%20scheme",
S_OK,
FALSE},
782 {
"//implicit/wildcard/uri scheme",
S_OK,
FALSE},
795 {
"zip://google.com", Uri_CREATE_NO_CRACK_UNKNOWN_SCHEMES,
S_OK,
FALSE,
821 {
"ftp://user:pass:word@winehq.org/", 0,
S_OK,
FALSE,
823 {
"ftp://user:pass:word@winehq.org/",
S_OK,
FALSE},
824 {
"user:pass:word@winehq.org",
S_OK,
FALSE},
834 {
"ftp://user:pass:word@winehq.org/",
S_OK,
FALSE},
847 {
"ftp://w%49%4Ee:PA%53%53@ftp.google.com/", 0,
S_OK,
FALSE,
849 {
"ftp://wINe:PASS@ftp.google.com/",
S_OK,
FALSE},
860 {
"ftp://w%49%4Ee:PA%53%53@ftp.google.com/",
S_OK,
FALSE},
873 {
"ftp://w%5D%5Be:PA%7B%7D@ftp.google.com/", 0,
S_OK,
FALSE,
875 {
"ftp://w%5D%5Be:PA%7B%7D@ftp.google.com/",
S_OK,
FALSE},
876 {
"w%5D%5Be:PA%7B%7D@ftp.google.com",
S_OK,
FALSE},
886 {
"ftp://w%5D%5Be:PA%7B%7D@ftp.google.com/",
S_OK,
FALSE},
899 {
"ftp://empty:@ftp.google.com/", 0,
S_OK,
FALSE,
901 {
"ftp://empty:@ftp.google.com/",
S_OK,
FALSE},
912 {
"ftp://empty:@ftp.google.com/",
S_OK,
FALSE},
925 {
"ftp://\" \"weird@ftp.google.com/", 0,
S_OK,
FALSE,
927 {
"ftp://%22%20%22weird@ftp.google.com/",
S_OK,
FALSE},
928 {
"%22%20%22weird@ftp.google.com",
S_OK,
FALSE},
938 {
"ftp://\" \"weird@ftp.google.com/",
S_OK,
FALSE},
951 {
"ftp://\" \"weird@ftp.google.com/", Uri_CREATE_NO_ENCODE_FORBIDDEN_CHARACTERS,
S_OK,
FALSE,
953 {
"ftp://\" \"weird@ftp.google.com/",
S_OK,
FALSE},
954 {
"\" \"weird@ftp.google.com",
S_OK,
FALSE},
964 {
"ftp://\" \"weird@ftp.google.com/",
S_OK,
FALSE},
977 {
"ftp://\"%20\"weird@ftp.google.com/\"%20\"weird", Uri_CREATE_NO_ENCODE_FORBIDDEN_CHARACTERS,
S_OK,
FALSE,
979 {
"ftp://\"%20\"weird@ftp.google.com/\"%20\"weird",
S_OK,
FALSE},
980 {
"\"%20\"weird@ftp.google.com",
S_OK,
FALSE},
981 {
"ftp://ftp.google.com/\"%20\"weird",
S_OK,
FALSE},
990 {
"ftp://\"%20\"weird@ftp.google.com/\"%20\"weird",
S_OK,
FALSE},
1003 {
"zip://%xy:word@winehq.org/", 0,
S_OK,
FALSE,
1005 {
"zip://%xy:word@winehq.org/",
S_OK,
FALSE},
1007 {
"zip://%xy:word@winehq.org/",
S_OK,
FALSE},
1016 {
"zip://%xy:word@winehq.org/",
S_OK,
FALSE},
1031 {
"zip://%2E:%52%53ord@winehq.org/", 0,
S_OK,
FALSE,
1033 {
"zip://%2E:%52%53ord@winehq.org/",
S_OK,
FALSE},
1034 {
"%2E:%52%53ord@winehq.org",
S_OK,
FALSE},
1035 {
"zip://%2E:%52%53ord@winehq.org/",
S_OK,
FALSE},
1044 {
"zip://%2E:%52%53ord@winehq.org/",
S_OK,
FALSE},
1056 {
"ftp://[](),'test':word@winehq.org/", 0,
S_OK,
FALSE,
1058 {
"ftp://[](),'test':word@winehq.org/",
S_OK,
FALSE},
1059 {
"[](),'test':word@winehq.org",
S_OK,
FALSE},
1069 {
"ftp://[](),'test':word@winehq.org/",
S_OK,
FALSE},
1081 {
"ftp://test?:word@winehq.org/", 0,
S_OK,
FALSE,
1083 {
"ftp://test/?:word@winehq.org/",
S_OK,
FALSE},
1085 {
"ftp://test/?:word@winehq.org/",
S_OK,
FALSE},
1094 {
"ftp://test?:word@winehq.org/",
S_OK,
FALSE},
1106 {
"ftp://test#:word@winehq.org/", 0,
S_OK,
FALSE,
1108 {
"ftp://test/#:word@winehq.org/",
S_OK,
FALSE},
1110 {
"ftp://test/#:word@winehq.org/",
S_OK,
FALSE},
1119 {
"ftp://test#:word@winehq.org/",
S_OK,
FALSE},
1132 {
"zip://test\\:word@winehq.org/", 0,
S_OK,
FALSE,
1134 {
"zip://test\\:word@winehq.org/",
S_OK,
FALSE},
1136 {
"zip://test\\:word@winehq.org/",
S_OK,
FALSE},
1145 {
"zip://test\\:word@winehq.org/",
S_OK,
FALSE},
1158 {
"http://127.000.000.100/", 0,
S_OK,
FALSE,
1183 {
"http://127.0.0.1:8000", 0,
S_OK,
FALSE,
1185 {
"http://127.0.0.1:8000/",
S_OK},
1186 {
"127.0.0.1:8000",
S_OK},
1187 {
"http://127.0.0.1:8000/",
S_OK},
1196 {
"http://127.0.0.1:8000",
S_OK},
1364 {
"http://[FEDC:BA98::3210]", 0,
S_OK,
FALSE,
1366 {
"http://[fedc:ba98::3210]/",
S_OK,
FALSE},
1368 {
"http://[fedc:ba98::3210]/",
S_OK,
FALSE},
1377 {
"http://[FEDC:BA98::3210]",
S_OK,
FALSE},
1414 {
"http://[FEDC:BA98::]", 0,
S_OK,
FALSE,
1440 {
"http://[1::3:4:5:6:7:8]", 0,
S_OK,
FALSE,
1442 {
"http://[1:0:3:4:5:6:7:8]/",
S_OK,
FALSE},
1444 {
"http://[1:0:3:4:5:6:7:8]/",
S_OK,
FALSE},
1491 {
"http://[xyz:12345.com/test", 0,
S_OK,
FALSE,
1493 {
"http://[xyz:12345.com/test",
S_OK,
FALSE},
1495 {
"http://[xyz:12345.com/test",
S_OK,
FALSE},
1504 {
"http://[xyz:12345.com/test",
S_OK,
FALSE},
1519 {
"ftp://www.[works].com/", 0,
S_OK,
FALSE,
1545 {
"http://www.google.com]:12345/", 0,
S_OK,
FALSE,
1547 {
"http://www.google.com]:12345/",
S_OK,
FALSE},
1549 {
"http://www.google.com]:12345/",
S_OK,
FALSE},
1558 {
"http://www.google.com]:12345/",
S_OK,
FALSE},
1571 {
"zip://w%XXw%GEw.google.com/", 0,
S_OK,
FALSE,
1573 {
"zip://w%XXw%GEw.google.com/",
S_OK,
FALSE},
1575 {
"zip://w%XXw%GEw.google.com/",
S_OK,
FALSE},
1584 {
"zip://w%XXw%GEw.google.com/",
S_OK,
FALSE},
1623 {
"http://WWW.GOOGLE.com/", 0,
S_OK,
FALSE,
1651 {
"http://www.%7Cgoogle|.com/", 0,
S_OK,
FALSE,
1653 {
"http://www.%7cgoogle%7c.com/",
S_OK,
FALSE},
1655 {
"http://www.%7cgoogle%7c.com/",
S_OK,
FALSE},
1664 {
"http://www.%7Cgoogle|.com/",
S_OK,
FALSE},
1677 {
"http://[1:2:3:4:5:6:0.0.0.0]", 0,
S_OK,
FALSE,
1690 {
"http://[1:2:3:4:5:6:0.0.0.0]",
S_OK,
FALSE},
1703 {
"http://[::001.002.003.000]", 0,
S_OK,
FALSE,
1716 {
"http://[::001.002.003.000]",
S_OK,
FALSE},
1729 {
"zip://[0001:0:000:0004:0005:0006:001.002.003.000]", 0,
S_OK,
FALSE,
1731 {
"zip://[0001:0:000:0004:0005:0006:001.002.003.000]/",
S_OK,
FALSE},
1732 {
"[0001:0:000:0004:0005:0006:001.002.003.000]",
S_OK,
FALSE},
1733 {
"zip://[0001:0:000:0004:0005:0006:001.002.003.000]/",
S_OK,
FALSE},
1737 {
"0001:0:000:0004:0005:0006:001.002.003.000",
S_OK,
FALSE},
1742 {
"zip://[0001:0:000:0004:0005:0006:001.002.003.000]",
S_OK,
FALSE},
1755 {
"http://[ffff::192.222.111.32]", 0,
S_OK,
FALSE,
1757 {
"http://[ffff::c0de:6f20]/",
S_OK,
FALSE},
1759 {
"http://[ffff::c0de:6f20]/",
S_OK,
FALSE},
1768 {
"http://[ffff::192.222.111.32]",
S_OK,
FALSE},
1781 {
"http://google.com:65535", 0,
S_OK,
FALSE,
1783 {
"http://google.com:65535/",
S_OK,
FALSE},
1785 {
"http://google.com:65535/",
S_OK,
FALSE},
1806 {
"zip://google.com:65536", 0,
S_OK,
FALSE,
1831 {
"zip://google.com:65536:25", 0,
S_OK,
FALSE,
1833 {
"zip://google.com:65536:25/",
S_OK,
FALSE},
1835 {
"zip://google.com:65536:25/",
S_OK,
FALSE},
1844 {
"zip://google.com:65536:25",
S_OK,
FALSE},
1856 {
"zip://[::ffff]:abcd", 0,
S_OK,
FALSE,
1881 {
"zip://127.0.0.1:abcd", 0,
S_OK,
FALSE,
1907 {
"http://google.com:00035", Uri_CREATE_NO_CANONICALIZE,
S_OK,
FALSE,
1911 {
"http://google.com:00035",
S_OK,
FALSE,
"http://google.com:35"},
1933 {
"http://google.com:80", Uri_CREATE_NO_CANONICALIZE,
S_OK,
FALSE,
1958 {
"http://google.com.uk", 0,
S_OK,
FALSE,
1983 {
"http://google.co.uk", 0,
S_OK,
FALSE,
2008 {
"http://google.com.com", 0,
S_OK,
FALSE,
2059 {
"http://google.foo.uk", 0,
S_OK,
FALSE,
2134 {
"http://www.co.google.com.[]", 0,
S_OK,
FALSE,
2136 {
"http://www.co.google.com.[]/",
S_OK,
FALSE},
2138 {
"http://www.co.google.com.[]/",
S_OK,
FALSE},
2147 {
"http://www.co.google.com.[]",
S_OK,
FALSE},
2184 {
"http://www.co.google.us.test", 0,
S_OK,
FALSE,
2186 {
"http://www.co.google.us.test/",
S_OK,
FALSE},
2188 {
"http://www.co.google.us.test/",
S_OK,
FALSE},
2197 {
"http://www.co.google.us.test",
S_OK,
FALSE},
2234 {
"zip://www.google.com\\test", Uri_CREATE_NO_CANONICALIZE,
S_OK,
FALSE,
2236 {
"zip://www.google.com\\test",
S_OK,
FALSE},
2238 {
"zip://www.google.com\\test",
S_OK,
FALSE},
2247 {
"zip://www.google.com\\test",
S_OK,
FALSE},
2259 {
"urn:excepts:bad:%XY:encoded", 0,
S_OK,
FALSE,
2261 {
"urn:excepts:bad:%XY:encoded",
S_OK,
FALSE},
2263 {
"urn:excepts:bad:%XY:encoded",
S_OK,
FALSE},
2272 {
"urn:excepts:bad:%XY:encoded",
S_OK,
FALSE},
2287 {
"file://C:/te%3Es%2Et/tes%t.mp3", 0,
S_OK,
FALSE,
2289 {
"file:///C:/te%253Es%252Et/tes%25t.mp3",
S_OK,
FALSE},
2291 {
"file:///C:/te%253Es%252Et/tes%25t.mp3",
S_OK,
FALSE},
2297 {
"/C:/te%253Es%252Et/tes%25t.mp3",
S_OK,
FALSE},
2298 {
"/C:/te%253Es%252Et/tes%25t.mp3",
S_OK,
FALSE},
2300 {
"file://C:/te%3Es%2Et/tes%t.mp3",
S_OK,
FALSE},
2315 {
"file:///C:/te%3Es%2Et/t%23es%t.mp3", 0,
S_OK,
FALSE,
2317 {
"file:///C:/te%3Es.t/t#es%25t.mp3",
S_OK,
FALSE},
2319 {
"file:///C:/te%3Es.t/t#es%25t.mp3",
S_OK,
FALSE},
2325 {
"/C:/te%3Es.t/t#es%25t.mp3",
S_OK,
FALSE},
2326 {
"/C:/te%3Es.t/t#es%25t.mp3",
S_OK,
FALSE},
2328 {
"file:///C:/te%3Es%2Et/t%23es%t.mp3",
S_OK,
FALSE},
2341 {
"http://[::001.002.003.000]/%3F%23%2E%54/test", 0,
S_OK,
FALSE,
2343 {
"http://[::1.2.3.0]/%3F%23.T/test",
S_OK,
FALSE},
2345 {
"http://[::1.2.3.0]/%3F%23.T/test",
S_OK,
FALSE},
2354 {
"http://[::001.002.003.000]/%3F%23%2E%54/test",
S_OK,
FALSE},
2367 {
"file:///C:/\"test\"/test.mp3", Uri_CREATE_NO_ENCODE_FORBIDDEN_CHARACTERS,
S_OK,
FALSE,
2369 {
"file:///C:/%22test%22/test.mp3",
S_OK,
FALSE},
2371 {
"file:///C:/%22test%22/test.mp3",
S_OK,
FALSE},
2380 {
"file:///C:/\"test\"/test.mp3",
S_OK,
FALSE},
2393 {
"1234://4294967295/<|>\" test<|>", 0,
S_OK,
FALSE,
2395 {
"1234://4294967295/<|>\" test<|>",
S_OK,
FALSE},
2397 {
"1234://4294967295/<|>\" test<|>",
S_OK,
FALSE},
2406 {
"1234://4294967295/<|>\" test<|>",
S_OK,
FALSE},
2419 {
"http://gov.uk/<|> test<|>", 0,
S_OK,
FALSE,
2421 {
"http://gov.uk/%3C%7C%3E%20test%3C%7C%3E",
S_OK,
FALSE},
2423 {
"http://gov.uk/%3C%7C%3E%20test%3C%7C%3E",
S_OK,
FALSE},
2429 {
"/%3C%7C%3E%20test%3C%7C%3E",
S_OK,
FALSE},
2430 {
"/%3C%7C%3E%20test%3C%7C%3E",
S_OK,
FALSE},
2432 {
"http://gov.uk/<|> test<|>",
S_OK,
FALSE},
2444 {
"http://gov.uk/test/../test2/././../test3/.././././", 0,
S_OK,
FALSE,
2457 {
"http://gov.uk/test/../test2/././../test3/.././././",
S_OK,
FALSE},
2469 {
"http://gov.uk/test/test2/../../..", 0,
S_OK,
FALSE,
2482 {
"http://gov.uk/test/test2/../../..",
S_OK,
FALSE},
2494 {
"http://gov.uk/test/test2/../../.", 0,
S_OK,
FALSE,
2507 {
"http://gov.uk/test/test2/../../.",
S_OK,
FALSE},
2519 {
"file://c:\\tests\\../tests\\./.\\..\\foo%20bar.mp3", 0,
S_OK,
FALSE,
2521 {
"file:///c:/foo%2520bar.mp3",
S_OK,
FALSE},
2523 {
"file:///c:/foo%2520bar.mp3",
S_OK,
FALSE},
2532 {
"file://c:\\tests\\../tests\\./.\\..\\foo%20bar.mp3",
S_OK,
FALSE},
2545 {
"zip://gov.uk/test/test2/../../.", 0,
S_OK,
FALSE,
2558 {
"zip://gov.uk/test/test2/../../.",
S_OK,
FALSE},
2571 {
"http://gov.uk/test/test2/../../.", Uri_CREATE_NO_CANONICALIZE,
S_OK,
FALSE,
2573 {
"http://gov.uk/test/test2/../../.",
S_OK,
FALSE},
2575 {
"http://gov.uk/test/test2/../../.",
S_OK,
FALSE},
2584 {
"http://gov.uk/test/test2/../../.",
S_OK,
FALSE},
2597 {
"*:gov.uk/test/test2/../../.", 0,
S_OK,
FALSE,
2599 {
"*:gov.uk/test/test2/../../.",
S_OK,
FALSE},
2601 {
"*:gov.uk/test/test2/../../.",
S_OK,
FALSE},
2610 {
"*:gov.uk/test/test2/../../.",
S_OK,
FALSE},
2623 {
"mailto:\"acco<|>unt@example.com\"", 0,
S_OK,
FALSE,
2625 {
"mailto:%22acco%3C%7C%3Eunt@example.com%22",
S_OK,
FALSE},
2627 {
"mailto:%22acco%3C%7C%3Eunt@example.com%22",
S_OK,
FALSE},
2633 {
"%22acco%3C%7C%3Eunt@example.com%22",
S_OK,
FALSE},
2634 {
"%22acco%3C%7C%3Eunt@example.com%22",
S_OK,
FALSE},
2636 {
"mailto:\"acco<|>unt@example.com\"",
S_OK,
FALSE},
2648 {
"news:test.tes<|>t.com", 0,
S_OK,
FALSE,
2650 {
"news:test.tes%3C%7C%3Et.com",
S_OK,
FALSE},
2652 {
"news:test.tes%3C%7C%3Et.com",
S_OK,
FALSE},
2674 {
"news:test.tes<|>t.com", Uri_CREATE_NO_ENCODE_FORBIDDEN_CHARACTERS,
S_OK,
FALSE,
2700 {
"urn:test.tes<|>t.com", 0,
S_OK,
FALSE,
2726 {
"news:test.%74%65%73%74.com", 0,
S_OK,
FALSE,
2739 {
"news:test.%74%65%73%74.com",
S_OK,
FALSE},
2752 {
"news:test.%74%65%73%74.com", Uri_CREATE_NO_CANONICALIZE,
S_OK,
FALSE,
2765 {
"news:test.%74%65%73%74.com",
S_OK,
FALSE},
2778 {
"urn:test.%74%65%73%74.com", 0,
S_OK,
FALSE,
2780 {
"urn:test.%74%65%73%74.com",
S_OK,
FALSE},
2782 {
"urn:test.%74%65%73%74.com",
S_OK,
FALSE},
2791 {
"urn:test.%74%65%73%74.com",
S_OK,
FALSE},
2804 {
"zip://www.winehq.org/tests/..?query=%xx&return=y", 0,
S_OK,
FALSE,
2806 {
"zip://www.winehq.org/?query=%xx&return=y",
S_OK,
FALSE},
2808 {
"zip://www.winehq.org/?query=%xx&return=y",
S_OK,
FALSE},
2817 {
"zip://www.winehq.org/tests/..?query=%xx&return=y",
S_OK,
FALSE},
2830 {
"http://www.winehq.org/tests/..?query=%xx&return=y", Uri_CREATE_NO_DECODE_EXTRA_INFO,
S_OK,
FALSE,
2832 {
"http://www.winehq.org/?query=%xx&return=y",
S_OK,
FALSE},
2834 {
"http://www.winehq.org/?query=%xx&return=y",
S_OK,
FALSE},
2843 {
"http://www.winehq.org/tests/..?query=%xx&return=y",
S_OK,
FALSE},
2856 {
"http://www.winehq.org/tests/..?query=<|>&return=y", Uri_CREATE_NO_DECODE_EXTRA_INFO,
S_OK,
FALSE,
2858 {
"http://www.winehq.org/?query=<|>&return=y",
S_OK,
FALSE},
2860 {
"http://www.winehq.org/?query=<|>&return=y",
S_OK,
FALSE},
2869 {
"http://www.winehq.org/tests/..?query=<|>&return=y",
S_OK,
FALSE},
2882 {
"http://www.winehq.org/tests/..?query=<|>&return=y", Uri_CREATE_NO_ENCODE_FORBIDDEN_CHARACTERS,
S_OK,
FALSE,
2884 {
"http://www.winehq.org/?query=<|>&return=y",
S_OK,
FALSE},
2886 {
"http://www.winehq.org/?query=<|>&return=y",
S_OK,
FALSE},
2895 {
"http://www.winehq.org/tests/..?query=<|>&return=y",
S_OK,
FALSE},
2908 {
"http://www.winehq.org/tests/..?query=<|>&return=y", 0,
S_OK,
FALSE,
2910 {
"http://www.winehq.org/?query=%3C%7C%3E&return=y",
S_OK,
FALSE},
2912 {
"http://www.winehq.org/?query=%3C%7C%3E&return=y",
S_OK,
FALSE},
2919 {
"/?query=%3C%7C%3E&return=y",
S_OK,
FALSE},
2920 {
"?query=%3C%7C%3E&return=y",
S_OK,
FALSE},
2921 {
"http://www.winehq.org/tests/..?query=<|>&return=y",
S_OK,
FALSE},
2934 {
"zip://www.winehq.org/tests/..?query=<|>&return=y", 0,
S_OK,
FALSE,
2936 {
"zip://www.winehq.org/?query=<|>&return=y",
S_OK,
FALSE},
2938 {
"zip://www.winehq.org/?query=<|>&return=y",
S_OK,
FALSE},
2947 {
"zip://www.winehq.org/tests/..?query=<|>&return=y",
S_OK,
FALSE},
2960 {
"http://www.winehq.org/tests/..?query=%30%31&return=y", 0,
S_OK,
FALSE,
2962 {
"http://www.winehq.org/?query=01&return=y",
S_OK,
FALSE},
2964 {
"http://www.winehq.org/?query=01&return=y",
S_OK,
FALSE},
2973 {
"http://www.winehq.org/tests/..?query=%30%31&return=y",
S_OK,
FALSE},
2986 {
"zip://www.winehq.org/tests/..?query=%30%31&return=y", 0,
S_OK,
FALSE,
2988 {
"zip://www.winehq.org/?query=%30%31&return=y",
S_OK,
FALSE},
2990 {
"zip://www.winehq.org/?query=%30%31&return=y",
S_OK,
FALSE},
2999 {
"zip://www.winehq.org/tests/..?query=%30%31&return=y",
S_OK,
FALSE},
3012 {
"http://www.winehq.org/tests/..?query=%30%31&return=y", Uri_CREATE_NO_DECODE_EXTRA_INFO,
S_OK,
FALSE,
3014 {
"http://www.winehq.org/?query=%30%31&return=y",
S_OK,
FALSE},
3016 {
"http://www.winehq.org/?query=%30%31&return=y",
S_OK,
FALSE},
3025 {
"http://www.winehq.org/tests/..?query=%30%31&return=y",
S_OK,
FALSE},
3037 {
"http://www.winehq.org?query=12&return=y", Uri_CREATE_NO_CANONICALIZE,
S_OK,
FALSE,
3039 {
"http://www.winehq.org?query=12&return=y",
S_OK,
FALSE},
3041 {
"http://www.winehq.org?query=12&return=y",
S_OK,
FALSE},
3050 {
"http://www.winehq.org?query=12&return=y",
S_OK,
FALSE},
3063 {
"zip://www.winehq.org/tests/#Te%xx", 0,
S_OK,
FALSE,
3065 {
"zip://www.winehq.org/tests/#Te%xx",
S_OK,
FALSE},
3067 {
"zip://www.winehq.org/tests/#Te%xx",
S_OK,
FALSE},
3076 {
"zip://www.winehq.org/tests/#Te%xx",
S_OK,
FALSE},
3089 {
"zip://www.winehq.org/tests/#Te<|>", 0,
S_OK,
FALSE,
3091 {
"zip://www.winehq.org/tests/#Te<|>",
S_OK,
FALSE},
3093 {
"zip://www.winehq.org/tests/#Te<|>",
S_OK,
FALSE},
3102 {
"zip://www.winehq.org/tests/#Te<|>",
S_OK,
FALSE},
3115 {
"http://www.winehq.org/tests/#Te<|>", 0,
S_OK,
FALSE,
3117 {
"http://www.winehq.org/tests/#Te%3C%7C%3E",
S_OK,
FALSE},
3119 {
"http://www.winehq.org/tests/#Te%3C%7C%3E",
S_OK,
FALSE},
3128 {
"http://www.winehq.org/tests/#Te<|>",
S_OK,
FALSE},
3141 {
"http://www.winehq.org/tests/#Te<|>", Uri_CREATE_NO_DECODE_EXTRA_INFO,
S_OK,
FALSE,
3143 {
"http://www.winehq.org/tests/#Te<|>",
S_OK,
FALSE},
3145 {
"http://www.winehq.org/tests/#Te<|>",
S_OK,
FALSE},
3154 {
"http://www.winehq.org/tests/#Te<|>",
S_OK,
FALSE},
3167 {
"http://www.winehq.org/tests/#Te<|>", Uri_CREATE_NO_ENCODE_FORBIDDEN_CHARACTERS,
S_OK,
FALSE,
3169 {
"http://www.winehq.org/tests/#Te<|>",
S_OK,
FALSE},
3171 {
"http://www.winehq.org/tests/#Te<|>",
S_OK,
FALSE},
3180 {
"http://www.winehq.org/tests/#Te<|>",
S_OK,
FALSE},
3193 {
"zip://www.winehq.org/tests/#Te%30%31%32", 0,
S_OK,
FALSE,
3195 {
"zip://www.winehq.org/tests/#Te%30%31%32",
S_OK,
FALSE},
3197 {
"zip://www.winehq.org/tests/#Te%30%31%32",
S_OK,
FALSE},
3206 {
"zip://www.winehq.org/tests/#Te%30%31%32",
S_OK,
FALSE},
3219 {
"http://www.winehq.org/tests/#Te%30%31%32", 0,
S_OK,
FALSE,
3221 {
"http://www.winehq.org/tests/#Te012",
S_OK,
FALSE},
3223 {
"http://www.winehq.org/tests/#Te012",
S_OK,
FALSE},
3232 {
"http://www.winehq.org/tests/#Te%30%31%32",
S_OK,
FALSE},
3245 {
"http://www.winehq.org/tests/#Te%30%31%32", Uri_CREATE_NO_CANONICALIZE,
S_OK,
FALSE,
3247 {
"http://www.winehq.org/tests/#Te012",
S_OK,
FALSE},
3249 {
"http://www.winehq.org/tests/#Te012",
S_OK,
FALSE},
3258 {
"http://www.winehq.org/tests/#Te%30%31%32",
S_OK,
FALSE},
3271 {
"http://www.winehq.org/tests/#Te%30%31%32", Uri_CREATE_NO_DECODE_EXTRA_INFO,
S_OK,
FALSE,
3273 {
"http://www.winehq.org/tests/#Te%30%31%32",
S_OK,
FALSE},
3275 {
"http://www.winehq.org/tests/#Te%30%31%32",
S_OK,
FALSE},
3284 {
"http://www.winehq.org/tests/#Te%30%31%32",
S_OK,
FALSE},
3297 {
" http://google.com/ ", 0,
S_OK,
FALSE,
3322 {
"\t\t\r\nhttp\n://g\noogle.co\rm/\n\n\n", 0,
S_OK,
FALSE,
3347 {
"http://g\noogle.co\rm/\n\n\n", Uri_CREATE_NO_PRE_PROCESS_HTML_URI,
S_OK,
FALSE,
3349 {
"http://g%0aoogle.co%0dm/%0A%0A%0A",
S_OK,
FALSE},
3351 {
"http://g%0aoogle.co%0dm/%0A%0A%0A",
S_OK,
FALSE},
3360 {
"http://g\noogle.co\rm/\n\n\n",
S_OK,
FALSE},
3372 {
"zip://g\noogle.co\rm/\n\n\n", Uri_CREATE_NO_PRE_PROCESS_HTML_URI,
S_OK,
FALSE,
3374 {
"zip://g\noogle.co\rm/\n\n\n",
S_OK,
FALSE},
3376 {
"zip://g\noogle.co\rm/\n\n\n",
S_OK,
FALSE},
3385 {
"zip://g\noogle.co\rm/\n\n\n",
S_OK,
FALSE},
3426 {
"http:test.com/index.html", 0,
S_OK,
FALSE,
3430 {
"http:test.com/index.html",
S_OK,
FALSE},
3439 {
"http:test.com/index.html",
S_OK,
FALSE},
3451 {
"ftp:test.com/index.html", 0,
S_OK,
FALSE,
3501 {
"file:///C|/test.mp3", 0,
S_OK,
FALSE,
3529 {
"file://c:/dir/index.html", Uri_CREATE_FILE_USE_DOS_PATH,
S_OK,
FALSE,
3531 {
"file://c:\\dir\\index.html",
S_OK,
FALSE},
3533 {
"file://c:\\dir\\index.html",
S_OK,
FALSE},
3542 {
"file://c:/dir/index.html",
S_OK,
FALSE},
3555 {
"file:///c:/dir/index.html", Uri_CREATE_FILE_USE_DOS_PATH,
S_OK,
FALSE,
3557 {
"file://c:\\dir\\index.html",
S_OK,
FALSE},
3559 {
"file://c:\\dir\\index.html",
S_OK,
FALSE},
3568 {
"file:///c:/dir/index.html",
S_OK,
FALSE},
3581 {
"file:///c:/dir\\%%61%20%5Fname/file%2A.html", Uri_CREATE_FILE_USE_DOS_PATH,
S_OK,
FALSE,
3583 {
"file://c:\\dir\\%a _name\\file*.html",
S_OK,
FALSE},
3585 {
"file://c:\\dir\\%a _name\\file*.html",
S_OK,
FALSE},
3591 {
"c:\\dir\\%a _name\\file*.html",
S_OK,
FALSE},
3592 {
"c:\\dir\\%a _name\\file*.html",
S_OK,
FALSE},
3594 {
"file:///c:/dir\\%%61%20%5Fname/file%2A.html",
S_OK,
FALSE},
3606 {
"file://c|/dir\\index.html", Uri_CREATE_FILE_USE_DOS_PATH,
S_OK,
FALSE,
3608 {
"file://c:\\dir\\index.html",
S_OK,
FALSE},
3610 {
"file://c:\\dir\\index.html",
S_OK,
FALSE},
3619 {
"file://c|/dir\\index.html",
S_OK,
FALSE},
3632 {
"file:\\\\c:\\dir\\index.html", Uri_CREATE_FILE_USE_DOS_PATH,
S_OK,
FALSE,
3634 {
"file://c:\\dir\\index.html",
S_OK,
FALSE},
3636 {
"file://c:\\dir\\index.html",
S_OK,
FALSE},
3645 {
"file:\\\\c:\\dir\\index.html",
S_OK,
FALSE},
3657 {
"file:\\\\c:/dir/index.html", 0,
S_OK,
FALSE,
3659 {
"file:///c:/dir/index.html",
S_OK,
FALSE},
3661 {
"file:///c:/dir/index.html",
S_OK,
FALSE},
3670 {
"file:\\\\c:/dir/index.html",
S_OK,
FALSE},
3682 {
"http:\\\\google.com", 0,
S_OK,
FALSE,
3734 {
"file://c:\\dir\\../..\\./index.html", Uri_CREATE_FILE_USE_DOS_PATH,
S_OK,
FALSE,
3736 {
"file://c:\\dir\\..\\..\\.\\index.html",
S_OK,
FALSE},
3738 {
"file://c:\\dir\\..\\..\\.\\index.html",
S_OK,
FALSE},
3744 {
"c:\\dir\\..\\..\\.\\index.html",
S_OK,
FALSE},
3745 {
"c:\\dir\\..\\..\\.\\index.html",
S_OK,
FALSE},
3747 {
"file://c:\\dir\\../..\\./index.html",
S_OK,
FALSE},
3760 {
"file://c:\\dir\\i^|ndex.html", Uri_CREATE_FILE_USE_DOS_PATH,
S_OK,
FALSE,
3762 {
"file://c:\\dir\\i^|ndex.html",
S_OK,
FALSE},
3764 {
"file://c:\\dir\\i^|ndex.html",
S_OK,
FALSE},
3773 {
"file://c:\\dir\\i^|ndex.html",
S_OK,
FALSE},
3786 {
"file:c:\\dir\\../..\\index.html", 0,
S_OK,
FALSE,
3790 {
"file:c:/dir/../../index.html",
S_OK,
FALSE},
3799 {
"file:c:\\dir\\../..\\index.html",
S_OK,
FALSE},
3812 {
"file:c:/dir\\../..\\index.html", Uri_CREATE_FILE_USE_DOS_PATH,
S_OK,
FALSE,
3816 {
"file:c:\\dir\\..\\..\\index.html",
S_OK,
FALSE},
3822 {
"c:\\dir\\..\\..\\index.html",
S_OK,
FALSE},
3823 {
"c:\\dir\\..\\..\\index.html",
S_OK,
FALSE},
3825 {
"file:c:/dir\\../..\\index.html",
S_OK,
FALSE},
3838 {
"file:c:\\in^|dex.html", Uri_CREATE_FILE_USE_DOS_PATH,
S_OK,
FALSE,
3866 {
"http://:password@gov.uk", 0,
S_OK,
FALSE,
3868 {
"http://:password@gov.uk/",
S_OK,
FALSE},
3894 {
"http://gov.uk/",
S_OK,
FALSE,
"http://@gov.uk/"},
3920 {
"http://gov.uk/",
S_OK,
FALSE,
"http://:@gov.uk/"},
4020 {
"mk:@MSITStore:C:\\Program Files/AutoCAD 2008\\Help/acad_acg.chm::/WSfacf1429558a55de1a7524c1004e616f8b-322b.htm",0,
S_OK,
FALSE,
4022 {
"mk:@MSITStore:C:\\Program%20Files/AutoCAD%202008\\Help/acad_acg.chm::/WSfacf1429558a55de1a7524c1004e616f8b-322b.htm",
S_OK,
FALSE},
4024 {
"mk:@MSITStore:C:\\Program%20Files/AutoCAD%202008\\Help/acad_acg.chm::/WSfacf1429558a55de1a7524c1004e616f8b-322b.htm",
S_OK,
FALSE},
4030 {
"@MSITStore:C:\\Program%20Files/AutoCAD%202008\\Help/acad_acg.chm::/WSfacf1429558a55de1a7524c1004e616f8b-322b.htm",
S_OK,
FALSE},
4031 {
"@MSITStore:C:\\Program%20Files/AutoCAD%202008\\Help/acad_acg.chm::/WSfacf1429558a55de1a7524c1004e616f8b-322b.htm",
S_OK,
FALSE},
4033 {
"mk:@MSITStore:C:\\Program Files/AutoCAD 2008\\Help/acad_acg.chm::/WSfacf1429558a55de1a7524c1004e616f8b-322b.htm",
S_OK,
FALSE},
4045 {
"mk:@MSITStore:Z:\\home\\test\\chm\\silqhelp.chm::/thesilqquickstartguide.htm",0,
S_OK,
FALSE,
4047 {
"mk:@MSITStore:Z:\\home\\test\\chm\\silqhelp.chm::/thesilqquickstartguide.htm",
S_OK,
FALSE},
4049 {
"mk:@MSITStore:Z:\\home\\test\\chm\\silqhelp.chm::/thesilqquickstartguide.htm",
S_OK,
FALSE},
4055 {
"@MSITStore:Z:\\home\\test\\chm\\silqhelp.chm::/thesilqquickstartguide.htm",
S_OK,
FALSE},
4056 {
"@MSITStore:Z:\\home\\test\\chm\\silqhelp.chm::/thesilqquickstartguide.htm",
S_OK,
FALSE},
4058 {
"mk:@MSITStore:Z:\\home\\test\\chm\\silqhelp.chm::/thesilqquickstartguide.htm",
S_OK,
FALSE},
4071 {
"file://server/dir/index.html", Uri_CREATE_FILE_USE_DOS_PATH,
S_OK,
FALSE,
4073 {
"file://\\\\server\\dir\\index.html",
S_OK,
FALSE},
4075 {
"file://\\\\server\\dir\\index.html",
S_OK,
FALSE},
4084 {
"file://server/dir/index.html",
S_OK,
FALSE},
4099 {
"http://google.com:80/", Uri_CREATE_NO_CANONICALIZE,
S_OK,
FALSE,
4125 {
"res://C:\\dir\\file.exe/DATA/test.html", 0,
S_OK,
FALSE,
4127 {
"res://C:\\dir\\file.exe/DATA/test.html",
S_OK,
FALSE},
4129 {
"res://C:\\dir\\file.exe/DATA/test.html",
S_OK,
FALSE},
4138 {
"res://C:\\dir\\file.exe/DATA/test.html",
S_OK,
FALSE},
4151 {
"res://c:\\di|r\\file.exe/test", 0,
S_OK,
FALSE,
4153 {
"res://c:\\di|r\\file.exe/test",
S_OK,
FALSE},
4155 {
"res://c:\\di|r\\file.exe/test",
S_OK,
FALSE},
4164 {
"res://c:\\di|r\\file.exe/test",
S_OK,
FALSE},
4177 {
"res://c:\\dir%xx\\file.exe/test", 0,
S_OK,
FALSE,
4179 {
"res://c:\\dir%xx\\file.exe/test",
S_OK,
FALSE},
4181 {
"res://c:\\dir%xx\\file.exe/test",
S_OK,
FALSE},
4190 {
"res://c:\\dir%xx\\file.exe/test",
S_OK,
FALSE},
4203 {
"res://c:\\test/tes<|>t", 0,
S_OK,
FALSE,
4228 {
"mk:@MSITStore:Z:\\dir\\test.chm::/html/../images/xxx.jpg", 0,
S_OK,
FALSE,
4230 {
"mk:@MSITStore:Z:\\dir\\test.chm::/images/xxx.jpg",
S_OK,
FALSE},
4232 {
"mk:@MSITStore:Z:\\dir\\test.chm::/images/xxx.jpg",
S_OK,
FALSE},
4238 {
"@MSITStore:Z:\\dir\\test.chm::/images/xxx.jpg",
S_OK,
FALSE},
4239 {
"@MSITStore:Z:\\dir\\test.chm::/images/xxx.jpg",
S_OK,
FALSE},
4241 {
"mk:@MSITStore:Z:\\dir\\test.chm::/html/../images/xxx.jpg",
S_OK,
FALSE},
4253 {
"mk:@MSITStore:Z:\\dir\\test.chm::/html/../images/xxx.jpg", Uri_CREATE_NO_CANONICALIZE,
S_OK,
FALSE,
4255 {
"mk:@MSITStore:Z:\\dir\\test.chm::/html/../images/xxx.jpg",
S_OK,
FALSE},
4257 {
"mk:@MSITStore:Z:\\dir\\test.chm::/html/../images/xxx.jpg",
S_OK,
FALSE},
4263 {
"@MSITStore:Z:\\dir\\test.chm::/html/../images/xxx.jpg",
S_OK,
FALSE},
4264 {
"@MSITStore:Z:\\dir\\test.chm::/html/../images/xxx.jpg",
S_OK,
FALSE},
4266 {
"mk:@MSITStore:Z:\\dir\\test.chm::/html/../images/xxx.jpg",
S_OK,
FALSE},
4278 {
"xx:@MSITStore:Z:\\dir\\test.chm::/html/../images/xxx.jpg", 0,
S_OK,
FALSE,
4280 {
"xx:@MSITStore:Z:\\dir\\test.chm::/html/../images/xxx.jpg",
S_OK,
FALSE},
4282 {
"xx:@MSITStore:Z:\\dir\\test.chm::/html/../images/xxx.jpg",
S_OK,
FALSE},
4288 {
"@MSITStore:Z:\\dir\\test.chm::/html/../images/xxx.jpg",
S_OK,
FALSE},
4289 {
"@MSITStore:Z:\\dir\\test.chm::/html/../images/xxx.jpg",
S_OK,
FALSE},
4291 {
"xx:@MSITStore:Z:\\dir\\test.chm::/html/../images/xxx.jpg",
S_OK,
FALSE},
4303 {
"mk:@MSITStore:Z:\\dir\\test.chm::/html/../../images/xxx.jpg", 0,
S_OK,
FALSE,
4305 {
"mk:@MSITStore:Z:\\dir\\images/xxx.jpg",
S_OK,
FALSE},
4307 {
"mk:@MSITStore:Z:\\dir\\images/xxx.jpg",
S_OK,
FALSE},
4313 {
"@MSITStore:Z:\\dir\\images/xxx.jpg",
S_OK,
FALSE},
4314 {
"@MSITStore:Z:\\dir\\images/xxx.jpg",
S_OK,
FALSE},
4316 {
"mk:@MSITStore:Z:\\dir\\test.chm::/html/../../images/xxx.jpg",
S_OK,
FALSE},
4328 {
"mk:@MSITStore:Z:\\dir\\dir2\\..\\test.chm::/html/../../images/xxx.jpg", 0,
S_OK,
FALSE,
4330 {
"mk:@MSITStore:Z:\\dir\\images/xxx.jpg",
S_OK,
FALSE},
4332 {
"mk:@MSITStore:Z:\\dir\\images/xxx.jpg",
S_OK,
FALSE},
4338 {
"@MSITStore:Z:\\dir\\images/xxx.jpg",
S_OK,
FALSE},
4339 {
"@MSITStore:Z:\\dir\\images/xxx.jpg",
S_OK,
FALSE},
4341 {
"mk:@MSITStore:Z:\\dir\\dir2\\..\\test.chm::/html/../../images/xxx.jpg",
S_OK,
FALSE},
4353 {
"mk:@MSITStore:Z:\\dir\\test.chm::/html/../../../../images/xxx.jpg", 0,
S_OK,
FALSE,
4366 {
"mk:@MSITStore:Z:\\dir\\test.chm::/html/../../../../images/xxx.jpg",
S_OK,
FALSE},
4378 {
"", Uri_CREATE_ALLOW_RELATIVE,
S_OK,
FALSE,
4403 {
" \t ", Uri_CREATE_ALLOW_RELATIVE,
S_OK,
FALSE,
4430 {
"javascript:void",
S_OK},
4432 {
"javascript:void",
S_OK},
4441 {
"javascript:void",
S_OK},
4442 {
"javascript",
S_OK},
4447 {Uri_HOST_UNKNOWN,
S_OK},
4453 {
"javascript://undefined", 0,
S_OK,
FALSE,
4455 {
"javascript://undefined",
S_OK},
4457 {
"javascript://undefined",
S_OK},
4463 {
"//undefined",
S_OK},
4464 {
"//undefined",
S_OK},
4466 {
"javascript://undefined",
S_OK},
4467 {
"javascript",
S_OK},
4472 {Uri_HOST_UNKNOWN,
S_OK},
4478 {
"JavaSCript:escape('/\\?#?')", 0,
S_OK,
FALSE,
4480 {
"javascript:escape('/\\?#?')",
S_OK},
4482 {
"javascript:escape('/\\?#?')",
S_OK},
4488 {
"escape('/\\?#?')",
S_OK},
4489 {
"escape('/\\?#?')",
S_OK},
4491 {
"JavaSCript:escape('/\\?#?')",
S_OK},
4492 {
"javascript",
S_OK},
4497 {Uri_HOST_UNKNOWN,
S_OK},
4506 {
"google.com",
S_OK},
4528 {
"mk:@MSITSTORE:C:\\Some\\Bogus\\Path.chm::/subdir/file.txt",0,
S_OK,
FALSE,
4530 {
"mk:@MSITSTORE:C:\\Some\\Bogus\\Path.chm::/subdir/file.txt",
S_OK},
4532 {
"mk:@MSITSTORE:C:\\Some\\Bogus\\Path.chm::/subdir/file.txt",
S_OK},
4538 {
"@MSITSTORE:C:\\Some\\Bogus\\Path.chm::/subdir/file.txt",
S_OK},
4539 {
"@MSITSTORE:C:\\Some\\Bogus\\Path.chm::/subdir/file.txt",
S_OK},
4541 {
"mk:@MSITSTORE:C:\\Some\\Bogus\\Path.chm::/subdir/file.txt",
S_OK},
4547 {Uri_HOST_UNKNOWN,
S_OK},
4553 {
"gopher://test.winehq.org:151/file.txt",0,
S_OK,
FALSE,
4555 {
"gopher://test.winehq.org:151/file.txt",
S_OK},
4556 {
"test.winehq.org:151",
S_OK},
4557 {
"gopher://test.winehq.org:151/file.txt",
S_OK},
4558 {
"winehq.org",
S_OK},
4561 {
"test.winehq.org",
S_OK},
4566 {
"gopher://test.winehq.org:151/file.txt",
S_OK},
4572 {Uri_HOST_DNS,
S_OK},
4578 {
"//host.com/path/file.txt?query", Uri_CREATE_ALLOW_RELATIVE,
S_OK,
FALSE,
4580 {
"//host.com/path/file.txt?query",
S_OK},
4582 {
"//host.com/path/file.txt?query",
S_OK},
4588 {
"/path/file.txt",
S_OK},
4589 {
"/path/file.txt?query",
S_OK},
4591 {
"//host.com/path/file.txt?query",
S_OK},
4597 {Uri_HOST_DNS,
S_OK},
4603 {
"//host/path/file.txt?query", Uri_CREATE_ALLOW_RELATIVE,
S_OK,
FALSE,
4605 {
"//host/path/file.txt?query",
S_OK},
4607 {
"//host/path/file.txt?query",
S_OK},
4613 {
"/path/file.txt",
S_OK},
4614 {
"/path/file.txt?query",
S_OK},
4616 {
"//host/path/file.txt?query",
S_OK},
4622 {Uri_HOST_DNS,
S_OK},
4628 {
"//host", Uri_CREATE_ALLOW_RELATIVE,
S_OK,
FALSE,
4647 {Uri_HOST_DNS,
S_OK},
4653 {
"mailto://", Uri_CREATE_NO_CANONICALIZE,
S_OK,
FALSE,
4672 {Uri_HOST_UNKNOWN,
S_OK},
4678 {
"mailto://a@b.com", Uri_CREATE_NO_CANONICALIZE,
S_OK,
FALSE,
4680 {
"mailto:a@b.com",
S_OK},
4682 {
"mailto:a@b.com",
S_OK},
4691 {
"mailto://a@b.com",
S_OK,
FALSE,
"mailto:a@b.com"},
4697 {Uri_HOST_UNKNOWN,
S_OK},
4703 {
"c:\\test file.html", Uri_CREATE_FILE_USE_DOS_PATH|Uri_CREATE_ALLOW_IMPLICIT_FILE_SCHEME,
S_OK,
FALSE,
4705 {
"file://c:\\test file.html",
S_OK,
FALSE},
4707 {
"file://c:\\test file.html",
S_OK,
FALSE},
4728 {
"c:\\test%20file.html", Uri_CREATE_FILE_USE_DOS_PATH|Uri_CREATE_ALLOW_IMPLICIT_FILE_SCHEME,
S_OK,
FALSE,
4730 {
"file://c:\\test%20file.html",
S_OK,
FALSE},
4732 {
"file://c:\\test%20file.html",
S_OK,
FALSE},
4753 {
"c:\\test file.html", Uri_CREATE_ALLOW_IMPLICIT_FILE_SCHEME,
S_OK,
FALSE,
4755 {
"file:///c:/test%20file.html",
S_OK,
FALSE},
4757 {
"file:///c:/test%20file.html",
S_OK,
FALSE},
4778 {
"c:\\test%20file.html", Uri_CREATE_ALLOW_IMPLICIT_FILE_SCHEME,
S_OK,
FALSE,
4780 {
"file:///c:/test%2520file.html",
S_OK,
FALSE},
4782 {
"file:///c:/test%2520file.html",
S_OK,
FALSE},
4805 "http://127.0.0.1/\xE6\xB5\x8B\xE8\xAF\x95/test.txt", 0,
S_OK,
FALSE,
4807 {
"http://127.0.0.1/\xE6\xB5\x8B\xE8\xAF\x95/test.txt",
S_OK,
FALSE},
4809 {
"http://127.0.0.1/\xE6\xB5\x8B\xE8\xAF\x95/test.txt",
S_OK,
FALSE},
4815 {
"/\xE6\xB5\x8B\xE8\xAF\x95/test.txt",
S_OK,
FALSE},
4816 {
"/\xE6\xB5\x8B\xE8\xAF\x95/test.txt",
S_OK,
FALSE},
4818 {
"http://127.0.0.1/\xE6\xB5\x8B\xE8\xAF\x95/test.txt",
S_OK,
FALSE},
4830 {
"file:\xE6\xB5\x8B\xE8\xAF\x95.html", 0,
S_OK,
FALSE,
4834 {
"file:\xE6\xB5\x8B\xE8\xAF\x95.html",
S_OK,
FALSE},
4840 {
"\xE6\xB5\x8B\xE8\xAF\x95.html",
S_OK,
FALSE},
4841 {
"\xE6\xB5\x8B\xE8\xAF\x95.html",
S_OK,
FALSE},
4843 {
"file:\xE6\xB5\x8B\xE8\xAF\x95.html",
S_OK,
FALSE},
4856 {
"ftp://\xE6\xB5\x8B\xE8\xAF\x95:wine@ftp.winehq.org:9999/dir/foobar.txt", 0,
S_OK,
FALSE,
4858 {
"ftp://\xE6\xB5\x8B\xE8\xAF\x95:wine@ftp.winehq.org:9999/dir/foobar.txt",
S_OK,
FALSE},
4859 {
"\xE6\xB5\x8B\xE8\xAF\x95:wine@ftp.winehq.org:9999",
S_OK,
FALSE},
4860 {
"ftp://ftp.winehq.org:9999/dir/foobar.txt",
S_OK,
FALSE},
4869 {
"ftp://\xE6\xB5\x8B\xE8\xAF\x95:wine@ftp.winehq.org:9999/dir/foobar.txt",
S_OK,
FALSE},
4871 {
"\xE6\xB5\x8B\xE8\xAF\x95:wine",
S_OK,
FALSE},
4882 {
"ftp://winepass:\xE6\xB5\x8B\xE8\xAF\x95@ftp.winehq.org:9999/dir/foobar.txt", 0,
S_OK,
FALSE,
4884 {
"ftp://winepass:\xE6\xB5\x8B\xE8\xAF\x95@ftp.winehq.org:9999/dir/foobar.txt",
S_OK,
FALSE},
4885 {
"winepass:\xE6\xB5\x8B\xE8\xAF\x95@ftp.winehq.org:9999",
S_OK,
FALSE},
4886 {
"ftp://ftp.winehq.org:9999/dir/foobar.txt",
S_OK,
FALSE},
4891 {
"\xE6\xB5\x8B\xE8\xAF\x95",
S_OK,
FALSE},
4895 {
"ftp://winepass:\xE6\xB5\x8B\xE8\xAF\x95@ftp.winehq.org:9999/dir/foobar.txt",
S_OK,
FALSE},
4897 {
"winepass:\xE6\xB5\x8B\xE8\xAF\x95",
S_OK,
FALSE},
4908 {
"http://www.winehq.org/tests/..?query=\xE6\xB5\x8B\xE8\xAF\x95&return=y", 0,
S_OK,
FALSE,
4910 {
"http://www.winehq.org/?query=\xE6\xB5\x8B\xE8\xAF\x95&return=y",
S_OK,
FALSE},
4912 {
"http://www.winehq.org/?query=\xE6\xB5\x8B\xE8\xAF\x95&return=y",
S_OK,
FALSE},
4919 {
"/?query=\xE6\xB5\x8B\xE8\xAF\x95&return=y",
S_OK,
FALSE},
4920 {
"?query=\xE6\xB5\x8B\xE8\xAF\x95&return=y",
S_OK,
FALSE},
4921 {
"http://www.winehq.org/tests/..?query=\xE6\xB5\x8B\xE8\xAF\x95&return=y",
S_OK,
FALSE},
4934 {
"http://www.winehq.org/tests/#\xE6\xB5\x8B\xE8\xAF\x95", 0,
S_OK,
FALSE,
4936 {
"http://www.winehq.org/tests/#\xE6\xB5\x8B\xE8\xAF\x95",
S_OK,
FALSE},
4938 {
"http://www.winehq.org/tests/#\xE6\xB5\x8B\xE8\xAF\x95",
S_OK,
FALSE},
4941 {
"#\xE6\xB5\x8B\xE8\xAF\x95",
S_OK,
FALSE},
4947 {
"http://www.winehq.org/tests/#\xE6\xB5\x8B\xE8\xAF\x95",
S_OK,
FALSE},
4960 {
"file:a\xE2\x80\x8D.html", Uri_CREATE_NO_PRE_PROCESS_HTML_URI,
S_OK,
FALSE,
4986 {
"file:ab\xE2\x80\x8E.html", Uri_CREATE_NO_PRE_PROCESS_HTML_URI,
S_OK,
FALSE,
4990 {
"file:ab\xE2\x80\x8D.html",
S_OK,
FALSE},
4999 {
"file:ab\xE2\x80\x8D.html",
S_OK,
FALSE},
5012 {
"file:ab\xc3\x28.html", 0,
S_OK,
FALSE,
5038 {
"ftp://%E6%B5%8B%E8%AF%95:%E6%B5%8B%E8%AF%95@ftp.google.com/", 0,
S_OK,
FALSE,
5040 {
"ftp://%E6%B5%8B%E8%AF%95:%E6%B5%8B%E8%AF%95@ftp.google.com/",
S_OK,
FALSE},
5041 {
"%E6%B5%8B%E8%AF%95:%E6%B5%8B%E8%AF%95@ftp.google.com",
S_OK,
FALSE},
5051 {
"ftp://%E6%B5%8B%E8%AF%95:%E6%B5%8B%E8%AF%95@ftp.google.com/",
S_OK,
FALSE},
5053 {
"%E6%B5%8B%E8%AF%95:%E6%B5%8B%E8%AF%95",
S_OK,
FALSE},
5073 {
"://www.winehq.org",0,
FALSE},
5077 {
"C:/test/test.mp3",0,
FALSE},
5078 {
"\\\\Server/test/test.mp3",0,
FALSE},
5079 {
"C:/test/test.mp3",Uri_CREATE_ALLOW_IMPLICIT_WILDCARD_SCHEME,
FALSE},
5080 {
"\\\\Server/test/test.mp3",Uri_CREATE_ALLOW_RELATIVE,
FALSE},
5082 {
"*abcd://not.valid.com",0,
FALSE},
5083 {
"*a*b*c*d://not.valid.com",0,
FALSE},
5085 {
"ftp://google.co%XX/",0,
FALSE},
5087 {
"http://[1:2:3:4:5:6:7:8:9]",0,
FALSE},
5089 {
"http://[1:2:3:4:5:6:7:192.0.1.0]",0,
FALSE},
5091 {
"http://[1:2:3:4]",0,
FALSE},
5093 {
"http://[1:192.0.1.0]",0,
FALSE},
5095 {
"http://[::192.0]",0,
FALSE},
5097 {
"http://[::2:3:4:5:6:7:8]",0,
FALSE},
5099 {
"ftp://[not.valid.uri]/",0,
FALSE},
5101 {
"ftp://www.winehq.org:123fgh",0,
FALSE},
5103 {
"ftp://www.winehq.org:65536",0,
FALSE},
5105 {
"http://www.winehq.org:1abcd",0,
FALSE},
5107 {
"http://[::ffff]:32xy",0,
FALSE},
5109 {
"gopher://www.google.com\\test",Uri_CREATE_NO_CANONICALIZE,
FALSE},
5111 {
"news:test%XX",0,
FALSE},
5112 {
"mailto:wine@winehq%G8.com",0,
FALSE},
5114 {
"http://google.com/?query=te%xx",0,
FALSE},
5116 {
"ftp://google.com/#Test%xx",0,
FALSE},
5117 {
" http://google.com/",Uri_CREATE_NO_PRE_PROCESS_HTML_URI,
FALSE},
5118 {
"\n\nhttp://google.com/",Uri_CREATE_NO_PRE_PROCESS_HTML_URI,
FALSE},
5119 {
"file://c:\\test<test",Uri_CREATE_FILE_USE_DOS_PATH,
FALSE},
5120 {
"file://c:\\test>test",Uri_CREATE_FILE_USE_DOS_PATH,
FALSE},
5121 {
"file://c:\\test\"test",Uri_CREATE_FILE_USE_DOS_PATH,
FALSE},
5122 {
"file:c:\\test<test",Uri_CREATE_FILE_USE_DOS_PATH,
FALSE},
5123 {
"file:c:\\test>test",Uri_CREATE_FILE_USE_DOS_PATH,
FALSE},
5124 {
"file:c:\\test\"test",Uri_CREATE_FILE_USE_DOS_PATH,
FALSE},
5128 {
"res://c:\\te<st\\test/test",0,
FALSE},
5129 {
"res://c:\\te>st\\test/test",0,
FALSE},
5130 {
"res://c:\\te\"st\\test/test",0,
FALSE},
5131 {
"res://c:\\test/te%xxst",0,
FALSE}
5145 "HTTP://www.winehq.org/test dir/./",0,
5146 "http://www.winehq.org/test dir/../test dir/",0,
5151 "http://%77%77%77%2E%77%69%6E%65%68%71%2E%6F%72%67/%74%65%73%74%20%64%69%72",0,
5152 "http://www.winehq.org/test dir",0,
5156 "c:\\test.mp3",Uri_CREATE_ALLOW_IMPLICIT_FILE_SCHEME,
5157 "file:///c:/test.mp3",0,
5161 "ftp://ftp.winehq.org/",0,
5162 "ftp://ftp.winehq.org",0,
5166 "ftp://ftp.winehq.org/test/test2/../../testB/",0,
5167 "ftp://ftp.winehq.org/t%45stB/",0,
5171 "http://google.com/TEST",0,
5172 "http://google.com/test",0,
5176 "http://GOOGLE.com/",0,
5177 "http://google.com/",0,
5182 "ftp://GOOGLE.com/",Uri_CREATE_NO_CANONICALIZE,
5183 "ftp://google.com/",0,
5187 "zip://GOOGLE.com/",0,
5188 "zip://google.com/",0,
5192 "file:///c:/TEST/TeST/",0,
5193 "file:///c:/test/test/",0,
5197 "file:///server/TEST",0,
5198 "file:///SERVER/TEST",0,
5202 "http://google.com",Uri_CREATE_NO_CANONICALIZE,
5203 "http://google.com/",0,
5207 "ftp://google.com:21/",0,
5208 "ftp://google.com/",0,
5212 "http://google.com:80/",Uri_CREATE_NO_CANONICALIZE,
5213 "http://google.com/",0,
5217 "http://google.com:70/",0,
5218 "http://google.com:71/",0,
5222 "file:///c:/dir/file.txt", 0,
5223 "file:///c:/dir/file.txt", Uri_CREATE_FILE_USE_DOS_PATH,
5227 "file:///c:/dir/file.txt", 0,
5228 "file:///c:\\dir\\file.txt", Uri_CREATE_NO_CANONICALIZE,
5232 "file:///c:/dir/file.txt", 0,
5233 "file:///c:\\dir2\\..\\dir\\file.txt", Uri_CREATE_NO_CANONICALIZE,
5237 "file:///c:\\dir2\\..\\ dir\\file.txt", Uri_CREATE_NO_CANONICALIZE,
5238 "file:///c:/%20dir/file.txt", 0,
5242 "file:///c:/Dir/file.txt", 0,
5243 "file:///C:/dir/file.TXT", Uri_CREATE_FILE_USE_DOS_PATH,
5247 "file:///c:/dir/file.txt", 0,
5248 "file:///c:\\dir\\file.txt", Uri_CREATE_FILE_USE_DOS_PATH,
5252 "file:///c:/dir/file.txt#a", 0,
5253 "file:///c:\\dir\\file.txt#b", Uri_CREATE_FILE_USE_DOS_PATH,
5258 "http://google.com/test",0,
5259 "http://google.com/test#",0,
5263 "ftp://ftp.winehq.org/",0,
5264 "ftp://ftp.winehq.org/#",0,
5268 "file:///c:/dir/file.txt#", 0,
5269 "file:///c:\\dir\\file.txt", Uri_CREATE_FILE_USE_DOS_PATH,
5287 "http://google.com/",
"#fragment",0,
S_OK,
FALSE,
5288 "http://google.com/#fragment",
FALSE
5291 "http://google.com/",
"fragment",0,
S_OK,
FALSE,
5292 "http://google.com/#fragment",
FALSE
5296 "zip://test.com/#?test",
FALSE
5300 "ftp://ftp.google.com/",
"",0,
S_OK,
FALSE,
5301 "ftp://ftp.google.com/#",
FALSE
5375 {
"http://username:password@google.com/?query=x#fragment",
S_OK},
5376 {
"username:password@google.com",
S_OK},
5377 {
"http://google.com/?query=x#fragment",
S_OK},
5378 {
"google.com",
S_OK},
5381 {
"google.com",
S_OK},
5386 {
"http://username:password@google.com/?query=x#fragment",
S_OK},
5388 {
"username:password",
S_OK},
5392 {Uri_HOST_DNS,
S_OK},
5407 {
"test://google.com:120/",
S_OK},
5408 {
"google.com:120",
S_OK},
5409 {
"test://google.com:120/",
S_OK},
5410 {
"google.com",
S_OK},
5413 {
"google.com",
S_OK},
5418 {
"test://google.com:120/",
S_OK},
5424 {Uri_HOST_DNS,
S_OK},
5430 {
"/Test/test dir",Uri_CREATE_ALLOW_RELATIVE,
S_OK,
FALSE,
5441 {
"http://[::192.2.3.4]/",
S_OK},
5442 {
"[::192.2.3.4]",
S_OK},
5443 {
"http://[::192.2.3.4]/",
S_OK},
5447 {
"::192.2.3.4",
S_OK},
5452 {
"http://[::192.2.3.4]/",
S_OK},
5458 {Uri_HOST_IPV6,
S_OK},
5473 {
"http://google.com/#Frag",
S_OK},
5474 {
"google.com",
S_OK},
5475 {
"http://google.com/#Frag",
S_OK},
5476 {
"google.com",
S_OK},
5479 {
"google.com",
S_OK},
5484 {
"http://google.com/#Frag",
S_OK},
5490 {Uri_HOST_DNS,
S_OK},
5505 {
"http://google.com/#",
S_OK},
5506 {
"google.com",
S_OK},
5507 {
"http://google.com/#",
S_OK},
5508 {
"google.com",
S_OK},
5511 {
"google.com",
S_OK},
5516 {
"http://google.com/#",
S_OK},
5522 {Uri_HOST_DNS,
S_OK},
5537 {
"http://::password@google.com/",
S_OK},
5538 {
"::password@google.com",
S_OK},
5539 {
"http://google.com/",
S_OK},
5540 {
"google.com",
S_OK},
5543 {
"google.com",
S_OK},
5548 {
"http://::password@google.com/",
S_OK},
5550 {
"::password",
S_OK},
5554 {Uri_HOST_DNS,
S_OK},
5560 {
"test/test",Uri_CREATE_ALLOW_RELATIVE,
S_OK,
FALSE,
5567 Uri_CREATE_ALLOW_RELATIVE,0,0,
S_OK,
FALSE,
5569 {
":password@test/test",
S_OK},
5570 {
":password@",
S_OK},
5571 {
":password@test/test",
S_OK},
5580 {
":password@test/test",
S_OK},
5586 {Uri_HOST_UNKNOWN,
S_OK},
5601 {
"http://google.com/test/test",
S_OK},
5602 {
"google.com",
S_OK},
5603 {
"http://google.com/test/test",
S_OK},
5604 {
"google.com",
S_OK},
5607 {
"google.com",
S_OK},
5609 {
"/test/test",
S_OK},
5610 {
"/test/test",
S_OK},
5612 {
"http://google.com/test/test",
S_OK},
5618 {Uri_HOST_DNS,
S_OK},
5650 {Uri_HOST_UNKNOWN,
S_OK},
5666 {
"http://google.com/",
S_OK},
5667 {
"google.com",
S_OK},
5668 {
"http://google.com/",
S_OK},
5669 {
"google.com",
S_OK},
5672 {
"google.com",
S_OK},
5677 {
"http://google.com/",
S_OK},
5683 {Uri_HOST_DNS,
S_OK},
5702 {
"http://google.com:222/",
S_OK},
5703 {
"google.com:222",
S_OK},
5704 {
"http://google.com:222/",
S_OK},
5705 {
"google.com",
S_OK},
5708 {
"google.com",
S_OK},
5713 {
"http://google.com:222/",
S_OK},
5719 {Uri_HOST_DNS,
S_OK},
5735 {
"http://google.com:999999/",
S_OK},
5736 {
"google.com:999999",
S_OK},
5737 {
"http://google.com:999999/",
S_OK},
5738 {
"google.com",
S_OK},
5741 {
"google.com",
S_OK},
5746 {
"http://google.com:999999/",
S_OK},
5752 {Uri_HOST_DNS,
S_OK},
5768 {
"http://google.com/?test",
S_OK},
5769 {
"google.com",
S_OK},
5770 {
"http://google.com/?test",
S_OK},
5771 {
"google.com",
S_OK},
5774 {
"google.com",
S_OK},
5779 {
"http://google.com/?test",
S_OK},
5785 {Uri_HOST_DNS,
S_OK},
5791 {
"http://:password@google.com/",0,
S_OK,
FALSE,
5800 {
"http://:password@google.com/",
S_OK},
5801 {
":password@google.com",
S_OK},
5802 {
"http://google.com/",
S_OK},
5803 {
"google.com",
S_OK},
5806 {
"google.com",
S_OK},
5811 {
"http://:password@google.com/",
S_OK},
5817 {Uri_HOST_DNS,
S_OK},
5834 {
"http://google.com/",
S_OK},
5835 {
"google.com",
S_OK},
5836 {
"http://google.com/",
S_OK},
5837 {
"google.com",
S_OK},
5840 {
"google.com",
S_OK},
5845 {
"http://google.com/",
S_OK},
5851 {Uri_HOST_DNS,
S_OK},
5867 {
"zip://google.com/",
S_OK},
5868 {
"google.com",
S_OK},
5869 {
"zip://google.com/",
S_OK},
5870 {
"google.com",
S_OK},
5873 {
"google.com",
S_OK},
5878 {
"zip://google.com/",
S_OK},
5884 {Uri_HOST_DNS,
S_OK},
5900 {
"zip://google.com/",
S_OK},
5901 {
"google.com",
S_OK},
5902 {
"zip://google.com/",
S_OK},
5903 {
"google.com",
S_OK},
5906 {
"google.com",
S_OK},
5911 {
"zip://google.com/",
S_OK},
5917 {Uri_HOST_DNS,
S_OK},
5926 {
"http://google.com/../../",Uri_CREATE_NO_CANONICALIZE,
S_OK,
FALSE,
5931 0,UriBuilder_USE_ORIGINAL_FLAGS,0,
S_OK,
FALSE,
5933 {
"http://google.com/../../",
S_OK},
5934 {
"google.com",
S_OK},
5935 {
"http://google.com/../../",
S_OK},
5936 {
"google.com",
S_OK},
5939 {
"google.com",
S_OK},
5944 {
"http://google.com/../../",
S_OK},
5950 {Uri_HOST_DNS,
S_OK},
5963 Uri_CREATE_NO_DECODE_EXTRA_INFO,UriBuilder_USE_ORIGINAL_FLAGS,0,
S_OK,
FALSE,
5965 {
"http://google.com/#Fr%3C%7C%3Eg",
S_OK},
5966 {
"google.com",
S_OK},
5967 {
"http://google.com/#Fr%3C%7C%3Eg",
S_OK},
5968 {
"google.com",
S_OK},
5970 {
"#Fr%3C%7C%3Eg",
S_OK},
5971 {
"google.com",
S_OK},
5976 {
"http://google.com/#Fr<|>g",
S_OK},
5982 {Uri_HOST_DNS,
S_OK},
5995 Uri_CREATE_CANONICALIZE|Uri_CREATE_NO_CANONICALIZE,UriBuilder_USE_ORIGINAL_FLAGS,0,
S_OK,
FALSE,
5997 {
"http://google.com/#Fr%3C%7C%3Eg",
S_OK},
5998 {
"google.com",
S_OK},
5999 {
"http://google.com/#Fr%3C%7C%3Eg",
S_OK},
6000 {
"google.com",
S_OK},
6002 {
"#Fr%3C%7C%3Eg",
S_OK},
6003 {
"google.com",
S_OK},
6008 {
"http://google.com/#Fr<|>g",
S_OK},
6014 {Uri_HOST_DNS,
S_OK},
6026 0,INET_E_INVALID_URL,
FALSE,
6027 0,INET_E_INVALID_URL,
FALSE,
6028 0,0,0,INET_E_INVALID_URL,
FALSE
6035 0,INET_E_INVALID_URL,
FALSE,
6036 0,INET_E_INVALID_URL,
FALSE,
6037 0,0,0,INET_E_INVALID_URL,
FALSE
6045 0,INET_E_INVALID_URL,
FALSE,
6046 0,INET_E_INVALID_URL,
FALSE,
6047 0,0,0,INET_E_INVALID_URL,
FALSE
6055 0,INET_E_INVALID_URL,
FALSE,
6056 0,INET_E_INVALID_URL,
FALSE,
6057 0,0,0,INET_E_INVALID_URL,
FALSE
6067 0,INET_E_INVALID_URL,
FALSE,
6068 0,INET_E_INVALID_URL,
FALSE,
6069 0,0,0,INET_E_INVALID_URL,
FALSE
6076 0,INET_E_INVALID_URL,
FALSE,
6077 0,INET_E_INVALID_URL,
FALSE,
6078 0,0,0,INET_E_INVALID_URL,
FALSE
6085 0,INET_E_INVALID_URL,
FALSE,
6086 0,INET_E_INVALID_URL,
FALSE,
6087 0,0,0,INET_E_INVALID_URL,
FALSE
6094 0,INET_E_INVALID_URL,
FALSE,
6095 0,INET_E_INVALID_URL,
FALSE,
6096 0,0,0,INET_E_INVALID_URL,
FALSE
6103 0,INET_E_INVALID_URL,
FALSE,
6104 0,INET_E_INVALID_URL,
FALSE,
6105 0,0,0,INET_E_INVALID_URL,
FALSE
6112 0,INET_E_INVALID_URL,
FALSE,
6113 0,INET_E_INVALID_URL,
FALSE,
6114 0,0,0,INET_E_INVALID_URL,
FALSE
6121 0,INET_E_INVALID_URL,
FALSE,
6122 0,INET_E_INVALID_URL,
FALSE,
6123 0,0,0,INET_E_INVALID_URL,
FALSE
6130 0,INET_E_INVALID_URL,
FALSE,
6131 0,INET_E_INVALID_URL,
FALSE,
6132 0,0,0,INET_E_INVALID_URL,
FALSE
6139 0,INET_E_INVALID_URL,
FALSE,
6140 0,INET_E_INVALID_URL,
FALSE,
6141 0,0,0,INET_E_INVALID_URL,
FALSE
6148 0,INET_E_INVALID_URL,
FALSE,
6149 0,INET_E_INVALID_URL,
FALSE,
6150 0,0,0,INET_E_INVALID_URL,
FALSE
6157 0,INET_E_INVALID_URL,
FALSE,
6158 0,INET_E_INVALID_URL,
FALSE,
6159 0,0,0,INET_E_INVALID_URL,
FALSE
6166 0,INET_E_INVALID_URL,
FALSE,
6167 0,INET_E_INVALID_URL,
FALSE,
6168 0,0,0,INET_E_INVALID_URL,
FALSE
6180 {
"http://winehq.org:test/",
S_OK},
6181 {
"winehq.org:test",
S_OK},
6182 {
"http://winehq.org:test/",
S_OK},
6183 {
"winehq.org:test",
S_OK},
6186 {
"winehq.org:test",
S_OK},
6191 {
"http://winehq.org:test/",
S_OK},
6197 {Uri_HOST_DNS,
S_OK},
6213 {
"http://google.com/",
S_OK},
6214 {
"google.com",
S_OK},
6215 {
"http://google.com/",
S_OK},
6216 {
"google.com",
S_OK},
6219 {
"google.com",
S_OK},
6224 {
"http://google.com/",
S_OK},
6230 {Uri_HOST_DNS,
S_OK},
6263 {Uri_HOST_UNKNOWN,
S_OK},
6274 0,INET_E_INVALID_URL,
FALSE,
6275 0,INET_E_INVALID_URL,
FALSE,
6276 0,0,0,INET_E_INVALID_URL,
FALSE
6283 0,INET_E_INVALID_URL,
FALSE,
6284 0,INET_E_INVALID_URL,
FALSE,
6285 0,0,0,INET_E_INVALID_URL,
FALSE
6292 0,INET_E_INVALID_URL,
FALSE,
6293 0,INET_E_INVALID_URL,
FALSE,
6294 0,0,0,INET_E_INVALID_URL,
FALSE
6296 {
"file:///c:/dir/file.html",0,
S_OK,
FALSE,
6305 {
"file:///c:/dir/file.html",
S_OK},
6307 {
"file:///c:/dir/file.html",
S_OK},
6313 {
"/c:/dir/file.html",
S_OK},
6314 {
"/c:/dir/file.html",
S_OK},
6316 {
"file:///c:/dir/file.html",
S_OK},
6322 {Uri_HOST_UNKNOWN,
S_OK},
6328 {
"file:///c:/dir/file.html",0,
S_OK,
FALSE,
6337 {
"file:///c:/dir/file.html#",
S_OK},
6339 {
"file:///c:/dir/file.html#",
S_OK},
6345 {
"/c:/dir/file.html",
S_OK},
6346 {
"/c:/dir/file.html",
S_OK},
6348 {
"file:///c:/dir/file.html#",
S_OK},
6354 {Uri_HOST_UNKNOWN,
S_OK},
6379 {
"http://google.com/test?test=y#Frag",0,
S_OK,
FALSE,
6380 Uri_HAS_FRAGMENT|Uri_HAS_PATH|Uri_HAS_QUERY,
S_OK,
FALSE,
6383 {
"http://user:pass@winehq.org/",0,
S_OK,
FALSE,
6384 Uri_HAS_USER_NAME|Uri_HAS_PASSWORD,
S_OK,
FALSE,
6387 {
"zip://google.com?Test=x",0,
S_OK,
FALSE,
6392 {
"http://username:pass@google.com/",0,
S_OK,
FALSE,
6394 "http://username:pass@google.com/",0,
S_OK,
FALSE
6401 {
"http://google.com:120/",0,
S_OK,
FALSE,
6405 {
"http://google.com/test.com/",0,
S_OK,
FALSE,
6407 "http://google.com/test.com/",0,
S_OK,
FALSE
6409 {
"http://google.com/?test=x",0,
S_OK,
FALSE,
6411 "http://google.com/?test=x",0,
S_OK,
FALSE
6414 {
"http://google.com/?test=x",0,
S_OK,
FALSE,
6416 "http://google.com/?test=x",0,
S_OK,
FALSE
6442 {
"http://google.com/fun/stuff",0,
6443 "../not/fun/stuff",Uri_CREATE_ALLOW_RELATIVE,
6446 {
"http://google.com/not/fun/stuff",
S_OK},
6447 {
"google.com",
S_OK},
6448 {
"http://google.com/not/fun/stuff",
S_OK},
6449 {
"google.com",
S_OK},
6452 {
"google.com",
S_OK},
6454 {
"/not/fun/stuff",
S_OK},
6455 {
"/not/fun/stuff",
S_OK},
6457 {
"http://google.com/not/fun/stuff",
S_OK},
6463 {Uri_HOST_DNS,
S_OK},
6469 {
"http://google.com/test",0,
6470 "zip://test.com/cool",0,
6473 {
"zip://test.com/cool",
S_OK},
6475 {
"zip://test.com/cool",
S_OK},
6484 {
"zip://test.com/cool",
S_OK},
6490 {Uri_HOST_DNS,
S_OK},
6496 {
"http://google.com/use/base/path",0,
6497 "?relative",Uri_CREATE_ALLOW_RELATIVE,
6500 {
"http://google.com/use/base/path?relative",
S_OK},
6501 {
"google.com",
S_OK},
6502 {
"http://google.com/use/base/path?relative",
S_OK},
6503 {
"google.com",
S_OK},
6506 {
"google.com",
S_OK},
6508 {
"/use/base/path",
S_OK},
6509 {
"/use/base/path?relative",
S_OK},
6511 {
"http://google.com/use/base/path?relative",
S_OK},
6517 {Uri_HOST_DNS,
S_OK},
6523 {
"http://google.com/path",0,
6524 "/test/../test/.././testing",Uri_CREATE_ALLOW_RELATIVE,
6527 {
"http://google.com/testing",
S_OK},
6528 {
"google.com",
S_OK},
6529 {
"http://google.com/testing",
S_OK},
6530 {
"google.com",
S_OK},
6533 {
"google.com",
S_OK},
6538 {
"http://google.com/testing",
S_OK},
6544 {Uri_HOST_DNS,
S_OK},
6550 {
"http://google.com/path",0,
6551 "/test/../test/.././testing",Uri_CREATE_ALLOW_RELATIVE,
6554 {
"http://google.com:80/test/../test/.././testing",
S_OK},
6555 {
"google.com",
S_OK},
6556 {
"http://google.com:80/test/../test/.././testing",
S_OK},
6557 {
"google.com",
S_OK},
6560 {
"google.com",
S_OK},
6562 {
"/test/../test/.././testing",
S_OK},
6563 {
"/test/../test/.././testing",
S_OK},
6565 {
"http://google.com:80/test/../test/.././testing",
S_OK},
6571 {Uri_HOST_DNS,
S_OK},
6577 {
"http://winehq.org/test/abc",0,
6578 "testing/abc/../test",Uri_CREATE_ALLOW_RELATIVE,
6581 {
"http://winehq.org/test/testing/test",
S_OK},
6582 {
"winehq.org",
S_OK},
6583 {
"http://winehq.org/test/testing/test",
S_OK},
6584 {
"winehq.org",
S_OK},
6587 {
"winehq.org",
S_OK},
6589 {
"/test/testing/test",
S_OK},
6590 {
"/test/testing/test",
S_OK},
6592 {
"http://winehq.org/test/testing/test",
S_OK},
6598 {Uri_HOST_DNS,
S_OK},
6604 {
"http://winehq.org/test/abc",0,
6605 "testing/abc/../test",Uri_CREATE_ALLOW_RELATIVE,
6608 {
"http://winehq.org:80/test/testing/abc/../test",
S_OK},
6610 {
"winehq.org",
S_OK},
6611 {
"http://winehq.org:80/test/testing/abc/../test",
S_OK},
6612 {
"winehq.org",
S_OK},
6615 {
"winehq.org",
S_OK},
6617 {
"/test/testing/abc/../test",
S_OK},
6618 {
"/test/testing/abc/../test",
S_OK},
6620 {
"http://winehq.org:80/test/testing/abc/../test",
S_OK},
6626 {Uri_HOST_DNS,
S_OK},
6632 {
"http://winehq.org/test?query",0,
6633 "testing",Uri_CREATE_ALLOW_RELATIVE,
6636 {
"http://winehq.org/testing",
S_OK},
6637 {
"winehq.org",
S_OK},
6638 {
"http://winehq.org/testing",
S_OK},
6639 {
"winehq.org",
S_OK},
6642 {
"winehq.org",
S_OK},
6647 {
"http://winehq.org/testing",
S_OK},
6653 {Uri_HOST_DNS,
S_OK},
6659 {
"http://winehq.org/test#frag",0,
6660 "testing",Uri_CREATE_ALLOW_RELATIVE,
6663 {
"http://winehq.org/testing",
S_OK},
6664 {
"winehq.org",
S_OK},
6665 {
"http://winehq.org/testing",
S_OK},
6666 {
"winehq.org",
S_OK},
6669 {
"winehq.org",
S_OK},
6674 {
"http://winehq.org/testing",
S_OK},
6680 {Uri_HOST_DNS,
S_OK},
6686 {
"testing?query#frag",Uri_CREATE_ALLOW_RELATIVE,
6687 "test",Uri_CREATE_ALLOW_RELATIVE,
6707 {Uri_HOST_UNKNOWN,
S_OK},
6713 {
"file:///c:/test/test",0,
6714 "/testing.mp3",Uri_CREATE_ALLOW_RELATIVE,
6717 {
"file://c:\\testing.mp3",
S_OK},
6719 {
"file://c:\\testing.mp3",
S_OK},
6725 {
"c:\\testing.mp3",
S_OK},
6726 {
"c:\\testing.mp3",
S_OK},
6728 {
"file://c:\\testing.mp3",
S_OK},
6734 {Uri_HOST_UNKNOWN,
S_OK},
6740 {
"file:///c:/test/test",0,
6741 "/testing.mp3",Uri_CREATE_ALLOW_RELATIVE,
6744 {
"file:///c:/testing.mp3",
S_OK},
6746 {
"file:///c:/testing.mp3",
S_OK},
6752 {
"/c:/testing.mp3",
S_OK},
6753 {
"/c:/testing.mp3",
S_OK},
6755 {
"file:///c:/testing.mp3",
S_OK},
6761 {Uri_HOST_UNKNOWN,
S_OK},
6767 {
"file://test.com/test/test",0,
6768 "/testing.mp3",Uri_CREATE_ALLOW_RELATIVE,
6771 {
"file://\\\\test.com\\testing.mp3",
S_OK},
6773 {
"file://\\\\test.com\\testing.mp3",
S_OK},
6779 {
"\\testing.mp3",
S_OK},
6780 {
"\\testing.mp3",
S_OK},
6782 {
"file://\\\\test.com\\testing.mp3",
S_OK},
6788 {Uri_HOST_DNS,
S_OK},
6795 {
"http://google.com/test",0,
6796 "zip://test.com/cool/../cool/test",0,
6799 {
"zip://test.com/cool/test",
S_OK,
FALSE,
NULL,
"zip://test.com/cool/../cool/test"},
6801 {
"zip://test.com/cool/test",
S_OK,
FALSE,
NULL,
"zip://test.com/cool/../cool/test"},
6813 {
"zip://test.com/cool/../cool/test",
S_OK,
FALSE,
"zip://test.com/cool/test"},
6819 {Uri_HOST_DNS,
S_OK},
6828 {
"http://google.com/test",0,
6829 "file:///c:/test/",0,
6832 {
"file:///c:/test/",
S_OK,
FALSE,
"file://c:\\test\\"},
6834 {
"file:///c:/test/",
S_OK,
FALSE,
"file://c:\\test\\"},
6843 {
"file:///c:/test/",
S_OK,
FALSE,
"file://c:\\test\\"},
6849 {Uri_HOST_UNKNOWN,
S_OK},
6855 {
"http://google.com/test",0,
6856 "http://test.com/test#%30test",0,
6859 {
"http://test.com/test#0test",
S_OK,
FALSE,
NULL,
"http://test.com/test#%30test"},
6861 {
"http://test.com/test#0test",
S_OK,
FALSE,
NULL,
"http://test.com/test#%30test"},
6871 {
"http://test.com/test#%30test",
S_OK,
FALSE,
"http://test.com/test#0test"},
6877 {Uri_HOST_DNS,
S_OK},
6884 {
"http://google.com/test",0,
6885 "/Te%XXst",Uri_CREATE_ALLOW_RELATIVE,
6889 {
"http://google.com/test",0,
6890 "?Tes%XXt",Uri_CREATE_ALLOW_RELATIVE,
6893 {
"http://google.com/test?Tes%XXt",
S_OK},
6894 {
"google.com",
S_OK},
6895 {
"http://google.com/test?Tes%XXt",
S_OK},
6896 {
"google.com",
S_OK},
6899 {
"google.com",
S_OK},
6902 {
"/test?Tes%XXt",
S_OK},
6904 {
"http://google.com/test?Tes%XXt",
S_OK},
6910 {Uri_HOST_DNS,
S_OK},
6917 {
"http://google.com/test",0,
6918 "#Tes%XXt",Uri_CREATE_ALLOW_RELATIVE,
6921 {
"http://google.com/test#Tes%XXt",
S_OK},
6922 {
"google.com",
S_OK},
6923 {
"http://google.com/test#Tes%XXt",
S_OK},
6924 {
"google.com",
S_OK},
6927 {
"google.com",
S_OK},
6932 {
"http://google.com/test#Tes%XXt",
S_OK},
6938 {Uri_HOST_DNS,
S_OK},
6945 {
"file:///c:/test",0,
6946 "/test<ing",Uri_CREATE_ALLOW_RELATIVE,
6949 {
"file://c:\\test<ing",
S_OK},
6951 {
"file://c:\\test<ing",
S_OK},
6957 {
"c:\\test<ing",
S_OK},
6958 {
"c:\\test<ing",
S_OK},
6960 {
"file://c:\\test<ing",
S_OK},
6966 {Uri_HOST_UNKNOWN,
S_OK},
6973 {
"file:///c:/test",0,
6974 "/c:/testing",Uri_CREATE_ALLOW_RELATIVE,
6977 {
"file:///c:/c:/testing",
S_OK},
6979 {
"file:///c:/c:/testing",
S_OK},
6985 {
"/c:/c:/testing",
S_OK},
6986 {
"/c:/c:/testing",
S_OK},
6988 {
"file:///c:/c:/testing",
S_OK},
6994 {Uri_HOST_UNKNOWN,
S_OK},
7004 {
"http://google.com",Uri_CREATE_NO_CANONICALIZE,
7005 "?test",Uri_CREATE_ALLOW_RELATIVE,
7008 {
"http://google.com/?test",
S_OK},
7009 {
"google.com",
S_OK},
7010 {
"http://google.com/?test",
S_OK},
7011 {
"google.com",
S_OK},
7014 {
"google.com",
S_OK},
7019 {
"http://google.com/?test",
S_OK},
7025 {Uri_HOST_DNS,
S_OK},
7031 {
"zip://google.com",Uri_CREATE_NO_CANONICALIZE,
7032 "?test",Uri_CREATE_ALLOW_RELATIVE,
7035 {
"zip://google.com/?test",
S_OK},
7036 {
"google.com",
S_OK},
7037 {
"zip://google.com/?test",
S_OK},
7038 {
"google.com",
S_OK},
7041 {
"google.com",
S_OK},
7046 {
"zip://google.com/?test",
S_OK},
7052 {Uri_HOST_DNS,
S_OK},
7060 "?test",Uri_CREATE_ALLOW_RELATIVE,
7080 {Uri_HOST_UNKNOWN,
S_OK},
7087 "../testing/test",Uri_CREATE_ALLOW_RELATIVE,
7090 {
"file:///c:/testing/test",
S_OK},
7092 {
"file:///c:/testing/test",
S_OK},
7098 {
"/c:/testing/test",
S_OK},
7099 {
"/c:/testing/test",
S_OK},
7101 {
"file:///c:/testing/test",
S_OK},
7107 {Uri_HOST_UNKNOWN,
S_OK},
7113 {
"http://winehq.org/dir/testfile",0,
7114 "test?querystring",Uri_CREATE_ALLOW_RELATIVE,
7117 {
"http://winehq.org/dir/test?querystring",
S_OK},
7118 {
"winehq.org",
S_OK},
7119 {
"http://winehq.org/dir/test?querystring",
S_OK},
7120 {
"winehq.org",
S_OK},
7123 {
"winehq.org",
S_OK},
7126 {
"/dir/test?querystring",
S_OK},
7127 {
"?querystring",
S_OK},
7128 {
"http://winehq.org/dir/test?querystring",
S_OK},
7134 {Uri_HOST_DNS,
S_OK},
7140 {
"http://winehq.org/dir/test",0,
7141 "test?querystring",Uri_CREATE_ALLOW_RELATIVE,
7144 {
"http://winehq.org/dir/test?querystring",
S_OK},
7145 {
"winehq.org",
S_OK},
7146 {
"http://winehq.org/dir/test?querystring",
S_OK},
7147 {
"winehq.org",
S_OK},
7150 {
"winehq.org",
S_OK},
7153 {
"/dir/test?querystring",
S_OK},
7154 {
"?querystring",
S_OK},
7155 {
"http://winehq.org/dir/test?querystring",
S_OK},
7161 {Uri_HOST_DNS,
S_OK},
7167 {
"http://winehq.org/dir/test?querystring",0,
7168 "#hash",Uri_CREATE_ALLOW_RELATIVE,
7171 {
"http://winehq.org/dir/test?querystring#hash",
S_OK},
7172 {
"winehq.org",
S_OK},
7173 {
"http://winehq.org/dir/test?querystring#hash",
S_OK},
7174 {
"winehq.org",
S_OK},
7177 {
"winehq.org",
S_OK},
7180 {
"/dir/test?querystring",
S_OK},
7181 {
"?querystring",
S_OK},
7182 {
"http://winehq.org/dir/test?querystring#hash",
S_OK},
7188 {Uri_HOST_DNS,
S_OK},
7194 {
"mk:@MSITSTORE:C:\\Some\\Bogus\\Path.chm::/subdir\\file.txt",0,
7195 "relative/path.txt",Uri_CREATE_ALLOW_RELATIVE,
7198 {
"mk:@MSITSTORE:C:\\Some\\Bogus\\Path.chm::/subdir/relative/path.txt",
S_OK},
7200 {
"mk:@MSITSTORE:C:\\Some\\Bogus\\Path.chm::/subdir/relative/path.txt",
S_OK},
7206 {
"@MSITSTORE:C:\\Some\\Bogus\\Path.chm::/subdir/relative/path.txt",
S_OK},
7207 {
"@MSITSTORE:C:\\Some\\Bogus\\Path.chm::/subdir/relative/path.txt",
S_OK},
7209 {
"mk:@MSITSTORE:C:\\Some\\Bogus\\Path.chm::/subdir/relative/path.txt",
S_OK},
7215 {Uri_HOST_UNKNOWN,
S_OK},
7221 {
"mk:@MSITSTORE:C:\\Some\\Bogus\\Path.chm::\\subdir\\file.txt",0,
7222 "relative/path.txt",Uri_CREATE_ALLOW_RELATIVE,
7225 {
"mk:@MSITSTORE:C:\\Some\\Bogus\\Path.chm::/subdir/relative/path.txt",
S_OK},
7227 {
"mk:@MSITSTORE:C:\\Some\\Bogus\\Path.chm::/subdir/relative/path.txt",
S_OK},
7233 {
"@MSITSTORE:C:\\Some\\Bogus\\Path.chm::/subdir/relative/path.txt",
S_OK},
7234 {
"@MSITSTORE:C:\\Some\\Bogus\\Path.chm::/subdir/relative/path.txt",
S_OK},
7236 {
"mk:@MSITSTORE:C:\\Some\\Bogus\\Path.chm::/subdir/relative/path.txt",
S_OK},
7242 {Uri_HOST_UNKNOWN,
S_OK},
7248 {
"mk:@MSITSTORE:C:/Some\\Bogus/Path.chm::/subdir\\file.txt",0,
7249 "relative\\path.txt",Uri_CREATE_ALLOW_RELATIVE,
7252 {
"mk:@MSITSTORE:C:/Some\\Bogus/Path.chm::/subdir/relative/path.txt",
S_OK},
7254 {
"mk:@MSITSTORE:C:/Some\\Bogus/Path.chm::/subdir/relative/path.txt",
S_OK},
7260 {
"@MSITSTORE:C:/Some\\Bogus/Path.chm::/subdir/relative/path.txt",
S_OK},
7261 {
"@MSITSTORE:C:/Some\\Bogus/Path.chm::/subdir/relative/path.txt",
S_OK},
7263 {
"mk:@MSITSTORE:C:/Some\\Bogus/Path.chm::/subdir/relative/path.txt",
S_OK},
7269 {Uri_HOST_UNKNOWN,
S_OK},
7275 {
"mk:@MSITSTORE:C:\\dir\\file.chm::/subdir/file.txt",0,
7276 "/relative/path.txt",Uri_CREATE_ALLOW_RELATIVE,
7279 {
"mk:@MSITSTORE:C:\\dir\\file.chm::/relative/path.txt",
S_OK},
7281 {
"mk:@MSITSTORE:C:\\dir\\file.chm::/relative/path.txt",
S_OK},
7287 {
"@MSITSTORE:C:\\dir\\file.chm::/relative/path.txt",
S_OK},
7288 {
"@MSITSTORE:C:\\dir\\file.chm::/relative/path.txt",
S_OK},
7290 {
"mk:@MSITSTORE:C:\\dir\\file.chm::/relative/path.txt",
S_OK},
7296 {Uri_HOST_UNKNOWN,
S_OK},
7302 {
"mk:MSITSTORE:C:\\dir\\file.chm::/subdir/file.txt",0,
7303 "/relative/path.txt",Uri_CREATE_ALLOW_RELATIVE,
7306 {
"mk:MSITSTORE:C:\\dir\\file.chm::/relative/path.txt",
S_OK},
7308 {
"mk:MSITSTORE:C:\\dir\\file.chm::/relative/path.txt",
S_OK},
7314 {
"MSITSTORE:C:\\dir\\file.chm::/relative/path.txt",
S_OK},
7315 {
"MSITSTORE:C:\\dir\\file.chm::/relative/path.txt",
S_OK},
7317 {
"mk:MSITSTORE:C:\\dir\\file.chm::/relative/path.txt",
S_OK},
7323 {Uri_HOST_UNKNOWN,
S_OK},
7329 {
"mk:@MSITSTORE:C:\\dir\\file.chm::/subdir/../../file.txt",0,
7330 "/relative/path.txt",Uri_CREATE_ALLOW_RELATIVE,
7333 {
"mk:@MSITSTORE:/relative/path.txt",
S_OK},
7335 {
"mk:@MSITSTORE:/relative/path.txt",
S_OK},
7341 {
"@MSITSTORE:/relative/path.txt",
S_OK},
7342 {
"@MSITSTORE:/relative/path.txt",
S_OK},
7344 {
"mk:@MSITSTORE:/relative/path.txt",
S_OK},
7350 {Uri_HOST_UNKNOWN,
S_OK},
7356 {
"mk:@xxx:C:\\dir\\file.chm::/subdir/../../file.txt",0,
7357 "/relative/path.txt",Uri_CREATE_ALLOW_RELATIVE,
7360 {
"mk:@xxx:/relative/path.txt",
S_OK},
7362 {
"mk:@xxx:/relative/path.txt",
S_OK},
7368 {
"@xxx:/relative/path.txt",
S_OK},
7369 {
"@xxx:/relative/path.txt",
S_OK},
7371 {
"mk:@xxx:/relative/path.txt",
S_OK},
7377 {Uri_HOST_UNKNOWN,
S_OK},
7383 {
"mk:xxx:C:\\dir\\file.chm::/subdir/../../file.txt",0,
7384 "/relative/path.txt",Uri_CREATE_ALLOW_RELATIVE,
7387 {
"mk:/relative/path.txt",
S_OK},
7389 {
"mk:/relative/path.txt",
S_OK},
7395 {
"/relative/path.txt",
S_OK},
7396 {
"/relative/path.txt",
S_OK},
7398 {
"mk:/relative/path.txt",
S_OK},
7404 {Uri_HOST_UNKNOWN,
S_OK},
7410 {
"ml:@MSITSTORE:C:\\dir\\file.chm::/subdir/file.txt",0,
7411 "/relative/path.txt",Uri_CREATE_ALLOW_RELATIVE,
7414 {
"ml:/relative/path.txt",
S_OK},
7416 {
"ml:/relative/path.txt",
S_OK},
7422 {
"/relative/path.txt",
S_OK},
7423 {
"/relative/path.txt",
S_OK},
7425 {
"ml:/relative/path.txt",
S_OK},
7431 {Uri_HOST_UNKNOWN,
S_OK},
7437 {
"http://winehq.org/dir/test?querystring",0,
7438 "//winehq.com/#hash",Uri_CREATE_ALLOW_RELATIVE,
7441 {
"http://winehq.com/#hash",
S_OK},
7442 {
"winehq.com",
S_OK},
7443 {
"http://winehq.com/#hash",
S_OK},
7444 {
"winehq.com",
S_OK},
7447 {
"winehq.com",
S_OK},
7452 {
"http://winehq.com/#hash",
S_OK},
7458 {Uri_HOST_DNS,
S_OK},
7464 {
"http://winehq.org/dir/test?querystring",0,
7465 "//winehq.com/dir2/../dir/file.txt?query#hash",Uri_CREATE_ALLOW_RELATIVE,
7468 {
"http://winehq.com/dir/file.txt?query#hash",
S_OK},
7469 {
"winehq.com",
S_OK},
7470 {
"http://winehq.com/dir/file.txt?query#hash",
S_OK},
7471 {
"winehq.com",
S_OK},
7474 {
"winehq.com",
S_OK},
7476 {
"/dir/file.txt",
S_OK},
7477 {
"/dir/file.txt?query",
S_OK},
7479 {
"http://winehq.com/dir/file.txt?query#hash",
S_OK},
7485 {Uri_HOST_DNS,
S_OK},
7491 {
"http://google.com/test",0,
7492 "c:\\test\\", Uri_CREATE_ALLOW_IMPLICIT_FILE_SCHEME,
7495 {
"file:///c:/test/",
S_OK},
7497 {
"file:///c:/test/",
S_OK},
7506 {
"c:\\test\\",
S_OK,
FALSE,
"file:///c:/test/"},
7512 {Uri_HOST_UNKNOWN,
S_OK},
7518 {
"http://google.com/test",0,
7519 "c:\\test\\", Uri_CREATE_ALLOW_IMPLICIT_FILE_SCHEME,
7522 {
"file:///c:/test/",
S_OK},
7524 {
"file:///c:/test/",
S_OK},
7533 {
"c:\\test\\",
S_OK,
FALSE,
"file:///c:/test/"},
7539 {Uri_HOST_UNKNOWN,
S_OK},
7545 {
"http://winehq.org",0,
7546 "mailto://",Uri_CREATE_NO_CANONICALIZE,
7566 {Uri_HOST_UNKNOWN,
S_OK},
7572 {
"http://winehq.org",0,
7573 "mailto://a@b.com",Uri_CREATE_NO_CANONICALIZE,
7576 {
"mailto:a@b.com",
S_OK},
7578 {
"mailto:a@b.com",
S_OK},
7587 {
"mailto://a@b.com",
S_OK,
FALSE,
"mailto:a@b.com"},
7593 {Uri_HOST_UNKNOWN,
S_OK},
7614 {
"zip://google.com/test<|>",0,PARSE_CANONICALIZE,0,
"zip://google.com/test<|>",
S_OK,
FALSE},
7615 {
"http://google.com/test<|>",0,PARSE_CANONICALIZE,0,
"http://google.com/test%3C%7C%3E",
S_OK,
FALSE},
7616 {
"http://google.com/%30%23%3F",0,PARSE_CANONICALIZE,
URL_UNESCAPE,
"http://google.com/0#?",
S_OK,
FALSE},
7621 {
"http://google.com/test/../",Uri_CREATE_NO_CANONICALIZE,PARSE_CANONICALIZE,
URL_DONT_SIMPLIFY,
"http://google.com/test/../",
S_OK,
FALSE},
7622 {
"http://google.com/test/../",Uri_CREATE_NO_CANONICALIZE,PARSE_CANONICALIZE,
URL_NO_META,
"http://google.com/test/../",
S_OK,
FALSE},
7623 {
"http://google.com/test/../",Uri_CREATE_NO_CANONICALIZE,PARSE_CANONICALIZE,0,
"http://google.com/",
S_OK,
FALSE},
7624 {
"zip://google.com/test/../",Uri_CREATE_NO_CANONICALIZE,PARSE_CANONICALIZE,0,
"zip://google.com/",
S_OK,
FALSE},
7625 {
"file:///c:/test/../test",Uri_CREATE_NO_CANONICALIZE,PARSE_CANONICALIZE,
URL_DONT_SIMPLIFY,
"file:///c:/test/../test",
S_OK,
FALSE},
7628 {
"http://test@google.com/test#test",0,PARSE_FRIENDLY,0,
"http://google.com/test#test",
S_OK,
FALSE},
7629 {
"zip://test@google.com/test",0,PARSE_FRIENDLY,0,
"zip://test@google.com/test",
S_OK,
FALSE},
7632 {
"http://google.com:200/test/test",0,PARSE_ROOTDOCUMENT,0,
"http://google.com:200/",
S_OK,
FALSE},
7633 {
"http://google.com",Uri_CREATE_NO_CANONICALIZE,PARSE_ROOTDOCUMENT,0,
"http://google.com/",
S_OK,
FALSE},
7634 {
"zip://google.com/",0,PARSE_ROOTDOCUMENT,0,
"",
S_OK,
FALSE},
7635 {
"file:///c:/testing/",0,PARSE_ROOTDOCUMENT,0,
"",
S_OK,
FALSE},
7636 {
"file://server/test",0,PARSE_ROOTDOCUMENT,0,
"",
S_OK,
FALSE},
7637 {
"zip:test/test",0,PARSE_ROOTDOCUMENT,0,
"",
S_OK,
FALSE},
7640 {
"http://test@google.com/test?query#frag",0,PARSE_DOCUMENT,0,
"http://test@google.com/test?query",
S_OK,
FALSE},
7641 {
"http:testing#frag",0,PARSE_DOCUMENT,0,
"",
S_OK,
FALSE},
7642 {
"file:///c:/test#frag",0,PARSE_DOCUMENT,0,
"",
S_OK,
FALSE},
7643 {
"zip://google.com/#frag",0,PARSE_DOCUMENT,0,
"",
S_OK,
FALSE},
7644 {
"zip:test#frag",0,PARSE_DOCUMENT,0,
"",
S_OK,
FALSE},
7645 {
"testing#frag",Uri_CREATE_ALLOW_RELATIVE,PARSE_DOCUMENT,0,
"",
S_OK,
FALSE},
7648 {
"file:///c:/test.mp3",0,PARSE_PATH_FROM_URL,0,
"c:\\test.mp3",
S_OK,
FALSE},
7649 {
"file:///c:/t<|>est.mp3",0,PARSE_PATH_FROM_URL,0,
"c:\\t<|>est.mp3",
S_OK,
FALSE},
7650 {
"file:///c:/te%XX t/",0,PARSE_PATH_FROM_URL,0,
"c:\\te%XX t\\",
S_OK,
FALSE},
7651 {
"file://server/test",0,PARSE_PATH_FROM_URL,0,
"\\\\server\\test",
S_OK,
FALSE},
7653 {
"file:/c:/dir/test.mp3",0,PARSE_PATH_FROM_URL,0,
"c:\\dir\\test.mp3",
S_OK},
7654 {
"file:/c:/test.mp3",0,PARSE_PATH_FROM_URL,0,
"c:\\test.mp3",
S_OK},
7655 {
"file://c:\\test.mp3",0,PARSE_PATH_FROM_URL,0,
"c:\\test.mp3",
S_OK},
7659 {
"test.com",Uri_CREATE_ALLOW_RELATIVE,PARSE_URL_FROM_PATH,0,
"test.com",
S_OK,
FALSE},
7660 {
"/test/test",Uri_CREATE_ALLOW_RELATIVE,PARSE_URL_FROM_PATH,0,
"/test/test",
S_OK,
FALSE},
7661 {
"file://c:\\test\\test",Uri_CREATE_FILE_USE_DOS_PATH,PARSE_URL_FROM_PATH,0,
"file://c:\\test\\test",
S_OK,
FALSE},
7662 {
"file:c:/test",0,PARSE_URL_FROM_PATH,0,
"",
S_OK,
FALSE},
7663 {
"http:google.com/",0,PARSE_URL_FROM_PATH,0,
"",
S_OK,
FALSE},
7666 {
"http://google.com/test",0,PARSE_SCHEMA,0,
"http",
S_OK,
FALSE},
7667 {
"test",Uri_CREATE_ALLOW_RELATIVE,PARSE_SCHEMA,0,
"",
S_OK,
FALSE},
7670 {
"http://google.uk.com/",0,PARSE_SITE,0,
"google.uk.com",
S_OK,
FALSE},
7671 {
"http://google.com.com/",0,PARSE_SITE,0,
"google.com.com",
S_OK,
FALSE},
7672 {
"google.com",Uri_CREATE_ALLOW_RELATIVE,PARSE_SITE,0,
"",
S_OK,
FALSE},
7673 {
"file://server/test",0,PARSE_SITE,0,
"server",
S_OK,
FALSE},
7676 {
"http://google.com.uk/",0,PARSE_DOMAIN,0,
"google.com.uk",
S_OK,
FALSE,
"com.uk"},
7677 {
"http://google.com.com/",0,PARSE_DOMAIN,0,
"com.com",
S_OK,
FALSE},
7678 {
"test/test",Uri_CREATE_ALLOW_RELATIVE,PARSE_DOMAIN,0,
"",
S_OK,
FALSE},
7679 {
"file://server/test",0,PARSE_DOMAIN,0,
"",
S_OK,
FALSE},
7682 {
"http://google.com/test#Test",0,PARSE_ANCHOR,0,
"#Test",
S_OK,
FALSE},
7683 {
"http://google.com/test#Test",0,PARSE_LOCATION,0,
"#Test",
S_OK,
FALSE},
7684 {
"test",Uri_CREATE_ALLOW_RELATIVE,PARSE_ANCHOR,0,
"",
S_OK,
FALSE},
7685 {
"test",Uri_CREATE_ALLOW_RELATIVE,PARSE_LOCATION,0,
"",
S_OK,
FALSE}
7709 return IUri_Release(
uri);
7719 case Uri_PROPERTY_FRAGMENT:
7720 hr = IUriBuilder_SetFragment(builder,
valueW);
7723 "Error: IUriBuilder_SetFragment returned 0x%08x, expected 0x%08x on uri_builder_tests[%d].\n",
7727 case Uri_PROPERTY_HOST:
7728 hr = IUriBuilder_SetHost(builder,
valueW);
7731 "Error: IUriBuilder_SetHost returned 0x%08x, expected 0x%08x on uri_builder_tests[%d].\n",
7735 case Uri_PROPERTY_PASSWORD:
7736 hr = IUriBuilder_SetPassword(builder,
valueW);
7739 "Error: IUriBuilder_SetPassword returned 0x%08x, expected 0x%08x on uri_builder_tests[%d].\n",
7743 case Uri_PROPERTY_PATH:
7744 hr = IUriBuilder_SetPath(builder,
valueW);
7747 "Error: IUriBuilder_SetPath returned 0x%08x, expected 0x%08x on uri_builder_tests[%d].\n",
7751 case Uri_PROPERTY_QUERY:
7752 hr = IUriBuilder_SetQuery(builder,
valueW);
7755 "Error: IUriBuilder_SetQuery returned 0x%08x, expected 0x%08x on uri_builder_tests[%d].\n",
7759 case Uri_PROPERTY_SCHEME_NAME:
7760 hr = IUriBuilder_SetSchemeName(builder,
valueW);
7763 "Error: IUriBuilder_SetSchemeName returned 0x%08x, expected 0x%08x on uri_builder_tests[%d].\n",
7767 case Uri_PROPERTY_USER_NAME:
7768 hr = IUriBuilder_SetUserName(builder,
valueW);
7771 "Error: IUriBuilder_SetUserName returned 0x%08x, expected 0x%08x on uri_builder_tests[%d].\n",
7776 trace(
"Unsupported operation for %d on uri_builder_tests[%d].\n", prop->
property, test_index);
7791 IUri *
uri = (
void*) 0xdeadbeef;
7796 ok(
uri ==
NULL,
"Error: expected the IUri to be NULL, but it was %p instead\n",
uri);
7802 IUri *
uri = (
void*) 0xdeadbeef;
7812 ok(
uri ==
NULL,
"Error: Expected the IUri to be NULL, but it was %p instead\n",
uri);
7814 uri = (
void*) 0xdeadbeef;
7817 ok(
uri ==
NULL,
"Error: Expected the IUri to be NULL, but it was %p instead\n",
uri);
7819 uri = (
void*) 0xdeadbeef;
7822 ok(
uri ==
NULL,
"Error: Expected the IUri to be NULL, but it was %p instead\n",
uri);
7835 hr = pCreateUri(uriW,
test.flags, 0, &
uri);
7837 ok(
hr ==
E_INVALIDARG,
"Error: CreateUri returned 0x%08x, expected 0x%08x on invalid_uri_tests[%d].\n",
7839 if(
uri) IUri_Release(
uri);
7852 ok(
hr ==
S_OK,
"Error: CreateUri returned 0x%08x, expected 0x%08x.\n",
hr,
S_OK);
7856 hr = IUri_GetPropertyBSTR(
uri, Uri_PROPERTY_RAW_URI,
NULL, 0);
7860 hr = IUri_GetPropertyBSTR(
uri, Uri_PROPERTY_PORT, &
received, 0);
7863 ok(
received !=
NULL,
"Error: Expected the string not to be NULL.\n");
7872 hr = IUri_GetPropertyBSTR(
uri, Uri_PROPERTY_ZONE, &
received, 0);
7874 ok(
received !=
NULL,
"Error: Expected the string not to be NULL.\n");
7878 if(
uri) IUri_Release(
uri);
7886 hr = pCreateUri(uriW,
test.create_flags, 0, &
uri);
7888 ok(
hr ==
test.create_expected,
"Error: CreateUri returned 0x%08x, expected 0x%08x. Failed on uri_tests[%d].\n",
7895 for(
j = Uri_PROPERTY_STRING_START;
j <= Uri_PROPERTY_STRING_LAST; ++
j) {
7903 "GetPropertyBSTR returned 0x%08x, expected 0x%08x. On uri_tests[%d].str_props[%d].\n",
7907 "Expected %s but got %s on uri_tests[%d].str_props[%d].\n",
7915 if(
uri) IUri_Release(
uri);
7927 ok(
hr ==
S_OK,
"Error: CreateUri returned 0x%08x, expected 0x%08x.\n",
hr,
S_OK);
7931 hr = IUri_GetPropertyDWORD(
uri, Uri_PROPERTY_DWORD_START,
NULL, 0);
7934 hr = IUri_GetPropertyDWORD(
uri, Uri_PROPERTY_ABSOLUTE_URI, &
received, 0);
7936 ok(
received == 0,
"Error: Expected received=%d but instead received=%d.\n", 0,
received);
7938 if(
uri) IUri_Release(
uri);
7946 hr = pCreateUri(uriW,
test.create_flags, 0, &
uri);
7948 ok(
hr ==
test.create_expected,
"Error: CreateUri returned 0x%08x, expected 0x%08x. Failed on uri_tests[%d].\n",
7959 hr = IUri_GetPropertyDWORD(
uri,
j+Uri_PROPERTY_DWORD_START, &
received, 0);
7961 ok(
hr == prop.
expected,
"GetPropertyDWORD returned 0x%08x, expected 0x%08x. On uri_tests[%d].dword_props[%d].\n",
7963 ok(prop.
value ==
received,
"Expected %d but got %d on uri_tests[%d].dword_props[%d].\n",
7969 if(
uri) IUri_Release(
uri);
7983 ok(
hr ==
S_OK,
"Error: CreateUri returned 0x%08x, expected 0x%08x.\n",
hr,
S_OK);
8030 if(
uri) IUri_Release(
uri);
8038 hr = pCreateUri(uriW,
test.create_flags, 0, &
uri);
8040 ok(
hr ==
test.create_expected,
"Error: CreateUri returned 0x%08x, expected 0x%08x on uri_tests[%d].\n",
8048 prop =
test.str_props[Uri_PROPERTY_ABSOLUTE_URI];
8051 ok(
hr == prop.
expected,
"Error: GetAbsoluteUri returned 0x%08x, expected 0x%08x on uri_tests[%d].\n",
8054 "Error: Expected %s but got %s on uri_tests[%d].\n",
8061 prop =
test.str_props[Uri_PROPERTY_AUTHORITY];
8064 ok(
hr == prop.
expected,
"Error: GetAuthority returned 0x%08x, expected 0x%08x on uri_tests[%d].\n",
8073 prop =
test.str_props[Uri_PROPERTY_DISPLAY_URI];
8076 ok(
hr == prop.
expected,
"Error: GetDisplayUri returned 0x%08x, expected 0x%08x on uri_tests[%d].\n",
8079 "Error: Expected %s but got %s on uri_tests[%d].\n",
8086 prop =
test.str_props[Uri_PROPERTY_DOMAIN];
8090 "Error: GetDomain returned 0x%08x, expected 0x%08x on uri_tests[%d].\n",
8093 "Error: Expected %s but got %s on uri_tests[%d].\n",
8100 prop =
test.str_props[Uri_PROPERTY_EXTENSION];
8103 ok(
hr == prop.
expected,
"Error: GetExtension returned 0x%08x, expected 0x%08x on uri_tests[%d].\n",
8112 prop =
test.str_props[Uri_PROPERTY_FRAGMENT];
8115 ok(
hr == prop.
expected,
"Error: GetFragment returned 0x%08x, expected 0x%08x on uri_tests[%d].\n",
8124 prop =
test.str_props[Uri_PROPERTY_HOST];
8127 ok(
hr == prop.
expected,
"Error: GetHost returned 0x%08x, expected 0x%08x on uri_tests[%d].\n",
8136 prop =
test.str_props[Uri_PROPERTY_PASSWORD];
8139 ok(
hr == prop.
expected,
"Error: GetPassword returned 0x%08x, expected 0x%08x on uri_tests[%d].\n",
8148 prop =
test.str_props[Uri_PROPERTY_PATH];
8151 ok(
hr == prop.
expected,
"Error: GetPath returned 0x%08x, expected 0x%08x on uri_tests[%d].\n",
8160 prop =
test.str_props[Uri_PROPERTY_PATH_AND_QUERY];
8163 ok(
hr == prop.
expected,
"Error: GetPathAndQuery returned 0x%08x, expected 0x%08x on uri_tests[%d].\n",
8172 prop =
test.str_props[Uri_PROPERTY_QUERY];
8175 ok(
hr == prop.
expected,
"Error: GetQuery returned 0x%08x, expected 0x%08x on uri_tests[%d].\n",
8184 prop =
test.str_props[Uri_PROPERTY_RAW_URI];
8187 ok(
hr == prop.
expected,
"Error: GetRawUri returned 0x%08x, expected 0x%08x on uri_tests[%d].\n",
8196 prop =
test.str_props[Uri_PROPERTY_SCHEME_NAME];
8199 ok(
hr == prop.
expected,
"Error: GetSchemeName returned 0x%08x, expected 0x%08x on uri_tests[%d].\n",
8208 prop =
test.str_props[Uri_PROPERTY_USER_INFO];
8211 ok(
hr == prop.
expected,
"Error: GetUserInfo returned 0x%08x, expected 0x%08x on uri_tests[%d].\n",
8220 prop =
test.str_props[Uri_PROPERTY_USER_NAME];
8223 ok(
hr == prop.
expected,
"Error: GetUserName returned 0x%08x, expected 0x%08x on uri_tests[%d].\n",
8231 if(
uri) IUri_Release(
uri);
8244 ok(
hr ==
S_OK,
"Error: CreateUri returned 0x%08x, expected 0x%08x.\n",
hr,
S_OK);
8258 if(
uri) IUri_Release(
uri);
8266 hr = pCreateUri(uriW,
test.create_flags, 0, &
uri);
8268 ok(
hr ==
test.create_expected,
"Error: CreateUri returned 0x%08x, expected 0x%08x on uri_tests[%d].\n",
8281 prop =
test.dword_props[Uri_PROPERTY_HOST_TYPE-Uri_PROPERTY_DWORD_START];
8284 ok(
hr == prop.
expected,
"Error: GetHostType returned 0x%08x, expected 0x%08x on uri_tests[%d].\n",
8291 prop =
test.dword_props[Uri_PROPERTY_PORT-Uri_PROPERTY_DWORD_START];
8294 ok(
hr == prop.
expected,
"Error: GetPort returned 0x%08x, expected 0x%08x on uri_tests[%d].\n",
8301 prop =
test.dword_props[Uri_PROPERTY_SCHEME-Uri_PROPERTY_DWORD_START];
8304 ok(
hr == prop.
expected,
"Error: GetScheme returned 0x%08x, expected 0x%08x on uri_tests[%d].\n",
8311 prop =
test.dword_props[Uri_PROPERTY_ZONE-Uri_PROPERTY_DWORD_START];
8314 ok(
hr == prop.
expected,
"Error: GetZone returned 0x%08x, expected 0x%08x on uri_tests[%d].\n",
8320 if(
uri) IUri_Release(
uri);
8333 ok(
hr ==
S_OK,
"Error: CreateUri returned 0x%08x, expected 0x%08x.\n",
hr,
S_OK);
8337 hr = IUri_GetPropertyLength(
uri, Uri_PROPERTY_STRING_START,
NULL, 0);
8340 hr = IUri_GetPropertyLength(
uri, Uri_PROPERTY_DWORD_START, &
received, 0);
8342 ok(
received == 0xdeadbeef,
"Error: Expected 0xdeadbeef but got 0x%08x.\n",
received);
8344 if(
uri) IUri_Release(
uri);
8352 hr = pCreateUri(uriW,
test.create_flags, 0, &
uri);
8354 ok(
hr ==
test.create_expected,
"Error: CreateUri returned 0x%08x, expected 0x%08x on uri_test[%d].\n",
8360 for(
j = Uri_PROPERTY_STRING_START;
j <= Uri_PROPERTY_STRING_LAST; ++
j) {
8361 DWORD expectedLen, receivedLen;
8368 expectedLen =
lstrlenW(expectedValueW);
8374 hr = IUri_GetPropertyLength(
uri,
j, &receivedLen, 0);
8377 "Error: GetPropertyLength returned 0x%08x, expected 0x%08x on uri_tests[%d].str_props[%d].\n",
8381 "Error: Expected a length of %d but got %d on uri_tests[%d].str_props[%d].\n",
8382 expectedLen, receivedLen,
i,
j);
8387 if(
uri) IUri_Release(
uri);
8399 for(
i=Uri_PROPERTY_STRING_START;
i <= Uri_PROPERTY_STRING_LAST;
i++) {
8400 if(
test->str_props[
i-Uri_PROPERTY_STRING_START].expected ==
S_OK)
8402 if(
test->str_props[
i-Uri_PROPERTY_STRING_START].value2 ==
NULL ||
8403 test->str_props[
i-Uri_PROPERTY_STRING_START].expected ==
8404 test->str_props[
i-Uri_PROPERTY_STRING_START].expected2)
8408 for(
i=Uri_PROPERTY_DWORD_START;
i <= Uri_PROPERTY_DWORD_LAST;
i++) {
8409 if(
test->dword_props[
i-Uri_PROPERTY_DWORD_START].expected ==
S_OK)
8423 ok(
hr ==
S_OK,
"Error: CreateUri returned 0x%08x, expected 0x%08x.\n",
hr,
S_OK);
8428 if(
uri) IUri_Release(
uri);
8436 hr = pCreateUri(uriW,
test.create_flags, 0, &
uri);
8438 ok(
hr ==
test.create_expected,
"Error: CreateUri returned 0x%08x, expected 0x%08x.\n",
hr,
test.create_expected);
8445 ok(
hr ==
S_OK,
"Error: GetProperties returned 0x%08x, expected 0x%08x.\n",
hr,
S_OK);
8449 for(
j = 0;
j <= Uri_PROPERTY_DWORD_LAST; ++
j) {
8451 if(
mask & (1 <<
j)) {
8452 if(expected_props & (1 <<
j))
8453 ok(
received & (1 <<
j),
"Error: Expected flag for property %d on uri_tests[%d].\n",
j,
i);
8455 ok(!(
received & (1 <<
j)),
"Error: Received flag for property %d when not expected on uri_tests[%d].\n",
j,
i);
8460 if(
uri) IUri_Release(
uri);
8472 ok(
hr ==
S_OK,
"Error: CreateUri returned 0x%08x, expected 0x%08x.\n",
hr,
S_OK);
8474 hr = IUri_HasProperty(
uri, Uri_PROPERTY_RAW_URI,
NULL);
8477 if(
uri) IUri_Release(
uri);
8486 hr = pCreateUri(uriW,
test.create_flags, 0, &
uri);
8488 ok(
hr ==
test.create_expected,
"Error: CreateUri returned 0x%08x, expected 0x%08x.\n",
hr,
test.create_expected);
8495 for(
j = 0;
j <= Uri_PROPERTY_DWORD_LAST; ++
j) {
8500 ok(
hr ==
S_OK,
"Error: HasProperty returned 0x%08x, expected 0x%08x for property %d on uri_tests[%d].\n",
8503 if(
mask & (1 <<
j)) {
8504 if(expected_props & (1 <<
j)) {
8505 ok(
received ==
TRUE,
"Error: Expected to have property %d on uri_tests[%d].\n",
j,
i);
8507 ok(
received ==
FALSE,
"Error: Wasn't expecting to have property %d on uri_tests[%d].\n",
j,
i);
8513 if(
uri) IUri_Release(
uri);
8545 return IUri_AddRef(
uri->uri);
8551 return IUri_Release(
uri->uri);
8575 return IUri_HasProperty(
uri->uri,
property, has_property);
8581 return IUri_GetAbsoluteUri(
uri->uri,
value);
8587 return IUri_GetAbsoluteUri(
uri->uri,
value);
8593 return IUri_GetAbsoluteUri(
uri->uri,
value);
8599 return IUri_GetAbsoluteUri(
uri->uri,
value);
8605 return IUri_GetAbsoluteUri(
uri->uri,
value);
8611 return IUri_GetAbsoluteUri(
uri->uri,
value);
8617 return IUri_GetAbsoluteUri(
uri->uri,
value);
8623 return IUri_GetAbsoluteUri(
uri->uri,
value);
8629 return IUri_GetAbsoluteUri(
uri->uri,
value);
8635 return IUri_GetAbsoluteUri(
uri->uri,
value);
8641 return IUri_GetAbsoluteUri(
uri->uri,
value);
8647 return IUri_GetAbsoluteUri(
uri->uri,
value);
8653 return IUri_GetSchemeName(
uri->uri,
value);
8659 return IUri_GetUserInfo(
uri->uri,
value);
8665 return IUri_GetUserName(
uri->uri,
value);
8671 return IUri_GetHostType(
uri->uri,
value);
8677 return IUri_GetPort(
uri->uri,
value);
8683 return IUri_GetScheme(
uri->uri,
value);
8689 return IUri_GetZone(
uri->uri,
value);
8695 return IUri_GetProperties(
uri->uri,
flags);
8701 return IUri_IsEqual(
uri->uri, pUri, is_equal);
8747 ok(
hres ==
S_OK,
"Error: CreateUri returned 0x%08x, expected 0x%08x.\n",
hres,
S_OK);
8749 ok(
hres ==
S_OK,
"Error: CreateUri returned 0x%08x, expected 0x%08x.\n",
hres,
S_OK);
8754 ok(!
equal,
"Error: Expected equal to be FALSE, but was %d instead.\n",
equal);
8756 hres = IUri_IsEqual(uriA, uriB,
NULL);
8760 hres = IUri_IsEqual(uriA, uriA, &
equal);
8762 ok(
equal,
"Error: Expected equal URIs.\n");
8765 hres = IUri_IsEqual(uriA, uriB, &
equal);
8767 ok(
equal,
"Error: Expected equal URIs.\n");
8783 hres = pCreateUri(uriA_W,
test.create_flags_a, 0, &uriA);
8784 ok(
hres ==
S_OK,
"Error: CreateUri returned 0x%08x, expected 0x%08x on equality_tests[%d].a\n",
hres,
S_OK,
i);
8786 hres = pCreateUri(uriB_W,
test.create_flags_b, 0, &uriB);
8787 ok(
hres ==
S_OK,
"Error: CreateUri returned 0x%08x, expected 0x%08x on equality_tests[%d].b\n",
hres,
S_OK,
i);
8790 hres = IUri_IsEqual(uriA, uriB, &
equal);
8792 ok(
hres ==
S_OK,
"Error: IsEqual returned 0x%08x, expected 0x%08x on equality_tests[%d].\n",
hres,
S_OK,
i);
8793 ok(
equal ==
test.equal,
"Error: Expected the comparison to be %d on equality_tests[%d].\n",
test.equal,
i);
8801 ok(
hres ==
S_OK,
"Error: IsEqual returned 0x%08x, expected 0x%08x on equality_tests[%d].\n",
hres,
S_OK,
i);
8802 ok(
equal ==
test.equal,
"Error: Expected the comparison to be %d on equality_tests[%d].\n",
test.equal,
i);
8805 if(uriA) IUri_Release(uriA);
8806 if(uriB) IUri_Release(uriB);
8815 IUri *
uri = (
void*) 0xdeadbeef;
8816 const WCHAR fragmentW[] = {
'#',
'f',
'r',
'a',
'g',
'm',
'e',
'n',
't',0};
8818 hr = pCreateUriWithFragment(
NULL, fragmentW, 0, 0, &
uri);
8820 ok(
uri ==
NULL,
"Error: Expected uri to be NULL, but was %p instead.\n",
uri);
8826 uri = (
void*) 0xdeadbeef;
8829 ok(
uri ==
NULL,
"Error: Expected uri to be NULL, but was %p instead.\n",
uri);
8838 IUri *
uri = (
void*) 0xdeadbeef;
8843 ok(
uri ==
NULL,
"Error: Expected uri to be NULL, but was %p instead.\n",
uri);
8859 hr = pCreateUriWithFragment(uriW, fragW,
test.create_flags, 0, &
uri);
8862 "Error: CreateUriWithFragment returned 0x%08x, expected 0x%08x on uri_fragment_tests[%d].\n",
8870 ok(
hr ==
S_OK,
"Error: GetAbsoluteUri returned 0x%08x, expected 0x%08x on uri_fragment_tests[%d].\n",
8879 if(
uri) IUri_Release(
uri);
8891 ok(
hr ==
E_POINTER,
"Error: CreateIUriBuilder returned 0x%08x, expected 0x%08x\n",
8896 ok(
hr ==
S_OK,
"Error: CreateUri returned 0x%08x, expected 0x%08x.\n",
hr,
S_OK);
8898 ULONG cur_count, orig_count;
8901 hr = pCreateIUriBuilder(
uri, 0, 0, &builder);
8902 ok(
hr ==
S_OK,
"Error: CreateIUriBuilder returned 0x%08x, expected 0x%08x.\n",
hr,
S_OK);
8903 ok(builder !=
NULL,
"Error: Expecting builder not to be NULL\n");
8906 ok(cur_count == orig_count+1,
"Error: Expected the ref count to be %u, but was %u instead.\n", orig_count+1, cur_count);
8908 if(builder) IUriBuilder_Release(builder);
8910 ok(cur_count == orig_count,
"Error: Expected the ref count to be %u, but was %u instead.\n", orig_count, cur_count);
8912 if(
uri) IUri_Release(
uri);
8920 hr = IUriBuilder_CreateUri(builder,
test->uri_flags, 0, 0, &
uri);
8923 "Error: IUriBuilder_CreateUri returned 0x%08x, expected 0x%08x on uri_builder_tests[%d].\n",
8924 hr,
test->uri_hres, test_index);
8936 "Error: IUri_GetPropertyBSTR returned 0x%08x, expected 0x%08x on uri_builder_tests[%d].expected_str_props[%d].\n",
8941 "Error: Expected %s but got %s instead on uri_builder_tests[%d].expected_str_props[%d].\n",
8951 hr = IUri_GetPropertyDWORD(
uri,
i+Uri_PROPERTY_DWORD_START, &
received, 0);
8954 "Error: IUri_GetPropertyDWORD returned 0x%08x, expected 0x%08x on uri_builder_tests[%d].expected_dword_props[%d].\n",
8959 "Error: Expected %d but got %d instead on uri_builder_tests[%d].expected_dword_props[%d].\n",
8964 if(
uri) IUri_Release(
uri);
8972 hr = IUriBuilder_CreateUriSimple(builder,
test->uri_simple_encode_flags, 0, &
uri);
8975 "Error: IUriBuilder_CreateUriSimple returned 0x%08x, expected 0x%08x on uri_builder_tests[%d].\n",
8976 hr,
test->uri_simple_hres, test_index);
8988 "Error: IUri_GetPropertyBSTR returned 0x%08x, expected 0x%08x on uri_builder_tests[%d].expected_str_props[%d].\n",
8993 "Error: Expected %s but got %s instead on uri_builder_tests[%d].expected_str_props[%d].\n",
9003 hr = IUri_GetPropertyDWORD(
uri,
i+Uri_PROPERTY_DWORD_START, &
received, 0);
9006 "Error: IUri_GetPropertyDWORD returned 0x%08x, expected 0x%08x on uri_builder_tests[%d].expected_dword_props[%d].\n",
9011 "Error: Expected %d but got %d instead on uri_builder_tests[%d].expected_dword_props[%d].\n",
9016 if(
uri) IUri_Release(
uri);
9024 hr = IUriBuilder_CreateUriWithFlags(builder,
test->uri_with_flags,
test->uri_with_builder_flags,
9025 test->uri_with_encode_flags, 0, &
uri);
9028 "Error: IUriBuilder_CreateUriWithFlags returned 0x%08x, expected 0x%08x on uri_builder_tests[%d].\n",
9029 hr,
test->uri_with_hres, test_index);
9041 "Error: IUri_GetPropertyBSTR returned 0x%08x, expected 0x%08x on uri_builder_tests[%d].expected_str_props[%d].\n",
9046 "Error: Expected %s but got %s instead on uri_builder_tests[%d].expected_str_props[%d].\n",
9056 hr = IUri_GetPropertyDWORD(
uri,
i+Uri_PROPERTY_DWORD_START, &
received, 0);
9059 "Error: IUri_GetPropertyDWORD returned 0x%08x, expected 0x%08x on uri_builder_tests[%d].expected_dword_props[%d].\n",
9064 "Error: Expected %d but got %d instead on uri_builder_tests[%d].expected_dword_props[%d].\n",
9069 if(
uri) IUri_Release(
uri);
9076 hr = pCreateIUriBuilder(
NULL, 0, 0, &builder);
9077 ok(
hr ==
S_OK,
"Error: CreateIUriBuilder returned 0x%08x, expected 0x%08x.\n",
hr,
S_OK);
9082 hr = IUriBuilder_CreateUri(builder, 0, 0, 0,
NULL);
9085 uri = (
void*) 0xdeadbeef;
9086 hr = IUriBuilder_CreateUri(builder, 0, Uri_HAS_USER_NAME, 0, &
uri);
9088 ok(
uri ==
NULL,
"Error: expected uri to be NULL, but was %p instead.\n",
uri);
9090 hr = IUriBuilder_CreateUriSimple(builder, 0, 0,
NULL);
9091 ok(
hr ==
E_POINTER,
"Error: IUriBuilder_CreateUriSimple returned 0x%08x, expected 0x%08x.\n",
9094 uri = (
void*) 0xdeadbeef;
9095 hr = IUriBuilder_CreateUriSimple(builder, Uri_HAS_USER_NAME, 0, &
uri);
9096 ok(
hr ==
E_NOTIMPL,
"Error: IUriBuilder_CreateUriSimple returned 0x%08x, expected 0x%08x.\n",
9098 ok(!
uri,
"Error: Expected uri to NULL, but was %p instead.\n",
uri);
9100 hr = IUriBuilder_CreateUriWithFlags(builder, 0, 0, 0, 0,
NULL);
9101 ok(
hr ==
E_POINTER,
"Error: IUriBuilder_CreateUriWithFlags returned 0x%08x, expected 0x%08x.\n",
9104 uri = (
void*) 0xdeadbeef;
9105 hr = IUriBuilder_CreateUriWithFlags(builder, 0, 0, Uri_HAS_USER_NAME, 0, &
uri);
9106 ok(
hr ==
E_NOTIMPL,
"Error: IUriBuilder_CreateUriWithFlags returned 0x%08x, expected 0x%08x.\n",
9108 ok(!
uri,
"Error: Expected uri to be NULL, but was %p instead.\n",
uri);
9111 ok(
hr ==
S_OK,
"Error: CreateUri returned 0x%08x, expected 0x%08x.\n",
hr,
S_OK);
9113 hr = IUriBuilder_SetIUri(builder,
test);
9114 ok(
hr ==
S_OK,
"Error: IUriBuilder_SetIUri returned 0x%08x, expected 0x%08x.\n",
hr,
S_OK);
9118 hr = IUriBuilder_CreateUri(builder, 0, Uri_HAS_USER_NAME, 0, &
uri);
9119 ok(
hr ==
S_OK,
"Error: IUriBuilder_CreateUri returned 0x%08x, expected 0x%08x.\n",
hr,
S_OK);
9120 ok(
uri !=
NULL,
"Error: The uri was NULL.\n");
9121 if(
uri) IUri_Release(
uri);
9124 hr = IUriBuilder_CreateUriSimple(builder, Uri_HAS_USER_NAME, 0, &
uri);
9125 ok(
hr ==
S_OK,
"Error: IUriBuilder_CreateUriSimple returned 0x%08x, expected 0x%08x.\n",
9127 ok(
uri !=
NULL,
"Error: uri was NULL.\n");
9128 if(
uri) IUri_Release(
uri);
9131 hr = IUriBuilder_CreateUriWithFlags(builder, 0, 0, 0, 0, &
uri);
9132 ok(
hr ==
S_OK,
"Error: IUriBuilder_CreateUriWithFlags returned 0x%08x, expected 0x%08x.\n",
9134 ok(
uri !=
NULL,
"Error: uri was NULL.\n");
9135 if(
uri) IUri_Release(
uri);
9137 hr = IUriBuilder_SetFragment(builder,
NULL);
9138 ok(
hr ==
S_OK,
"Error: IUriBuilder_SetFragment returned 0x%08x, expected 0x%08x.\n",
hr,
S_OK);
9141 uri = (
void*) 0xdeadbeef;
9142 hr = IUriBuilder_CreateUri(builder, 0, Uri_HAS_USER_NAME, 0, &
uri);
9143 ok(
hr ==
E_NOTIMPL,
"Error: IUriBuilder_CreateUri returned 0x%08x, expected 0x%08x.\n",
hr,
S_OK);
9144 ok(!
uri,
"Error: Expected uri to be NULL but was %p instead.\n",
uri);
9146 uri = (
void*) 0xdeadbeef;
9147 hr = IUriBuilder_CreateUriSimple(builder, Uri_HAS_USER_NAME, 0, &
uri);
9148 ok(
hr ==
E_NOTIMPL,
"Error: IUriBuilder_CreateUriSimple returned 0x%08x, expected 0x%08x.\n",
9150 ok(!
uri,
"Error: Expected uri to be NULL, but was %p instead.\n",
uri);
9152 uri = (
void*) 0xdeadbeef;
9153 hr = IUriBuilder_CreateUriWithFlags(builder, 0, 0, Uri_HAS_USER_NAME, 0, &
uri);
9154 ok(
hr ==
E_NOTIMPL,
"Error: IUriBuilder_CreateUriWithFlags returned 0x%08x, expected 0x%08x.\n",
9156 ok(!
uri,
"Error: Expected uri to be NULL, but was %p instead.\n",
uri);
9160 if(builder) IUriBuilder_Release(builder);
9168 hr = pCreateIUriBuilder(
NULL, 0, 0, &builder);
9169 ok(
hr ==
S_OK,
"Error: CreateIUriBuilder returned 0x%08x, expected 0x%08x.\n",
hr,
S_OK);
9175 hr = IUriBuilder_GetFragment(builder,
NULL,
NULL);
9176 ok(
hr ==
E_POINTER,
"Error: IUriBuilder_GetFragment returned 0x%08x, expected 0x%08x.\n",
9179 ok(
hr ==
E_POINTER,
"Error: IUriBuilder_GetFragment returned 0x%08x, expected 0x%08x.\n",
9181 ok(!
received,
"Error: Expected received to be NULL, but was %p instead.\n",
received);
9182 hr = IUriBuilder_GetFragment(builder, &
len,
NULL);
9183 ok(
hr ==
E_POINTER,
"Error: IUriBuilder_GetFragment returned 0x%08x, expected 0x%08x.\n",
9185 ok(!
len,
"Error: Expected len to be 0, but was %d instead.\n",
len);
9187 hr = IUriBuilder_GetHost(builder,
NULL,
NULL);
9188 ok(
hr ==
E_POINTER,
"Error: IUriBuilder_GetHost returned 0x%08x, expected 0x%08x.\n",
9192 ok(
hr ==
E_POINTER,
"Error: IUriBuilder_GetHost returned 0x%08x, expected 0x%08x.\n",
9194 ok(!
received,
"Error: Expected received to be NULL, but was %p instead.\n",
received);
9196 hr = IUriBuilder_GetHost(builder, &
len,
NULL);
9197 ok(
hr ==
E_POINTER,
"Error: IUriBuilder_GetHost returned 0x%08x, expected 0x%08x.\n",
9199 ok(!
len,
"Error: Expected len to be 0, but was %d instead.\n",
len);
9201 hr = IUriBuilder_GetPassword(builder,
NULL,
NULL);
9202 ok(
hr ==
E_POINTER,
"Error: IUriBuilder_GetPassword returned 0x%08x, expected 0x%08x.\n",
9206 ok(
hr ==
E_POINTER,
"Error: IUriBuilder_GetPassword returned 0x%08x, expected 0x%08x.\n",
9208 ok(!
received,
"Error: Expected received to be NULL, but was %p instead.\n",
received);
9210 hr = IUriBuilder_GetPassword(builder, &
len,
NULL);
9211 ok(
hr ==
E_POINTER,
"Error: IUriBuilder_GetPassword returned 0x%08x, expected 0x%08x.\n",
9213 ok(!
len,
"Error: Expected len to be 0, but was %d instead.\n",
len);
9215 hr = IUriBuilder_GetPath(builder,
NULL,
NULL);
9216 ok(
hr ==
E_POINTER,
"Error: IUriBuilder_GetPath returned 0x%08x, expected 0x%08x.\n",
9220 ok(
hr ==
E_POINTER,
"Error: IUriBuilder_GetPath returned 0x%08x, expected 0x%08x.\n",
9222 ok(!
received,
"Error: Expected received to be NULL, but was %p instead.\n",
received);
9224 hr = IUriBuilder_GetPath(builder, &
len,
NULL);
9225 ok(
hr ==
E_POINTER,
"Error: IUriBuilder_GetPath returned 0x%08x, expected 0x%08x.\n",
9227 ok(!
len,
"Error: Expected len to be 0, but was %d instead.\n",
len);
9229 hr = IUriBuilder_GetPort(builder,
NULL,
NULL);
9230 ok(
hr ==
E_POINTER,
"Error: IUriBuilder_GetPort returned 0x%08x, expected 0x%08x.\n",
9232 hr = IUriBuilder_GetPort(builder,
NULL, &
port);
9233 ok(
hr ==
E_POINTER,
"Error: IUriBuilder_GetPort returned 0x%08x, expected 0x%08x.\n",
9235 ok(!
port,
"Error: Expected port to be 0, but was %d instead.\n",
port);
9236 hr = IUriBuilder_GetPort(builder, &
set,
NULL);
9237 ok(
hr ==
E_POINTER,
"Error: IUriBuilder_GetPort returned 0x%08x, expected 0x%08x.\n",
9239 ok(!
set,
"Error: Expected set to be FALSE, but was %d instead.\n",
set);
9241 hr = IUriBuilder_GetQuery(builder,
NULL,
NULL);
9242 ok(
hr ==
E_POINTER,
"Error: IUriBuilder_GetQuery returned 0x%08x, expected 0x%08x.\n",
9246 ok(
hr ==
E_POINTER,
"Error: IUriBuilder_GetQuery returned 0x%08x, expected 0x%08x.\n",
9248 ok(!
received,
"Error: Expected received to be NULL, but was %p instead.\n",
received);
9250 hr = IUriBuilder_GetQuery(builder, &
len,
NULL);
9251 ok(
hr ==
E_POINTER,
"Error: IUriBuilder_GetQuery returned 0x%08x, expected 0x%08x.\n",
9253 ok(!
len,
"Error: Expected len to be 0, but was %d instead.\n",
len);
9255 hr = IUriBuilder_GetSchemeName(builder,
NULL,
NULL);
9256 ok(
hr ==
E_POINTER,
"Error: IUriBuilder_GetSchemeName returned 0x%08x, expected 0x%08x.\n",
9260 ok(
hr ==
E_POINTER,
"Error: IUriBuilder_GetSchemeName returned 0x%08x, expected 0x%08x.\n",
9262 ok(!
received,
"Error: Expected received to be NULL, but was %p instead.\n",
received);
9264 hr = IUriBuilder_GetSchemeName(builder, &
len,
NULL);
9265 ok(
hr ==
E_POINTER,
"Error: IUriBuilder_GetSchemeName returned 0x%08x, expected 0x%08x.\n",
9267 ok(!
len,
"Error: Expected len to be 0, but was %d instead.\n",
len);
9269 hr = IUriBuilder_GetUserName(builder,
NULL,
NULL);
9270 ok(
hr ==
E_POINTER,
"Error: IUriBuilder_GetUserName returned 0x%08x, expected 0x%08x.\n",
9274 ok(
hr ==
E_POINTER,
"Error: IUriBuilder_GetUserName returned 0x%08x, expected 0x%08x.\n",
9276 ok(!
received,
"Error: Expected received to be NULL, but was %p instead.\n",
received);
9278 hr = IUriBuilder_GetUserName(builder, &
len,
NULL);
9279 ok(
hr ==
E_POINTER,
"Error: IUriBuilder_GetUserName returned 0x%08x, expected 0x%08x.\n",
9281 ok(!
len,
"Error: Expected len to be 0, but was %d instead.\n",
len);
9283 if(builder) IUriBuilder_Release(builder);
9296 if(
test->properties[
i].change &&
test->properties[
i].property == Uri_PROPERTY_FRAGMENT)
9297 prop = &(
test->properties[
i]);
9307 "Error: IUriBuilder_GetFragment returned 0x%08x, expected 0x%08x on uri_builder_tests[%d].\n",
9312 ok(expected_len ==
len,
9313 "Error: Expected the length to be %d, but was %d instead on uri_builder_tests[%d].\n",
9314 expected_len,
len, test_index);
9322 hr = IUriBuilder_GetIUri(builder, &
uri);
9324 "Error: IUriBuilder_GetIUri returned 0x%08x, expected 0x%08x on uri_builder_tests[%d].\n",
9333 "Error: IUriBuilder_GetFragment returned 0x%08x, expected 0x%08x on uri_builder_tests[%d].\n",
9336 ok(!
len,
"Error: Expected len to be 0, but was %d instead on uri_builder_tests[%d].\n",
9338 ok(!
received,
"Error: Expected received to be NULL, but was %p instead on uri_builder_tests[%d].\n",
9347 "Error: Expected IUri_GetFragment to succeed, but got 0x%08x instead on uri_builder_tests[%d].\n",
9354 "Error: IUriBuilder_GetFragment returned 0x%08x, expected 0x%08x on uri_builder_tests[%d].\n",
9358 "Error: Expected %s but got %s instead on uri_builder_tests[%d].\n",
9361 "Error: Expected the length to be %d, but was %d instead on uri_builder_tests[%d].\n",
9366 "Error: IUriBuilder_GetFragment returned 0x%08x, expected 0x%08x on uri_builder_tests[%d].\n",
9369 ok(!
received,
"Error: Expected received to be NULL on uri_builder_tests[%d].\n", test_index);
9370 ok(!
len,
"Error: Expected the length to be 0, but was %d instead on uri_builder_tests[%d].\n",
9377 if(
uri) IUri_Release(
uri);
9391 if(
test->properties[
i].change &&
test->properties[
i].property == Uri_PROPERTY_HOST)
9392 prop = &(
test->properties[
i]);
9402 "Error: IUriBuilder_GetHost returned 0x%08x, expected 0x%08x on uri_builder_tests[%d].\n",
9407 ok(expected_len ==
len,
9408 "Error: Expected the length to be %d, but was %d instead on uri_builder_tests[%d].\n",
9409 expected_len,
len, test_index);
9417 hr = IUriBuilder_GetIUri(builder, &
uri);
9419 "Error: IUriBuilder_GetIUri returned 0x%08x, expected 0x%08x on uri_builder_tests[%d].\n",
9428 "Error: IUriBuilder_GetHost returned 0x%08x, expected 0x%08x on uri_builder_tests[%d].\n",
9431 ok(!
len,
"Error: Expected len to be 0, but was %d instead on uri_builder_tests[%d].\n",
9433 ok(!
received,
"Error: Expected received to be NULL, but was %p instead on uri_builder_tests[%d].\n",
9442 "Error: Expected IUri_GetHost to succeed, but got 0x%08x instead on uri_builder_tests[%d].\n",
9449 "Error: IUriBuilder_GetHost returned 0x%08x, expected 0x%08x on uri_builder_tests[%d].\n",
9453 "Error: Expected %s but got %s instead on uri_builder_tests[%d].\n",
9456 "Error: Expected the length to be %d, but was %d instead on uri_builder_tests[%d].\n",
9461 "Error: IUriBuilder_GetHost returned 0x%08x, expected 0x%08x on uri_builder_tests[%d].\n",
9464 ok(!
received,
"Error: Expected received to be NULL on uri_builder_tests[%d].\n", test_index);
9465 ok(!
len,
"Error: Expected the length to be 0, but was %d instead on uri_builder_tests[%d].\n",
9472 if(
uri) IUri_Release(
uri);
9486 if(
test->properties[
i].change &&
test->properties[
i].property == Uri_PROPERTY_PASSWORD)
9487 prop = &(
test->properties[
i]);
9497 "Error: IUriBuilder_GetPassword returned 0x%08x, expected 0x%08x on uri_builder_tests[%d].\n",
9502 ok(expected_len ==
len,
9503 "Error: Expected the length to be %d, but was %d instead on uri_builder_tests[%d].\n",
9504 expected_len,
len, test_index);
9512 hr = IUriBuilder_GetIUri(builder, &
uri);
9514 "Error: IUriBuilder_GetIUri returned 0x%08x, expected 0x%08x on uri_builder_tests[%d].\n",
9523 "Error: IUriBuilder_GetPassword returned 0x%08x, expected 0x%08x on uri_builder_tests[%d].\n",
9526 ok(!
len,
"Error: Expected len to be 0, but was %d instead on uri_builder_tests[%d].\n",
9528 ok(!
received,
"Error: Expected received to be NULL, but was %p instead on uri_builder_tests[%d].\n",
9537 "Error: Expected IUri_GetPassword to succeed, but got 0x%08x instead on uri_builder_tests[%d].\n",
9544 "Error: IUriBuilder_GetPassword returned 0x%08x, expected 0x%08x on uri_builder_tests[%d].\n",
9548 "Error: Expected %s but got %s instead on uri_builder_tests[%d].\n",
9551 "Error: Expected the length to be %d, but was %d instead on uri_builder_tests[%d].\n",
9556 "Error: IUriBuilder_GetPassword returned 0x%08x, expected 0x%08x on uri_builder_tests[%d].\n",
9559 ok(!
received,
"Error: Expected received to be NULL on uri_builder_tests[%d].\n", test_index);
9560 ok(!
len,
"Error: Expected the length to be 0, but was %d instead on uri_builder_tests[%d].\n",
9567 if(
uri) IUri_Release(
uri);
9581 if(
test->properties[
i].change &&
test->properties[
i].property == Uri_PROPERTY_PATH)
9582 prop = &(
test->properties[
i]);
9592 "Error: IUriBuilder_GetPath returned 0x%08x, expected 0x%08x on uri_builder_tests[%d].\n",
9597 ok(expected_len ==
len,
9598 "Error: Expected the length to be %d, but was %d instead on uri_builder_tests[%d].\n",
9599 expected_len,
len, test_index);
9607 hr = IUriBuilder_GetIUri(builder, &
uri);
9609 "Error: IUriBuilder_GetIUri returned 0x%08x, expected 0x%08x on uri_builder_tests[%d].\n",
9618 "Error: IUriBuilder_GetPath returned 0x%08x, expected 0x%08x on uri_builder_tests[%d].\n",
9621 ok(!
len,
"Error: Expected len to be 0, but was %d instead on uri_builder_tests[%d].\n",
9623 ok(!
received,
"Error: Expected received to be NULL, but was %p instead on uri_builder_tests[%d].\n",
9632 "Error: Expected IUri_GetPath to succeed, but got 0x%08x instead on uri_builder_tests[%d].\n",
9639 "Error: IUriBuilder_GetPath returned 0x%08x, expected 0x%08x on uri_builder_tests[%d].\n",
9643 "Error: Expected %s but got %s instead on uri_builder_tests[%d].\n",
9646 "Error: Expected the length to be %d, but was %d instead on uri_builder_tests[%d].\n",
9651 "Error: IUriBuilder_GetPath returned 0x%08x, expected 0x%08x on uri_builder_tests[%d].\n",
9654 ok(!
received,
"Error: Expected received to be NULL on uri_builder_tests[%d].\n", test_index);
9655 ok(!
len,
"Error: Expected the length to be 0, but was %d instead on uri_builder_tests[%d].\n",
9662 if(
uri) IUri_Release(
uri);
9672 if(
test->port_prop.change) {
9673 hr = IUriBuilder_GetPort(builder, &has_port, &
received);
9676 "Error: IUriBuilder_GetPort returned 0x%08x, expected 0x%08x on uri_builder_tests[%d].\n",
9679 ok(has_port ==
test->port_prop.set,
9680 "Error: Expected has_port to be %d, but was %d instead on uri_builder_tests[%d].\n",
9681 test->port_prop.set, has_port, test_index);
9683 "Error: Expected port to be %d, but was %d instead on uri_builder_tests[%d].\n",
9690 hr = IUriBuilder_GetIUri(builder, &
uri);
9692 "Error: IUriBuilder_GetIUri returned 0x%08x, expected 0x%08x on uri_builder_tests[%d].\n",
9696 hr = IUriBuilder_GetPort(builder, &has_port, &
received);
9698 "Error: IUriBuilder_GetPort returned 0x%08x, expected 0x%08x on uri_builder_tests[%d].\n",
9702 "Error: Expected has_port to be FALSE, but was %d instead on uri_builder_tests[%d].\n",
9703 has_port, test_index);
9704 ok(!
received,
"Error: Expected received to be 0, but was %d instead on uri_builder_tests[%d].\n",
9712 "Error: Expected IUri_Port to succeed, but got 0x%08x instead on uri_builder_tests[%d].\n",
9715 hr = IUriBuilder_GetPort(builder, &has_port, &
received);
9717 "Error: IUriBuilder_GetPort returned 0x%08x, expected 0x%08x on uri_builder_tests[%d].\n",
9721 "Error: Expected has_port to be FALSE but was TRUE instead on uri_builder_tests[%d].\n",
9724 "Error: Expected received to be %d, but was %d instead on uri_builder_tests[%d].\n",
9729 if(
uri) IUri_Release(
uri);
9743 if(
test->properties[
i].change &&
test->properties[
i].property == Uri_PROPERTY_QUERY)
9744 prop = &(
test->properties[
i]);
9754 "Error: IUriBuilder_GetQuery returned 0x%08x, expected 0x%08x on uri_builder_tests[%d].\n",
9759 ok(expected_len ==
len,
9760 "Error: Expected the length to be %d, but was %d instead on uri_builder_tests[%d].\n",
9761 expected_len,
len, test_index);
9769 hr = IUriBuilder_GetIUri(builder, &
uri);
9771 "Error: IUriBuilder_GetIUri returned 0x%08x, expected 0x%08x on uri_builder_tests[%d].\n",
9780 "Error: IUriBuilder_GetQuery returned 0x%08x, expected 0x%08x on uri_builder_tests[%d].\n",
9783 ok(!
len,
"Error: Expected len to be 0, but was %d instead on uri_builder_tests[%d].\n",
9785 ok(!
received,
"Error: Expected received to be NULL, but was %p instead on uri_builder_tests[%d].\n",
9794 "Error: Expected IUri_GetQuery to succeed, but got 0x%08x instead on uri_builder_tests[%d].\n",
9801 "Error: IUriBuilder_GetQuery returned 0x%08x, expected 0x%08x on uri_builder_tests[%d].\n",
9805 "Error: Expected %s but got %s instead on uri_builder_tests[%d].\n",
9808 "Error: Expected the length to be %d, but was %d instead on uri_builder_tests[%d].\n",
9813 "Error: IUriBuilder_GetQuery returned 0x%08x, expected 0x%08x on uri_builder_tests[%d].\n",
9816 ok(!
received,
"Error: Expected received to be NULL on uri_builder_tests[%d].\n", test_index);
9817 ok(!
len,
"Error: Expected the length to be 0, but was %d instead on uri_builder_tests[%d].\n",
9824 if(
uri) IUri_Release(
uri);
9838 if(
test->properties[
i].change &&
test->properties[
i].property == Uri_PROPERTY_SCHEME_NAME)
9839 prop = &(
test->properties[
i]);
9849 "Error: IUriBuilder_GetSchemeName returned 0x%08x, expected 0x%08x on uri_builder_tests[%d].\n",
9854 ok(expected_len ==
len,
9855 "Error: Expected the length to be %d, but was %d instead on uri_builder_tests[%d].\n",
9856 expected_len,
len, test_index);
9864 hr = IUriBuilder_GetIUri(builder, &
uri);
9866 "Error: IUriBuilder_GetIUri returned 0x%08x, expected 0x%08x on uri_builder_tests[%d].\n",
9875 "Error: IUriBuilder_GetSchemeName returned 0x%08x, expected 0x%08x on uri_builder_tests[%d].\n",
9878 ok(!
len,
"Error: Expected len to be 0, but was %d instead on uri_builder_tests[%d].\n",
9880 ok(!
received,
"Error: Expected received to be NULL, but was %p instead on uri_builder_tests[%d].\n",
9889 "Error: Expected IUri_GetSchemeName to succeed, but got 0x%08x instead on uri_builder_tests[%d].\n",
9896 "Error: IUriBuilder_GetSchemeName returned 0x%08x, expected 0x%08x on uri_builder_tests[%d].\n",
9900 "Error: Expected %s but got %s instead on uri_builder_tests[%d].\n",
9903 "Error: Expected the length to be %d, but was %d instead on uri_builder_tests[%d].\n",
9908 "Error: IUriBuilder_GetSchemeName returned 0x%08x, expected 0x%08x on uri_builder_tests[%d].\n",
9911 ok(!
received,
"Error: Expected received to be NULL on uri_builder_tests[%d].\n", test_index);
9912 ok(!
len,
"Error: Expected the length to be 0, but was %d instead on uri_builder_tests[%d].\n",
9919 if(
uri) IUri_Release(
uri);
9933 if(
test->properties[
i].change &&
test->properties[
i].property == Uri_PROPERTY_USER_NAME)
9934 prop = &(
test->properties[
i]);
9944 "Error: IUriBuilder_GetUserName returned 0x%08x, expected 0x%08x on uri_builder_tests[%d].\n",
9949 ok(expected_len ==
len,
9950 "Error: Expected the length to be %d, but was %d instead on uri_builder_tests[%d].\n",
9951 expected_len,
len, test_index);
9959 hr = IUriBuilder_GetIUri(builder, &
uri);
9961 "Error: IUriBuilder_GetIUri returned 0x%08x, expected 0x%08x on uri_builder_tests[%d].\n",
9970 "Error: IUriBuilder_GetUserName returned 0x%08x, expected 0x%08x on uri_builder_tests[%d].\n",
9973 ok(!
len,
"Error: Expected len to be 0, but was %d instead on uri_builder_tests[%d].\n",
9975 ok(!
received,
"Error: Expected received to be NULL, but was %p instead on uri_builder_tests[%d].\n",
9984 "Error: Expected IUri_GetUserName to succeed, but got 0x%08x instead on uri_builder_tests[%d].\n",
9991 "Error: IUriBuilder_GetUserName returned 0x%08x, expected 0x%08x on uri_builder_tests[%d].\n",
9995 "Error: Expected %s but got %s instead on uri_builder_tests[%d].\n",
9998 "Error: Expected the length to be %d, but was %d instead on uri_builder_tests[%d].\n",
10003 "Error: IUriBuilder_GetUserName returned 0x%08x, expected 0x%08x on uri_builder_tests[%d].\n",
10006 ok(!
received,
"Error: Expected received to be NULL on uri_builder_tests[%d].\n", test_index);
10007 ok(!
len,
"Error: Expected the length to be 0, but was %d instead on uri_builder_tests[%d].\n",
10014 if(
uri) IUri_Release(
uri);
10031 hr = pCreateUri(uriW,
test.create_flags, 0, &
uri);
10032 ok(
hr ==
S_OK,
"Error: CreateUri returned 0x%08x, expected 0x%08x on uri_builder_tests[%d].\n",
10036 hr = pCreateIUriBuilder(
uri, 0, 0, &builder);
10038 ok(
hr ==
test.create_builder_expected,
10039 "Error: CreateIUriBuilder returned 0x%08x, expected 0x%08x on uri_builder_tests[%d].\n",
10040 hr,
test.create_builder_expected,
i);
10050 if(prop.
property != Uri_PROPERTY_SCHEME_NAME &&
10051 prop.
property != Uri_PROPERTY_HOST)
10061 if(
test.port_prop.change) {
10062 hr = IUriBuilder_SetPort(builder,
test.port_prop.set,
test.port_prop.
value);
10066 "Error: IUriBuilder_SetPort returned 0x%08x, expected 0x%08x on uri_builder_tests[%d].\n",
10067 hr,
test.port_prop.expected,
i);
10070 hr = IUriBuilder_HasBeenModified(builder, &
received);
10072 "Error IUriBuilder_HasBeenModified returned 0x%08x, expected 0x%08x on uri_builder_tests[%d].\n",
10076 "Error: Expected received to be %d but was %d instead on uri_builder_tests[%d].\n",
10093 if(builder) IUriBuilder_Release(builder);
10094 if(
uri) IUri_Release(
uri);
10103 hr = pCreateIUriBuilder(
NULL, 0, 0, &builder);
10104 ok(
hr ==
S_OK,
"Error: CreateIUriBuilder returned 0x%08x, expected 0x%08x.\n",
hr,
S_OK);
10106 static const WCHAR hostW[] = {
'g',
'o',
'o',
'g',
'l',
'e',
'.',
'c',
'o',
'm',0};
10110 hr = IUriBuilder_HasBeenModified(builder,
NULL);
10111 ok(
hr ==
E_POINTER,
"Error: IUriBuilder_HasBeenModified returned 0x%08x, expected 0x%08x.\n",
10114 hr = IUriBuilder_SetHost(builder,
hostW);
10115 ok(
hr ==
S_OK,
"Error: IUriBuilder_SetHost returned 0x%08x, expected 0x%08x.\n",
10118 hr = IUriBuilder_HasBeenModified(builder, &
received);
10119 ok(
hr ==
S_OK,
"Error: IUriBuilder_HasBeenModified returned 0x%08x, expected 0x%08x.\n",
10125 ok(
hr ==
S_OK,
"Error: CreateUri returned 0x%08x, expected 0x%08x.\n",
hr,
S_OK);
10130 hr = IUriBuilder_SetIUri(builder,
uri);
10131 ok(
hr ==
S_OK,
"Error: IUriBuilder_SetIUri returned 0x%08x, expected 0x%08x.\n",
10134 hr = IUriBuilder_HasBeenModified(builder, &
received);
10135 ok(
hr ==
S_OK,
"Error: IUriBuilder_HasBeenModified returned 0x%08x, expected 0x%08x.\n",
10141 hr = IUriBuilder_SetHost(builder,
hostW);
10142 ok(
hr ==
S_OK,
"Error: IUriBuilder_SetHost returned 0x%08x, expected 0x%08x.\n",
hr,
S_OK);
10144 hr = IUriBuilder_HasBeenModified(builder, &
received);
10145 ok(
hr ==
S_OK,
"Error: IUriBuilder_HasBeenModified returned 0x%08x, expected 0x%08x.\n",
10150 hr = IUriBuilder_SetIUri(builder,
uri);
10151 ok(
hr ==
S_OK,
"Error: IUriBuilder_SetIUri returned 0x%08x, expected 0x%08x.\n",
hr,
S_OK);
10156 hr = IUriBuilder_HasBeenModified(builder, &
received);
10157 ok(
hr ==
S_OK,
"Error: IUriBuilder_HasBeenModified returned 0x%08x, expected 0x%08x.\n",
hr,
S_OK);
10161 hr = IUriBuilder_GetHost(builder, &
len, &prop);
10162 ok(
hr ==
S_OK,
"Error: IUriBuilder_GetHost returned 0x%08x, expected 0x%08x.\n",
hr,
S_OK);
10164 ok(!
lstrcmpW(prop,
hostW),
"Error: Expected %s but got %s instead.\n",
10170 hr = IUriBuilder_SetIUri(builder,
NULL);
10171 ok(
hr ==
S_OK,
"Error: IUriBuilder_SetIUri returned 0x%08x, expected 0x%08x.\n",
hr,
S_OK);
10173 hr = IUriBuilder_SetHost(builder,
hostW);
10174 ok(
hr ==
S_OK,
"Error: IUriBuilder_SetHost returned 0x%08x, expected 0x%08x.\n",
hr,
S_OK);
10175 hr = IUriBuilder_HasBeenModified(builder, &
received);
10176 ok(
hr ==
S_OK,
"Error: IUriBuilder_HasBeenModified returned 0x%08x, expected 0x%08x.\n",
10181 hr = IUriBuilder_SetIUri(builder,
NULL);
10182 ok(
hr ==
S_OK,
"Error: IUriBuilder_SetIUri returned 0x%08x, expected 0x%09x.\n",
hr,
S_OK);
10184 hr = IUriBuilder_HasBeenModified(builder, &
received);
10185 ok(
hr ==
S_OK,
"Error: IUriBuilder_HasBeenModified returned 0x%08x, expected 0x%08x.\n",
10190 hr = IUriBuilder_GetHost(builder, &
len, &prop);
10191 ok(
hr ==
S_OK,
"Error: IUriBuilder_GetHost returned 0x%08x, expected 0x%08x.\n",
hr,
S_OK);
10193 ok(!
lstrcmpW(prop,
hostW),
"Error: Expected %s but got %s instead.\n",
10199 if(
uri) IUri_Release(
uri);
10201 if(builder) IUriBuilder_Release(builder);
10209 hr = pCreateIUriBuilder(
NULL, 0, 0, &builder);
10210 ok(
hr ==
S_OK,
"Error: CreateIUriBuilder returned 0x%08x, expected 0x%08x.\n",
hr,
S_OK);
10214 hr = IUriBuilder_GetIUri(builder,
NULL);
10215 ok(
hr ==
E_POINTER,
"Error: IUriBuilder_GetIUri returned 0x%08x, expected 0x%08x.\n",
10221 ULONG cur_count, orig_count;
10225 hr = IUriBuilder_SetIUri(builder,
uri);
10228 ok(cur_count == orig_count+1,
"Error: Expected uri ref count to be %d, but was %d instead.\n",
10229 orig_count+1, cur_count);
10231 hr = IUriBuilder_SetIUri(builder,
NULL);
10234 ok(cur_count == orig_count,
"Error: Expected uri ref count to be %d, but was %d instead.\n",
10235 orig_count, cur_count);
10238 hr = IUriBuilder_SetIUri(builder,
uri);
10239 ok(
hr ==
S_OK,
"Error: IUriBuilder_SetIUri returned 0x%08x, expected 0x%08x.\n",
hr,
S_OK);
10242 hr = IUriBuilder_CreateUri(builder, 0, 0, 0, &
test);
10243 ok(
hr ==
S_OK,
"Error: IUriBuilder_CreateUri returned 0x%08x, expected 0x%08x.\n",
hr,
S_OK);
10246 ok(cur_count == orig_count+1,
"Error: Expected uri ref count to be %d, but was %d instead.\n",
10247 orig_count+1, cur_count);
10248 ok(
test ==
uri,
"Error: Expected test to be %p, but was %p instead.\n",
10254 hr = IUriBuilder_CreateUri(builder, -1, 0, 0, &
test);
10255 ok(
hr ==
S_OK,
"Error: IUriBuilder_CreateUri returned 0x%08x, expected 0x%08x.\n",
hr,
S_OK);
10258 ok(cur_count == orig_count+1,
"Error: Expected uri ref count to be %d, but was %d instead.\n",
10259 orig_count+1, cur_count);
10260 ok(
test ==
uri,
"Error: Expected test to be %p, but was %p instead.\n",
uri,
test);
10268 hr = IUriBuilder_CreateUri(builder, Uri_CREATE_ALLOW_RELATIVE, 0, 0, &
test);
10269 ok(
hr ==
S_OK,
"Error: IUriBuilder_CreateUri returned 0x%08x, expected 0x%08x.\n",
hr,
S_OK);
10271 ok(
test !=
uri,
"Error: Wasn't expecting 'test' to be 'uri'\n");
10279 hr = IUriBuilder_CreateUri(builder, Uri_CREATE_CANONICALIZE, 0, 0, &
test);
10280 ok(
hr ==
S_OK,
"Error: IUriBuilder_CreateUri returned 0x%08x, expected 0x%08x.\n",
hr,
S_OK);
10283 ok(cur_count == orig_count+1,
"Error: Expected uri ref count to be %d, but was %d instead.\n",
10284 orig_count+1, cur_count);
10285 ok(
test ==
uri,
"Error: Expected 'test' to be %p, but was %p instead.\n",
uri,
test);
10290 hr = IUriBuilder_CreateUriSimple(builder, 0, 0, &
test);
10291 ok(
hr ==
S_OK,
"Error: IUriBuilder_CreateUriSimple returned 0x%08x, expected 0x%08x.\n",
hr,
S_OK);
10294 ok(cur_count == orig_count+1,
"Error: Expected uri ref count to be %d, but was %d instead.\n",
10295 orig_count+1, cur_count);
10296 ok(
test ==
uri,
"Error: Expected test to be %p, but was %p instead.\n",
uri,
test);
10301 hr = IUriBuilder_CreateUriWithFlags(builder, 0, 0, 0, 0, &
test);
10302 ok(
hr ==
S_OK,
"Error: IUriBuilder_CreateUriWithFlags returned 0x%08x, expected 0x%08x.\n",
10306 ok(cur_count == orig_count+1,
"Error: Expected uri ref count to be %d, but was %d instead.\n",
10307 orig_count+1, cur_count);
10308 ok(
test ==
uri,
"Error: Expected test to be %p, but was %p instead.\n",
uri,
test);
10316 hr = IUriBuilder_CreateUriWithFlags(builder, Uri_CREATE_ALLOW_RELATIVE, 0, 0, 0, &
test);
10317 ok(
hr ==
S_OK,
"Error: IUriBuilder_CreateUriWithFlags returned 0x%08x, expected 0x%08x.\n",
hr,
S_OK);
10319 ok(
test !=
uri,
"Error: Wasn't expecting 'test' to be 'uri'\n");
10327 hr = IUriBuilder_CreateUriWithFlags(builder, Uri_CREATE_CANONICALIZE, 0, 0, 0, &
test);
10328 ok(
hr ==
S_OK,
"Error: IUriBuilder_CreateUriWithFlags returned 0x%08x, expected 0x%08x.\n",
hr,
S_OK);
10331 ok(cur_count == orig_count+1,
"Error: Expected uri ref count to be %d, but was %d instead.\n",
10332 orig_count+1, cur_count);
10333 ok(
test ==
uri,
"Error: Expected 'test' to be %p, but was %p instead.\n",
uri,
test);
10337 if(
uri) IUri_Release(
uri);
10339 if(builder) IUriBuilder_Release(builder);
10347 hr = pCreateIUriBuilder(
NULL, 0, 0, &builder);
10348 ok(
hr ==
S_OK,
"Error: CreateIUriBuilder returned 0x%08x, expected 0x%08x.\n",
hr,
S_OK);
10351 const DWORD invalid = Uri_HAS_ABSOLUTE_URI|Uri_HAS_DISPLAY_URI|Uri_HAS_RAW_URI|Uri_HAS_HOST_TYPE|
10352 Uri_HAS_SCHEME|Uri_HAS_ZONE;
10354 for(
i = Uri_PROPERTY_STRING_START;
i <= Uri_PROPERTY_DWORD_LAST; ++
i) {
10355 hr = IUriBuilder_RemoveProperties(builder,
i << 1);
10358 "Error: IUriBuilder_RemoveProperties returned 0x%08x, expected 0x%08x with prop=%d.\n",
10362 "Error: IUriBuilder_RemoveProperties returned 0x%08x, expected 0x%08x with prop=%d.\n",
10370 hr = IUriBuilder_RemoveProperties(builder, (Uri_PROPERTY_DWORD_LAST+1) << 1);
10371 ok(
hr ==
E_INVALIDARG,
"Error: IUriBuilder_RemoveProperties returned 0x%08x, expected 0x%08x.\n",
10374 if(builder) IUriBuilder_Release(builder);
10382 hr = pCreateUri(uriW,
test.create_flags, 0, &
uri);
10386 hr = pCreateIUriBuilder(
uri, 0, 0, &builder);
10388 ok(
hr ==
test.create_builder_expected,
10389 "Error: CreateIUriBuilder returned 0x%08x, expected 0x%08x on test %d.\n",
10390 hr,
test.create_builder_expected,
i);
10393 hr = IUriBuilder_RemoveProperties(builder,
test.remove_properties);
10396 "Error: IUriBuilder returned 0x%08x, expected 0x%08x on test %d.\n",
10397 hr,
test.remove_expected,
i);
10401 hr = IUriBuilder_CreateUri(builder,
test.expected_flags, 0, 0, &
result);
10404 "Error: IUriBuilder_CreateUri returned 0x%08x, expected 0x%08x on test %d.\n",
10410 ok(
hr ==
S_OK,
"Error: Expected S_OK, but got 0x%08x instead.\n",
hr);
10412 "Error: Expected %s but got %s instead on test %d.\n",
10419 if(builder) IUriBuilder_Release(builder);
10421 if(
uri) IUri_Release(
uri);
10434 hr = pCreateIUriBuilder(
uri, 0, 0, &builder);
10435 ok(
hr ==
S_OK,
"Error: CreateIUriBuilder returned 0x%08x, expected 0x%08x.\n",
hr,
S_OK);
10440 hr = IUriBuilder_GetPort(builder, &has, &
port);
10441 ok(
hr ==
S_OK,
"Error: IUriBuilder_GetPort returned 0x%08x, expected 0x%08x.\n",
hr,
S_OK);
10444 ok(has ==
FALSE,
"Error: Expected 'has' to be FALSE, was %d instead.\n", has);
10446 ok(
port == 80,
"Error: Expected the port to be 80, but, was %d instead.\n",
port);
10449 if(builder) IUriBuilder_Release(builder);
10451 if(
uri) IUri_Release(
uri);
10464 hr = IUri_QueryInterface(
uri, &IID_IUriBuilderFactory, (
void**)&
factory);
10465 ok(
hr ==
S_OK,
"Error: Expected S_OK, but got 0x%08x.\n",
hr);
10466 ok(
factory !=
NULL,
"Error: Expected 'factory' to not be NULL.\n");
10469 builder = (
void*) 0xdeadbeef;
10470 hr = IUriBuilderFactory_CreateIUriBuilder(
factory, 10, 0, &builder);
10471 ok(
hr ==
E_INVALIDARG,
"Error: CreateInitializedIUriBuilder returned 0x%08x, expected 0x%08x.\n",
10473 ok(!builder,
"Error: Expected 'builder' to be NULL, but was %p.\n", builder);
10475 builder = (
void*) 0xdeadbeef;
10476 hr = IUriBuilderFactory_CreateIUriBuilder(
factory, 0, 10, &builder);
10477 ok(
hr ==
E_INVALIDARG,
"Error: CreateInitializedIUriBuilder returned 0x%08x, expected 0x%08x.\n",
10479 ok(!builder,
"Error: Expected 'builder' to be NULL, but was %p.\n", builder);
10481 hr = IUriBuilderFactory_CreateIUriBuilder(
factory, 0, 0,
NULL);
10482 ok(
hr ==
E_POINTER,
"Error: CreateInitializedIUriBuilder returned 0x%08x, expected 0x%08x.\n",
10486 hr = IUriBuilderFactory_CreateIUriBuilder(
factory, 0, 0, &builder);
10487 ok(
hr ==
S_OK,
"Error: CreateInitializedIUriBuilder returned 0x%08x, expected 0x%08x.\n",
10490 IUri *tmp = (
void*) 0xdeadbeef;
10494 hr = IUriBuilder_GetIUri(builder, &tmp);
10495 ok(
hr ==
S_OK,
"Error: GetIUri returned 0x%08x, expected 0x%08x.\n",
10497 ok(!tmp,
"Error: Expected 'tmp' to be NULL, but was %p instead.\n", tmp);
10499 hr = IUriBuilder_GetHost(builder, &result_len, &
result);
10500 ok(
hr ==
S_FALSE,
"Error: GetHost returned 0x%08x, expected 0x%08x.\n",
10503 if(builder) IUriBuilder_Release(builder);
10505 builder = (
void*) 0xdeadbeef;
10506 hr = IUriBuilderFactory_CreateInitializedIUriBuilder(
factory, 10, 0, &builder);
10507 ok(
hr ==
E_INVALIDARG,
"Error: CreateIUriBuilder returned 0x%08x, expected 0x%08x.\n",
10509 ok(!builder,
"Error: Expected 'builder' to be NULL, but was %p.\n", builder);
10511 builder = (
void*) 0xdeadbeef;
10512 hr = IUriBuilderFactory_CreateInitializedIUriBuilder(
factory, 0, 10, &builder);
10513 ok(
hr ==
E_INVALIDARG,
"Error: CreateIUriBuilder returned 0x%08x, expected 0x%08x.\n",
10515 ok(!builder,
"Error: Expected 'builder' to be NULL, but was %p.\n", builder);
10517 hr = IUriBuilderFactory_CreateInitializedIUriBuilder(
factory, 0, 0,
NULL);
10518 ok(
hr ==
E_POINTER,
"Error: CreateIUriBuilder returned 0x%08x, expected 0x%08x.\n",
10522 hr = IUriBuilderFactory_CreateInitializedIUriBuilder(
factory, 0, 0, &builder);
10523 ok(
hr ==
S_OK,
"Error: CreateIUriBuilder returned 0x%08x, expected 0x%08x.\n",
10528 hr = IUriBuilder_GetIUri(builder, &tmp);
10529 ok(
hr ==
S_OK,
"Error: GetIUri return 0x%08x, expected 0x%08x.\n",
10531 ok(tmp ==
uri,
"Error: Expected tmp to be %p, but was %p.\n",
uri, tmp);
10532 if(tmp) IUri_Release(tmp);
10534 if(builder) IUriBuilder_Release(builder);
10538 if(
uri) IUri_Release(
uri);
10548 ok(
SUCCEEDED(
hr),
"Error: Expected CreateUri to succeed, got 0x%08x.\n",
hr);
10550 result = (
void*) 0xdeadbeef;
10553 ok(!
result,
"Error: Expected 'result' to be NULL, was %p.\n",
result);
10558 ok(
SUCCEEDED(
hr),
"Error: Expected CreateUri to succeed, got 0x%08x.\n",
hr);
10560 result = (
void*) 0xdeadbeef;
10561 hr = pCoInternetCombineIUri(
NULL, relative, 0, &
result, 0);
10563 ok(!
result,
"Error: Expected 'result' to be NULL, was %p.\n",
result);
10566 hr = pCoInternetCombineIUri(
base, relative, 0,
NULL, 0);
10570 if(relative) IUri_Release(relative);
10576 ok(
SUCCEEDED(
hr),
"Error: Expected CreateUri to succeed, got 0x%08x on uri_combine_tests[%d].\n",
hr,
i);
10581 ok(
SUCCEEDED(
hr),
"Error: Expected CreateUri to succeed, got 0x%08x on uri_combine_tests[%d].\n",
hr,
i);
10588 "Error: CoInternetCombineIUri returned 0x%08x, expected 0x%08x on uri_combine_tests[%d].\n",
10600 "Error: IUri_GetPropertyBSTR returned 0x%08x, expected 0x%08x on uri_combine_tests[%d].str_props[%d].\n",
10604 "Error: Expected \"%s\" but got %s instead on uri_combine_tests[%d].str_props[%d].\n",
10617 "Error: IUri_GetPropertyDWORD returned 0x%08x, expected 0x%08x on uri_combine_tests[%d].dword_props[%d].\n",
10620 ok(prop.
value ==
received,
"Error: Expected %d, but got %d instead on uri_combine_tests[%d].dword_props[%d].\n",
10627 if(relative) IUri_Release(relative);
10638 ok(0,
"unexpected call\n");
10661 ok(cchResult == 200,
"Error: Got %d.\n", cchResult);
10679 "Error: Expected 0, but got 0x%08x.\n", dwCombineFlags);
10691 ok(0,
"unexpected call\n");
10699 ok(0,
"unexpected call\n");
10722 ok(0,
"unexpected call\n");
10739 ok(0,
"unexpected call\n");
10745 ok(0,
"unexpected call\n");
10773 IInternetSession_Release(
session);
10780 hr = pCoInternetGetSession(0, &
session, 0);
10781 ok(
hr ==
S_OK,
"CoInternetGetSession failed: 0x%08x\n",
hr);
10786 ok(
hr ==
S_OK,
"UnregisterNameSpace failed: 0x%08x\n",
hr);
10788 IInternetSession_Release(
session);
10809 ok(
hr ==
S_OK,
"Error: CoInternetCombineIUri returned 0x%08x, expected 0x%08x.\n",
hr,
S_OK);
10816 ok(
hr ==
S_OK,
"Error: Expected S_OK, but got 0x%08x instead.\n",
hr);
10825 if(relative) IUri_Release(relative);
10839 result = (
void*) 0xdeadbeef;
10841 ok(
hr ==
E_UNEXPECTED,
"Error: CoInternetCombineUrlEx returned 0x%08x, expected 0x%08x.\n",
10843 ok(!
result,
"Error: Expected 'result' to be NULL was %p instead.\n",
result);
10846 result = (
void*) 0xdeadbeef;
10848 ok(
hr ==
E_INVALIDARG,
"Error: CoInternetCombineUrlEx returned 0x%08x, expected 0x%08x.\n",
10850 ok(!
result,
"Error: Expected 'result' to be NULL, but was %p instead.\n",
result);
10852 result = (
void*) 0xdeadbeef;
10854 ok(
hr ==
E_UNEXPECTED,
"Error: CoInternetCombineUrlEx returned 0x%08x, expected 0x%08x.\n",
10856 ok(!
result,
"Error: Expected 'result' to be NULL, but was %p instead.\n",
result);
10859 ok(
hr ==
E_POINTER,
"Error: CoInternetCombineUrlEx returned 0x%08x, expected 0x%08x.\n",
10867 ok(
SUCCEEDED(
hr),
"Error: CreateUri returned 0x%08x on uri_combine_tests[%d].\n",
hr,
i);
10875 "Error: CoInternetCombineUrlEx returned 0x%08x, expected 0x%08x on uri_combine_tests[%d].\n",
10888 "Error: IUri_GetPropertyBSTR returned 0x%08x, expected 0x%08x on uri_combine_tests[%d].str_props[%d].\n",
10892 "Error: Expected \"%s\" but got %s instead on uri_combine_tests[%d].str_props[%d].\n",
10905 "Error: IUri_GetPropertyDWORD returned 0x%08x, expected 0x%08x on uri_combine_tests[%d].dword_props[%d].\n",
10908 ok(prop.
value ==
received,
"Error: Expected %d, but got %d instead on uri_combine_tests[%d].dword_props[%d].\n",
10934 ok(
hr ==
S_OK,
"Error: CoInternetCombineUrlEx returned 0x%08x, expected 0x%08x.\n",
hr,
S_OK);
10941 ok(
hr ==
S_OK,
"Error: Expected S_OK, but got 0x%08x instead.\n",
hr);
10961 hr = pCoInternetParseIUri(
NULL, PARSE_CANONICALIZE, 0, tmp, 3, &
result, 0);
10962 ok(
hr ==
E_INVALIDARG,
"Error: CoInternetParseIUri returned 0x%08x, expected 0x%08x.\n",
10964 ok(!
result,
"Error: Expected 'result' to be 0, but was %d.\n",
result);
10969 DWORD expected_len;
10972 hr = pCoInternetParseIUri(
uri, PARSE_CANONICALIZE, 0,
NULL, 0, &
result, 0);
10973 ok(
hr ==
E_INVALIDARG,
"Error: CoInternetParseIUri returned 0x%08x, expected 0x%08x.\n",
10975 ok(!
result,
"Error: Expected 'result' to be 0, but was %d.\n",
result);
10977 hr = pCoInternetParseIUri(
uri, PARSE_CANONICALIZE, 0, tmp, 3,
NULL, 0);
10978 ok(
hr ==
E_POINTER,
"Error: CoInternetParseIUri returned 0x%08x, expected 0x%08x.\n",
10982 hr = pCoInternetParseIUri(
uri, PARSE_SECURITY_URL, 0, tmp, 3, &
result, 0);
10983 ok(
hr ==
E_FAIL,
"Error: CoInternetParseIUri returned 0x%08x expected 0x%08x.\n",
10985 ok(!
result,
"Error: Expected 'result' to be 0, but was %d.\n",
result);
10988 hr = pCoInternetParseIUri(
uri, PARSE_MIME, 0, tmp, 3, &
result, 0);
10989 ok(
hr ==
E_FAIL,
"Error: CoInternetParseIUri returned 0x%08x, expected 0x%08x.\n",
10991 ok(!
result,
"Error: Expected 'result' to be 0, but was %d.\n",
result);
10994 hr = pCoInternetParseIUri(
uri, PARSE_SERVER, 0, tmp, 3, &
result, 0);
10995 ok(
hr ==
E_FAIL,
"Error: CoInternetParseIUri returned 0x%08x, expected 0x%08x.\n",
10997 ok(!
result,
"Error: Expected 'result' to be 0, but was %d.\n",
result);
11000 hr = pCoInternetParseIUri(
uri, PARSE_SECURITY_DOMAIN, 0, tmp, 3, &
result, 0);
11001 ok(
hr ==
E_FAIL,
"Error: CoInternetParseIUri returned 0x%08x, expected 0x%08x.\n",
11003 ok(!
result,
"Error: Expected 'result' to be 0, but was %d.\n",
result);
11007 hr = pCoInternetParseIUri(
uri, PARSE_CANONICALIZE, 0, tmp, 3, &
result, 0);
11009 "Error: CoInternetParseIUri returned 0x%08x, expected 0x%08x.\n",
11011 ok(
result == expected_len,
"Error: Expected 'result' to be %d, but was %d instead.\n",
11014 if(
uri) IUri_Release(
uri);
11027 hr = pCreateUri(longurl, 0, 0, &
uri);
11032 hr = pCoInternetParseIUri(
uri, PARSE_CANONICALIZE, 0, longurl,
len+1, &
result, 0);
11033 ok(
SUCCEEDED(
hr),
"Error: CoInternetParseIUri returned 0x%08x.\n",
hr);
11034 ok(!
lstrcmpW(longurl,
copy),
"Error: expected long url '%s' but was '%s'.\n",
11036 ok(
result ==
len,
"Error: Expected 'result' to be %d, but was %d instead.\n",
11041 if(
uri) IUri_Release(
uri);
11054 hr = pCreateUri(uriW,
test.uri_flags, 0, &
uri);
11055 ok(
SUCCEEDED(
hr),
"Error: CreateUri returned 0x%08x on uri_parse_tests[%d].\n",
hr,
i);
11058 DWORD result_len = -1;
11063 "Error: CoInternetParseIUri returned 0x%08x, expected 0x%08x on uri_parse_tests[%d].\n",
11068 "Error: Expected %s but got %s instead on uri_parse_tests[%d] - %s.\n",
11071 "Error: Expected %d, but got %d instead on uri_parse_tests[%d] - %s.\n",
11075 "Error: Expected 'result_len' to be 0, but was %d on uri_parse_tests[%d].\n",
11079 if(
uri) IUri_Release(
uri);
11089 ok(
SUCCEEDED(
hr),
"Error: Expected CreateUri to succeed, but got 0x%08x.\n",
hr);
11100 ok(
hr ==
S_OK,
"Error: CoInternetParseIUri returned 0x%08x, expected 0x%08x.\n",
hr,
S_OK);
11111 if(
uri) IUri_Release(
uri);
11127 "http://www.winehq.org",Uri_CREATE_NO_CANONICALIZE,
11129 "http://www.winehq.org/",
11130 "http://www.winehq.org/",
11131 "http://www.winehq.org",
11132 "http://www.winehq.org"
11135 "file://c:\\dir\\file.txt",Uri_CREATE_NO_CANONICALIZE,
11137 "file://c:\\dir\\file.txt",
11138 "file:///c:/dir/file.txt",
11139 "file:///c:/dir/file.txt",
11140 "file:///c:/dir/file.txt"
11143 "file://c:\\dir\\file.txt",Uri_CREATE_FILE_USE_DOS_PATH,
11145 "file://c:\\dir\\file.txt",
11146 "file:///c:/dir/file.txt",
11147 "file:///c:/dir/file.txt",
11148 "file://c:\\dir\\file.txt"
11151 "dat%61",Uri_CREATE_ALLOW_RELATIVE,
11152 "http://www.winehq.org",0,
11153 "http://www.winehq.org/data",
11154 "http://www.winehq.org/data",
11155 "http://www.winehq.org:80/data",
11158 "file.txt",Uri_CREATE_ALLOW_RELATIVE,
11159 "file://c:\\dir\\x.txt",Uri_CREATE_NO_CANONICALIZE,
11160 "file://c:\\dir\\file.txt",
11161 "file:///c:/dir/file.txt",
11162 "file:///c:/dir/file.txt",
11165 "",Uri_CREATE_ALLOW_RELATIVE,
11173 "test",Uri_CREATE_ALLOW_RELATIVE,
11181 "c:\\dir\\file.txt",Uri_CREATE_ALLOW_IMPLICIT_FILE_SCHEME,
11183 "file://c:\\dir\\file.txt",
11184 "file:///c:/dir/file.txt",
11185 "file:///c:/dir/file.txt",
11186 "file:///c:/dir/file.txt",
11189 "c:\\dir\\file.txt#frag|part",Uri_CREATE_ALLOW_IMPLICIT_FILE_SCHEME,
11191 "file://c:\\dir\\file.txt#frag|part",
11192 "file:///c:/dir/file.txt#frag%7Cpart",
11193 "file:///c:/dir/file.txt#frag%7Cpart",
11194 "file:///c:/dir/file.txt#frag%7Cpart",
11198#define test_urlmon_display_name(a,b) _test_urlmon_display_name(__LINE__,a,b)
11201 WCHAR *display_name;
11204 hres = IMoniker_GetDisplayName(mon,
NULL,
NULL, &display_name);
11206 ok_(__FILE__,
line)(!
strcmp_aw(exurl, display_name),
"unexpected display name: %s, expected %s\n",
11212#define test_display_uri(a,b) _test_display_uri(__LINE__,a,b)
11220 hres = IMoniker_QueryInterface(mon, &IID_IUriContainer, (
void**)&uri_container);
11221 ok(
hres ==
S_OK,
"Could not get IUriContainer iface: %08x\n",
hres);
11224 hres = IUriContainer_GetIUri(uri_container, &
uri);
11225 IUriContainer_Release(uri_container);
11229 hres = IUri_GetDisplayUri(
uri, &display_uri);
11232 ok_(__FILE__,
line)(!
strcmp_aw(exurl, display_uri),
"unexpected display uri: %s, expected %s\n",
11253 hres = pCreateURLMonikerEx2(
NULL, base_uri, &base_mon, URL_MK_NO_CANONICALIZE);
11264 IMoniker_Release(mon);
11266 hres = pCreateURLMonikerEx(base_mon,
url, &mon, URL_MK_LEGACY);
11270 IMoniker_Release(mon);
11272 hres = pCreateURLMonikerEx(base_mon,
url, &mon, URL_MK_UNIFORM);
11276 IMoniker_Release(mon);
11278 hres = pCreateURLMonikerEx(base_mon,
url, &mon, URL_MK_NO_CANONICALIZE);
11282 IMoniker_Release(mon);
11287 hres = pCreateURLMonikerEx2(base_mon,
uri, &mon, URL_MK_LEGACY);
11291 IMoniker_Release(mon);
11293 hres = pCreateURLMonikerEx2(base_mon,
uri, &mon, URL_MK_UNIFORM);
11297 IMoniker_Release(mon);
11299 hres = pCreateURLMonikerEx2(base_mon,
uri, &mon, URL_MK_NO_CANONICALIZE);
11303 IMoniker_Release(mon);
11309 IUri_Release(base_uri);
11311 IMoniker_Release(base_mon);
11316 if(!(
flags & Uri_CREATE_NO_CANONICALIZE))
11317 flags |= Uri_CREATE_CANONICALIZE;
11318 if(!(
flags & Uri_CREATE_NO_DECODE_EXTRA_INFO))
11319 flags |= Uri_CREATE_DECODE_EXTRA_INFO;
11320 if(!(
flags & Uri_CREATE_NO_CRACK_UNKNOWN_SCHEMES))
11321 flags |= Uri_CREATE_CRACK_UNKNOWN_SCHEMES;
11322 if(!(
flags & Uri_CREATE_NO_PRE_PROCESS_HTML_URI))
11323 flags |= Uri_CREATE_PRE_PROCESS_HTML_URI;
11324 if(!(
flags & Uri_CREATE_IE_SETTINGS))
11325 flags |= Uri_CREATE_NO_IE_SETTINGS;
11332 int i, props_order[Uri_PROPERTY_DWORD_LAST+1] = { 0 };
11334 props_order[Uri_PROPERTY_RAW_URI] = 1;
11335 props_order[Uri_PROPERTY_FRAGMENT] = 2;
11336 props_order[Uri_PROPERTY_HOST] = 3;
11337 props_order[Uri_PROPERTY_PASSWORD] = 4;
11338 props_order[Uri_PROPERTY_PATH] = 5;
11339 props_order[Uri_PROPERTY_PORT] = 6;
11340 props_order[Uri_PROPERTY_QUERY] = 7;
11341 props_order[Uri_PROPERTY_SCHEME_NAME] = 8;
11342 props_order[Uri_PROPERTY_USER_NAME] = 9;
11352 WCHAR str_data[1024];
11363 hr = pCreateUri(uriW,
test->create_flags, 0, &
uri);
11364 ok(
hr ==
S_OK,
"%d) CreateUri failed 0x%08x, expected S_OK..\n",
i,
hr);
11367 ok(
hr ==
S_OK,
"%d) QueryInterface failed 0x%08x, expected S_OK.\n",
i,
hr);
11370 ok(
hr ==
S_OK,
"CreateStreamOnHGlobal failed 0x%08x.\n",
hr);
11371 hr = IPersistStream_IsDirty(persist_stream);
11372 ok(
hr ==
S_FALSE,
"%d) IsDirty returned 0x%08x, expected S_FALSE.\n",
i,
hr);
11374 ok(
hr ==
S_OK,
"%d) Save failed 0x%08x, expected S_OK.\n",
i,
hr);
11375 hr = IPersistStream_IsDirty(persist_stream);
11376 ok(
hr ==
S_FALSE,
"%d) IsDirty returned 0x%08x, expected S_FALSE.\n",
i,
hr);
11378 hr = IStream_Seek(
stream, no_off, STREAM_SEEK_CUR, &
size);
11379 ok(
hr ==
S_OK,
"%d) Seek failed 0x%08x, expected S_OK.\n",
i,
hr);
11380 hr = IStream_Seek(
stream, no_off, STREAM_SEEK_SET,
NULL);
11381 ok(
hr ==
S_OK,
"%d) Seek failed 0x%08x, expected S_OK.\n",
i,
hr);
11382 hr = IPersistStream_GetSizeMax(persist_stream, &
max_size);
11383 ok(
hr ==
S_OK,
"%d) GetSizeMax failed 0x%08x, expected S_OK.\n",
i,
hr);
11385 "%d) Written data size is %d, max_size %d.\n",
11389 ok(
hr ==
S_OK,
"%d) Read failed 0x%08x, expected S_OK.\n",
i,
hr);
11390 ok(dw_data[0]-2 ==
U(
size).LowPart,
"%d) Structure size is %d, expected %d\n",
11391 i, dw_data[0]-2,
U(
size).LowPart);
11393 ok(
hr ==
S_OK,
"%d) Read failed 0x%08x, expected S_OK.\n",
i,
hr);
11394 ok(dw_data[0] == 0,
"%d) Incorrect value %x, expected 0 (unknown).\n",
i, dw_data[0]);
11395 ok(dw_data[1] == 0,
"%d) Incorrect value %x, expected 0 (unknown).\n",
i, dw_data[1]);
11397 "%d) Incorrect value %x, expected %x (creation flags).\n",
11399 ok(dw_data[3] == 0,
"%d) Incorrect value %x, expected 0 (unknown).\n",
i, dw_data[3]);
11400 ok(dw_data[4] == 0,
"%d) Incorrect value %x, expected 0 (unknown).\n",
i, dw_data[4]);
11401 ok(dw_data[5] == 0,
"%d) Incorrect value %x, expected 0 (unknown).\n",
i, dw_data[5]);
11405 if(!props_order[
props])
11408 if(
props <= Uri_PROPERTY_STRING_LAST) {
11412 if(
test->dword_props[
props-Uri_PROPERTY_DWORD_START].expected ==
S_OK)
11422 ok(
hr ==
S_OK,
"%d) Read failed 0x%08x, expected S_OK.\n",
i,
hr);
11423 ok(
props == props_no,
"%d) Properties no is %d, expected %d.\n",
i,
props, props_no);
11429 ok(
hr ==
S_OK,
"%d) Read failed 0x%08x, expected S_OK.\n",
i,
hr);
11431 ok(dw_data[2]<props_order[dw_data[0]],
11432 "%d) Incorrect properties order (%d, %d)\n",
11433 i, dw_data[0], dw_data[3]);
11434 dw_data[2] = props_order[dw_data[0]];
11435 dw_data[3] = dw_data[0];
11437 if(dw_data[0]<=Uri_PROPERTY_STRING_LAST) {
11439 hr = IStream_Read(
stream, (
void*)str_data, dw_data[1],
NULL);
11440 ok(
hr ==
S_OK,
"%d) Read failed 0x%08x, expected S_OK.\n",
i,
hr);
11442 "%d) Expected %s but got %s (%d).\n",
i, prop->
value,
wine_dbgstr_w(str_data), dw_data[0]);
11443 }
else if(dw_data[0]>=Uri_PROPERTY_DWORD_START && dw_data[0]<=Uri_PROPERTY_DWORD_LAST) {
11445 ok(dw_data[1] ==
sizeof(
DWORD),
"%d) Size of dword property is %d (%d)\n",
i, dw_data[1], dw_data[0]);
11447 ok(
hr ==
S_OK,
"%d) Read failed 0x%08x, expected S_OK.\n",
i,
hr);
11448 ok(prop->
value == dw_data[1],
"%d) Expected %d but got %d (%d).\n",
i, prop->
value, dw_data[1], dw_data[0]);
11450 ok(
FALSE,
"%d) Incorrect property type (%d)\n",
i, dw_data[0]);
11454 ok(
props == 0,
"%d) Not all properties were processed %d. Next property type: %d\n",
11459 hr = IStream_Seek(
stream, no_off, STREAM_SEEK_SET,
NULL);
11460 ok(
hr ==
S_OK,
"%d) Seek failed 0x%08x, expected S_OK.\n",
i,
hr);
11461 hr = IPersistStream_GetClassID(persist_stream, &curi);
11462 ok(
hr ==
S_OK,
"%d) GetClassID failed 0x%08x, expected S_OK.\n",
i,
hr);
11463 ok(
IsEqualCLSID(&curi, &CLSID_CUri),
"%d) GetClassID returned incorrect CLSID.\n",
i);
11464 IPersistStream_Release(persist_stream);
11467 &IID_IUri, (
void**)&
uri);
11468 ok(
hr ==
S_OK,
"%d) Error creating uninitialized Uri: 0x%08x.\n",
i,
hr);
11470 ok(
hr ==
S_OK,
"%d) QueryInterface failed 0x%08x, expected S_OK.\n",
i,
hr);
11471 hr = IPersistStream_Load(persist_stream,
stream);
11472 ok(
hr ==
S_OK,
"%d) Load failed 0x%08x, expected S_OK.\n",
i,
hr);
11473 hr = IUri_GetRawUri(
uri, &raw_uri);
11474 ok(
hr ==
S_OK,
"%d) GetRawUri failed 0x%08x, expected S_OK.\n",
i,
hr);
11476 ||
broken(
test->str_props[Uri_PROPERTY_RAW_URI].broken_value
11477 && !
strcmp_aw(
test->str_props[Uri_PROPERTY_RAW_URI].broken_value, raw_uri)),
11478 "%d) Expected %s but got %s.\n",
i,
test->str_props[Uri_PROPERTY_RAW_URI].
value,
11481 IPersistStream_Release(persist_stream);
11483 hr = IUri_QueryInterface(
uri, &IID_IMarshal, (
void**)&marshal);
11484 ok(
hr ==
S_OK,
"%d) QueryInterface(IID_IMarshal) failed 0x%08x, expected S_OK.\n",
i,
hr);
11485 hr = IStream_Seek(
stream, no_off, STREAM_SEEK_SET,
NULL);
11486 ok(
hr ==
S_OK,
"%d) Seek failed 0x%08x, expected S_OK.\n",
i,
hr);
11487 hr = IMarshal_MarshalInterface(marshal,
stream, &IID_IUri, (
void*)
uri,
11488 MSHCTX_DIFFERENTMACHINE,
NULL, MSHLFLAGS_NORMAL);
11489 ok(
hr ==
E_INVALIDARG,
"%d) MarshalInterface returned 0x%08x, expected E_INVALIDARG.\n",
i,
hr);
11490 hr = IMarshal_MarshalInterface(marshal,
stream, &IID_IUri, (
void*)
uri,
11491 MSHCTX_CROSSCTX,
NULL, MSHLFLAGS_NORMAL);
11492 ok(
hr ==
E_INVALIDARG,
"%d) MarshalInterface returned 0x%08x, expected E_INVALIDARG.\n",
i,
hr);
11493 hr = IMarshal_MarshalInterface(marshal,
stream, &IID_IUri, (
void*)
uri,
11494 MSHCTX_LOCAL,
NULL, MSHLFLAGS_TABLESTRONG);
11495 ok(
hr ==
E_INVALIDARG,
"%d) MarshalInterface returned 0x%08x, expected E_INVALIDARG.\n",
i,
hr);
11496 hr = IMarshal_MarshalInterface(marshal,
stream, &IID_IUri, (
void*)
uri,
11497 MSHCTX_LOCAL,
NULL, MSHLFLAGS_TABLEWEAK);
11498 ok(
hr ==
E_INVALIDARG,
"%d) MarshalInterface returned 0x%08x, expected E_INVALIDARG.\n",
i,
hr);
11499 hr = IMarshal_MarshalInterface(marshal,
stream, &IID_IUri, (
void*)
uri,
11500 MSHCTX_LOCAL,
NULL, MSHLFLAGS_NOPING);
11501 ok(
hr ==
E_INVALIDARG,
"%d) MarshalInterface returned 0x%08x, expected E_INVALIDARG.\n",
i,
hr);
11502 hr = IMarshal_MarshalInterface(marshal,
stream, &IID_IUri, (
void*)
uri,
11503 MSHCTX_LOCAL,
NULL, MSHLFLAGS_NORMAL);
11504 ok(
hr ==
S_OK,
"%d) MarshalInterface failed 0x%08x, expected S_OK.\n",
i,
hr);
11505 hr = IMarshal_GetUnmarshalClass(marshal, &IID_IUri, (
void*)
uri,
11506 MSHCTX_CROSSCTX,
NULL, MSHLFLAGS_NORMAL, &curi);
11507 ok(
hr ==
E_INVALIDARG,
"%d) GetUnmarshalClass returned 0x%08x, expected E_INVALIDARG.\n",
i,
hr);
11508 hr = IMarshal_GetUnmarshalClass(marshal, &IID_IUri, (
void*)
uri,
11509 MSHCTX_INPROC,
NULL, MSHLFLAGS_NORMAL, &curi);
11510 ok(
hr ==
S_OK,
"%d) GetUnmarshalClass failed 0x%08x, expected S_OK.\n",
i,
hr);
11511 ok(
IsEqualCLSID(&curi, &CLSID_CUri),
"%d) GetUnmarshalClass returned incorrect CLSID.\n",
i);
11513 hr = IStream_Seek(
stream, no_off, STREAM_SEEK_CUR, &
size);
11514 ok(
hr ==
S_OK,
"%d) Seek failed 0x%08x, expected S_OK.\n",
i,
hr);
11515 hr = IStream_Seek(
stream, no_off, STREAM_SEEK_SET,
NULL);
11516 ok(
hr ==
S_OK,
"%d) Seek failed 0x%08x, expected S_OK.\n",
i,
hr);
11518 ok(
hr ==
S_OK,
"%d) Read failed 0x%08x, expected S_OK.\n",
i,
hr);
11519 ok(dw_data[0]-2 ==
U(
size).LowPart,
"%d) Structure size is %d, expected %d\n",
11520 i, dw_data[0]-2,
U(
size).LowPart);
11521 ok(dw_data[1] == MSHCTX_LOCAL,
"%d) Incorrect value %d, expected MSHCTX_LOCAL.\n",
11523 ok(dw_data[2] == dw_data[0]-8,
"%d) Incorrect value %d, expected %d (PersistStream size).\n",
11524 i, dw_data[2], dw_data[0]-8);
11525 if(!
test->str_props[Uri_PROPERTY_PATH].
value[0] &&
11530 ok(dw_data[2] ==
U(
max_size).LowPart,
"%d) Incorrect value %d, expected %d (PersistStream size).\n",
11532 IMarshal_Release(marshal);
11535 hr = IStream_Seek(
stream, no_off, STREAM_SEEK_SET,
NULL);
11536 ok(
hr ==
S_OK,
"%d) Seek failed 0x%08x, expected S_OK.\n",
i,
hr);
11538 &IID_IUri, (
void**)&
uri);
11539 ok(
hr ==
S_OK,
"%d) Error creating uninitialized Uri: 0x%08x.\n",
i,
hr);
11540 hr = IUri_QueryInterface(
uri, &IID_IMarshal, (
void**)&marshal);
11541 ok(
hr ==
S_OK,
"%d) QueryInterface failed 0x%08x, expected S_OK.\n",
i,
hr);
11543 hr = IMarshal_UnmarshalInterface(marshal,
stream, &IID_IUri, (
void**)&
uri);
11544 ok(
hr ==
S_OK,
"%d) UnmarshalInterface failed 0x%08x, expected S_OK.\n",
i,
hr);
11545 hr = IUri_GetRawUri(
uri, &raw_uri);
11546 ok(
hr ==
S_OK,
"%d) GetRawUri failed 0x%08x, expected S_OK.\n",
i,
hr);
11548 ||
broken(
test->str_props[Uri_PROPERTY_RAW_URI].broken_value
11549 && !
strcmp_aw(
test->str_props[Uri_PROPERTY_RAW_URI].broken_value, raw_uri)),
11550 "%d) Expected %s but got %s.\n",
i,
test->str_props[Uri_PROPERTY_RAW_URI].
value,
11554 IMarshal_Release(marshal);
11555 IStream_Release(
stream);
11574 &IID_IUri, (
void**)&
uri);
11576 win_skip(
"Skipping uninitialized Uri tests.\n");
11580 hr = IUri_QueryInterface(
uri, &IID_IUriBuilderFactory, (
void**)&ubf);
11581 ok(
hr ==
S_OK,
"QueryInterface(IID_IUriBuillderFactory) failed: %x.\n",
hr);
11583 ok(
hr ==
S_OK,
"QueryInterface(IID_IPersistStream) failed: %x.\n",
hr);
11587 hr = IUri_GetAbsoluteUri(
uri, &bstr);
11589 hr = IUri_GetAuthority(
uri, &bstr);
11591 hr = IUri_GetDisplayUri(
uri, &bstr);
11593 hr = IUri_GetDomain(
uri, &bstr);
11595 hr = IUri_GetExtension(
uri, &bstr);
11597 hr = IUri_GetFragment(
uri, &bstr);
11599 hr = IUri_GetHost(
uri, &bstr);
11601 hr = IUri_GetHostType(
uri, &dword);
11603 hr = IUri_GetPassword(
uri, &bstr);
11605 hr = IUri_GetPassword(
uri, &bstr);
11607 hr = IUri_GetPathAndQuery(
uri, &bstr);
11608 ok(
hr ==
E_UNEXPECTED,
"GetPathAndQuery returned %x, expected E_UNEXPECTED.\n",
hr);
11609 hr = IUri_GetPort(
uri, &dword);
11611 hr = IUri_GetProperties(
uri, &dword);
11613 hr = IUri_GetPropertyBSTR(
uri, Uri_PROPERTY_RAW_URI, &bstr, 0);
11614 ok(
hr ==
E_UNEXPECTED,
"GetPropertyBSTR returned %x, expected E_UNEXPECTED.\n",
hr);
11615 hr = IUri_GetPropertyDWORD(
uri, Uri_PROPERTY_PORT, &dword, 0);
11616 ok(
hr ==
E_UNEXPECTED,
"GetPropertyDWORD returned %x, expected E_UNEXPECTED.\n",
hr);
11617 hr = IUri_GetPropertyLength(
uri, Uri_PROPERTY_RAW_URI, &dword, 0);
11618 ok(
hr ==
E_UNEXPECTED,
"GetPropertyLength returned %x, expected E_UNEXPECTED.\n",
hr);
11619 hr = IUri_GetQuery(
uri, &bstr);
11621 hr = IUri_GetRawUri(
uri, &bstr);
11623 hr = IUri_GetScheme(
uri, &dword);
11625 hr = IUri_GetSchemeName(
uri, &bstr);
11627 hr = IUri_GetUserInfo(
uri, &bstr);
11629 hr = IUri_GetUserName(
uri, &bstr);
11631 hr = IUri_GetZone(
uri, &dword);
11636 hr = IUriBuilderFactory_CreateInitializedIUriBuilder(ubf, 0, 0, &ub);
11637 ok(
hr ==
E_UNEXPECTED,
"CreateInitializedIUriBuilder returned %x, expected E_UNEXPECTED.\n",
hr);
11638 hr = IUriBuilderFactory_CreateIUriBuilder(ubf, 0, 0, &ub);
11639 ok(
hr ==
S_OK,
"CreateIUriBuilder returned %x, expected S_OK.\n",
hr);
11640 IUriBuilder_Release(ub);
11642 hr = IPersistStream_GetSizeMax(ps, &
ui);
11643 ok(
hr ==
S_OK,
"GetSizeMax returned %x, expected S_OK.\n",
hr);
11644 ok(
ui.u.LowPart == 34,
"ui.LowPart = %d, expected 34.\n",
ui.u.LowPart);
11645 hr = IPersistStream_IsDirty(ps);
11646 ok(
hr ==
S_FALSE,
"IsDirty returned %x, expected S_FALSE.\n",
hr);
11648 IPersistStream_Release(ps);
11649 IUriBuilderFactory_Release(ubf);
11657 pCoInternetGetSession = (
void*)
GetProcAddress(hurlmon,
"CoInternetGetSession");
11659 pCreateUriWithFragment = (
void*)
GetProcAddress(hurlmon,
"CreateUriWithFragment");
11660 pCreateIUriBuilder = (
void*)
GetProcAddress(hurlmon,
"CreateIUriBuilder");
11661 pCoInternetCombineIUri = (
void*)
GetProcAddress(hurlmon,
"CoInternetCombineIUri");
11662 pCoInternetCombineUrlEx = (
void*)
GetProcAddress(hurlmon,
"CoInternetCombineUrlEx");
11663 pCoInternetParseIUri = (
void*)
GetProcAddress(hurlmon,
"CoInternetParseIUri");
11664 pCreateURLMonikerEx = (
void*)
GetProcAddress(hurlmon,
"CreateURLMonikerEx");
11665 pCreateURLMonikerEx2 = (
void*)
GetProcAddress(hurlmon,
"CreateURLMonikerEx2");
11668 win_skip(
"CreateUri is not present, skipping tests.\n");
11672 trace(
"test CreateUri invalid flags...\n");
11675 trace(
"test CreateUri invalid args...\n");
11678 trace(
"test CreateUri invalid URIs...\n");
11681 trace(
"test IUri_GetPropertyBSTR...\n");
11684 trace(
"test IUri_GetPropertyDWORD...\n");
11687 trace(
"test IUri_GetStrProperties...\n");
11690 trace(
"test IUri_GetDwordProperties...\n");
11693 trace(
"test IUri_GetPropertyLength...\n");
11696 trace(
"test IUri_GetProperties...\n");
11699 trace(
"test IUri_HasProperty...\n");
11702 trace(
"test IUri_IsEqual...\n");
11705 trace(
"test CreateUriWithFragment invalid args...\n");
11708 trace(
"test CreateUriWithFragment invalid flags...\n");
11711 trace(
"test CreateUriWithFragment...\n");
11714 trace(
"test CreateIUriBuilder...\n");
11717 trace(
"test IUriBuilder_CreateInvalidArgs...\n");
11720 trace(
"test IUriBuilder...\n");
11723 trace(
"test IUriBuilder_GetInvalidArgs...\n");
11726 trace(
"test IUriBuilder_HasBeenModified...\n");
11729 trace(
"test IUriBuilder_IUriProperty...\n");
11732 trace(
"test IUriBuilder_RemoveProperties...\n");
11735 trace(
"test IUriBuilder miscellaneous...\n");
11738 trace(
"test IUriBuilderFactory...\n");
11741 trace(
"test CoInternetCombineIUri...\n");
11744 trace(
"test CoInternetCombineUrlEx...\n");
11747 trace(
"test CoInternetParseIUri Invalid Args...\n");
11750 trace(
"test CoInternetParseIUri...\n");
11755 trace(
"test CoInternetCombineIUri pluggable...\n");
11758 trace(
"test CoInternetCombineUrlEx Pluggable...\n");
11761 trace(
"test CoInternetParseIUri pluggable...\n");
11764 trace(
"test CreateURLMoniker...\n");
11769 trace(
"test IPersistStream...\n");
11772 trace(
"test uninitialized Uri...\n");
static WCHAR baseW[MAX_PATH]
ACPI_SIZE strlen(const char *String)
static void * heap_alloc(size_t len)
static BOOL heap_free(void *mem)
INT copy(TCHAR source[MAX_PATH], TCHAR dest[MAX_PATH], INT append, DWORD lpdwFlags, BOOL bTouch)
#define GetProcAddress(x, y)
#define MultiByteToWideChar
static const WCHAR valueW[]
HMODULE WINAPI DECLSPEC_HOTPATCH GetModuleHandleA(LPCSTR lpModuleName)
int WINAPI lstrcmpW(LPCWSTR str1, LPCWSTR str2)
HRESULT WINAPI DECLSPEC_HOTPATCH CoCreateInstance(REFCLSID rclsid, LPUNKNOWN pUnkOuter, DWORD dwClsContext, REFIID iid, LPVOID *ppv)
HRESULT WINAPI CoInitialize(LPVOID lpReserved)
void WINAPI DECLSPEC_HOTPATCH CoUninitialize(void)
HRESULT WINAPI CreateStreamOnHGlobal(HGLOBAL hGlobal, BOOL fDeleteOnRelease, LPSTREAM *ppstm)
static Uri * impl_from_IUri(IUri *iface)
#define INTERNET_MAX_URL_LENGTH
GLuint GLsizei GLsizei * length
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint GLint GLint j
static const WCHAR emptyW[]
VOID WINAPI CoTaskMemFree(LPVOID ptr)
int WINAPI lstrlenA(LPCSTR lpString)
#define memcpy(s1, s2, n)
#define eq(received, expected, label, type)
static const WCHAR invalidW[]
#define todo_wine_if(is_todo)
static const WCHAR invalid[]
static const WCHAR hostW[]
#define URI_BUILDER_STR_PROPERTY_COUNT
static void test_IUriBuilder_CreateInvalidArgs(void)
static void test_CreateIUriBuilder(void)
static HRESULT WINAPI custom_uri_GetPath(IUri *iface, BSTR *value)
static HRESULT WINAPI custom_uri_IsEqual(IUri *iface, IUri *pUri, BOOL *is_equal)
struct _uri_combine_str_property uri_combine_str_property
static HRESULT WINAPI custom_uri_GetPropertyLength(IUri *iface, Uri_PROPERTY property, DWORD *length, DWORD flags)
static void test_IUriBuilder_CreateUriWithFlags(IUriBuilder *builder, const uri_builder_test *test, DWORD test_index)
static IInternetProtocolInfo protocol_info
static const invalid_uri invalid_uri_tests[]
static void test_CoInternetCombineUrlEx_Pluggable(void)
static void test_CreateUri_InvalidUri(void)
static const WCHAR parse_resultW[]
static HRESULT WINAPI ClassFactory_LockServer(IClassFactory *iface, BOOL dolock)
static const uri_combine_test uri_combine_tests[]
static HRESULT WINAPI custom_uri_GetRawUri(IUri *iface, BSTR *value)
struct _uri_combine_test uri_combine_test
static HRESULT WINAPI custom_uri_GetZone(IUri *iface, DWORD *value)
static ULONG get_refcnt(IUri *uri)
static HRESULT WINAPI custom_uri_GetPort(IUri *iface, DWORD *value)
static PARSEACTION parse_action
static void test_IUriBuilder_CreateUri(IUriBuilder *builder, const uri_builder_test *test, DWORD test_index)
static DWORD compute_expected_props(uri_properties *test, DWORD *mask)
static void change_property(IUriBuilder *builder, const uri_builder_property *prop, DWORD test_index)
static HRESULT WINAPI ClassFactory_CreateInstance(IClassFactory *iface, IUnknown *pOuter, REFIID riid, void **ppv)
static void test_IUriBuilder_GetUserName(IUriBuilder *builder, const uri_builder_test *test, DWORD test_index)
static HRESULT WINAPI custom_uri_GetHost(IUri *iface, BSTR *value)
static void test_IUriBuilder_HasBeenModified(void)
static void test_IUri_HasProperty(void)
static HRESULT WINAPI InternetProtocolInfo_QueryInfo(IInternetProtocolInfo *iface, LPCWSTR pwzUrl, QUERYOPTION OueryOption, DWORD dwQueryFlags, LPVOID pBuffer, DWORD cbBuffer, DWORD *pcbBuf, DWORD dwReserved)
static const IClassFactoryVtbl ClassFactoryVtbl
static void test_IUriBuilder_RemoveProperties(void)
static void test_CoInternetParseIUri_Pluggable(void)
#define test_urlmon_display_name(a, b)
static void unregister_protocols(void)
static HRESULT WINAPI custom_uri_GetFragment(IUri *iface, BSTR *value)
struct _uri_builder_dword_property uri_builder_dword_property
static HRESULT WINAPI custom_uri_GetPropertyBSTR(IUri *iface, Uri_PROPERTY property, BSTR *value, DWORD flags)
static HRESULT WINAPI custom_uri_GetAuthority(IUri *iface, BSTR *value)
#define test_display_uri(a, b)
static HRESULT WINAPI custom_uri_GetUserName(IUri *iface, BSTR *value)
static const uri_builder_remove_test uri_builder_remove_tests[]
static void test_IUri_GetProperties(void)
static void test_CoInternetParseIUri(void)
static void test_IUriBuilder_GetPort(IUriBuilder *builder, const uri_builder_test *test, DWORD test_index)
static void test_IUriBuilder_GetHost(IUriBuilder *builder, const uri_builder_test *test, DWORD test_index)
static void test_IUriBuilder_GetPassword(IUriBuilder *builder, const uri_builder_test *test, DWORD test_index)
static void test_CreateURLMoniker(void)
static void test_CreateUriWithFragment_InvalidArgs(void)
static const WCHAR combine_relativeW[]
static void test_CoInternetCombineIUri_Pluggable(void)
#define CHECK_EXPECT(func)
static HRESULT WINAPI custom_uri_GetAbsoluteUri(IUri *iface, BSTR *value)
static void _test_urlmon_display_name(unsigned line, IMoniker *mon, const char *exurl)
#define URI_DWORD_PROPERTY_COUNT
struct _invalid_uri invalid_uri
struct _uri_create_flag_test uri_create_flag_test
static ULONG WINAPI ClassFactory_Release(IClassFactory *iface)
#define DEFINE_EXPECT(func)
static LPWSTR a2w(LPCSTR str)
static HRESULT WINAPI custom_uri_QueryInterface(IUri *iface, REFIID iid, void **out)
struct _uri_dword_property uri_dword_property
static void test_IUriBuilder_Misc(void)
static HRESULT WINAPI custom_uri_GetExtension(IUri *iface, BSTR *value)
static void test_CoInternetCombineIUri(void)
struct _uri_str_property uri_str_property
static DWORD strcmp_aw(LPCSTR strA, LPCWSTR strB)
static HRESULT WINAPI custom_uri_GetDisplayUri(IUri *iface, BSTR *value)
struct _uri_builder_str_property uri_builder_str_property
static HRESULT WINAPI InternetProtocolInfo_CompareUrl(IInternetProtocolInfo *iface, LPCWSTR pwzUrl1, LPCWSTR pwzUrl2, DWORD dwCompareFlags)
static void test_CreateUri_InvalidFlags(void)
static void test_IUri_GetPropertyBSTR(void)
static void test_IUri_GetDwordProperties(void)
static void test_IUri_GetPropertyDWORD(void)
static const uri_equality equality_tests[]
static HRESULT WINAPI InternetProtocolInfo_CombineUrl(IInternetProtocolInfo *iface, LPCWSTR pwzBaseUrl, LPCWSTR pwzRelativeUrl, DWORD dwCombineFlags, LPWSTR pwzResult, DWORD cchResult, DWORD *pcchResult, DWORD dwReserved)
static void test_CoInternetParseIUri_InvalidArgs(void)
static void test_IUriBuilder_GetPath(IUriBuilder *builder, const uri_builder_test *test, DWORD test_index)
static void test_IUriBuilder_IUriProperty(void)
static const create_urlmon_test_t create_urlmon_tests[]
static void register_protocols(void)
struct _uri_parse_test uri_parse_test
static void test_UninitializedUri(void)
static ULONG WINAPI InternetProtocolInfo_AddRef(IInternetProtocolInfo *iface)
static HRESULT WINAPI ClassFactory_QueryInterface(IClassFactory *iface, REFIID riid, void **ppv)
static void test_IUri_GetStrProperties(void)
static void test_IUriBuilder_GetInvalidArgs(void)
static void test_IUriBuilder_GetQuery(IUriBuilder *builder, const uri_builder_test *test, DWORD test_index)
static void test_CreateUriWithFragment(void)
static HRESULT WINAPI custom_uri_GetSchemeName(IUri *iface, BSTR *value)
static const WCHAR combine_resultW[]
static void _test_display_uri(unsigned line, IMoniker *mon, const char *exurl)
static HRESULT WINAPI custom_uri_GetPathAndQuery(IUri *iface, BSTR *value)
static HRESULT WINAPI custom_uri_GetScheme(IUri *iface, DWORD *value)
static const WCHAR http_url_fragW[]
static HRESULT WINAPI custom_uri_HasProperty(IUri *iface, Uri_PROPERTY property, BOOL *has_property)
static HRESULT WINAPI custom_uri_GetUserInfo(IUri *iface, BSTR *value)
static const uri_properties uri_tests[]
static const WCHAR winetestW[]
static IUri **static LPCWSTR
#define CHECK_CALLED(func)
static ULONG WINAPI custom_uri_AddRef(IUri *iface)
static const uri_parse_test uri_parse_tests[]
static void test_IUriBuilder_GetSchemeName(IUriBuilder *builder, const uri_builder_test *test, DWORD test_index)
static int add_default_flags(DWORD flags)
struct _uri_builder_remove_test uri_builder_remove_test
static void test_IUriBuilderFactory(void)
struct _uri_equality uri_equality
static ULONG WINAPI ClassFactory_AddRef(IClassFactory *iface)
static void test_IPersistStream(void)
static const uri_with_fragment uri_fragment_tests[]
static ULONG WINAPI InternetProtocolInfo_Release(IInternetProtocolInfo *iface)
static void test_IUri_IsEqual(void)
static void test_IUri_GetPropertyLength(void)
static ULONG WINAPI custom_uri_Release(IUri *iface)
static HRESULT WINAPI InternetProtocolInfo_QueryInterface(IInternetProtocolInfo *iface, REFIID riid, void **ppv)
#define URI_STR_PROPERTY_COUNT
static void test_IUriBuilder(void)
static const WCHAR combine_baseW[]
static HRESULT WINAPI InternetProtocolInfo_ParseUrl(IInternetProtocolInfo *iface, LPCWSTR pwzUrl, PARSEACTION ParseAction, DWORD dwParseFlags, LPWSTR pwzResult, DWORD cchResult, DWORD *pcchResult, DWORD dwReserved)
static const WCHAR parse_urlW[]
static HRESULT WINAPI custom_uri_GetQuery(IUri *iface, BSTR *value)
struct _uri_builder_port uri_builder_port
static HRESULT WINAPI custom_uri_GetPassword(IUri *iface, BSTR *value)
static void test_CreateUriWithFragment_InvalidFlags(void)
static IClassFactory protocol_cf
struct _uri_builder_property uri_builder_property
static HRESULT WINAPI custom_uri_GetHostType(IUri *iface, DWORD *value)
struct _uri_builder_test uri_builder_test
static HRESULT WINAPI custom_uri_GetPropertyDWORD(IUri *iface, Uri_PROPERTY property, DWORD *value, DWORD flags)
static const uri_create_flag_test invalid_flag_tests[]
static void test_IUriBuilder_GetFragment(IUriBuilder *builder, const uri_builder_test *test, DWORD test_index)
static const IUriVtbl custom_uri_vtbl
static void test_IUriBuilder_CreateUriSimple(IUriBuilder *builder, const uri_builder_test *test, DWORD test_index)
static const uri_builder_test uri_builder_tests[]
static void test_CreateUri_InvalidArgs(void)
static void test_CoInternetCombineUrlEx(void)
static HRESULT WINAPI custom_uri_GetDomain(IUri *iface, BSTR *value)
struct _uri_with_fragment uri_with_fragment
static HRESULT WINAPI custom_uri_GetProperties(IUri *iface, DWORD *flags)
static const IInternetProtocolInfoVtbl InternetProtocolInfoVtbl
struct _uri_properties uri_properties
static const WCHAR http_urlW[]
_In_ HANDLE _In_ DWORD _In_ DWORD _Inout_opt_ LPOVERLAPPED _In_opt_ LPTRANSMIT_FILE_BUFFERS _In_ DWORD dwReserved
UINT WINAPI SysStringLen(BSTR str)
void WINAPI DECLSPEC_HOTPATCH SysFreeString(BSTR str)
const GUID IID_IPersistStream
#define DEFINE_GUID(name, l, w1, w2, b1, b2, b3, b4, b5, b6, b7, b8)
#define IsEqualGUID(rguid1, rguid2)
#define IsEqualIID(riid1, riid2)
#define IsEqualCLSID(rclsid1, rclsid2)
#define URL_ESCAPE_UNSAFE
#define URL_ESCAPE_SPACES_ONLY
#define URL_DONT_SIMPLIFY
#define URL_FILE_USE_PATHURL
#define URL_DONT_UNESCAPE_EXTRA_INFO
#define URL_ESCAPE_PERCENT
#define STRSAFE_E_INSUFFICIENT_BUFFER
const char * expected_value
const char * expected_uri
HRESULT create_builder_expected
DWORD uri_simple_encode_flags
uri_builder_property properties[URI_BUILDER_STR_PROPERTY_COUNT]
DWORD uri_with_encode_flags
uri_builder_str_property expected_str_props[URI_STR_PROPERTY_COUNT]
uri_builder_dword_property expected_dword_props[URI_DWORD_PROPERTY_COUNT]
DWORD uri_with_builder_flags
uri_builder_port port_prop
HRESULT create_builder_expected
const char * broken_value
const char * relative_uri
uri_combine_str_property str_props[URI_STR_PROPERTY_COUNT]
DWORD relative_create_flags
uri_dword_property dword_props[URI_DWORD_PROPERTY_COUNT]
uri_str_property str_props[URI_STR_PROPERTY_COUNT]
uri_dword_property dword_props[URI_DWORD_PROPERTY_COUNT]
const char * broken_value
const char * expected_uri
const char * no_canon_url
#define CONTAINING_RECORD(address, type, field)
HRESULT WINAPI CreateURLMoniker(IMoniker *pmkContext, LPCWSTR szURL, IMoniker **ppmk)
static const WCHAR props[]
wchar_t tm const _CrtWcstime_Writes_and_advances_ptr_ count wchar_t ** out