27#define WIN32_LEAN_AND_MEAN
37DEFINE_GUID(CLSID_CUri, 0xDF2FCE13, 0x25EC, 0x45BB, 0x9D,0x4C, 0xCE,0xCD,0x47,0xC2,0x43,0x0C);
39#define URI_STR_PROPERTY_COUNT Uri_PROPERTY_STRING_LAST+1
40#define URI_DWORD_PROPERTY_COUNT (Uri_PROPERTY_DWORD_LAST - Uri_PROPERTY_DWORD_START)+1
41#define URI_BUILDER_STR_PROPERTY_COUNT 7
43#define DEFINE_EXPECT(func) \
44 static BOOL expect_ ## func = FALSE, called_ ## func = FALSE
46#define SET_EXPECT(func) \
47 expect_ ## func = TRUE
49#define CHECK_EXPECT(func) \
51 ok(expect_ ##func, "unexpected call " #func "\n"); \
52 expect_ ## func = FALSE; \
53 called_ ## func = TRUE; \
56#define CHECK_EXPECT2(func) \
58 ok(expect_ ##func, "unexpected call " #func "\n"); \
59 called_ ## func = TRUE; \
62#define CHECK_CALLED(func) \
64 ok(called_ ## func, "expected " #func "\n"); \
65 expect_ ## func = called_ ## func = FALSE; \
81static const WCHAR http_urlW[] = {
'h',
't',
't',
'p',
':',
'/',
'/',
'w',
'w',
'w',
'.',
'w',
'i',
'n',
'e',
'h',
'q',
82 '.',
'o',
'r',
'g',
'/',0};
83static const WCHAR http_url_fragW[] = {
'h',
't',
't',
'p',
':',
'/',
'/',
'w',
'w',
'w',
'.',
'w',
'i',
'n',
'e',
'h',
'q',
84 '.',
'o',
'r',
'g',
'/',
'#',
'F',
'r',
'a',
'g',0};
86static const WCHAR combine_baseW[] = {
'w',
'i',
'n',
'e',
't',
'e',
's',
't',
':',
'?',
't',
87 'e',
's',
't',
'i',
'n',
'g',0};
93static const WCHAR parse_urlW[] = {
'w',
'i',
'n',
'e',
't',
'e',
's',
't',
':',
't',
'e',
's',
't',0};
106 {Uri_CREATE_DECODE_EXTRA_INFO | Uri_CREATE_NO_DECODE_EXTRA_INFO,
E_INVALIDARG},
107 {Uri_CREATE_CANONICALIZE | Uri_CREATE_NO_CANONICALIZE,
E_INVALIDARG},
108 {Uri_CREATE_CRACK_UNKNOWN_SCHEMES | Uri_CREATE_NO_CRACK_UNKNOWN_SCHEMES,
E_INVALIDARG},
109 {Uri_CREATE_PRE_PROCESS_HTML_URI | Uri_CREATE_NO_PRE_PROCESS_HTML_URI,
E_INVALIDARG},
110 {Uri_CREATE_IE_SETTINGS | Uri_CREATE_NO_IE_SETTINGS,
E_INVALIDARG}
141 {
"http://www.winehq.org/tests/../tests/../..", 0,
S_OK,
FALSE, 0,
154 {
"http://www.winehq.org/tests/../tests/../..",
S_OK,
FALSE},
166 {
"http://winehq.org/tests/.././tests", 0,
S_OK,
FALSE, 0,
179 {
"http://winehq.org/tests/.././tests",
S_OK,
FALSE},
191 {
"HtTp://www.winehq.org/tests/..?query=x&return=y", 0,
S_OK,
FALSE, 0,
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, 0,
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, 0,
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, 0,
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, 0,
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, 0,
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, 0,
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, 0,
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, 0,
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, 0,
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, 0,
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, 0,
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},
491 {
"ftp://[::13.1.68.3]", 0,
S_OK,
FALSE, 0,
516 {
"http://[FEDC:BA98:0:0:0:0:0:3210]", 0,
S_OK,
FALSE, 0,
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, 0,
567 {
"C:/test/test.mp3", Uri_CREATE_ALLOW_IMPLICIT_FILE_SCHEME,
S_OK,
FALSE, 0,
593 {
"\\\\Server/test.mp3", Uri_CREATE_ALLOW_IMPLICIT_FILE_SCHEME,
S_OK,
FALSE, 0,
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, 0,
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, 0,
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, 0,
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, 0,
719 {
"*:www.winehq.org/test", 0,
S_OK,
FALSE, 0,
744 {
"/../some dir/test.ext", Uri_CREATE_ALLOW_RELATIVE,
S_OK,
FALSE, 0,
769 {
"//implicit/wildcard/uri scheme", Uri_CREATE_ALLOW_RELATIVE|Uri_CREATE_ALLOW_IMPLICIT_WILDCARD_SCHEME,
S_OK,
FALSE, 0,
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, 0,
821 {
"ftp://user:pass:word@winehq.org/", 0,
S_OK,
FALSE, 0,
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, 0,
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, 0,
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, 0,
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, 0,
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, 0,
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, 0,
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, 0,
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, 0,
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, 0,
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, 0,
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, 0,
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, 0,
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, 0,
1183 {
"http://127.0.0.1:8000", 0,
S_OK,
FALSE, 0,
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},
1261 {
"http://4294967295/", 0,
S_OK,
FALSE, 0,
1287 {
"http://4294967296/", 0,
S_OK,
FALSE, 0,
1313 {
"1234://4294967295/", 0,
S_OK,
FALSE, 0,
1364 {
"http://[FEDC:BA98::3210]", 0,
S_OK,
FALSE, 0,
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, 0,
1440 {
"http://[1::3:4:5:6:7:8]", 0,
S_OK,
FALSE, 0,
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, 0,
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, 0,
1545 {
"http://www.google.com]:12345/", 0,
S_OK,
FALSE, 0,
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, 0,
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},
1597 {
"zip://GOOGLE.com/", 0,
S_OK,
FALSE, 0,
1623 {
"http://WWW.GOOGLE.com/", 0,
S_OK,
FALSE, 0,
1651 {
"http://www.%7Cgoogle|.com/", 0,
S_OK,
FALSE, 0,
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, 0,
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, 0,
1716 {
"http://[::001.002.003.000]",
S_OK,
FALSE},
1728 {
"http://[::5efe:1.2.3.4]", 0,
S_OK,
FALSE, 0,
1730 {
"http://[::5efe:1.2.3.4]/",
S_OK,
FALSE},
1732 {
"http://[::5efe:1.2.3.4]/",
S_OK,
FALSE},
1754 {
"zip://[0001:0:000:0004:0005:0006:001.002.003.000]", 0,
S_OK,
FALSE, 0,
1756 {
"zip://[0001:0:000:0004:0005:0006:001.002.003.000]/",
S_OK,
FALSE},
1757 {
"[0001:0:000:0004:0005:0006:001.002.003.000]",
S_OK,
FALSE},
1758 {
"zip://[0001:0:000:0004:0005:0006:001.002.003.000]/",
S_OK,
FALSE},
1762 {
"0001:0:000:0004:0005:0006:001.002.003.000",
S_OK,
FALSE},
1767 {
"zip://[0001:0:000:0004:0005:0006:001.002.003.000]",
S_OK,
FALSE},
1780 {
"http://[ffff::192.222.111.32]", 0,
S_OK,
FALSE, 0,
1782 {
"http://[ffff::c0de:6f20]/",
S_OK,
FALSE},
1784 {
"http://[ffff::c0de:6f20]/",
S_OK,
FALSE},
1793 {
"http://[ffff::192.222.111.32]",
S_OK,
FALSE},
1806 {
"http://google.com:65535", 0,
S_OK,
FALSE, 0,
1808 {
"http://google.com:65535/",
S_OK,
FALSE},
1810 {
"http://google.com:65535/",
S_OK,
FALSE},
1831 {
"zip://google.com:65536", 0,
S_OK,
FALSE, 0,
1856 {
"zip://google.com:65536:25", 0,
S_OK,
FALSE, 0,
1858 {
"zip://google.com:65536:25/",
S_OK,
FALSE},
1860 {
"zip://google.com:65536:25/",
S_OK,
FALSE},
1869 {
"zip://google.com:65536:25",
S_OK,
FALSE},
1881 {
"zip://[::ffff]:abcd", 0,
S_OK,
FALSE, 0,
1906 {
"zip://127.0.0.1:abcd", 0,
S_OK,
FALSE, 0,
1932 {
"http://google.com:00035", Uri_CREATE_NO_CANONICALIZE,
S_OK,
FALSE, 0,
1936 {
"http://google.com:00035",
S_OK,
FALSE,
"http://google.com:35"},
1958 {
"http://google.com:80", Uri_CREATE_NO_CANONICALIZE,
S_OK,
FALSE, 0,
1983 {
"http://google.com.uk", 0,
S_OK,
FALSE, 0,
2008 {
"http://google.co.uk", 0,
S_OK,
FALSE, 0,
2033 {
"http://google.com.com", 0,
S_OK,
FALSE, 0,
2058 {
"http://google.uk.1", 0,
S_OK,
FALSE, 0,
2084 {
"http://google.foo.uk", 0,
S_OK,
FALSE, 0,
2159 {
"http://www.co.google.com.[]", 0,
S_OK,
FALSE, 0,
2161 {
"http://www.co.google.com.[]/",
S_OK,
FALSE},
2163 {
"http://www.co.google.com.[]/",
S_OK,
FALSE},
2172 {
"http://www.co.google.com.[]",
S_OK,
FALSE},
2209 {
"http://www.co.google.us.test", 0,
S_OK,
FALSE, 0,
2211 {
"http://www.co.google.us.test/",
S_OK,
FALSE},
2213 {
"http://www.co.google.us.test/",
S_OK,
FALSE},
2222 {
"http://www.co.google.us.test",
S_OK,
FALSE},
2259 {
"zip://www.google.com\\test", Uri_CREATE_NO_CANONICALIZE,
S_OK,
FALSE, 0,
2261 {
"zip://www.google.com\\test",
S_OK,
FALSE},
2263 {
"zip://www.google.com\\test",
S_OK,
FALSE},
2272 {
"zip://www.google.com\\test",
S_OK,
FALSE},
2284 {
"urn:excepts:bad:%XY:encoded", 0,
S_OK,
FALSE, 0,
2286 {
"urn:excepts:bad:%XY:encoded",
S_OK,
FALSE},
2288 {
"urn:excepts:bad:%XY:encoded",
S_OK,
FALSE},
2297 {
"urn:excepts:bad:%XY:encoded",
S_OK,
FALSE},
2312 {
"file://C:/te%3Es%2Et/tes%t.mp3", 0,
S_OK,
FALSE, 0,
2314 {
"file:///C:/te%253Es%252Et/tes%25t.mp3",
S_OK,
FALSE},
2316 {
"file:///C:/te%253Es%252Et/tes%25t.mp3",
S_OK,
FALSE},
2322 {
"/C:/te%253Es%252Et/tes%25t.mp3",
S_OK,
FALSE},
2323 {
"/C:/te%253Es%252Et/tes%25t.mp3",
S_OK,
FALSE},
2325 {
"file://C:/te%3Es%2Et/tes%t.mp3",
S_OK,
FALSE},
2340 {
"file:///C:/te%3Es%2Et/t%23es%t.mp3", 0,
S_OK,
FALSE, 0,
2342 {
"file:///C:/te%3Es.t/t#es%25t.mp3",
S_OK,
FALSE},
2344 {
"file:///C:/te%3Es.t/t#es%25t.mp3",
S_OK,
FALSE},
2350 {
"/C:/te%3Es.t/t#es%25t.mp3",
S_OK,
FALSE},
2351 {
"/C:/te%3Es.t/t#es%25t.mp3",
S_OK,
FALSE},
2353 {
"file:///C:/te%3Es%2Et/t%23es%t.mp3",
S_OK,
FALSE},
2366 {
"http://[::001.002.003.000]/%3F%23%2E%54/test", 0,
S_OK,
FALSE, 0,
2368 {
"http://[::1.2.3.0]/%3F%23.T/test",
S_OK,
FALSE},
2370 {
"http://[::1.2.3.0]/%3F%23.T/test",
S_OK,
FALSE},
2379 {
"http://[::001.002.003.000]/%3F%23%2E%54/test",
S_OK,
FALSE},
2392 {
"file:///C:/\"test\"/test.mp3", Uri_CREATE_NO_ENCODE_FORBIDDEN_CHARACTERS,
S_OK,
FALSE, 0,
2394 {
"file:///C:/%22test%22/test.mp3",
S_OK,
FALSE},
2396 {
"file:///C:/%22test%22/test.mp3",
S_OK,
FALSE},
2405 {
"file:///C:/\"test\"/test.mp3",
S_OK,
FALSE},
2418 {
"1234://4294967295/<|>\" test<|>", 0,
S_OK,
FALSE, 0,
2420 {
"1234://4294967295/<|>\" test<|>",
S_OK,
FALSE},
2422 {
"1234://4294967295/<|>\" test<|>",
S_OK,
FALSE},
2431 {
"1234://4294967295/<|>\" test<|>",
S_OK,
FALSE},
2444 {
"http://gov.uk/<|> test<|>", 0,
S_OK,
FALSE, 0,
2446 {
"http://gov.uk/%3C%7C%3E%20test%3C%7C%3E",
S_OK,
FALSE},
2448 {
"http://gov.uk/%3C%7C%3E%20test%3C%7C%3E",
S_OK,
FALSE},
2454 {
"/%3C%7C%3E%20test%3C%7C%3E",
S_OK,
FALSE},
2455 {
"/%3C%7C%3E%20test%3C%7C%3E",
S_OK,
FALSE},
2457 {
"http://gov.uk/<|> test<|>",
S_OK,
FALSE},
2469 {
"http://gov.uk/test/../test2/././../test3/.././././", 0,
S_OK,
FALSE, 0,
2482 {
"http://gov.uk/test/../test2/././../test3/.././././",
S_OK,
FALSE},
2494 {
"http://gov.uk/test/test2/../../..", 0,
S_OK,
FALSE, 0,
2507 {
"http://gov.uk/test/test2/../../..",
S_OK,
FALSE},
2519 {
"http://gov.uk/test/test2/../../.", 0,
S_OK,
FALSE, 0,
2532 {
"http://gov.uk/test/test2/../../.",
S_OK,
FALSE},
2544 {
"file://c:\\tests\\../tests\\./.\\..\\foo%20bar.mp3", 0,
S_OK,
FALSE, 0,
2546 {
"file:///c:/foo%2520bar.mp3",
S_OK,
FALSE},
2548 {
"file:///c:/foo%2520bar.mp3",
S_OK,
FALSE},
2557 {
"file://c:\\tests\\../tests\\./.\\..\\foo%20bar.mp3",
S_OK,
FALSE},
2570 {
"zip://gov.uk/test/test2/../../.", 0,
S_OK,
FALSE, 0,
2583 {
"zip://gov.uk/test/test2/../../.",
S_OK,
FALSE},
2596 {
"http://gov.uk/test/test2/../../.", Uri_CREATE_NO_CANONICALIZE,
S_OK,
FALSE, 0,
2598 {
"http://gov.uk/test/test2/../../.",
S_OK,
FALSE},
2600 {
"http://gov.uk/test/test2/../../.",
S_OK,
FALSE},
2609 {
"http://gov.uk/test/test2/../../.",
S_OK,
FALSE},
2622 {
"*:gov.uk/test/test2/../../.", 0,
S_OK,
FALSE, 0,
2624 {
"*:gov.uk/test/test2/../../.",
S_OK,
FALSE},
2626 {
"*:gov.uk/test/test2/../../.",
S_OK,
FALSE},
2635 {
"*:gov.uk/test/test2/../../.",
S_OK,
FALSE},
2648 {
"mailto:\"acco<|>unt@example.com\"", 0,
S_OK,
FALSE, 0,
2650 {
"mailto:%22acco%3C%7C%3Eunt@example.com%22",
S_OK,
FALSE},
2652 {
"mailto:%22acco%3C%7C%3Eunt@example.com%22",
S_OK,
FALSE},
2658 {
"%22acco%3C%7C%3Eunt@example.com%22",
S_OK,
FALSE},
2659 {
"%22acco%3C%7C%3Eunt@example.com%22",
S_OK,
FALSE},
2661 {
"mailto:\"acco<|>unt@example.com\"",
S_OK,
FALSE},
2673 {
"news:test.tes<|>t.com", 0,
S_OK,
FALSE, 0,
2675 {
"news:test.tes%3C%7C%3Et.com",
S_OK,
FALSE},
2677 {
"news:test.tes%3C%7C%3Et.com",
S_OK,
FALSE},
2699 {
"news:test.tes<|>t.com", Uri_CREATE_NO_ENCODE_FORBIDDEN_CHARACTERS,
S_OK,
FALSE, 0,
2725 {
"urn:test.tes<|>t.com", 0,
S_OK,
FALSE, 0,
2751 {
"news:test.%74%65%73%74.com", 0,
S_OK,
FALSE, 0,
2764 {
"news:test.%74%65%73%74.com",
S_OK,
FALSE},
2777 {
"news:test.%74%65%73%74.com", Uri_CREATE_NO_CANONICALIZE,
S_OK,
FALSE, 0,
2790 {
"news:test.%74%65%73%74.com",
S_OK,
FALSE},
2803 {
"urn:test.%74%65%73%74.com", 0,
S_OK,
FALSE, 0,
2805 {
"urn:test.%74%65%73%74.com",
S_OK,
FALSE},
2807 {
"urn:test.%74%65%73%74.com",
S_OK,
FALSE},
2816 {
"urn:test.%74%65%73%74.com",
S_OK,
FALSE},
2829 {
"zip://www.winehq.org/tests/..?query=%xx&return=y", 0,
S_OK,
FALSE, 0,
2831 {
"zip://www.winehq.org/?query=%xx&return=y",
S_OK,
FALSE},
2833 {
"zip://www.winehq.org/?query=%xx&return=y",
S_OK,
FALSE},
2842 {
"zip://www.winehq.org/tests/..?query=%xx&return=y",
S_OK,
FALSE},
2855 {
"http://www.winehq.org/tests/..?query=%xx&return=y", Uri_CREATE_NO_DECODE_EXTRA_INFO,
S_OK,
FALSE, 0,
2857 {
"http://www.winehq.org/?query=%xx&return=y",
S_OK,
FALSE},
2859 {
"http://www.winehq.org/?query=%xx&return=y",
S_OK,
FALSE},
2868 {
"http://www.winehq.org/tests/..?query=%xx&return=y",
S_OK,
FALSE},
2881 {
"http://www.winehq.org/tests/..?query=<|>&return=y", Uri_CREATE_NO_DECODE_EXTRA_INFO,
S_OK,
FALSE, 0,
2883 {
"http://www.winehq.org/?query=<|>&return=y",
S_OK,
FALSE},
2885 {
"http://www.winehq.org/?query=<|>&return=y",
S_OK,
FALSE},
2894 {
"http://www.winehq.org/tests/..?query=<|>&return=y",
S_OK,
FALSE},
2907 {
"http://www.winehq.org/tests/..?query=<|>&return=y", Uri_CREATE_NO_ENCODE_FORBIDDEN_CHARACTERS,
S_OK,
FALSE, 0,
2909 {
"http://www.winehq.org/?query=<|>&return=y",
S_OK,
FALSE},
2911 {
"http://www.winehq.org/?query=<|>&return=y",
S_OK,
FALSE},
2920 {
"http://www.winehq.org/tests/..?query=<|>&return=y",
S_OK,
FALSE},
2933 {
"http://www.winehq.org/tests/..?query=<|>&return=y", 0,
S_OK,
FALSE, 0,
2935 {
"http://www.winehq.org/?query=%3C%7C%3E&return=y",
S_OK,
FALSE},
2937 {
"http://www.winehq.org/?query=%3C%7C%3E&return=y",
S_OK,
FALSE},
2944 {
"/?query=%3C%7C%3E&return=y",
S_OK,
FALSE},
2945 {
"?query=%3C%7C%3E&return=y",
S_OK,
FALSE},
2946 {
"http://www.winehq.org/tests/..?query=<|>&return=y",
S_OK,
FALSE},
2959 {
"zip://www.winehq.org/tests/..?query=<|>&return=y", 0,
S_OK,
FALSE, 0,
2961 {
"zip://www.winehq.org/?query=<|>&return=y",
S_OK,
FALSE},
2963 {
"zip://www.winehq.org/?query=<|>&return=y",
S_OK,
FALSE},
2972 {
"zip://www.winehq.org/tests/..?query=<|>&return=y",
S_OK,
FALSE},
2985 {
"http://www.winehq.org/tests/..?query=%30%31&return=y", 0,
S_OK,
FALSE, 0,
2987 {
"http://www.winehq.org/?query=01&return=y",
S_OK,
FALSE},
2989 {
"http://www.winehq.org/?query=01&return=y",
S_OK,
FALSE},
2998 {
"http://www.winehq.org/tests/..?query=%30%31&return=y",
S_OK,
FALSE},
3011 {
"zip://www.winehq.org/tests/..?query=%30%31&return=y", 0,
S_OK,
FALSE, 0,
3013 {
"zip://www.winehq.org/?query=%30%31&return=y",
S_OK,
FALSE},
3015 {
"zip://www.winehq.org/?query=%30%31&return=y",
S_OK,
FALSE},
3024 {
"zip://www.winehq.org/tests/..?query=%30%31&return=y",
S_OK,
FALSE},
3037 {
"http://www.winehq.org/tests/..?query=%30%31&return=y", Uri_CREATE_NO_DECODE_EXTRA_INFO,
S_OK,
FALSE, 0,
3039 {
"http://www.winehq.org/?query=%30%31&return=y",
S_OK,
FALSE},
3041 {
"http://www.winehq.org/?query=%30%31&return=y",
S_OK,
FALSE},
3050 {
"http://www.winehq.org/tests/..?query=%30%31&return=y",
S_OK,
FALSE},
3062 {
"http://www.winehq.org?query=12&return=y", Uri_CREATE_NO_CANONICALIZE,
S_OK,
FALSE, 0,
3064 {
"http://www.winehq.org?query=12&return=y",
S_OK,
FALSE},
3066 {
"http://www.winehq.org?query=12&return=y",
S_OK,
FALSE},
3075 {
"http://www.winehq.org?query=12&return=y",
S_OK,
FALSE},
3088 {
"zip://www.winehq.org/tests/#Te%xx", 0,
S_OK,
FALSE, 0,
3090 {
"zip://www.winehq.org/tests/#Te%xx",
S_OK,
FALSE},
3092 {
"zip://www.winehq.org/tests/#Te%xx",
S_OK,
FALSE},
3101 {
"zip://www.winehq.org/tests/#Te%xx",
S_OK,
FALSE},
3114 {
"zip://www.winehq.org/tests/#Te<|>", 0,
S_OK,
FALSE, 0,
3116 {
"zip://www.winehq.org/tests/#Te<|>",
S_OK,
FALSE},
3118 {
"zip://www.winehq.org/tests/#Te<|>",
S_OK,
FALSE},
3127 {
"zip://www.winehq.org/tests/#Te<|>",
S_OK,
FALSE},
3140 {
"http://www.winehq.org/tests/#Te<|>", 0,
S_OK,
FALSE, 0,
3142 {
"http://www.winehq.org/tests/#Te%3C%7C%3E",
S_OK,
FALSE},
3144 {
"http://www.winehq.org/tests/#Te%3C%7C%3E",
S_OK,
FALSE},
3153 {
"http://www.winehq.org/tests/#Te<|>",
S_OK,
FALSE},
3166 {
"http://www.winehq.org/tests/#Te<|>", Uri_CREATE_NO_DECODE_EXTRA_INFO,
S_OK,
FALSE, 0,
3168 {
"http://www.winehq.org/tests/#Te<|>",
S_OK,
FALSE},
3170 {
"http://www.winehq.org/tests/#Te<|>",
S_OK,
FALSE},
3179 {
"http://www.winehq.org/tests/#Te<|>",
S_OK,
FALSE},
3192 {
"http://www.winehq.org/tests/#Te<|>", Uri_CREATE_NO_ENCODE_FORBIDDEN_CHARACTERS,
S_OK,
FALSE, 0,
3194 {
"http://www.winehq.org/tests/#Te<|>",
S_OK,
FALSE},
3196 {
"http://www.winehq.org/tests/#Te<|>",
S_OK,
FALSE},
3205 {
"http://www.winehq.org/tests/#Te<|>",
S_OK,
FALSE},
3218 {
"zip://www.winehq.org/tests/#Te%30%31%32", 0,
S_OK,
FALSE, 0,
3220 {
"zip://www.winehq.org/tests/#Te%30%31%32",
S_OK,
FALSE},
3222 {
"zip://www.winehq.org/tests/#Te%30%31%32",
S_OK,
FALSE},
3231 {
"zip://www.winehq.org/tests/#Te%30%31%32",
S_OK,
FALSE},
3244 {
"http://www.winehq.org/tests/#Te%30%31%32", 0,
S_OK,
FALSE, 0,
3246 {
"http://www.winehq.org/tests/#Te012",
S_OK,
FALSE},
3248 {
"http://www.winehq.org/tests/#Te012",
S_OK,
FALSE},
3257 {
"http://www.winehq.org/tests/#Te%30%31%32",
S_OK,
FALSE},
3270 {
"http://www.winehq.org/tests/#Te%30%31%32", Uri_CREATE_NO_CANONICALIZE,
S_OK,
FALSE, 0,
3272 {
"http://www.winehq.org/tests/#Te012",
S_OK,
FALSE},
3274 {
"http://www.winehq.org/tests/#Te012",
S_OK,
FALSE},
3283 {
"http://www.winehq.org/tests/#Te%30%31%32",
S_OK,
FALSE},
3296 {
"http://www.winehq.org/tests/#Te%30%31%32", Uri_CREATE_NO_DECODE_EXTRA_INFO,
S_OK,
FALSE, 0,
3298 {
"http://www.winehq.org/tests/#Te%30%31%32",
S_OK,
FALSE},
3300 {
"http://www.winehq.org/tests/#Te%30%31%32",
S_OK,
FALSE},
3309 {
"http://www.winehq.org/tests/#Te%30%31%32",
S_OK,
FALSE},
3322 {
" http://google.com/ ", 0,
S_OK,
FALSE, 0,
3347 {
"\t\t\r\nhttp\n://g\noogle.co\rm/\n\n\n", 0,
S_OK,
FALSE, 0,
3372 {
"http://g\noogle.co\rm/\n\n\n", Uri_CREATE_NO_PRE_PROCESS_HTML_URI,
S_OK,
FALSE, 0,
3374 {
"http://g%0aoogle.co%0dm/%0A%0A%0A",
S_OK,
FALSE},
3376 {
"http://g%0aoogle.co%0dm/%0A%0A%0A",
S_OK,
FALSE},
3385 {
"http://g\noogle.co\rm/\n\n\n",
S_OK,
FALSE},
3397 {
"zip://g\noogle.co\rm/\n\n\n", Uri_CREATE_NO_PRE_PROCESS_HTML_URI,
S_OK,
FALSE, 0,
3399 {
"zip://g\noogle.co\rm/\n\n\n",
S_OK,
FALSE},
3401 {
"zip://g\noogle.co\rm/\n\n\n",
S_OK,
FALSE},
3410 {
"zip://g\noogle.co\rm/\n\n\n",
S_OK,
FALSE},
3451 {
"http:test.com/index.html", 0,
S_OK,
FALSE, 0,
3455 {
"http:test.com/index.html",
S_OK,
FALSE},
3464 {
"http:test.com/index.html",
S_OK,
FALSE},
3476 {
"ftp:test.com/index.html", 0,
S_OK,
FALSE, 0,
3501 {
"file://C|/test.mp3", 0,
S_OK,
FALSE, 0,
3526 {
"file:///C|/test.mp3", 0,
S_OK,
FALSE, 0,
3554 {
"file://c:/dir/index.html", Uri_CREATE_FILE_USE_DOS_PATH,
S_OK,
FALSE, 0,
3556 {
"file://c:\\dir\\index.html",
S_OK,
FALSE},
3558 {
"file://c:\\dir\\index.html",
S_OK,
FALSE},
3567 {
"file://c:/dir/index.html",
S_OK,
FALSE},
3580 {
"file:///c:/dir/index.html", Uri_CREATE_FILE_USE_DOS_PATH,
S_OK,
FALSE, 0,
3582 {
"file://c:\\dir\\index.html",
S_OK,
FALSE},
3584 {
"file://c:\\dir\\index.html",
S_OK,
FALSE},
3593 {
"file:///c:/dir/index.html",
S_OK,
FALSE},
3606 {
"file:///c:/dir\\%%61%20%5Fname/file%2A.html", Uri_CREATE_FILE_USE_DOS_PATH,
S_OK,
FALSE, 0,
3608 {
"file://c:\\dir\\%a _name\\file*.html",
S_OK,
FALSE},
3610 {
"file://c:\\dir\\%a _name\\file*.html",
S_OK,
FALSE},
3616 {
"c:\\dir\\%a _name\\file*.html",
S_OK,
FALSE},
3617 {
"c:\\dir\\%a _name\\file*.html",
S_OK,
FALSE},
3619 {
"file:///c:/dir\\%%61%20%5Fname/file%2A.html",
S_OK,
FALSE},
3631 {
"file://c|/dir\\index.html", Uri_CREATE_FILE_USE_DOS_PATH,
S_OK,
FALSE, 0,
3633 {
"file://c:\\dir\\index.html",
S_OK,
FALSE},
3635 {
"file://c:\\dir\\index.html",
S_OK,
FALSE},
3644 {
"file://c|/dir\\index.html",
S_OK,
FALSE},
3657 {
"file:\\\\c:\\dir\\index.html", Uri_CREATE_FILE_USE_DOS_PATH,
S_OK,
FALSE, 0,
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 {
"file:\\\\c:/dir/index.html", 0,
S_OK,
FALSE, 0,
3684 {
"file:///c:/dir/index.html",
S_OK,
FALSE},
3686 {
"file:///c:/dir/index.html",
S_OK,
FALSE},
3695 {
"file:\\\\c:/dir/index.html",
S_OK,
FALSE},
3707 {
"http:\\\\google.com", 0,
S_OK,
FALSE, 0,
3733 {
"zip:\\\\google.com", 0,
S_OK,
FALSE, 0,
3759 {
"file://c:\\dir\\../..\\./index.html", Uri_CREATE_FILE_USE_DOS_PATH,
S_OK,
FALSE, 0,
3761 {
"file://c:\\dir\\..\\..\\.\\index.html",
S_OK,
FALSE},
3763 {
"file://c:\\dir\\..\\..\\.\\index.html",
S_OK,
FALSE},
3769 {
"c:\\dir\\..\\..\\.\\index.html",
S_OK,
FALSE},
3770 {
"c:\\dir\\..\\..\\.\\index.html",
S_OK,
FALSE},
3772 {
"file://c:\\dir\\../..\\./index.html",
S_OK,
FALSE},
3785 {
"file://c:\\dir\\i^|ndex.html", Uri_CREATE_FILE_USE_DOS_PATH,
S_OK,
FALSE, 0,
3787 {
"file://c:\\dir\\i^|ndex.html",
S_OK,
FALSE},
3789 {
"file://c:\\dir\\i^|ndex.html",
S_OK,
FALSE},
3798 {
"file://c:\\dir\\i^|ndex.html",
S_OK,
FALSE},
3811 {
"file:c:\\dir\\../..\\index.html", 0,
S_OK,
FALSE, 0,
3815 {
"file:c:/dir/../../index.html",
S_OK,
FALSE},
3824 {
"file:c:\\dir\\../..\\index.html",
S_OK,
FALSE},
3837 {
"file:c:/dir\\../..\\index.html", Uri_CREATE_FILE_USE_DOS_PATH,
S_OK,
FALSE, 0,
3841 {
"file:c:\\dir\\..\\..\\index.html",
S_OK,
FALSE},
3847 {
"c:\\dir\\..\\..\\index.html",
S_OK,
FALSE},
3848 {
"c:\\dir\\..\\..\\index.html",
S_OK,
FALSE},
3850 {
"file:c:/dir\\../..\\index.html",
S_OK,
FALSE},
3863 {
"file:c:\\in^|dex.html", Uri_CREATE_FILE_USE_DOS_PATH,
S_OK,
FALSE, 0,
3891 {
"http://:password@gov.uk", 0,
S_OK,
FALSE, 0,
3893 {
"http://:password@gov.uk/",
S_OK,
FALSE},
3919 {
"http://gov.uk/",
S_OK,
FALSE,
"http://@gov.uk/"},
3945 {
"http://gov.uk/",
S_OK,
FALSE,
"http://:@gov.uk/"},
4045 {
"mk:@MSITStore:C:\\Program Files/AutoCAD 2008\\Help/acad_acg.chm::/WSfacf1429558a55de1a7524c1004e616f8b-322b.htm",0,
S_OK,
FALSE, 0,
4047 {
"mk:@MSITStore:C:\\Program%20Files/AutoCAD%202008\\Help/acad_acg.chm::/WSfacf1429558a55de1a7524c1004e616f8b-322b.htm",
S_OK,
FALSE},
4049 {
"mk:@MSITStore:C:\\Program%20Files/AutoCAD%202008\\Help/acad_acg.chm::/WSfacf1429558a55de1a7524c1004e616f8b-322b.htm",
S_OK,
FALSE},
4055 {
"@MSITStore:C:\\Program%20Files/AutoCAD%202008\\Help/acad_acg.chm::/WSfacf1429558a55de1a7524c1004e616f8b-322b.htm",
S_OK,
FALSE},
4056 {
"@MSITStore:C:\\Program%20Files/AutoCAD%202008\\Help/acad_acg.chm::/WSfacf1429558a55de1a7524c1004e616f8b-322b.htm",
S_OK,
FALSE},
4058 {
"mk:@MSITStore:C:\\Program Files/AutoCAD 2008\\Help/acad_acg.chm::/WSfacf1429558a55de1a7524c1004e616f8b-322b.htm",
S_OK,
FALSE},
4070 {
"mk:@MSITStore:Z:\\home\\test\\chm\\silqhelp.chm::/thesilqquickstartguide.htm",0,
S_OK,
FALSE, 0,
4072 {
"mk:@MSITStore:Z:\\home\\test\\chm\\silqhelp.chm::/thesilqquickstartguide.htm",
S_OK,
FALSE},
4074 {
"mk:@MSITStore:Z:\\home\\test\\chm\\silqhelp.chm::/thesilqquickstartguide.htm",
S_OK,
FALSE},
4080 {
"@MSITStore:Z:\\home\\test\\chm\\silqhelp.chm::/thesilqquickstartguide.htm",
S_OK,
FALSE},
4081 {
"@MSITStore:Z:\\home\\test\\chm\\silqhelp.chm::/thesilqquickstartguide.htm",
S_OK,
FALSE},
4083 {
"mk:@MSITStore:Z:\\home\\test\\chm\\silqhelp.chm::/thesilqquickstartguide.htm",
S_OK,
FALSE},
4096 {
"file://server/dir/index.html", Uri_CREATE_FILE_USE_DOS_PATH,
S_OK,
FALSE, 0,
4098 {
"file://\\\\server\\dir\\index.html",
S_OK,
FALSE},
4100 {
"file://\\\\server\\dir\\index.html",
S_OK,
FALSE},
4109 {
"file://server/dir/index.html",
S_OK,
FALSE},
4124 {
"http://google.com:80/", Uri_CREATE_NO_CANONICALIZE,
S_OK,
FALSE, 0,
4150 {
"res://C:\\dir\\file.exe/DATA/test.html", 0,
S_OK,
FALSE, 0,
4152 {
"res://C:\\dir\\file.exe/DATA/test.html",
S_OK,
FALSE},
4154 {
"res://C:\\dir\\file.exe/DATA/test.html",
S_OK,
FALSE},
4163 {
"res://C:\\dir\\file.exe/DATA/test.html",
S_OK,
FALSE},
4176 {
"res://c:\\di|r\\file.exe/test", 0,
S_OK,
FALSE, 0,
4178 {
"res://c:\\di|r\\file.exe/test",
S_OK,
FALSE},
4180 {
"res://c:\\di|r\\file.exe/test",
S_OK,
FALSE},
4189 {
"res://c:\\di|r\\file.exe/test",
S_OK,
FALSE},
4202 {
"res://c:\\dir%xx\\file.exe/test", 0,
S_OK,
FALSE, 0,
4204 {
"res://c:\\dir%xx\\file.exe/test",
S_OK,
FALSE},
4206 {
"res://c:\\dir%xx\\file.exe/test",
S_OK,
FALSE},
4215 {
"res://c:\\dir%xx\\file.exe/test",
S_OK,
FALSE},
4228 {
"res://c:\\test/tes<|>t", 0,
S_OK,
FALSE, 0,
4253 {
"mk:@MSITStore:Z:\\dir\\test.chm::/html/../images/xxx.jpg", 0,
S_OK,
FALSE, 0,
4255 {
"mk:@MSITStore:Z:\\dir\\test.chm::/images/xxx.jpg",
S_OK,
FALSE},
4257 {
"mk:@MSITStore:Z:\\dir\\test.chm::/images/xxx.jpg",
S_OK,
FALSE},
4263 {
"@MSITStore:Z:\\dir\\test.chm::/images/xxx.jpg",
S_OK,
FALSE},
4264 {
"@MSITStore:Z:\\dir\\test.chm::/images/xxx.jpg",
S_OK,
FALSE},
4266 {
"mk:@MSITStore:Z:\\dir\\test.chm::/html/../images/xxx.jpg",
S_OK,
FALSE},
4278 {
"mk:@MSITStore:Z:\\dir\\test.chm::/html/../images/xxx.jpg", Uri_CREATE_NO_CANONICALIZE,
S_OK,
FALSE, 0,
4280 {
"mk:@MSITStore:Z:\\dir\\test.chm::/html/../images/xxx.jpg",
S_OK,
FALSE},
4282 {
"mk:@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 {
"mk:@MSITStore:Z:\\dir\\test.chm::/html/../images/xxx.jpg",
S_OK,
FALSE},
4303 {
"xx:@MSITStore:Z:\\dir\\test.chm::/html/../images/xxx.jpg", 0,
S_OK,
FALSE, 0,
4305 {
"xx:@MSITStore:Z:\\dir\\test.chm::/html/../images/xxx.jpg",
S_OK,
FALSE},
4307 {
"xx:@MSITStore:Z:\\dir\\test.chm::/html/../images/xxx.jpg",
S_OK,
FALSE},
4313 {
"@MSITStore:Z:\\dir\\test.chm::/html/../images/xxx.jpg",
S_OK,
FALSE},
4314 {
"@MSITStore:Z:\\dir\\test.chm::/html/../images/xxx.jpg",
S_OK,
FALSE},
4316 {
"xx:@MSITStore:Z:\\dir\\test.chm::/html/../images/xxx.jpg",
S_OK,
FALSE},
4328 {
"mk:@MSITStore:Z:\\dir\\test.chm::/html/../../images/xxx.jpg", 0,
S_OK,
FALSE, 0,
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\\test.chm::/html/../../images/xxx.jpg",
S_OK,
FALSE},
4353 {
"mk:@MSITStore:Z:\\dir\\dir2\\..\\test.chm::/html/../../images/xxx.jpg", 0,
S_OK,
FALSE, 0,
4355 {
"mk:@MSITStore:Z:\\dir\\images/xxx.jpg",
S_OK,
FALSE},
4357 {
"mk:@MSITStore:Z:\\dir\\images/xxx.jpg",
S_OK,
FALSE},
4363 {
"@MSITStore:Z:\\dir\\images/xxx.jpg",
S_OK,
FALSE},
4364 {
"@MSITStore:Z:\\dir\\images/xxx.jpg",
S_OK,
FALSE},
4366 {
"mk:@MSITStore:Z:\\dir\\dir2\\..\\test.chm::/html/../../images/xxx.jpg",
S_OK,
FALSE},
4378 {
"mk:@MSITStore:Z:\\dir\\test.chm::/html/../../../../images/xxx.jpg", 0,
S_OK,
FALSE, 0,
4391 {
"mk:@MSITStore:Z:\\dir\\test.chm::/html/../../../../images/xxx.jpg",
S_OK,
FALSE},
4403 {
"", Uri_CREATE_ALLOW_RELATIVE,
S_OK,
FALSE, 0,
4428 {
" \t ", Uri_CREATE_ALLOW_RELATIVE,
S_OK,
FALSE, 0,
4455 {
"javascript:void",
S_OK},
4457 {
"javascript:void",
S_OK},
4466 {
"javascript:void",
S_OK},
4467 {
"javascript",
S_OK},
4472 {Uri_HOST_UNKNOWN,
S_OK},
4478 {
"javascript://undefined", 0,
S_OK,
FALSE, 0,
4480 {
"javascript://undefined",
S_OK},
4482 {
"javascript://undefined",
S_OK},
4488 {
"//undefined",
S_OK},
4489 {
"//undefined",
S_OK},
4491 {
"javascript://undefined",
S_OK},
4492 {
"javascript",
S_OK},
4497 {Uri_HOST_UNKNOWN,
S_OK},
4503 {
"JavaSCript:escape('/\\?#?')", 0,
S_OK,
FALSE, 0,
4505 {
"javascript:escape('/\\?#?')",
S_OK},
4507 {
"javascript:escape('/\\?#?')",
S_OK},
4513 {
"escape('/\\?#?')",
S_OK},
4514 {
"escape('/\\?#?')",
S_OK},
4516 {
"JavaSCript:escape('/\\?#?')",
S_OK},
4517 {
"javascript",
S_OK},
4522 {Uri_HOST_UNKNOWN,
S_OK},
4531 {
"google.com",
S_OK},
4553 {
"mk:@MSITSTORE:C:\\Some\\Bogus\\Path.chm::/subdir/file.txt", 0,
S_OK,
FALSE, 0,
4555 {
"mk:@MSITSTORE:C:\\Some\\Bogus\\Path.chm::/subdir/file.txt",
S_OK},
4557 {
"mk:@MSITSTORE:C:\\Some\\Bogus\\Path.chm::/subdir/file.txt",
S_OK},
4563 {
"@MSITSTORE:C:\\Some\\Bogus\\Path.chm::/subdir/file.txt",
S_OK},
4564 {
"@MSITSTORE:C:\\Some\\Bogus\\Path.chm::/subdir/file.txt",
S_OK},
4566 {
"mk:@MSITSTORE:C:\\Some\\Bogus\\Path.chm::/subdir/file.txt",
S_OK},
4572 {Uri_HOST_UNKNOWN,
S_OK},
4578 {
"gopher://test.winehq.org:151/file.txt", 0,
S_OK,
FALSE, 0,
4580 {
"gopher://test.winehq.org:151/file.txt",
S_OK},
4581 {
"test.winehq.org:151",
S_OK},
4582 {
"gopher://test.winehq.org:151/file.txt",
S_OK},
4583 {
"winehq.org",
S_OK},
4586 {
"test.winehq.org",
S_OK},
4591 {
"gopher://test.winehq.org:151/file.txt",
S_OK},
4597 {Uri_HOST_DNS,
S_OK},
4603 {
"//host.com/path/file.txt?query", Uri_CREATE_ALLOW_RELATIVE,
S_OK,
FALSE, 0,
4605 {
"//host.com/path/file.txt?query",
S_OK},
4607 {
"//host.com/path/file.txt?query",
S_OK},
4613 {
"/path/file.txt",
S_OK},
4614 {
"/path/file.txt?query",
S_OK},
4616 {
"//host.com/path/file.txt?query",
S_OK},
4622 {Uri_HOST_DNS,
S_OK},
4628 {
"//host/path/file.txt?query", Uri_CREATE_ALLOW_RELATIVE,
S_OK,
FALSE, 0,
4630 {
"//host/path/file.txt?query",
S_OK},
4632 {
"//host/path/file.txt?query",
S_OK},
4638 {
"/path/file.txt",
S_OK},
4639 {
"/path/file.txt?query",
S_OK},
4641 {
"//host/path/file.txt?query",
S_OK},
4647 {Uri_HOST_DNS,
S_OK},
4653 {
"//host", Uri_CREATE_ALLOW_RELATIVE,
S_OK,
FALSE, 0,
4672 {Uri_HOST_DNS,
S_OK},
4678 {
"mailto://", Uri_CREATE_NO_CANONICALIZE,
S_OK,
FALSE, 0,
4697 {Uri_HOST_UNKNOWN,
S_OK},
4703 {
"mailto://a@b.com", Uri_CREATE_NO_CANONICALIZE,
S_OK,
FALSE, 0,
4705 {
"mailto:a@b.com",
S_OK},
4707 {
"mailto:a@b.com",
S_OK},
4716 {
"mailto://a@b.com",
S_OK,
FALSE,
"mailto:a@b.com"},
4722 {Uri_HOST_UNKNOWN,
S_OK},
4728 {
"c:\\test file.html", Uri_CREATE_FILE_USE_DOS_PATH|Uri_CREATE_ALLOW_IMPLICIT_FILE_SCHEME,
S_OK,
FALSE, 0,
4730 {
"file://c:\\test file.html",
S_OK,
FALSE},
4732 {
"file://c:\\test file.html",
S_OK,
FALSE},
4753 {
"c:\\test%20file.html", Uri_CREATE_FILE_USE_DOS_PATH|Uri_CREATE_ALLOW_IMPLICIT_FILE_SCHEME,
S_OK,
FALSE, 0,
4755 {
"file://c:\\test%20file.html",
S_OK,
FALSE},
4757 {
"file://c:\\test%20file.html",
S_OK,
FALSE},
4778 {
"c:\\test file.html", Uri_CREATE_ALLOW_IMPLICIT_FILE_SCHEME,
S_OK,
FALSE, 0,
4780 {
"file:///c:/test%20file.html",
S_OK,
FALSE},
4782 {
"file:///c:/test%20file.html",
S_OK,
FALSE},
4803 {
"c:\\test%20file.html", Uri_CREATE_ALLOW_IMPLICIT_FILE_SCHEME,
S_OK,
FALSE, 0,
4805 {
"file:///c:/test%2520file.html",
S_OK,
FALSE},
4807 {
"file:///c:/test%2520file.html",
S_OK,
FALSE},
4830 "http://127.0.0.1/\xE6\xB5\x8B\xE8\xAF\x95/test.txt", 0,
S_OK,
FALSE, 0,
4832 {
"http://127.0.0.1/\xE6\xB5\x8B\xE8\xAF\x95/test.txt",
S_OK,
FALSE},
4834 {
"http://127.0.0.1/\xE6\xB5\x8B\xE8\xAF\x95/test.txt",
S_OK,
FALSE},
4840 {
"/\xE6\xB5\x8B\xE8\xAF\x95/test.txt",
S_OK,
FALSE},
4841 {
"/\xE6\xB5\x8B\xE8\xAF\x95/test.txt",
S_OK,
FALSE},
4843 {
"http://127.0.0.1/\xE6\xB5\x8B\xE8\xAF\x95/test.txt",
S_OK,
FALSE},
4855 {
"file:\xE6\xB5\x8B\xE8\xAF\x95.html", 0,
S_OK,
FALSE, 0,
4859 {
"file:\xE6\xB5\x8B\xE8\xAF\x95.html",
S_OK,
FALSE},
4865 {
"\xE6\xB5\x8B\xE8\xAF\x95.html",
S_OK,
FALSE},
4866 {
"\xE6\xB5\x8B\xE8\xAF\x95.html",
S_OK,
FALSE},
4868 {
"file:\xE6\xB5\x8B\xE8\xAF\x95.html",
S_OK,
FALSE},
4881 {
"ftp://\xE6\xB5\x8B\xE8\xAF\x95:wine@ftp.winehq.org:9999/dir/foobar.txt", 0,
S_OK,
FALSE, 0,
4883 {
"ftp://\xE6\xB5\x8B\xE8\xAF\x95:wine@ftp.winehq.org:9999/dir/foobar.txt",
S_OK,
FALSE},
4884 {
"\xE6\xB5\x8B\xE8\xAF\x95:wine@ftp.winehq.org:9999",
S_OK,
FALSE},
4885 {
"ftp://ftp.winehq.org:9999/dir/foobar.txt",
S_OK,
FALSE},
4894 {
"ftp://\xE6\xB5\x8B\xE8\xAF\x95:wine@ftp.winehq.org:9999/dir/foobar.txt",
S_OK,
FALSE},
4896 {
"\xE6\xB5\x8B\xE8\xAF\x95:wine",
S_OK,
FALSE},
4907 {
"ftp://winepass:\xE6\xB5\x8B\xE8\xAF\x95@ftp.winehq.org:9999/dir/foobar.txt", 0,
S_OK,
FALSE, 0,
4909 {
"ftp://winepass:\xE6\xB5\x8B\xE8\xAF\x95@ftp.winehq.org:9999/dir/foobar.txt",
S_OK,
FALSE},
4910 {
"winepass:\xE6\xB5\x8B\xE8\xAF\x95@ftp.winehq.org:9999",
S_OK,
FALSE},
4911 {
"ftp://ftp.winehq.org:9999/dir/foobar.txt",
S_OK,
FALSE},
4916 {
"\xE6\xB5\x8B\xE8\xAF\x95",
S_OK,
FALSE},
4920 {
"ftp://winepass:\xE6\xB5\x8B\xE8\xAF\x95@ftp.winehq.org:9999/dir/foobar.txt",
S_OK,
FALSE},
4922 {
"winepass:\xE6\xB5\x8B\xE8\xAF\x95",
S_OK,
FALSE},
4933 {
"http://www.winehq.org/tests/..?query=\xE6\xB5\x8B\xE8\xAF\x95&return=y", 0,
S_OK,
FALSE, 0,
4935 {
"http://www.winehq.org/?query=\xE6\xB5\x8B\xE8\xAF\x95&return=y",
S_OK,
FALSE},
4937 {
"http://www.winehq.org/?query=\xE6\xB5\x8B\xE8\xAF\x95&return=y",
S_OK,
FALSE},
4944 {
"/?query=\xE6\xB5\x8B\xE8\xAF\x95&return=y",
S_OK,
FALSE},
4945 {
"?query=\xE6\xB5\x8B\xE8\xAF\x95&return=y",
S_OK,
FALSE},
4946 {
"http://www.winehq.org/tests/..?query=\xE6\xB5\x8B\xE8\xAF\x95&return=y",
S_OK,
FALSE},
4959 {
"http://www.winehq.org/tests/#\xE6\xB5\x8B\xE8\xAF\x95", 0,
S_OK,
FALSE, 0,
4961 {
"http://www.winehq.org/tests/#\xE6\xB5\x8B\xE8\xAF\x95",
S_OK,
FALSE},
4963 {
"http://www.winehq.org/tests/#\xE6\xB5\x8B\xE8\xAF\x95",
S_OK,
FALSE},
4966 {
"#\xE6\xB5\x8B\xE8\xAF\x95",
S_OK,
FALSE},
4972 {
"http://www.winehq.org/tests/#\xE6\xB5\x8B\xE8\xAF\x95",
S_OK,
FALSE},
4985 {
"file:a\xE2\x80\x8D.html", Uri_CREATE_NO_PRE_PROCESS_HTML_URI,
S_OK,
FALSE, 0,
5011 {
"file:ab\xE2\x80\x8E.html", Uri_CREATE_NO_PRE_PROCESS_HTML_URI,
S_OK,
FALSE, 0,
5015 {
"file:ab\xE2\x80\x8D.html",
S_OK,
FALSE},
5024 {
"file:ab\xE2\x80\x8D.html",
S_OK,
FALSE},
5037 {
"file:ab\xc3\x28.html", 0,
S_OK,
FALSE, 0,
5063 {
"ftp://%E6%B5%8B%E8%AF%95:%E6%B5%8B%E8%AF%95@ftp.google.com/", 0,
S_OK,
FALSE, 0,
5065 {
"ftp://%E6%B5%8B%E8%AF%95:%E6%B5%8B%E8%AF%95@ftp.google.com/",
S_OK,
FALSE},
5066 {
"%E6%B5%8B%E8%AF%95:%E6%B5%8B%E8%AF%95@ftp.google.com",
S_OK,
FALSE},
5076 {
"ftp://%E6%B5%8B%E8%AF%95:%E6%B5%8B%E8%AF%95@ftp.google.com/",
S_OK,
FALSE},
5078 {
"%E6%B5%8B%E8%AF%95:%E6%B5%8B%E8%AF%95",
S_OK,
FALSE},
5091 "http://\xE6\xB5\x8B\xE8\xAF\x95.org/", 0,
S_OK,
FALSE, 0,
5093 {
"http://\xE6\xB5\x8B\xE8\xAF\x95.org/",
S_OK,
FALSE},
5094 {
"\xE6\xB5\x8B\xE8\xAF\x95.org",
S_OK,
FALSE},
5095 {
"http://xn--0zwm56d.org/",
S_OK,
FALSE,
NULL,
"http://\xE6\xB5\x8B\xE8\xAF\x95.org/",
S_OK},
5096 {
"\xE6\xB5\x8B\xE8\xAF\x95.org",
S_OK,
FALSE},
5099 {
"\xE6\xB5\x8B\xE8\xAF\x95.org",
S_OK,
FALSE},
5104 {
"http://\xE6\xB5\x8B\xE8\xAF\x95.org/",
S_OK,
FALSE},
5119 "http://\xE6\xB5\x8B\xE8\xAF\x95%74%65%73%74.org/", 0,
S_OK,
FALSE, 0,
5121 {
"http://\xE6\xB5\x8B\xE8\xAF\x95test.org/",
S_OK,
FALSE},
5122 {
"\xE6\xB5\x8B\xE8\xAF\x95test.org",
S_OK,
FALSE},
5123 {
"http://xn--test-zx7if72m.org/",
S_OK,
FALSE,
NULL,
"http://\xE6\xB5\x8B\xE8\xAF\x95test.org/",
S_OK},
5124 {
"\xE6\xB5\x8B\xE8\xAF\x95test.org",
S_OK,
FALSE},
5127 {
"\xE6\xB5\x8B\xE8\xAF\x95test.org",
S_OK,
FALSE},
5132 {
"http://\xE6\xB5\x8B\xE8\xAF\x95%74%65%73%74.org/",
S_OK,
FALSE},
5148 {
"http://www.winehq.org/foo.html#fragment", 0,
S_OK,
FALSE, Uri_DISPLAY_NO_FRAGMENT,
5152 {
"http://www.winehq.org/foo.html",
S_OK,
FALSE},
5174 {
"http://username:password@www.winehq.org/foo.html?query=value#fragment", 0,
S_OK,
FALSE, Uri_DISPLAY_NO_FRAGMENT,
5178 {
"http://www.winehq.org/foo.html?query=value",
S_OK,
FALSE},
5203 {
"http://www.winehq.org/", 0,
S_OK,
FALSE, Uri_PUNYCODE_IDN_HOST,
5229 {
"http://username:password@www.winehq.org/index.html?query=value#fragment", 0,
S_OK,
FALSE, Uri_PUNYCODE_IDN_HOST,
5231 {
"http://username:password@www.winehq.org/index.html?query=value#fragment",
S_OK,
FALSE},
5257 "http://username:password@\xE6\xB5\x8B\xE8\xAF\x95.org/index.html?query=value#fragment", 0,
S_OK,
FALSE, Uri_PUNYCODE_IDN_HOST,
5259 {
"http://username:password@xn--0zwm56d.org/index.html?query=value#fragment",
S_OK,
FALSE},
5284 "http://username:password@www.\xE6\xB5\x8B\xE8\xAF\x95.org/index.html?query=value#fragment", 0,
S_OK,
FALSE, Uri_PUNYCODE_IDN_HOST,
5286 {
"http://username:password@www.xn--0zwm56d.org/index.html?query=value#fragment",
S_OK,
FALSE},
5313 "http://:@www.\xE6\xB5\x8B\xE8\xAF\x95.org/index.html?query=value#fragment", 0,
S_OK,
FALSE, Uri_PUNYCODE_IDN_HOST,
5315 {
"http://:@www.xn--0zwm56d.org/index.html?query=value#fragment",
S_OK,
FALSE},
5341 "http://@www.\xE6\xB5\x8B\xE8\xAF\x95.org/index.html?query=value#fragment", 0,
S_OK,
FALSE, Uri_PUNYCODE_IDN_HOST,
5343 {
"http://@www.xn--0zwm56d.org/index.html?query=value#fragment",
S_OK,
FALSE},
5369 "http://username:password@winehq.org/\xE6\xB5\x8B\xE8\xAF\x95.html?query=value#fragment", 0,
S_OK,
FALSE, Uri_PUNYCODE_IDN_HOST,
5371 {
"http://username:password@winehq.org/\xE6\xB5\x8B\xE8\xAF\x95.html?query=value#fragment",
S_OK,
FALSE},
5400 "http://\xE6\xB5\x8B\xE8\xAF\x95.org/", 0,
S_OK,
FALSE, Uri_DISPLAY_IDN_HOST,
5402 {
"http://xn--0zwm56d.org/",
S_OK,
FALSE,
NULL,
"http://\xE6\xB5\x8B\xE8\xAF\x95.org/",
S_OK},
5428 "http://username:password@\xE6\xB5\x8B\xE8\xAF\x95.org/index.html?query=value#fragment", 0,
S_OK,
FALSE, Uri_DISPLAY_IDN_HOST,
5430 {
"http://username:password@xn--0zwm56d.org/index.html?query=value#fragment",
S_OK,
FALSE,
NULL,
"http://username:password@\xE6\xB5\x8B\xE8\xAF\x95.org/index.html?query=value#fragment",
S_OK},
5454 {
"http://username:password@winehq.org/index.html?query=value#fragment", 0,
S_OK,
FALSE, Uri_DISPLAY_NO_FRAGMENT | Uri_DISPLAY_IDN_HOST,
5489 {
"://www.winehq.org",0,
FALSE},
5493 {
"C:/test/test.mp3",0,
FALSE},
5494 {
"\\\\Server/test/test.mp3",0,
FALSE},
5495 {
"C:/test/test.mp3",Uri_CREATE_ALLOW_IMPLICIT_WILDCARD_SCHEME,
FALSE},
5496 {
"\\\\Server/test/test.mp3",Uri_CREATE_ALLOW_RELATIVE,
FALSE},
5498 {
"*abcd://not.valid.com",0,
FALSE},
5499 {
"*a*b*c*d://not.valid.com",0,
FALSE},
5501 {
"ftp://google.co%XX/",0,
FALSE},
5503 {
"http://[1:2:3:4:5:6:7:8:9]",0,
FALSE},
5505 {
"http://[1:2:3:4:5:6:7:192.0.1.0]",0,
FALSE},
5507 {
"http://[1:2:3:4]",0,
FALSE},
5509 {
"http://[1:192.0.1.0]",0,
FALSE},
5511 {
"http://[::192.0]",0,
FALSE},
5513 {
"ftp://[not.valid.uri]/",0,
FALSE},
5515 {
"ftp://www.winehq.org:123fgh",0,
FALSE},
5517 {
"ftp://www.winehq.org:65536",0,
FALSE},
5519 {
"http://www.winehq.org:1abcd",0,
FALSE},
5521 {
"http://[::ffff]:32xy",0,
FALSE},
5523 {
"gopher://www.google.com\\test",Uri_CREATE_NO_CANONICALIZE,
FALSE},
5525 {
"news:test%XX",0,
FALSE},
5526 {
"mailto:wine@winehq%G8.com",0,
FALSE},
5528 {
"http://google.com/?query=te%xx",0,
FALSE},
5530 {
"ftp://google.com/#Test%xx",0,
FALSE},
5531 {
" http://google.com/",Uri_CREATE_NO_PRE_PROCESS_HTML_URI,
FALSE},
5532 {
"\n\nhttp://google.com/",Uri_CREATE_NO_PRE_PROCESS_HTML_URI,
FALSE},
5533 {
"file://c:\\test<test",Uri_CREATE_FILE_USE_DOS_PATH,
FALSE},
5534 {
"file://c:\\test>test",Uri_CREATE_FILE_USE_DOS_PATH,
FALSE},
5535 {
"file://c:\\test\"test",Uri_CREATE_FILE_USE_DOS_PATH,
FALSE},
5536 {
"file:c:\\test<test",Uri_CREATE_FILE_USE_DOS_PATH,
FALSE},
5537 {
"file:c:\\test>test",Uri_CREATE_FILE_USE_DOS_PATH,
FALSE},
5538 {
"file:c:\\test\"test",Uri_CREATE_FILE_USE_DOS_PATH,
FALSE},
5542 {
"res://c:\\te<st\\test/test",0,
FALSE},
5543 {
"res://c:\\te>st\\test/test",0,
FALSE},
5544 {
"res://c:\\te\"st\\test/test",0,
FALSE},
5545 {
"res://c:\\test/te%xxst",0,
FALSE}
5559 "HTTP://www.winehq.org/test dir/./",0,
5560 "http://www.winehq.org/test dir/../test dir/",0,
5565 "http://%77%77%77%2E%77%69%6E%65%68%71%2E%6F%72%67/%74%65%73%74%20%64%69%72",0,
5566 "http://www.winehq.org/test dir",0,
5570 "c:\\test.mp3",Uri_CREATE_ALLOW_IMPLICIT_FILE_SCHEME,
5571 "file:///c:/test.mp3",0,
5575 "ftp://ftp.winehq.org/",0,
5576 "ftp://ftp.winehq.org",0,
5580 "ftp://ftp.winehq.org/test/test2/../../testB/",0,
5581 "ftp://ftp.winehq.org/t%45stB/",0,
5585 "http://google.com/TEST",0,
5586 "http://google.com/test",0,
5590 "http://GOOGLE.com/",0,
5591 "http://google.com/",0,
5596 "ftp://GOOGLE.com/",Uri_CREATE_NO_CANONICALIZE,
5597 "ftp://google.com/",0,
5601 "zip://GOOGLE.com/",0,
5602 "zip://google.com/",0,
5606 "file:///c:/TEST/TeST/",0,
5607 "file:///c:/test/test/",0,
5611 "file:///server/TEST",0,
5612 "file:///SERVER/TEST",0,
5616 "http://google.com",Uri_CREATE_NO_CANONICALIZE,
5617 "http://google.com/",0,
5621 "ftp://google.com:21/",0,
5622 "ftp://google.com/",0,
5626 "http://google.com:80/",Uri_CREATE_NO_CANONICALIZE,
5627 "http://google.com/",0,
5631 "http://google.com:70/",0,
5632 "http://google.com:71/",0,
5636 "file:///c:/dir/file.txt", 0,
5637 "file:///c:/dir/file.txt", Uri_CREATE_FILE_USE_DOS_PATH,
5641 "file:///c:/dir/file.txt", 0,
5642 "file:///c:\\dir\\file.txt", Uri_CREATE_NO_CANONICALIZE,
5646 "file:///c:/dir/file.txt", 0,
5647 "file:///c:\\dir2\\..\\dir\\file.txt", Uri_CREATE_NO_CANONICALIZE,
5651 "file:///c:\\dir2\\..\\ dir\\file.txt", Uri_CREATE_NO_CANONICALIZE,
5652 "file:///c:/%20dir/file.txt", 0,
5656 "file:///c:/Dir/file.txt", 0,
5657 "file:///C:/dir/file.TXT", Uri_CREATE_FILE_USE_DOS_PATH,
5661 "file:///c:/dir/file.txt", 0,
5662 "file:///c:\\dir\\file.txt", Uri_CREATE_FILE_USE_DOS_PATH,
5666 "file:///c:/dir/file.txt#a", 0,
5667 "file:///c:\\dir\\file.txt#b", Uri_CREATE_FILE_USE_DOS_PATH,
5672 "http://google.com/test",0,
5673 "http://google.com/test#",0,
5677 "ftp://ftp.winehq.org/",0,
5678 "ftp://ftp.winehq.org/#",0,
5682 "file:///c:/dir/file.txt#", 0,
5683 "file:///c:\\dir\\file.txt", Uri_CREATE_FILE_USE_DOS_PATH,
5701 "http://google.com/",
"#fragment",0,
S_OK,
FALSE,
5702 "http://google.com/#fragment",
FALSE
5705 "http://google.com/",
"fragment",0,
S_OK,
FALSE,
5706 "http://google.com/#fragment",
FALSE
5710 "zip://test.com/#?test",
FALSE
5714 "ftp://ftp.google.com/",
"",0,
S_OK,
FALSE,
5715 "ftp://ftp.google.com/#",
FALSE
5789 {
"http://username:password@google.com/?query=x#fragment",
S_OK},
5790 {
"username:password@google.com",
S_OK},
5791 {
"http://google.com/?query=x#fragment",
S_OK},
5792 {
"google.com",
S_OK},
5795 {
"google.com",
S_OK},
5800 {
"http://username:password@google.com/?query=x#fragment",
S_OK},
5802 {
"username:password",
S_OK},
5806 {Uri_HOST_DNS,
S_OK},
5821 {
"test://google.com:120/",
S_OK},
5822 {
"google.com:120",
S_OK},
5823 {
"test://google.com:120/",
S_OK},
5824 {
"google.com",
S_OK},
5827 {
"google.com",
S_OK},
5832 {
"test://google.com:120/",
S_OK},
5838 {Uri_HOST_DNS,
S_OK},
5844 {
"/Test/test dir",Uri_CREATE_ALLOW_RELATIVE,
S_OK,
FALSE,
5855 {
"http://[::192.2.3.4]/",
S_OK},
5856 {
"[::192.2.3.4]",
S_OK},
5857 {
"http://[::192.2.3.4]/",
S_OK},
5861 {
"::192.2.3.4",
S_OK},
5866 {
"http://[::192.2.3.4]/",
S_OK},
5872 {Uri_HOST_IPV6,
S_OK},
5887 {
"http://google.com/#Frag",
S_OK},
5888 {
"google.com",
S_OK},
5889 {
"http://google.com/#Frag",
S_OK},
5890 {
"google.com",
S_OK},
5893 {
"google.com",
S_OK},
5898 {
"http://google.com/#Frag",
S_OK},
5904 {Uri_HOST_DNS,
S_OK},
5919 {
"http://google.com/#",
S_OK},
5920 {
"google.com",
S_OK},
5921 {
"http://google.com/#",
S_OK},
5922 {
"google.com",
S_OK},
5925 {
"google.com",
S_OK},
5930 {
"http://google.com/#",
S_OK},
5936 {Uri_HOST_DNS,
S_OK},
5951 {
"http://::password@google.com/",
S_OK},
5952 {
"::password@google.com",
S_OK},
5953 {
"http://google.com/",
S_OK},
5954 {
"google.com",
S_OK},
5957 {
"google.com",
S_OK},
5962 {
"http://::password@google.com/",
S_OK},
5964 {
"::password",
S_OK},
5968 {Uri_HOST_DNS,
S_OK},
5974 {
"test/test",Uri_CREATE_ALLOW_RELATIVE,
S_OK,
FALSE,
5981 Uri_CREATE_ALLOW_RELATIVE,0,0,
S_OK,
FALSE,
5983 {
":password@test/test",
S_OK},
5984 {
":password@",
S_OK},
5985 {
":password@test/test",
S_OK},
5994 {
":password@test/test",
S_OK},
6000 {Uri_HOST_UNKNOWN,
S_OK},
6015 {
"http://google.com/test/test",
S_OK},
6016 {
"google.com",
S_OK},
6017 {
"http://google.com/test/test",
S_OK},
6018 {
"google.com",
S_OK},
6021 {
"google.com",
S_OK},
6023 {
"/test/test",
S_OK},
6024 {
"/test/test",
S_OK},
6026 {
"http://google.com/test/test",
S_OK},
6032 {Uri_HOST_DNS,
S_OK},
6064 {Uri_HOST_UNKNOWN,
S_OK},
6080 {
"http://google.com/",
S_OK},
6081 {
"google.com",
S_OK},
6082 {
"http://google.com/",
S_OK},
6083 {
"google.com",
S_OK},
6086 {
"google.com",
S_OK},
6091 {
"http://google.com/",
S_OK},
6097 {Uri_HOST_DNS,
S_OK},
6116 {
"http://google.com:222/",
S_OK},
6117 {
"google.com:222",
S_OK},
6118 {
"http://google.com:222/",
S_OK},
6119 {
"google.com",
S_OK},
6122 {
"google.com",
S_OK},
6127 {
"http://google.com:222/",
S_OK},
6133 {Uri_HOST_DNS,
S_OK},
6149 {
"http://google.com:999999/",
S_OK},
6150 {
"google.com:999999",
S_OK},
6151 {
"http://google.com:999999/",
S_OK},
6152 {
"google.com",
S_OK},
6155 {
"google.com",
S_OK},
6160 {
"http://google.com:999999/",
S_OK},
6166 {Uri_HOST_DNS,
S_OK},
6182 {
"http://google.com/?test",
S_OK},
6183 {
"google.com",
S_OK},
6184 {
"http://google.com/?test",
S_OK},
6185 {
"google.com",
S_OK},
6188 {
"google.com",
S_OK},
6193 {
"http://google.com/?test",
S_OK},
6199 {Uri_HOST_DNS,
S_OK},
6205 {
"http://:password@google.com/",0,
S_OK,
FALSE,
6214 {
"http://:password@google.com/",
S_OK},
6215 {
":password@google.com",
S_OK},
6216 {
"http://google.com/",
S_OK},
6217 {
"google.com",
S_OK},
6220 {
"google.com",
S_OK},
6225 {
"http://:password@google.com/",
S_OK},
6231 {Uri_HOST_DNS,
S_OK},
6248 {
"http://google.com/",
S_OK},
6249 {
"google.com",
S_OK},
6250 {
"http://google.com/",
S_OK},
6251 {
"google.com",
S_OK},
6254 {
"google.com",
S_OK},
6259 {
"http://google.com/",
S_OK},
6265 {Uri_HOST_DNS,
S_OK},
6281 {
"zip://google.com/",
S_OK},
6282 {
"google.com",
S_OK},
6283 {
"zip://google.com/",
S_OK},
6284 {
"google.com",
S_OK},
6287 {
"google.com",
S_OK},
6292 {
"zip://google.com/",
S_OK},
6298 {Uri_HOST_DNS,
S_OK},
6314 {
"zip://google.com/",
S_OK},
6315 {
"google.com",
S_OK},
6316 {
"zip://google.com/",
S_OK},
6317 {
"google.com",
S_OK},
6320 {
"google.com",
S_OK},
6325 {
"zip://google.com/",
S_OK},
6331 {Uri_HOST_DNS,
S_OK},
6340 {
"http://google.com/../../",Uri_CREATE_NO_CANONICALIZE,
S_OK,
FALSE,
6345 0,UriBuilder_USE_ORIGINAL_FLAGS,0,
S_OK,
FALSE,
6347 {
"http://google.com/../../",
S_OK},
6348 {
"google.com",
S_OK},
6349 {
"http://google.com/../../",
S_OK},
6350 {
"google.com",
S_OK},
6353 {
"google.com",
S_OK},
6358 {
"http://google.com/../../",
S_OK},
6364 {Uri_HOST_DNS,
S_OK},
6377 Uri_CREATE_NO_DECODE_EXTRA_INFO,UriBuilder_USE_ORIGINAL_FLAGS,0,
S_OK,
FALSE,
6379 {
"http://google.com/#Fr%3C%7C%3Eg",
S_OK},
6380 {
"google.com",
S_OK},
6381 {
"http://google.com/#Fr%3C%7C%3Eg",
S_OK},
6382 {
"google.com",
S_OK},
6384 {
"#Fr%3C%7C%3Eg",
S_OK},
6385 {
"google.com",
S_OK},
6390 {
"http://google.com/#Fr<|>g",
S_OK},
6396 {Uri_HOST_DNS,
S_OK},
6409 Uri_CREATE_CANONICALIZE|Uri_CREATE_NO_CANONICALIZE,UriBuilder_USE_ORIGINAL_FLAGS,0,
S_OK,
FALSE,
6411 {
"http://google.com/#Fr%3C%7C%3Eg",
S_OK},
6412 {
"google.com",
S_OK},
6413 {
"http://google.com/#Fr%3C%7C%3Eg",
S_OK},
6414 {
"google.com",
S_OK},
6416 {
"#Fr%3C%7C%3Eg",
S_OK},
6417 {
"google.com",
S_OK},
6422 {
"http://google.com/#Fr<|>g",
S_OK},
6428 {Uri_HOST_DNS,
S_OK},
6594 {
"http://winehq.org:test/",
S_OK},
6595 {
"winehq.org:test",
S_OK},
6596 {
"http://winehq.org:test/",
S_OK},
6597 {
"winehq.org:test",
S_OK},
6600 {
"winehq.org:test",
S_OK},
6605 {
"http://winehq.org:test/",
S_OK},
6611 {Uri_HOST_DNS,
S_OK},
6627 {
"http://google.com/",
S_OK},
6628 {
"google.com",
S_OK},
6629 {
"http://google.com/",
S_OK},
6630 {
"google.com",
S_OK},
6633 {
"google.com",
S_OK},
6638 {
"http://google.com/",
S_OK},
6644 {Uri_HOST_DNS,
S_OK},
6677 {Uri_HOST_UNKNOWN,
S_OK},
6710 {
"file:///c:/dir/file.html",0,
S_OK,
FALSE,
6719 {
"file:///c:/dir/file.html",
S_OK},
6721 {
"file:///c:/dir/file.html",
S_OK},
6727 {
"/c:/dir/file.html",
S_OK},
6728 {
"/c:/dir/file.html",
S_OK},
6730 {
"file:///c:/dir/file.html",
S_OK},
6736 {Uri_HOST_UNKNOWN,
S_OK},
6742 {
"file:///c:/dir/file.html",0,
S_OK,
FALSE,
6751 {
"file:///c:/dir/file.html#",
S_OK},
6753 {
"file:///c:/dir/file.html#",
S_OK},
6759 {
"/c:/dir/file.html",
S_OK},
6760 {
"/c:/dir/file.html",
S_OK},
6762 {
"file:///c:/dir/file.html#",
S_OK},
6768 {Uri_HOST_UNKNOWN,
S_OK},
6793 {
"http://google.com/test?test=y#Frag",0,
S_OK,
FALSE,
6794 Uri_HAS_FRAGMENT|Uri_HAS_PATH|Uri_HAS_QUERY,
S_OK,
FALSE,
6797 {
"http://user:pass@winehq.org/",0,
S_OK,
FALSE,
6798 Uri_HAS_USER_NAME|Uri_HAS_PASSWORD,
S_OK,
FALSE,
6801 {
"zip://google.com?Test=x",0,
S_OK,
FALSE,
6806 {
"http://username:pass@google.com/",0,
S_OK,
FALSE,
6808 "http://username:pass@google.com/",0,
S_OK,
FALSE
6815 {
"http://google.com:120/",0,
S_OK,
FALSE,
6819 {
"http://google.com/test.com/",0,
S_OK,
FALSE,
6821 "http://google.com/test.com/",0,
S_OK,
FALSE
6823 {
"http://google.com/?test=x",0,
S_OK,
FALSE,
6825 "http://google.com/?test=x",0,
S_OK,
FALSE
6828 {
"http://google.com/?test=x",0,
S_OK,
FALSE,
6830 "http://google.com/?test=x",0,
S_OK,
FALSE
6856 {
"http://google.com/fun/stuff",0,
6857 "../not/fun/stuff",Uri_CREATE_ALLOW_RELATIVE,
6860 {
"http://google.com/not/fun/stuff",
S_OK},
6861 {
"google.com",
S_OK},
6862 {
"http://google.com/not/fun/stuff",
S_OK},
6863 {
"google.com",
S_OK},
6866 {
"google.com",
S_OK},
6868 {
"/not/fun/stuff",
S_OK},
6869 {
"/not/fun/stuff",
S_OK},
6871 {
"http://google.com/not/fun/stuff",
S_OK},
6877 {Uri_HOST_DNS,
S_OK},
6883 {
"http://google.com/test",0,
6884 "zip://test.com/cool",0,
6887 {
"zip://test.com/cool",
S_OK},
6889 {
"zip://test.com/cool",
S_OK},
6898 {
"zip://test.com/cool",
S_OK},
6904 {Uri_HOST_DNS,
S_OK},
6910 {
"http://google.com/use/base/path",0,
6911 "?relative",Uri_CREATE_ALLOW_RELATIVE,
6914 {
"http://google.com/use/base/path?relative",
S_OK},
6915 {
"google.com",
S_OK},
6916 {
"http://google.com/use/base/path?relative",
S_OK},
6917 {
"google.com",
S_OK},
6920 {
"google.com",
S_OK},
6922 {
"/use/base/path",
S_OK},
6923 {
"/use/base/path?relative",
S_OK},
6925 {
"http://google.com/use/base/path?relative",
S_OK},
6931 {Uri_HOST_DNS,
S_OK},
6937 {
"http://google.com/path",0,
6938 "/test/../test/.././testing",Uri_CREATE_ALLOW_RELATIVE,
6941 {
"http://google.com/testing",
S_OK},
6942 {
"google.com",
S_OK},
6943 {
"http://google.com/testing",
S_OK},
6944 {
"google.com",
S_OK},
6947 {
"google.com",
S_OK},
6952 {
"http://google.com/testing",
S_OK},
6958 {Uri_HOST_DNS,
S_OK},
6964 {
"http://google.com/path",0,
6965 "/test/../test/.././testing",Uri_CREATE_ALLOW_RELATIVE,
6968 {
"http://google.com:80/test/../test/.././testing",
S_OK},
6969 {
"google.com",
S_OK},
6970 {
"http://google.com:80/test/../test/.././testing",
S_OK},
6971 {
"google.com",
S_OK},
6974 {
"google.com",
S_OK},
6976 {
"/test/../test/.././testing",
S_OK},
6977 {
"/test/../test/.././testing",
S_OK},
6979 {
"http://google.com:80/test/../test/.././testing",
S_OK},
6985 {Uri_HOST_DNS,
S_OK},
6991 {
"http://winehq.org/test/abc",0,
6992 "testing/abc/../test",Uri_CREATE_ALLOW_RELATIVE,
6995 {
"http://winehq.org/test/testing/test",
S_OK},
6996 {
"winehq.org",
S_OK},
6997 {
"http://winehq.org/test/testing/test",
S_OK},
6998 {
"winehq.org",
S_OK},
7001 {
"winehq.org",
S_OK},
7003 {
"/test/testing/test",
S_OK},
7004 {
"/test/testing/test",
S_OK},
7006 {
"http://winehq.org/test/testing/test",
S_OK},
7012 {Uri_HOST_DNS,
S_OK},
7018 {
"http://winehq.org/test/abc",0,
7019 "testing/abc/../test",Uri_CREATE_ALLOW_RELATIVE,
7022 {
"http://winehq.org:80/test/testing/abc/../test",
S_OK},
7024 {
"winehq.org",
S_OK},
7025 {
"http://winehq.org:80/test/testing/abc/../test",
S_OK},
7026 {
"winehq.org",
S_OK},
7029 {
"winehq.org",
S_OK},
7031 {
"/test/testing/abc/../test",
S_OK},
7032 {
"/test/testing/abc/../test",
S_OK},
7034 {
"http://winehq.org:80/test/testing/abc/../test",
S_OK},
7040 {Uri_HOST_DNS,
S_OK},
7046 {
"http://winehq.org/test?query",0,
7047 "testing",Uri_CREATE_ALLOW_RELATIVE,
7050 {
"http://winehq.org/testing",
S_OK},
7051 {
"winehq.org",
S_OK},
7052 {
"http://winehq.org/testing",
S_OK},
7053 {
"winehq.org",
S_OK},
7056 {
"winehq.org",
S_OK},
7061 {
"http://winehq.org/testing",
S_OK},
7067 {Uri_HOST_DNS,
S_OK},
7073 {
"http://winehq.org/test#frag",0,
7074 "testing",Uri_CREATE_ALLOW_RELATIVE,
7077 {
"http://winehq.org/testing",
S_OK},
7078 {
"winehq.org",
S_OK},
7079 {
"http://winehq.org/testing",
S_OK},
7080 {
"winehq.org",
S_OK},
7083 {
"winehq.org",
S_OK},
7088 {
"http://winehq.org/testing",
S_OK},
7094 {Uri_HOST_DNS,
S_OK},
7100 {
"testing?query#frag",Uri_CREATE_ALLOW_RELATIVE,
7101 "test",Uri_CREATE_ALLOW_RELATIVE,
7121 {Uri_HOST_UNKNOWN,
S_OK},
7127 {
"file:///c:/test/test",0,
7128 "/testing.mp3",Uri_CREATE_ALLOW_RELATIVE,
7131 {
"file://c:\\testing.mp3",
S_OK},
7133 {
"file://c:\\testing.mp3",
S_OK},
7139 {
"c:\\testing.mp3",
S_OK},
7140 {
"c:\\testing.mp3",
S_OK},
7142 {
"file://c:\\testing.mp3",
S_OK},
7148 {Uri_HOST_UNKNOWN,
S_OK},
7154 {
"file:///c:/test/test",0,
7155 "/testing.mp3",Uri_CREATE_ALLOW_RELATIVE,
7158 {
"file:///c:/testing.mp3",
S_OK},
7160 {
"file:///c:/testing.mp3",
S_OK},
7166 {
"/c:/testing.mp3",
S_OK},
7167 {
"/c:/testing.mp3",
S_OK},
7169 {
"file:///c:/testing.mp3",
S_OK},
7175 {Uri_HOST_UNKNOWN,
S_OK},
7181 {
"file://test.com/test/test",0,
7182 "/testing.mp3",Uri_CREATE_ALLOW_RELATIVE,
7185 {
"file://\\\\test.com\\testing.mp3",
S_OK},
7187 {
"file://\\\\test.com\\testing.mp3",
S_OK},
7193 {
"\\testing.mp3",
S_OK},
7194 {
"\\testing.mp3",
S_OK},
7196 {
"file://\\\\test.com\\testing.mp3",
S_OK},
7202 {Uri_HOST_DNS,
S_OK},
7209 {
"http://google.com/test",0,
7210 "zip://test.com/cool/../cool/test",0,
7213 {
"zip://test.com/cool/test",
S_OK,
FALSE,
NULL,
"zip://test.com/cool/../cool/test"},
7215 {
"zip://test.com/cool/test",
S_OK,
FALSE,
NULL,
"zip://test.com/cool/../cool/test"},
7227 {
"zip://test.com/cool/../cool/test",
S_OK,
FALSE,
"zip://test.com/cool/test"},
7233 {Uri_HOST_DNS,
S_OK},
7242 {
"http://google.com/test",0,
7243 "file:///c:/test/",0,
7246 {
"file:///c:/test/",
S_OK,
FALSE,
"file://c:\\test\\"},
7248 {
"file:///c:/test/",
S_OK,
FALSE,
"file://c:\\test\\"},
7257 {
"file:///c:/test/",
S_OK,
FALSE,
"file://c:\\test\\"},
7263 {Uri_HOST_UNKNOWN,
S_OK},
7269 {
"http://google.com/test",0,
7270 "http://test.com/test#%30test",0,
7273 {
"http://test.com/test#0test",
S_OK,
FALSE,
NULL,
"http://test.com/test#%30test"},
7275 {
"http://test.com/test#0test",
S_OK,
FALSE,
NULL,
"http://test.com/test#%30test"},
7285 {
"http://test.com/test#%30test",
S_OK,
FALSE,
"http://test.com/test#0test"},
7291 {Uri_HOST_DNS,
S_OK},
7298 {
"http://google.com/test",0,
7299 "/Te%XXst",Uri_CREATE_ALLOW_RELATIVE,
7303 {
"http://google.com/test",0,
7304 "?Tes%XXt",Uri_CREATE_ALLOW_RELATIVE,
7307 {
"http://google.com/test?Tes%XXt",
S_OK},
7308 {
"google.com",
S_OK},
7309 {
"http://google.com/test?Tes%XXt",
S_OK},
7310 {
"google.com",
S_OK},
7313 {
"google.com",
S_OK},
7316 {
"/test?Tes%XXt",
S_OK},
7318 {
"http://google.com/test?Tes%XXt",
S_OK},
7324 {Uri_HOST_DNS,
S_OK},
7331 {
"http://google.com/test",0,
7332 "#Tes%XXt",Uri_CREATE_ALLOW_RELATIVE,
7335 {
"http://google.com/test#Tes%XXt",
S_OK},
7336 {
"google.com",
S_OK},
7337 {
"http://google.com/test#Tes%XXt",
S_OK},
7338 {
"google.com",
S_OK},
7341 {
"google.com",
S_OK},
7346 {
"http://google.com/test#Tes%XXt",
S_OK},
7352 {Uri_HOST_DNS,
S_OK},
7359 {
"file:///c:/test",0,
7360 "/test<ing",Uri_CREATE_ALLOW_RELATIVE,
7363 {
"file://c:\\test<ing",
S_OK},
7365 {
"file://c:\\test<ing",
S_OK},
7371 {
"c:\\test<ing",
S_OK},
7372 {
"c:\\test<ing",
S_OK},
7374 {
"file://c:\\test<ing",
S_OK},
7380 {Uri_HOST_UNKNOWN,
S_OK},
7387 {
"file:///c:/test",0,
7388 "/c:/testing",Uri_CREATE_ALLOW_RELATIVE,
7391 {
"file:///c:/c:/testing",
S_OK},
7393 {
"file:///c:/c:/testing",
S_OK},
7399 {
"/c:/c:/testing",
S_OK},
7400 {
"/c:/c:/testing",
S_OK},
7402 {
"file:///c:/c:/testing",
S_OK},
7408 {Uri_HOST_UNKNOWN,
S_OK},
7418 {
"http://google.com",Uri_CREATE_NO_CANONICALIZE,
7419 "?test",Uri_CREATE_ALLOW_RELATIVE,
7422 {
"http://google.com/?test",
S_OK},
7423 {
"google.com",
S_OK},
7424 {
"http://google.com/?test",
S_OK},
7425 {
"google.com",
S_OK},
7428 {
"google.com",
S_OK},
7433 {
"http://google.com/?test",
S_OK},
7439 {Uri_HOST_DNS,
S_OK},
7445 {
"zip://google.com",Uri_CREATE_NO_CANONICALIZE,
7446 "?test",Uri_CREATE_ALLOW_RELATIVE,
7449 {
"zip://google.com/?test",
S_OK},
7450 {
"google.com",
S_OK},
7451 {
"zip://google.com/?test",
S_OK},
7452 {
"google.com",
S_OK},
7455 {
"google.com",
S_OK},
7460 {
"zip://google.com/?test",
S_OK},
7466 {Uri_HOST_DNS,
S_OK},
7474 "?test",Uri_CREATE_ALLOW_RELATIVE,
7494 {Uri_HOST_UNKNOWN,
S_OK},
7501 "../testing/test",Uri_CREATE_ALLOW_RELATIVE,
7504 {
"file:///c:/testing/test",
S_OK},
7506 {
"file:///c:/testing/test",
S_OK},
7512 {
"/c:/testing/test",
S_OK},
7513 {
"/c:/testing/test",
S_OK},
7515 {
"file:///c:/testing/test",
S_OK},
7521 {Uri_HOST_UNKNOWN,
S_OK},
7527 {
"http://winehq.org/dir/testfile",0,
7528 "test?querystring",Uri_CREATE_ALLOW_RELATIVE,
7531 {
"http://winehq.org/dir/test?querystring",
S_OK},
7532 {
"winehq.org",
S_OK},
7533 {
"http://winehq.org/dir/test?querystring",
S_OK},
7534 {
"winehq.org",
S_OK},
7537 {
"winehq.org",
S_OK},
7540 {
"/dir/test?querystring",
S_OK},
7541 {
"?querystring",
S_OK},
7542 {
"http://winehq.org/dir/test?querystring",
S_OK},
7548 {Uri_HOST_DNS,
S_OK},
7554 {
"http://winehq.org/dir/test",0,
7555 "test?querystring",Uri_CREATE_ALLOW_RELATIVE,
7558 {
"http://winehq.org/dir/test?querystring",
S_OK},
7559 {
"winehq.org",
S_OK},
7560 {
"http://winehq.org/dir/test?querystring",
S_OK},
7561 {
"winehq.org",
S_OK},
7564 {
"winehq.org",
S_OK},
7567 {
"/dir/test?querystring",
S_OK},
7568 {
"?querystring",
S_OK},
7569 {
"http://winehq.org/dir/test?querystring",
S_OK},
7575 {Uri_HOST_DNS,
S_OK},
7581 {
"http://winehq.org/dir/test?querystring",0,
7582 "#hash",Uri_CREATE_ALLOW_RELATIVE,
7585 {
"http://winehq.org/dir/test?querystring#hash",
S_OK},
7586 {
"winehq.org",
S_OK},
7587 {
"http://winehq.org/dir/test?querystring#hash",
S_OK},
7588 {
"winehq.org",
S_OK},
7591 {
"winehq.org",
S_OK},
7594 {
"/dir/test?querystring",
S_OK},
7595 {
"?querystring",
S_OK},
7596 {
"http://winehq.org/dir/test?querystring#hash",
S_OK},
7602 {Uri_HOST_DNS,
S_OK},
7608 {
"mk:@MSITSTORE:C:\\Some\\Bogus\\Path.chm::/subdir\\file.txt",0,
7609 "relative/path.txt",Uri_CREATE_ALLOW_RELATIVE,
7612 {
"mk:@MSITSTORE:C:\\Some\\Bogus\\Path.chm::/subdir/relative/path.txt",
S_OK},
7614 {
"mk:@MSITSTORE:C:\\Some\\Bogus\\Path.chm::/subdir/relative/path.txt",
S_OK},
7620 {
"@MSITSTORE:C:\\Some\\Bogus\\Path.chm::/subdir/relative/path.txt",
S_OK},
7621 {
"@MSITSTORE:C:\\Some\\Bogus\\Path.chm::/subdir/relative/path.txt",
S_OK},
7623 {
"mk:@MSITSTORE:C:\\Some\\Bogus\\Path.chm::/subdir/relative/path.txt",
S_OK},
7629 {Uri_HOST_UNKNOWN,
S_OK},
7635 {
"mk:@MSITSTORE:C:\\Some\\Bogus\\Path.chm::\\subdir\\file.txt",0,
7636 "relative/path.txt",Uri_CREATE_ALLOW_RELATIVE,
7639 {
"mk:@MSITSTORE:C:\\Some\\Bogus\\Path.chm::/subdir/relative/path.txt",
S_OK},
7641 {
"mk:@MSITSTORE:C:\\Some\\Bogus\\Path.chm::/subdir/relative/path.txt",
S_OK},
7647 {
"@MSITSTORE:C:\\Some\\Bogus\\Path.chm::/subdir/relative/path.txt",
S_OK},
7648 {
"@MSITSTORE:C:\\Some\\Bogus\\Path.chm::/subdir/relative/path.txt",
S_OK},
7650 {
"mk:@MSITSTORE:C:\\Some\\Bogus\\Path.chm::/subdir/relative/path.txt",
S_OK},
7656 {Uri_HOST_UNKNOWN,
S_OK},
7662 {
"mk:@MSITSTORE:C:/Some\\Bogus/Path.chm::/subdir\\file.txt",0,
7663 "relative\\path.txt",Uri_CREATE_ALLOW_RELATIVE,
7666 {
"mk:@MSITSTORE:C:/Some\\Bogus/Path.chm::/subdir/relative/path.txt",
S_OK},
7668 {
"mk:@MSITSTORE:C:/Some\\Bogus/Path.chm::/subdir/relative/path.txt",
S_OK},
7674 {
"@MSITSTORE:C:/Some\\Bogus/Path.chm::/subdir/relative/path.txt",
S_OK},
7675 {
"@MSITSTORE:C:/Some\\Bogus/Path.chm::/subdir/relative/path.txt",
S_OK},
7677 {
"mk:@MSITSTORE:C:/Some\\Bogus/Path.chm::/subdir/relative/path.txt",
S_OK},
7683 {Uri_HOST_UNKNOWN,
S_OK},
7689 {
"mk:@MSITSTORE:C:\\dir\\file.chm::/subdir/file.txt",0,
7690 "/relative/path.txt",Uri_CREATE_ALLOW_RELATIVE,
7693 {
"mk:@MSITSTORE:C:\\dir\\file.chm::/relative/path.txt",
S_OK},
7695 {
"mk:@MSITSTORE:C:\\dir\\file.chm::/relative/path.txt",
S_OK},
7701 {
"@MSITSTORE:C:\\dir\\file.chm::/relative/path.txt",
S_OK},
7702 {
"@MSITSTORE:C:\\dir\\file.chm::/relative/path.txt",
S_OK},
7704 {
"mk:@MSITSTORE:C:\\dir\\file.chm::/relative/path.txt",
S_OK},
7710 {Uri_HOST_UNKNOWN,
S_OK},
7716 {
"mk:MSITSTORE:C:\\dir\\file.chm::/subdir/file.txt",0,
7717 "/relative/path.txt",Uri_CREATE_ALLOW_RELATIVE,
7720 {
"mk:MSITSTORE:C:\\dir\\file.chm::/relative/path.txt",
S_OK},
7722 {
"mk:MSITSTORE:C:\\dir\\file.chm::/relative/path.txt",
S_OK},
7728 {
"MSITSTORE:C:\\dir\\file.chm::/relative/path.txt",
S_OK},
7729 {
"MSITSTORE:C:\\dir\\file.chm::/relative/path.txt",
S_OK},
7731 {
"mk:MSITSTORE:C:\\dir\\file.chm::/relative/path.txt",
S_OK},
7737 {Uri_HOST_UNKNOWN,
S_OK},
7743 {
"mk:@MSITSTORE:C:\\dir\\file.chm::/subdir/../../file.txt",0,
7744 "/relative/path.txt",Uri_CREATE_ALLOW_RELATIVE,
7747 {
"mk:@MSITSTORE:/relative/path.txt",
S_OK},
7749 {
"mk:@MSITSTORE:/relative/path.txt",
S_OK},
7755 {
"@MSITSTORE:/relative/path.txt",
S_OK},
7756 {
"@MSITSTORE:/relative/path.txt",
S_OK},
7758 {
"mk:@MSITSTORE:/relative/path.txt",
S_OK},
7764 {Uri_HOST_UNKNOWN,
S_OK},
7770 {
"mk:@xxx:C:\\dir\\file.chm::/subdir/../../file.txt",0,
7771 "/relative/path.txt",Uri_CREATE_ALLOW_RELATIVE,
7774 {
"mk:@xxx:/relative/path.txt",
S_OK},
7776 {
"mk:@xxx:/relative/path.txt",
S_OK},
7782 {
"@xxx:/relative/path.txt",
S_OK},
7783 {
"@xxx:/relative/path.txt",
S_OK},
7785 {
"mk:@xxx:/relative/path.txt",
S_OK},
7791 {Uri_HOST_UNKNOWN,
S_OK},
7797 {
"mk:xxx:C:\\dir\\file.chm::/subdir/../../file.txt",0,
7798 "/relative/path.txt",Uri_CREATE_ALLOW_RELATIVE,
7801 {
"mk:/relative/path.txt",
S_OK},
7803 {
"mk:/relative/path.txt",
S_OK},
7809 {
"/relative/path.txt",
S_OK},
7810 {
"/relative/path.txt",
S_OK},
7812 {
"mk:/relative/path.txt",
S_OK},
7818 {Uri_HOST_UNKNOWN,
S_OK},
7824 {
"ml:@MSITSTORE:C:\\dir\\file.chm::/subdir/file.txt",0,
7825 "/relative/path.txt",Uri_CREATE_ALLOW_RELATIVE,
7828 {
"ml:/relative/path.txt",
S_OK},
7830 {
"ml:/relative/path.txt",
S_OK},
7836 {
"/relative/path.txt",
S_OK},
7837 {
"/relative/path.txt",
S_OK},
7839 {
"ml:/relative/path.txt",
S_OK},
7845 {Uri_HOST_UNKNOWN,
S_OK},
7851 {
"http://winehq.org/dir/test?querystring",0,
7852 "//winehq.com/#hash",Uri_CREATE_ALLOW_RELATIVE,
7855 {
"http://winehq.com/#hash",
S_OK},
7856 {
"winehq.com",
S_OK},
7857 {
"http://winehq.com/#hash",
S_OK},
7858 {
"winehq.com",
S_OK},
7861 {
"winehq.com",
S_OK},
7866 {
"http://winehq.com/#hash",
S_OK},
7872 {Uri_HOST_DNS,
S_OK},
7878 {
"http://winehq.org/dir/test?querystring",0,
7879 "//winehq.com/dir2/../dir/file.txt?query#hash",Uri_CREATE_ALLOW_RELATIVE,
7882 {
"http://winehq.com/dir/file.txt?query#hash",
S_OK},
7883 {
"winehq.com",
S_OK},
7884 {
"http://winehq.com/dir/file.txt?query#hash",
S_OK},
7885 {
"winehq.com",
S_OK},
7888 {
"winehq.com",
S_OK},
7890 {
"/dir/file.txt",
S_OK},
7891 {
"/dir/file.txt?query",
S_OK},
7893 {
"http://winehq.com/dir/file.txt?query#hash",
S_OK},
7899 {Uri_HOST_DNS,
S_OK},
7905 {
"http://google.com/test",0,
7906 "c:\\test\\", Uri_CREATE_ALLOW_IMPLICIT_FILE_SCHEME,
7909 {
"file:///c:/test/",
S_OK},
7911 {
"file:///c:/test/",
S_OK},
7920 {
"c:\\test\\",
S_OK,
FALSE,
"file:///c:/test/"},
7926 {Uri_HOST_UNKNOWN,
S_OK},
7932 {
"http://google.com/test",0,
7933 "c:\\test\\", Uri_CREATE_ALLOW_IMPLICIT_FILE_SCHEME,
7936 {
"file:///c:/test/",
S_OK},
7938 {
"file:///c:/test/",
S_OK},
7947 {
"c:\\test\\",
S_OK,
FALSE,
"file:///c:/test/"},
7953 {Uri_HOST_UNKNOWN,
S_OK},
7959 {
"http://winehq.org",0,
7960 "mailto://",Uri_CREATE_NO_CANONICALIZE,
7980 {Uri_HOST_UNKNOWN,
S_OK},
7986 {
"http://winehq.org",0,
7987 "mailto://a@b.com",Uri_CREATE_NO_CANONICALIZE,
7990 {
"mailto:a@b.com",
S_OK},
7992 {
"mailto:a@b.com",
S_OK},
8001 {
"mailto://a@b.com",
S_OK,
FALSE,
"mailto:a@b.com"},
8007 {Uri_HOST_UNKNOWN,
S_OK},
8014 "/",Uri_CREATE_ALLOW_RELATIVE,
8017 {
"http://[::1]/",
S_OK},
8019 {
"http://[::1]/",
S_OK},
8028 {
"http://[::1]/",
S_OK},
8034 {Uri_HOST_IPV6,
S_OK},
8055 {
"zip://google.com/test<|>",0,PARSE_CANONICALIZE,0,
"zip://google.com/test<|>",
S_OK,
FALSE},
8056 {
"http://google.com/test<|>",0,PARSE_CANONICALIZE,0,
"http://google.com/test%3C%7C%3E",
S_OK,
FALSE},
8057 {
"http://google.com/%30%23%3F",0,PARSE_CANONICALIZE,
URL_UNESCAPE,
"http://google.com/0#?",
S_OK,
FALSE},
8062 {
"http://google.com/test/../",Uri_CREATE_NO_CANONICALIZE,PARSE_CANONICALIZE,
URL_DONT_SIMPLIFY,
"http://google.com/test/../",
S_OK,
FALSE},
8063 {
"http://google.com/test/../",Uri_CREATE_NO_CANONICALIZE,PARSE_CANONICALIZE,
URL_NO_META,
"http://google.com/test/../",
S_OK,
FALSE},
8064 {
"http://google.com/test/../",Uri_CREATE_NO_CANONICALIZE,PARSE_CANONICALIZE,0,
"http://google.com/",
S_OK,
FALSE},
8065 {
"zip://google.com/test/../",Uri_CREATE_NO_CANONICALIZE,PARSE_CANONICALIZE,0,
"zip://google.com/",
S_OK,
FALSE},
8066 {
"file:///c:/test/../test",Uri_CREATE_NO_CANONICALIZE,PARSE_CANONICALIZE,
URL_DONT_SIMPLIFY,
"file:///c:/test/../test",
S_OK,
FALSE},
8069 {
"http://test@google.com/test#test",0,PARSE_FRIENDLY,0,
"http://google.com/test#test",
S_OK,
FALSE},
8070 {
"zip://test@google.com/test",0,PARSE_FRIENDLY,0,
"zip://test@google.com/test",
S_OK,
FALSE},
8073 {
"http://google.com:200/test/test",0,PARSE_ROOTDOCUMENT,0,
"http://google.com:200/",
S_OK,
FALSE},
8074 {
"http://google.com",Uri_CREATE_NO_CANONICALIZE,PARSE_ROOTDOCUMENT,0,
"http://google.com/",
S_OK,
FALSE},
8075 {
"zip://google.com/",0,PARSE_ROOTDOCUMENT,0,
"",
S_OK,
FALSE},
8076 {
"file:///c:/testing/",0,PARSE_ROOTDOCUMENT,0,
"",
S_OK,
FALSE},
8077 {
"file://server/test",0,PARSE_ROOTDOCUMENT,0,
"",
S_OK,
FALSE},
8078 {
"zip:test/test",0,PARSE_ROOTDOCUMENT,0,
"",
S_OK,
FALSE},
8081 {
"http://test@google.com/test?query#frag",0,PARSE_DOCUMENT,0,
"http://test@google.com/test?query",
S_OK,
FALSE},
8082 {
"http:testing#frag",0,PARSE_DOCUMENT,0,
"",
S_OK,
FALSE},
8083 {
"file:///c:/test#frag",0,PARSE_DOCUMENT,0,
"",
S_OK,
FALSE},
8084 {
"zip://google.com/#frag",0,PARSE_DOCUMENT,0,
"",
S_OK,
FALSE},
8085 {
"zip:test#frag",0,PARSE_DOCUMENT,0,
"",
S_OK,
FALSE},
8086 {
"testing#frag",Uri_CREATE_ALLOW_RELATIVE,PARSE_DOCUMENT,0,
"",
S_OK,
FALSE},
8089 {
"file:///c:/test.mp3",0,PARSE_PATH_FROM_URL,0,
"c:\\test.mp3",
S_OK,
FALSE},
8090 {
"file:///c:/t<|>est.mp3",0,PARSE_PATH_FROM_URL,0,
"c:\\t<|>est.mp3",
S_OK,
FALSE},
8091 {
"file:///c:/te%XX t/",0,PARSE_PATH_FROM_URL,0,
"c:\\te%XX t\\",
S_OK,
FALSE},
8092 {
"file://server/test",0,PARSE_PATH_FROM_URL,0,
"\\\\server\\test",
S_OK,
FALSE},
8094 {
"file:/c:/dir/test.mp3",0,PARSE_PATH_FROM_URL,0,
"c:\\dir\\test.mp3",
S_OK},
8095 {
"file:/c:/test.mp3",0,PARSE_PATH_FROM_URL,0,
"c:\\test.mp3",
S_OK},
8096 {
"file://c:\\test.mp3",0,PARSE_PATH_FROM_URL,0,
"c:\\test.mp3",
S_OK},
8100 {
"test.com",Uri_CREATE_ALLOW_RELATIVE,PARSE_URL_FROM_PATH,0,
"test.com",
S_OK,
FALSE},
8101 {
"/test/test",Uri_CREATE_ALLOW_RELATIVE,PARSE_URL_FROM_PATH,0,
"/test/test",
S_OK,
FALSE},
8102 {
"file://c:\\test\\test",Uri_CREATE_FILE_USE_DOS_PATH,PARSE_URL_FROM_PATH,0,
"file://c:\\test\\test",
S_OK,
FALSE},
8103 {
"file:c:/test",0,PARSE_URL_FROM_PATH,0,
"",
S_OK,
FALSE},
8104 {
"http:google.com/",0,PARSE_URL_FROM_PATH,0,
"",
S_OK,
FALSE},
8107 {
"http://google.com/test",0,PARSE_SCHEMA,0,
"http",
S_OK,
FALSE},
8108 {
"test",Uri_CREATE_ALLOW_RELATIVE,PARSE_SCHEMA,0,
"",
S_OK,
FALSE},
8111 {
"http://google.uk.com/",0,PARSE_SITE,0,
"google.uk.com",
S_OK,
FALSE},
8112 {
"http://google.com.com/",0,PARSE_SITE,0,
"google.com.com",
S_OK,
FALSE},
8113 {
"google.com",Uri_CREATE_ALLOW_RELATIVE,PARSE_SITE,0,
"",
S_OK,
FALSE},
8114 {
"file://server/test",0,PARSE_SITE,0,
"server",
S_OK,
FALSE},
8117 {
"http://google.com.uk/",0,PARSE_DOMAIN,0,
"google.com.uk",
S_OK,
FALSE,
"com.uk"},
8118 {
"http://google.com.com/",0,PARSE_DOMAIN,0,
"com.com",
S_OK,
FALSE},
8119 {
"test/test",Uri_CREATE_ALLOW_RELATIVE,PARSE_DOMAIN,0,
"",
S_OK,
FALSE},
8120 {
"file://server/test",0,PARSE_DOMAIN,0,
"",
S_OK,
FALSE},
8123 {
"http://google.com/test#Test",0,PARSE_ANCHOR,0,
"#Test",
S_OK,
FALSE},
8124 {
"http://google.com/test#Test",0,PARSE_LOCATION,0,
"#Test",
S_OK,
FALSE},
8125 {
"test",Uri_CREATE_ALLOW_RELATIVE,PARSE_ANCHOR,0,
"",
S_OK,
FALSE},
8126 {
"test",Uri_CREATE_ALLOW_RELATIVE,PARSE_LOCATION,0,
"",
S_OK,
FALSE}
8150 return IUri_Release(
uri);
8160 case Uri_PROPERTY_FRAGMENT:
8161 hr = IUriBuilder_SetFragment(builder,
valueW);
8164 "Error: IUriBuilder_SetFragment returned 0x%08lx, expected 0x%08lx on uri_builder_tests[%ld].\n",
8168 case Uri_PROPERTY_HOST:
8169 hr = IUriBuilder_SetHost(builder,
valueW);
8172 "Error: IUriBuilder_SetHost returned 0x%08lx, expected 0x%08lx on uri_builder_tests[%ld].\n",
8176 case Uri_PROPERTY_PASSWORD:
8177 hr = IUriBuilder_SetPassword(builder,
valueW);
8180 "Error: IUriBuilder_SetPassword returned 0x%08lx, expected 0x%08lx on uri_builder_tests[%ld].\n",
8184 case Uri_PROPERTY_PATH:
8185 hr = IUriBuilder_SetPath(builder,
valueW);
8188 "Error: IUriBuilder_SetPath returned 0x%08lx, expected 0x%08lx on uri_builder_tests[%ld].\n",
8192 case Uri_PROPERTY_QUERY:
8193 hr = IUriBuilder_SetQuery(builder,
valueW);
8196 "Error: IUriBuilder_SetQuery returned 0x%08lx, expected 0x%08lx on uri_builder_tests[%ld].\n",
8200 case Uri_PROPERTY_SCHEME_NAME:
8201 hr = IUriBuilder_SetSchemeName(builder,
valueW);
8204 "Error: IUriBuilder_SetSchemeName returned 0x%08lx, expected 0x%08lx on uri_builder_tests[%ld].\n",
8208 case Uri_PROPERTY_USER_NAME:
8209 hr = IUriBuilder_SetUserName(builder,
valueW);
8212 "Error: IUriBuilder_SetUserName returned 0x%08lx, expected 0x%08lx on uri_builder_tests[%ld].\n",
8217 trace(
"Unsupported operation for %d on uri_builder_tests[%ld].\n", prop->
property, test_index);
8232 IUri *
uri = (
void*) 0xdeadbeef;
8237 ok(
uri ==
NULL,
"Error: expected the IUri to be NULL, but it was %p instead\n",
uri);
8243 IUri *
uri = (
void*) 0xdeadbeef;
8253 ok(
uri ==
NULL,
"Error: Expected the IUri to be NULL, but it was %p instead\n",
uri);
8255 uri = (
void*) 0xdeadbeef;
8258 ok(
uri ==
NULL,
"Error: Expected the IUri to be NULL, but it was %p instead\n",
uri);
8260 uri = (
void*) 0xdeadbeef;
8263 ok(
uri ==
NULL,
"Error: Expected the IUri to be NULL, but it was %p instead\n",
uri);
8276 hr = pCreateUri(uriW,
test.flags, 0, &
uri);
8278 ok(
hr ==
E_INVALIDARG,
"Error: CreateUri returned 0x%08lx, expected 0x%08lx on invalid_uri_tests[%ld].\n",
8280 if(
uri) IUri_Release(
uri);
8293 ok(
hr ==
S_OK,
"Error: CreateUri returned 0x%08lx, expected 0x%08lx.\n",
hr,
S_OK);
8297 hr = IUri_GetPropertyBSTR(
uri, Uri_PROPERTY_RAW_URI,
NULL, 0);
8301 hr = IUri_GetPropertyBSTR(
uri, Uri_PROPERTY_PORT, &
received, 0);
8304 ok(
received !=
NULL,
"Error: Expected the string not to be NULL.\n");
8313 hr = IUri_GetPropertyBSTR(
uri, Uri_PROPERTY_ZONE, &
received, 0);
8314 ok(
hr ==
S_FALSE,
"Error: GetPropertyBSTR returned 0x%08lx, expected 0x%08lx.\n",
hr,
S_FALSE);
8315 ok(
received !=
NULL,
"Error: Expected the string not to be NULL.\n");
8319 if(
uri) IUri_Release(
uri);
8327 hr = pCreateUri(uriW,
test.create_flags, 0, &
uri);
8329 ok(
hr ==
test.create_expected,
"Error: CreateUri returned 0x%08lx, expected 0x%08lx. Failed on uri_tests[%ld].\n",
8336 for(
j = Uri_PROPERTY_STRING_START;
j <= Uri_PROPERTY_STRING_LAST; ++
j) {
8344 "GetPropertyBSTR returned 0x%08lx, expected 0x%08lx. On uri_tests[%ld].str_props[%ld].\n",
8348 "Expected %s but got %s on uri_tests[%ld].str_props[%ld].\n",
8356 if(
uri) IUri_Release(
uri);
8368 ok(
hr ==
S_OK,
"Error: CreateUri returned 0x%08lx, expected 0x%08lx.\n",
hr,
S_OK);
8372 hr = IUri_GetPropertyDWORD(
uri, Uri_PROPERTY_DWORD_START,
NULL, 0);
8375 hr = IUri_GetPropertyDWORD(
uri, Uri_PROPERTY_ABSOLUTE_URI, &
received, 0);
8377 ok(
received == 0,
"Error: Expected received=%d but instead received=%ld.\n", 0,
received);
8379 if(
uri) IUri_Release(
uri);
8387 hr = pCreateUri(uriW,
test.create_flags, 0, &
uri);
8389 ok(
hr ==
test.create_expected,
"Error: CreateUri returned 0x%08lx, expected 0x%08lx. Failed on uri_tests[%ld].\n",
8400 hr = IUri_GetPropertyDWORD(
uri,
j+Uri_PROPERTY_DWORD_START, &
received, 0);
8402 ok(
hr == prop.
expected,
"GetPropertyDWORD returned 0x%08lx, expected 0x%08lx. On uri_tests[%ld].dword_props[%ld].\n",
8404 ok(prop.
value ==
received,
"Expected %ld but got %ld on uri_tests[%ld].dword_props[%ld].\n",
8410 if(
uri) IUri_Release(
uri);
8424 ok(
hr ==
S_OK,
"Error: CreateUri returned 0x%08lx, expected 0x%08lx.\n",
hr,
S_OK);
8471 if(
uri) IUri_Release(
uri);
8478 if (
test.flags)
continue;
8481 hr = pCreateUri(uriW,
test.create_flags, 0, &
uri);
8483 ok(
hr ==
test.create_expected,
"Error: CreateUri returned 0x%08lx, expected 0x%08lx on uri_tests[%ld].\n",
8491 prop =
test.str_props[Uri_PROPERTY_ABSOLUTE_URI];
8494 ok(
hr == prop.
expected,
"Error: GetAbsoluteUri returned 0x%08lx, expected 0x%08lx on uri_tests[%ld].\n",
8497 "Error: Expected %s but got %s on uri_tests[%ld].\n",
8504 prop =
test.str_props[Uri_PROPERTY_AUTHORITY];
8507 ok(
hr == prop.
expected,
"Error: GetAuthority returned 0x%08lx, expected 0x%08lx on uri_tests[%ld].\n",
8516 prop =
test.str_props[Uri_PROPERTY_DISPLAY_URI];
8520 "Error: GetDisplayUri returned 0x%08lx, expected 0x%08lx on uri_tests[%ld].\n",
8524 "Error: Expected %s but got %s on uri_tests[%ld].\n",
8531 prop =
test.str_props[Uri_PROPERTY_DOMAIN];
8535 "Error: GetDomain returned 0x%08lx, expected 0x%08lx on uri_tests[%ld].\n",
8538 "Error: Expected %s but got %s on uri_tests[%ld].\n",
8545 prop =
test.str_props[Uri_PROPERTY_EXTENSION];
8548 ok(
hr == prop.
expected,
"Error: GetExtension returned 0x%08lx, expected 0x%08lx on uri_tests[%ld].\n",
8557 prop =
test.str_props[Uri_PROPERTY_FRAGMENT];
8560 ok(
hr == prop.
expected,
"Error: GetFragment returned 0x%08lx, expected 0x%08lx on uri_tests[%ld].\n",
8569 prop =
test.str_props[Uri_PROPERTY_HOST];
8572 ok(
hr == prop.
expected,
"Error: GetHost returned 0x%08lx, expected 0x%08lx on uri_tests[%ld].\n",
8581 prop =
test.str_props[Uri_PROPERTY_PASSWORD];
8584 ok(
hr == prop.
expected,
"Error: GetPassword returned 0x%08lx, expected 0x%08lx on uri_tests[%ld].\n",
8593 prop =
test.str_props[Uri_PROPERTY_PATH];
8596 ok(
hr == prop.
expected,
"Error: GetPath returned 0x%08lx, expected 0x%08lx on uri_tests[%ld].\n",
8605 prop =
test.str_props[Uri_PROPERTY_PATH_AND_QUERY];
8608 ok(
hr == prop.
expected,
"Error: GetPathAndQuery returned 0x%08lx, expected 0x%08lx on uri_tests[%ld].\n",
8617 prop =
test.str_props[Uri_PROPERTY_QUERY];
8620 ok(
hr == prop.
expected,
"Error: GetQuery returned 0x%08lx, expected 0x%08lx on uri_tests[%ld].\n",
8629 prop =
test.str_props[Uri_PROPERTY_RAW_URI];
8632 ok(
hr == prop.
expected,
"Error: GetRawUri returned 0x%08lx, expected 0x%08lx on uri_tests[%ld].\n",
8641 prop =
test.str_props[Uri_PROPERTY_SCHEME_NAME];
8644 ok(
hr == prop.
expected,
"Error: GetSchemeName returned 0x%08lx, expected 0x%08lx on uri_tests[%ld].\n",
8653 prop =
test.str_props[Uri_PROPERTY_USER_INFO];
8656 ok(
hr == prop.
expected,
"Error: GetUserInfo returned 0x%08lx, expected 0x%08lx on uri_tests[%ld].\n",
8665 prop =
test.str_props[Uri_PROPERTY_USER_NAME];
8668 ok(
hr == prop.
expected,
"Error: GetUserName returned 0x%08lx, expected 0x%08lx on uri_tests[%ld].\n",
8676 if(
uri) IUri_Release(
uri);
8689 ok(
hr ==
S_OK,
"Error: CreateUri returned 0x%08lx, expected 0x%08lx.\n",
hr,
S_OK);
8703 if(
uri) IUri_Release(
uri);
8711 hr = pCreateUri(uriW,
test.create_flags, 0, &
uri);
8713 ok(
hr ==
test.create_expected,
"Error: CreateUri returned 0x%08lx, expected 0x%08lx on uri_tests[%ld].\n",
8726 prop =
test.dword_props[Uri_PROPERTY_HOST_TYPE-Uri_PROPERTY_DWORD_START];
8729 ok(
hr == prop.
expected,
"Error: GetHostType returned 0x%08lx, expected 0x%08lx on uri_tests[%ld].\n",
8736 prop =
test.dword_props[Uri_PROPERTY_PORT-Uri_PROPERTY_DWORD_START];
8739 ok(
hr == prop.
expected,
"Error: GetPort returned 0x%08lx, expected 0x%08lx on uri_tests[%ld].\n",
8746 prop =
test.dword_props[Uri_PROPERTY_SCHEME-Uri_PROPERTY_DWORD_START];
8749 ok(
hr == prop.
expected,
"Error: GetScheme returned 0x%08lx, expected 0x%08lx on uri_tests[%ld].\n",
8756 prop =
test.dword_props[Uri_PROPERTY_ZONE-Uri_PROPERTY_DWORD_START];
8759 ok(
hr == prop.
expected,
"Error: GetZone returned 0x%08lx, expected 0x%08lx on uri_tests[%ld].\n",
8765 if(
uri) IUri_Release(
uri);
8778 ok(
hr ==
S_OK,
"Error: CreateUri returned 0x%08lx, expected 0x%08lx.\n",
hr,
S_OK);
8782 hr = IUri_GetPropertyLength(
uri, Uri_PROPERTY_STRING_START,
NULL, 0);
8785 hr = IUri_GetPropertyLength(
uri, Uri_PROPERTY_DWORD_START, &
received, 0);
8787 ok(
received == 0xdeadbeef,
"Error: Expected 0xdeadbeef but got 0x%08lx.\n",
received);
8789 if(
uri) IUri_Release(
uri);
8797 hr = pCreateUri(uriW,
test.create_flags, 0, &
uri);
8799 ok(
hr ==
test.create_expected,
"Error: CreateUri returned 0x%08lx, expected 0x%08lx on uri_test[%ld].\n",
8805 for(
j = Uri_PROPERTY_STRING_START;
j <= Uri_PROPERTY_STRING_LAST; ++
j) {
8806 DWORD expectedLen, expectedLen2, receivedLen;
8815 expectedLen =
lstrlenW(expectedValueW);
8816 free(expectedValueW);
8828 expectedLen2 =
lstrlenW(expectedValueW);
8829 free(expectedValueW);
8839 hr = IUri_GetPropertyLength(
uri,
j, &receivedLen,
test.flags);
8842 "Error: GetPropertyLength returned 0x%08lx, expected 0x%08lx on uri_tests[%ld].str_props[%ld].\n",
8844 ok(receivedLen == expectedLen || (prop.
value2 && receivedLen == expectedLen2) ||
8846 "Error: Expected a length of %ld but got %ld on uri_tests[%ld].str_props[%ld].\n",
8847 expectedLen, receivedLen,
i,
j);
8852 if(
uri) IUri_Release(
uri);
8864 for(
i=Uri_PROPERTY_STRING_START;
i <= Uri_PROPERTY_STRING_LAST;
i++) {
8865 if(
test->str_props[
i-Uri_PROPERTY_STRING_START].expected ==
S_OK)
8867 if(
test->str_props[
i-Uri_PROPERTY_STRING_START].value2 ==
NULL ||
8868 test->str_props[
i-Uri_PROPERTY_STRING_START].expected ==
8869 test->str_props[
i-Uri_PROPERTY_STRING_START].expected2)
8873 for(
i=Uri_PROPERTY_DWORD_START;
i <= Uri_PROPERTY_DWORD_LAST;
i++) {
8874 if(
test->dword_props[
i-Uri_PROPERTY_DWORD_START].expected ==
S_OK)
8888 ok(
hr ==
S_OK,
"Error: CreateUri returned 0x%08lx, expected 0x%08lx.\n",
hr,
S_OK);
8893 if(
uri) IUri_Release(
uri);
8900 if (
test.flags)
continue;
8903 hr = pCreateUri(uriW,
test.create_flags, 0, &
uri);
8905 ok(
hr ==
test.create_expected,
"Error: CreateUri returned 0x%08lx, expected 0x%08lx.\n",
hr,
test.create_expected);
8912 ok(
hr ==
S_OK,
"Error: GetProperties returned 0x%08lx, expected 0x%08lx.\n",
hr,
S_OK);
8916 for(
j = 0;
j <= Uri_PROPERTY_DWORD_LAST; ++
j) {
8918 if(
mask & (1 <<
j)) {
8919 if(expected_props & (1 <<
j))
8920 ok(
received & (1 <<
j),
"Error: Expected flag for property %ld on uri_tests[%ld].\n",
j,
i);
8922 ok(!(
received & (1 <<
j)),
"Error: Received flag for property %ld when not expected on uri_tests[%ld].\n",
j,
i);
8927 if(
uri) IUri_Release(
uri);
8939 ok(
hr ==
S_OK,
"Error: CreateUri returned 0x%08lx, expected 0x%08lx.\n",
hr,
S_OK);
8941 hr = IUri_HasProperty(
uri, Uri_PROPERTY_RAW_URI,
NULL);
8944 if(
uri) IUri_Release(
uri);
8951 if (
test.flags)
continue;
8955 hr = pCreateUri(uriW,
test.create_flags, 0, &
uri);
8957 ok(
hr ==
test.create_expected,
"Error: CreateUri returned 0x%08lx, expected 0x%08lx.\n",
hr,
test.create_expected);
8964 for(
j = 0;
j <= Uri_PROPERTY_DWORD_LAST; ++
j) {
8969 ok(
hr ==
S_OK,
"Error: HasProperty returned 0x%08lx, expected 0x%08lx for property %ld on uri_tests[%ld].\n",
8972 if(
mask & (1 <<
j)) {
8973 if(expected_props & (1 <<
j)) {
8974 ok(
received ==
TRUE,
"Error: Expected to have property %ld on uri_tests[%ld].\n",
j,
i);
8976 ok(
received ==
FALSE,
"Error: Wasn't expecting to have property %ld on uri_tests[%ld].\n",
j,
i);
8982 if(
uri) IUri_Release(
uri);
9014 return IUri_AddRef(
uri->uri);
9020 return IUri_Release(
uri->uri);
9044 return IUri_HasProperty(
uri->uri,
property, has_property);
9050 return IUri_GetAbsoluteUri(
uri->uri,
value);
9056 return IUri_GetAbsoluteUri(
uri->uri,
value);
9062 return IUri_GetAbsoluteUri(
uri->uri,
value);
9068 return IUri_GetAbsoluteUri(
uri->uri,
value);
9074 return IUri_GetAbsoluteUri(
uri->uri,
value);
9080 return IUri_GetAbsoluteUri(
uri->uri,
value);
9086 return IUri_GetAbsoluteUri(
uri->uri,
value);
9092 return IUri_GetAbsoluteUri(
uri->uri,
value);
9098 return IUri_GetAbsoluteUri(
uri->uri,
value);
9104 return IUri_GetAbsoluteUri(
uri->uri,
value);
9110 return IUri_GetAbsoluteUri(
uri->uri,
value);
9116 return IUri_GetAbsoluteUri(
uri->uri,
value);
9122 return IUri_GetSchemeName(
uri->uri,
value);
9128 return IUri_GetUserInfo(
uri->uri,
value);
9134 return IUri_GetUserName(
uri->uri,
value);
9140 return IUri_GetHostType(
uri->uri,
value);
9146 return IUri_GetPort(
uri->uri,
value);
9152 return IUri_GetScheme(
uri->uri,
value);
9158 return IUri_GetZone(
uri->uri,
value);
9164 return IUri_GetProperties(
uri->uri,
flags);
9170 return IUri_IsEqual(
uri->uri, pUri, is_equal);
9216 ok(
hres ==
S_OK,
"Error: CreateUri returned 0x%08lx, expected 0x%08lx.\n",
hres,
S_OK);
9218 ok(
hres ==
S_OK,
"Error: CreateUri returned 0x%08lx, expected 0x%08lx.\n",
hres,
S_OK);
9222 ok(
hres ==
S_OK,
"Error: IsEqual returned 0x%08lx, expected 0x%08lx.\n",
hres,
S_OK);
9223 ok(!
equal,
"Error: Expected equal to be FALSE, but was %d instead.\n",
equal);
9225 hres = IUri_IsEqual(uriA, uriB,
NULL);
9229 hres = IUri_IsEqual(uriA, uriA, &
equal);
9230 ok(
hres ==
S_OK,
"Error: IsEqual returned 0x%08lx, expected 0x%08lx.\n",
hres,
S_OK);
9231 ok(
equal,
"Error: Expected equal URIs.\n");
9234 hres = IUri_IsEqual(uriA, uriB, &
equal);
9235 ok(
hres ==
S_OK,
"Error: IsEqual returned 0x%08lx, expected 0x%08lx.\n",
hres,
S_OK);
9236 ok(
equal,
"Error: Expected equal URIs.\n");
9252 hres = pCreateUri(uriA_W,
test.create_flags_a, 0, &uriA);
9253 ok(
hres ==
S_OK,
"Error: CreateUri returned 0x%08lx, expected 0x%08lx on equality_tests[%ld].a\n",
hres,
S_OK,
i);
9255 hres = pCreateUri(uriB_W,
test.create_flags_b, 0, &uriB);
9256 ok(
hres ==
S_OK,
"Error: CreateUri returned 0x%08lx, expected 0x%08lx on equality_tests[%ld].b\n",
hres,
S_OK,
i);
9259 hres = IUri_IsEqual(uriA, uriB, &
equal);
9261 ok(
hres ==
S_OK,
"Error: IsEqual returned 0x%08lx, expected 0x%08lx on equality_tests[%ld].\n",
hres,
S_OK,
i);
9262 ok(
equal ==
test.equal,
"Error: Expected the comparison to be %d on equality_tests[%ld].\n",
test.equal,
i);
9270 ok(
hres ==
S_OK,
"Error: IsEqual returned 0x%08lx, expected 0x%08lx on equality_tests[%ld].\n",
hres,
S_OK,
i);
9271 ok(
equal ==
test.equal,
"Error: Expected the comparison to be %d on equality_tests[%ld].\n",
test.equal,
i);
9274 if(uriA) IUri_Release(uriA);
9275 if(uriB) IUri_Release(uriB);
9284 IUri *
uri = (
void*) 0xdeadbeef;
9285 const WCHAR fragmentW[] = {
'#',
'f',
'r',
'a',
'g',
'm',
'e',
'n',
't',0};
9287 hr = pCreateUriWithFragment(
NULL, fragmentW, 0, 0, &
uri);
9289 ok(
uri ==
NULL,
"Error: Expected uri to be NULL, but was %p instead.\n",
uri);
9295 uri = (
void*) 0xdeadbeef;
9298 ok(
uri ==
NULL,
"Error: Expected uri to be NULL, but was %p instead.\n",
uri);
9307 IUri *
uri = (
void*) 0xdeadbeef;
9312 ok(
uri ==
NULL,
"Error: Expected uri to be NULL, but was %p instead.\n",
uri);
9328 hr = pCreateUriWithFragment(uriW, fragW,
test.create_flags, 0, &
uri);
9331 "Error: CreateUriWithFragment returned 0x%08lx, expected 0x%08lx on uri_fragment_tests[%ld].\n",
9339 ok(
hr ==
S_OK,
"Error: GetAbsoluteUri returned 0x%08lx, expected 0x%08lx on uri_fragment_tests[%ld].\n",
9348 if(
uri) IUri_Release(
uri);
9360 ok(
hr ==
E_POINTER,
"Error: CreateIUriBuilder returned 0x%08lx, expected 0x%08lx\n",
9365 ok(
hr ==
S_OK,
"Error: CreateUri returned 0x%08lx, expected 0x%08lx.\n",
hr,
S_OK);
9367 ULONG cur_count, orig_count;
9370 hr = pCreateIUriBuilder(
uri, 0, 0, &builder);
9371 ok(
hr ==
S_OK,
"Error: CreateIUriBuilder returned 0x%08lx, expected 0x%08lx.\n",
hr,
S_OK);
9372 ok(builder !=
NULL,
"Error: Expecting builder not to be NULL\n");
9375 ok(cur_count == orig_count+1,
"Error: Expected the ref count to be %lu, but was %lu instead.\n", orig_count+1, cur_count);
9377 if(builder) IUriBuilder_Release(builder);
9379 ok(cur_count == orig_count,
"Error: Expected the ref count to be %lu, but was %lu instead.\n", orig_count, cur_count);
9381 if(
uri) IUri_Release(
uri);
9389 hr = IUriBuilder_CreateUri(builder,
test->uri_flags, 0, 0, &
uri);
9392 "Error: IUriBuilder_CreateUri returned 0x%08lx, expected 0x%08lx on uri_builder_tests[%ld].\n",
9393 hr,
test->uri_hres, test_index);
9405 "Error: IUri_GetPropertyBSTR returned 0x%08lx, expected 0x%08lx on uri_builder_tests[%ld].expected_str_props[%ld].\n",
9410 "Error: Expected %s but got %s instead on uri_builder_tests[%ld].expected_str_props[%ld].\n",
9420 hr = IUri_GetPropertyDWORD(
uri,
i+Uri_PROPERTY_DWORD_START, &
received, 0);
9423 "Error: IUri_GetPropertyDWORD returned 0x%08lx, expected 0x%08lx on uri_builder_tests[%ld].expected_dword_props[%ld].\n",
9428 "Error: Expected %ld but got %ld instead on uri_builder_tests[%ld].expected_dword_props[%ld].\n",
9433 if(
uri) IUri_Release(
uri);
9441 hr = IUriBuilder_CreateUriSimple(builder,
test->uri_simple_encode_flags, 0, &
uri);
9444 "Error: IUriBuilder_CreateUriSimple returned 0x%08lx, expected 0x%08lx on uri_builder_tests[%ld].\n",
9445 hr,
test->uri_simple_hres, test_index);
9457 "Error: IUri_GetPropertyBSTR returned 0x%08lx, expected 0x%08lx on uri_builder_tests[%ld].expected_str_props[%ld].\n",
9462 "Error: Expected %s but got %s instead on uri_builder_tests[%ld].expected_str_props[%ld].\n",
9472 hr = IUri_GetPropertyDWORD(
uri,
i+Uri_PROPERTY_DWORD_START, &
received, 0);
9475 "Error: IUri_GetPropertyDWORD returned 0x%08lx, expected 0x%08lx on uri_builder_tests[%ld].expected_dword_props[%ld].\n",
9480 "Error: Expected %ld but got %ld instead on uri_builder_tests[%ld].expected_dword_props[%ld].\n",
9485 if(
uri) IUri_Release(
uri);
9493 hr = IUriBuilder_CreateUriWithFlags(builder,
test->uri_with_flags,
test->uri_with_builder_flags,
9494 test->uri_with_encode_flags, 0, &
uri);
9497 "Error: IUriBuilder_CreateUriWithFlags returned 0x%08lx, expected 0x%08lx on uri_builder_tests[%ld].\n",
9498 hr,
test->uri_with_hres, test_index);
9510 "Error: IUri_GetPropertyBSTR returned 0x%08lx, expected 0x%08lx on uri_builder_tests[%ld].expected_str_props[%ld].\n",
9515 "Error: Expected %s but got %s instead on uri_builder_tests[%ld].expected_str_props[%ld].\n",
9525 hr = IUri_GetPropertyDWORD(
uri,
i+Uri_PROPERTY_DWORD_START, &
received, 0);
9528 "Error: IUri_GetPropertyDWORD returned 0x%08lx, expected 0x%08lx on uri_builder_tests[%ld].expected_dword_props[%ld].\n",
9533 "Error: Expected %ld but got %ld instead on uri_builder_tests[%ld].expected_dword_props[%ld].\n",
9538 if(
uri) IUri_Release(
uri);
9545 hr = pCreateIUriBuilder(
NULL, 0, 0, &builder);
9546 ok(
hr ==
S_OK,
"Error: CreateIUriBuilder returned 0x%08lx, expected 0x%08lx.\n",
hr,
S_OK);
9551 hr = IUriBuilder_CreateUri(builder, 0, 0, 0,
NULL);
9554 uri = (
void*) 0xdeadbeef;
9555 hr = IUriBuilder_CreateUri(builder, 0, Uri_HAS_USER_NAME, 0, &
uri);
9557 ok(
uri ==
NULL,
"Error: expected uri to be NULL, but was %p instead.\n",
uri);
9559 hr = IUriBuilder_CreateUriSimple(builder, 0, 0,
NULL);
9560 ok(
hr ==
E_POINTER,
"Error: IUriBuilder_CreateUriSimple returned 0x%08lx, expected 0x%08lx.\n",
9563 uri = (
void*) 0xdeadbeef;
9564 hr = IUriBuilder_CreateUriSimple(builder, Uri_HAS_USER_NAME, 0, &
uri);
9565 ok(
hr ==
E_NOTIMPL,
"Error: IUriBuilder_CreateUriSimple returned 0x%08lx, expected 0x%08lx.\n",
9567 ok(!
uri,
"Error: Expected uri to NULL, but was %p instead.\n",
uri);
9569 hr = IUriBuilder_CreateUriWithFlags(builder, 0, 0, 0, 0,
NULL);
9570 ok(
hr ==
E_POINTER,
"Error: IUriBuilder_CreateUriWithFlags returned 0x%08lx, expected 0x%08lx.\n",
9573 uri = (
void*) 0xdeadbeef;
9574 hr = IUriBuilder_CreateUriWithFlags(builder, 0, 0, Uri_HAS_USER_NAME, 0, &
uri);
9575 ok(
hr ==
E_NOTIMPL,
"Error: IUriBuilder_CreateUriWithFlags returned 0x%08lx, expected 0x%08lx.\n",
9577 ok(!
uri,
"Error: Expected uri to be NULL, but was %p instead.\n",
uri);
9580 ok(
hr ==
S_OK,
"Error: CreateUri returned 0x%08lx, expected 0x%08lx.\n",
hr,
S_OK);
9582 hr = IUriBuilder_SetIUri(builder,
test);
9583 ok(
hr ==
S_OK,
"Error: IUriBuilder_SetIUri returned 0x%08lx, expected 0x%08lx.\n",
hr,
S_OK);
9587 hr = IUriBuilder_CreateUri(builder, 0, Uri_HAS_USER_NAME, 0, &
uri);
9588 ok(
hr ==
S_OK,
"Error: IUriBuilder_CreateUri returned 0x%08lx, expected 0x%08lx.\n",
hr,
S_OK);
9589 ok(
uri !=
NULL,
"Error: The uri was NULL.\n");
9590 if(
uri) IUri_Release(
uri);
9593 hr = IUriBuilder_CreateUriSimple(builder, Uri_HAS_USER_NAME, 0, &
uri);
9594 ok(
hr ==
S_OK,
"Error: IUriBuilder_CreateUriSimple returned 0x%08lx, expected 0x%08lx.\n",
9596 ok(
uri !=
NULL,
"Error: uri was NULL.\n");
9597 if(
uri) IUri_Release(
uri);
9600 hr = IUriBuilder_CreateUriWithFlags(builder, 0, 0, 0, 0, &
uri);
9601 ok(
hr ==
S_OK,
"Error: IUriBuilder_CreateUriWithFlags returned 0x%08lx, expected 0x%08lx.\n",
9603 ok(
uri !=
NULL,
"Error: uri was NULL.\n");
9604 if(
uri) IUri_Release(
uri);
9606 hr = IUriBuilder_SetFragment(builder,
NULL);
9607 ok(
hr ==
S_OK,
"Error: IUriBuilder_SetFragment returned 0x%08lx, expected 0x%08lx.\n",
hr,
S_OK);
9610 uri = (
void*) 0xdeadbeef;
9611 hr = IUriBuilder_CreateUri(builder, 0, Uri_HAS_USER_NAME, 0, &
uri);
9612 ok(
hr ==
E_NOTIMPL,
"Error: IUriBuilder_CreateUri returned 0x%08lx, expected 0x%08lx.\n",
hr,
S_OK);
9613 ok(!
uri,
"Error: Expected uri to be NULL but was %p instead.\n",
uri);
9615 uri = (
void*) 0xdeadbeef;
9616 hr = IUriBuilder_CreateUriSimple(builder, Uri_HAS_USER_NAME, 0, &
uri);
9617 ok(
hr ==
E_NOTIMPL,
"Error: IUriBuilder_CreateUriSimple returned 0x%08lx, expected 0x%08lx.\n",
9619 ok(!
uri,
"Error: Expected uri to be NULL, but was %p instead.\n",
uri);
9621 uri = (
void*) 0xdeadbeef;
9622 hr = IUriBuilder_CreateUriWithFlags(builder, 0, 0, Uri_HAS_USER_NAME, 0, &
uri);
9623 ok(
hr ==
E_NOTIMPL,
"Error: IUriBuilder_CreateUriWithFlags returned 0x%08lx, expected 0x%08lx.\n",
9625 ok(!
uri,
"Error: Expected uri to be NULL, but was %p instead.\n",
uri);
9629 if(builder) IUriBuilder_Release(builder);
9637 hr = pCreateIUriBuilder(
NULL, 0, 0, &builder);
9638 ok(
hr ==
S_OK,
"Error: CreateIUriBuilder returned 0x%08lx, expected 0x%08lx.\n",
hr,
S_OK);
9644 hr = IUriBuilder_GetFragment(builder,
NULL,
NULL);
9645 ok(
hr ==
E_POINTER,
"Error: IUriBuilder_GetFragment returned 0x%08lx, expected 0x%08lx.\n",
9648 ok(
hr ==
E_POINTER,
"Error: IUriBuilder_GetFragment returned 0x%08lx, expected 0x%08lx.\n",
9650 ok(!
received,
"Error: Expected received to be NULL, but was %p instead.\n",
received);
9651 hr = IUriBuilder_GetFragment(builder, &
len,
NULL);
9652 ok(
hr ==
E_POINTER,
"Error: IUriBuilder_GetFragment returned 0x%08lx, expected 0x%08lx.\n",
9654 ok(!
len,
"Error: Expected len to be 0, but was %ld instead.\n",
len);
9656 hr = IUriBuilder_GetHost(builder,
NULL,
NULL);
9657 ok(
hr ==
E_POINTER,
"Error: IUriBuilder_GetHost returned 0x%08lx, expected 0x%08lx.\n",
9661 ok(
hr ==
E_POINTER,
"Error: IUriBuilder_GetHost returned 0x%08lx, expected 0x%08lx.\n",
9663 ok(!
received,
"Error: Expected received to be NULL, but was %p instead.\n",
received);
9665 hr = IUriBuilder_GetHost(builder, &
len,
NULL);
9666 ok(
hr ==
E_POINTER,
"Error: IUriBuilder_GetHost returned 0x%08lx, expected 0x%08lx.\n",
9668 ok(!
len,
"Error: Expected len to be 0, but was %ld instead.\n",
len);
9670 hr = IUriBuilder_GetPassword(builder,
NULL,
NULL);
9671 ok(
hr ==
E_POINTER,
"Error: IUriBuilder_GetPassword returned 0x%08lx, expected 0x%08lx.\n",
9675 ok(
hr ==
E_POINTER,
"Error: IUriBuilder_GetPassword returned 0x%08lx, expected 0x%08lx.\n",
9677 ok(!
received,
"Error: Expected received to be NULL, but was %p instead.\n",
received);
9679 hr = IUriBuilder_GetPassword(builder, &
len,
NULL);
9680 ok(
hr ==
E_POINTER,
"Error: IUriBuilder_GetPassword returned 0x%08lx, expected 0x%08lx.\n",
9682 ok(!
len,
"Error: Expected len to be 0, but was %ld instead.\n",
len);
9684 hr = IUriBuilder_GetPath(builder,
NULL,
NULL);
9685 ok(
hr ==
E_POINTER,
"Error: IUriBuilder_GetPath returned 0x%08lx, expected 0x%08lx.\n",
9689 ok(
hr ==
E_POINTER,
"Error: IUriBuilder_GetPath returned 0x%08lx, expected 0x%08lx.\n",
9691 ok(!
received,
"Error: Expected received to be NULL, but was %p instead.\n",
received);
9693 hr = IUriBuilder_GetPath(builder, &
len,
NULL);
9694 ok(
hr ==
E_POINTER,
"Error: IUriBuilder_GetPath returned 0x%08lx, expected 0x%08lx.\n",
9696 ok(!
len,
"Error: Expected len to be 0, but was %ld instead.\n",
len);
9698 hr = IUriBuilder_GetPort(builder,
NULL,
NULL);
9699 ok(
hr ==
E_POINTER,
"Error: IUriBuilder_GetPort returned 0x%08lx, expected 0x%08lx.\n",
9701 hr = IUriBuilder_GetPort(builder,
NULL, &
port);
9702 ok(
hr ==
E_POINTER,
"Error: IUriBuilder_GetPort returned 0x%08lx, expected 0x%08lx.\n",
9704 ok(!
port,
"Error: Expected port to be 0, but was %ld instead.\n",
port);
9705 hr = IUriBuilder_GetPort(builder, &
set,
NULL);
9706 ok(
hr ==
E_POINTER,
"Error: IUriBuilder_GetPort returned 0x%08lx, expected 0x%08lx.\n",
9708 ok(!
set,
"Error: Expected set to be FALSE, but was %d instead.\n",
set);
9710 hr = IUriBuilder_GetQuery(builder,
NULL,
NULL);
9711 ok(
hr ==
E_POINTER,
"Error: IUriBuilder_GetQuery returned 0x%08lx, expected 0x%08lx.\n",
9715 ok(
hr ==
E_POINTER,
"Error: IUriBuilder_GetQuery returned 0x%08lx, expected 0x%08lx.\n",
9717 ok(!
received,
"Error: Expected received to be NULL, but was %p instead.\n",
received);
9719 hr = IUriBuilder_GetQuery(builder, &
len,
NULL);
9720 ok(
hr ==
E_POINTER,
"Error: IUriBuilder_GetQuery returned 0x%08lx, expected 0x%08lx.\n",
9722 ok(!
len,
"Error: Expected len to be 0, but was %ld instead.\n",
len);
9724 hr = IUriBuilder_GetSchemeName(builder,
NULL,
NULL);
9725 ok(
hr ==
E_POINTER,
"Error: IUriBuilder_GetSchemeName returned 0x%08lx, expected 0x%08lx.\n",
9729 ok(
hr ==
E_POINTER,
"Error: IUriBuilder_GetSchemeName returned 0x%08lx, expected 0x%08lx.\n",
9731 ok(!
received,
"Error: Expected received to be NULL, but was %p instead.\n",
received);
9733 hr = IUriBuilder_GetSchemeName(builder, &
len,
NULL);
9734 ok(
hr ==
E_POINTER,
"Error: IUriBuilder_GetSchemeName returned 0x%08lx, expected 0x%08lx.\n",
9736 ok(!
len,
"Error: Expected len to be 0, but was %ld instead.\n",
len);
9738 hr = IUriBuilder_GetUserName(builder,
NULL,
NULL);
9739 ok(
hr ==
E_POINTER,
"Error: IUriBuilder_GetUserName returned 0x%08lx, expected 0x%08lx.\n",
9743 ok(
hr ==
E_POINTER,
"Error: IUriBuilder_GetUserName returned 0x%08lx, expected 0x%08lx.\n",
9745 ok(!
received,
"Error: Expected received to be NULL, but was %p instead.\n",
received);
9747 hr = IUriBuilder_GetUserName(builder, &
len,
NULL);
9748 ok(
hr ==
E_POINTER,
"Error: IUriBuilder_GetUserName returned 0x%08lx, expected 0x%08lx.\n",
9750 ok(!
len,
"Error: Expected len to be 0, but was %ld instead.\n",
len);
9752 if(builder) IUriBuilder_Release(builder);
9765 if(
test->properties[
i].change &&
test->properties[
i].property == Uri_PROPERTY_FRAGMENT)
9766 prop = &(
test->properties[
i]);
9776 "Error: IUriBuilder_GetFragment returned 0x%08lx, expected 0x%08lx on uri_builder_tests[%ld].\n",
9781 ok(expected_len ==
len,
9782 "Error: Expected the length to be %ld, but was %ld instead on uri_builder_tests[%ld].\n",
9783 expected_len,
len, test_index);
9791 hr = IUriBuilder_GetIUri(builder, &
uri);
9793 "Error: IUriBuilder_GetIUri returned 0x%08lx, expected 0x%08lx on uri_builder_tests[%ld].\n",
9802 "Error: IUriBuilder_GetFragment returned 0x%08lx, expected 0x%08lx on uri_builder_tests[%ld].\n",
9805 ok(!
len,
"Error: Expected len to be 0, but was %ld instead on uri_builder_tests[%ld].\n",
9807 ok(!
received,
"Error: Expected received to be NULL, but was %p instead on uri_builder_tests[%ld].\n",
9816 "Error: Expected IUri_GetFragment to succeed, but got 0x%08lx instead on uri_builder_tests[%ld].\n",
9823 "Error: IUriBuilder_GetFragment returned 0x%08lx, expected 0x%08lx on uri_builder_tests[%ld].\n",
9827 "Error: Expected %s but got %s instead on uri_builder_tests[%ld].\n",
9830 "Error: Expected the length to be %d, but was %ld instead on uri_builder_tests[%ld].\n",
9835 "Error: IUriBuilder_GetFragment returned 0x%08lx, expected 0x%08lx on uri_builder_tests[%ld].\n",
9838 ok(!
received,
"Error: Expected received to be NULL on uri_builder_tests[%ld].\n", test_index);
9839 ok(!
len,
"Error: Expected the length to be 0, but was %ld instead on uri_builder_tests[%ld].\n",
9846 if(
uri) IUri_Release(
uri);
9860 if(
test->properties[
i].change &&
test->properties[
i].property == Uri_PROPERTY_HOST)
9861 prop = &(
test->properties[
i]);
9871 "Error: IUriBuilder_GetHost returned 0x%08lx, expected 0x%08lx on uri_builder_tests[%ld].\n",
9876 ok(expected_len ==
len,
9877 "Error: Expected the length to be %ld, but was %ld instead on uri_builder_tests[%ld].\n",
9878 expected_len,
len, test_index);
9886 hr = IUriBuilder_GetIUri(builder, &
uri);
9888 "Error: IUriBuilder_GetIUri returned 0x%08lx, expected 0x%08lx on uri_builder_tests[%ld].\n",
9897 "Error: IUriBuilder_GetHost returned 0x%08lx, expected 0x%08lx on uri_builder_tests[%ld].\n",
9900 ok(!
len,
"Error: Expected len to be 0, but was %ld instead on uri_builder_tests[%ld].\n",
9902 ok(!
received,
"Error: Expected received to be NULL, but was %p instead on uri_builder_tests[%ld].\n",
9911 "Error: Expected IUri_GetHost to succeed, but got 0x%08lx instead on uri_builder_tests[%ld].\n",
9918 "Error: IUriBuilder_GetHost returned 0x%08lx, expected 0x%08lx on uri_builder_tests[%ld].\n",
9922 "Error: Expected %s but got %s instead on uri_builder_tests[%ld].\n",
9925 "Error: Expected the length to be %d, but was %ld instead on uri_builder_tests[%ld].\n",
9930 "Error: IUriBuilder_GetHost returned 0x%08lx, expected 0x%08lx on uri_builder_tests[%ld].\n",
9933 ok(!
received,
"Error: Expected received to be NULL on uri_builder_tests[%ld].\n", test_index);
9934 ok(!
len,
"Error: Expected the length to be 0, but was %ld instead on uri_builder_tests[%ld].\n",
9941 if(
uri) IUri_Release(
uri);
9955 if(
test->properties[
i].change &&
test->properties[
i].property == Uri_PROPERTY_PASSWORD)
9956 prop = &(
test->properties[
i]);
9966 "Error: IUriBuilder_GetPassword returned 0x%08lx, expected 0x%08lx on uri_builder_tests[%ld].\n",
9971 ok(expected_len ==
len,
9972 "Error: Expected the length to be %ld, but was %ld instead on uri_builder_tests[%ld].\n",
9973 expected_len,
len, test_index);
9981 hr = IUriBuilder_GetIUri(builder, &
uri);
9983 "Error: IUriBuilder_GetIUri returned 0x%08lx, expected 0x%08lx on uri_builder_tests[%ld].\n",
9992 "Error: IUriBuilder_GetPassword returned 0x%08lx, expected 0x%08lx on uri_builder_tests[%ld].\n",
9995 ok(!
len,
"Error: Expected len to be 0, but was %ld instead on uri_builder_tests[%ld].\n",
9997 ok(!
received,
"Error: Expected received to be NULL, but was %p instead on uri_builder_tests[%ld].\n",
10006 "Error: Expected IUri_GetPassword to succeed, but got 0x%08lx instead on uri_builder_tests[%ld].\n",
10013 "Error: IUriBuilder_GetPassword returned 0x%08lx, expected 0x%08lx on uri_builder_tests[%ld].\n",
10017 "Error: Expected %s but got %s instead on uri_builder_tests[%ld].\n",
10020 "Error: Expected the length to be %d, but was %ld instead on uri_builder_tests[%ld].\n",
10025 "Error: IUriBuilder_GetPassword returned 0x%08lx, expected 0x%08lx on uri_builder_tests[%ld].\n",
10028 ok(!
received,
"Error: Expected received to be NULL on uri_builder_tests[%ld].\n", test_index);
10029 ok(!
len,
"Error: Expected the length to be 0, but was %ld instead on uri_builder_tests[%ld].\n",
10036 if(
uri) IUri_Release(
uri);
10041 DWORD test_index) {
10050 if(
test->properties[
i].change &&
test->properties[
i].property == Uri_PROPERTY_PATH)
10051 prop = &(
test->properties[
i]);
10061 "Error: IUriBuilder_GetPath returned 0x%08lx, expected 0x%08lx on uri_builder_tests[%ld].\n",
10066 ok(expected_len ==
len,
10067 "Error: Expected the length to be %ld, but was %ld instead on uri_builder_tests[%ld].\n",
10068 expected_len,
len, test_index);
10076 hr = IUriBuilder_GetIUri(builder, &
uri);
10078 "Error: IUriBuilder_GetIUri returned 0x%08lx, expected 0x%08lx on uri_builder_tests[%ld].\n",
10087 "Error: IUriBuilder_GetPath returned 0x%08lx, expected 0x%08lx on uri_builder_tests[%ld].\n",
10090 ok(!
len,
"Error: Expected len to be 0, but was %ld instead on uri_builder_tests[%ld].\n",
10092 ok(!
received,
"Error: Expected received to be NULL, but was %p instead on uri_builder_tests[%ld].\n",
10101 "Error: Expected IUri_GetPath to succeed, but got 0x%08lx instead on uri_builder_tests[%ld].\n",
10108 "Error: IUriBuilder_GetPath returned 0x%08lx, expected 0x%08lx on uri_builder_tests[%ld].\n",
10112 "Error: Expected %s but got %s instead on uri_builder_tests[%ld].\n",
10115 "Error: Expected the length to be %d, but was %ld instead on uri_builder_tests[%ld].\n",
10120 "Error: IUriBuilder_GetPath returned 0x%08lx, expected 0x%08lx on uri_builder_tests[%ld].\n",
10123 ok(!
received,
"Error: Expected received to be NULL on uri_builder_tests[%ld].\n", test_index);
10124 ok(!
len,
"Error: Expected the length to be 0, but was %ld instead on uri_builder_tests[%ld].\n",
10131 if(
uri) IUri_Release(
uri);
10136 DWORD test_index) {
10141 if(
test->port_prop.change) {
10142 hr = IUriBuilder_GetPort(builder, &has_port, &
received);
10145 "Error: IUriBuilder_GetPort returned 0x%08lx, expected 0x%08lx on uri_builder_tests[%ld].\n",
10148 ok(has_port ==
test->port_prop.set,
10149 "Error: Expected has_port to be %d, but was %d instead on uri_builder_tests[%ld].\n",
10150 test->port_prop.set, has_port, test_index);
10152 "Error: Expected port to be %ld, but was %ld instead on uri_builder_tests[%ld].\n",
10159 hr = IUriBuilder_GetIUri(builder, &
uri);
10161 "Error: IUriBuilder_GetIUri returned 0x%08lx, expected 0x%08lx on uri_builder_tests[%ld].\n",
10165 hr = IUriBuilder_GetPort(builder, &has_port, &
received);
10167 "Error: IUriBuilder_GetPort returned 0x%08lx, expected 0x%08lx on uri_builder_tests[%ld].\n",
10171 "Error: Expected has_port to be FALSE, but was %d instead on uri_builder_tests[%ld].\n",
10172 has_port, test_index);
10173 ok(!
received,
"Error: Expected received to be 0, but was %ld instead on uri_builder_tests[%ld].\n",
10181 "Error: Expected IUri_Port to succeed, but got 0x%08lx instead on uri_builder_tests[%ld].\n",
10184 hr = IUriBuilder_GetPort(builder, &has_port, &
received);
10186 "Error: IUriBuilder_GetPort returned 0x%08lx, expected 0x%08lx on uri_builder_tests[%ld].\n",
10190 "Error: Expected has_port to be FALSE but was TRUE instead on uri_builder_tests[%ld].\n",
10193 "Error: Expected received to be %ld, but was %ld instead on uri_builder_tests[%ld].\n",
10198 if(
uri) IUri_Release(
uri);
10203 DWORD test_index) {
10212 if(
test->properties[
i].change &&
test->properties[
i].property == Uri_PROPERTY_QUERY)
10213 prop = &(
test->properties[
i]);
10223 "Error: IUriBuilder_GetQuery returned 0x%08lx, expected 0x%08lx on uri_builder_tests[%ld].\n",
10228 ok(expected_len ==
len,
10229 "Error: Expected the length to be %ld, but was %ld instead on uri_builder_tests[%ld].\n",
10230 expected_len,
len, test_index);
10238 hr = IUriBuilder_GetIUri(builder, &
uri);
10240 "Error: IUriBuilder_GetIUri returned 0x%08lx, expected 0x%08lx on uri_builder_tests[%ld].\n",
10249 "Error: IUriBuilder_GetQuery returned 0x%08lx, expected 0x%08lx on uri_builder_tests[%ld].\n",
10252 ok(!
len,
"Error: Expected len to be 0, but was %ld instead on uri_builder_tests[%ld].\n",
10254 ok(!
received,
"Error: Expected received to be NULL, but was %p instead on uri_builder_tests[%ld].\n",
10263 "Error: Expected IUri_GetQuery to succeed, but got 0x%08lx instead on uri_builder_tests[%ld].\n",
10270 "Error: IUriBuilder_GetQuery returned 0x%08lx, expected 0x%08lx on uri_builder_tests[%ld].\n",
10274 "Error: Expected %s but got %s instead on uri_builder_tests[%ld].\n",
10277 "Error: Expected the length to be %d, but was %ld instead on uri_builder_tests[%ld].\n",
10282 "Error: IUriBuilder_GetQuery returned 0x%08lx, expected 0x%08lx on uri_builder_tests[%ld].\n",
10285 ok(!
received,
"Error: Expected received to be NULL on uri_builder_tests[%ld].\n", test_index);
10286 ok(!
len,
"Error: Expected the length to be 0, but was %ld instead on uri_builder_tests[%ld].\n",
10293 if(
uri) IUri_Release(
uri);
10298 DWORD test_index) {
10307 if(
test->properties[
i].change &&
test->properties[
i].property == Uri_PROPERTY_SCHEME_NAME)
10308 prop = &(
test->properties[
i]);
10318 "Error: IUriBuilder_GetSchemeName returned 0x%08lx, expected 0x%08lx on uri_builder_tests[%ld].\n",
10323 ok(expected_len ==
len,
10324 "Error: Expected the length to be %ld, but was %ld instead on uri_builder_tests[%ld].\n",
10325 expected_len,
len, test_index);
10333 hr = IUriBuilder_GetIUri(builder, &
uri);
10335 "Error: IUriBuilder_GetIUri returned 0x%08lx, expected 0x%08lx on uri_builder_tests[%ld].\n",
10344 "Error: IUriBuilder_GetSchemeName returned 0x%08lx, expected 0x%08lx on uri_builder_tests[%ld].\n",
10347 ok(!
len,
"Error: Expected len to be 0, but was %ld instead on uri_builder_tests[%ld].\n",
10349 ok(!
received,
"Error: Expected received to be NULL, but was %p instead on uri_builder_tests[%ld].\n",
10358 "Error: Expected IUri_GetSchemeName to succeed, but got 0x%08lx instead on uri_builder_tests[%ld].\n",
10365 "Error: IUriBuilder_GetSchemeName returned 0x%08lx, expected 0x%08lx on uri_builder_tests[%ld].\n",
10369 "Error: Expected %s but got %s instead on uri_builder_tests[%ld].\n",
10372 "Error: Expected the length to be %d, but was %ld instead on uri_builder_tests[%ld].\n",
10377 "Error: IUriBuilder_GetSchemeName returned 0x%08lx, expected 0x%08lx on uri_builder_tests[%ld].\n",
10380 ok(!
received,
"Error: Expected received to be NULL on uri_builder_tests[%ld].\n", test_index);
10381 ok(!
len,
"Error: Expected the length to be 0, but was %ld instead on uri_builder_tests[%ld].\n",
10388 if(
uri) IUri_Release(
uri);
10393 DWORD test_index) {
10402 if(
test->properties[
i].change &&
test->properties[
i].property == Uri_PROPERTY_USER_NAME)
10403 prop = &(
test->properties[
i]);
10413 "Error: IUriBuilder_GetUserName returned 0x%08lx, expected 0x%08lx on uri_builder_tests[%ld].\n",
10418 ok(expected_len ==
len,
10419 "Error: Expected the length to be %ld, but was %ld instead on uri_builder_tests[%ld].\n",
10420 expected_len,
len, test_index);
10428 hr = IUriBuilder_GetIUri(builder, &
uri);
10430 "Error: IUriBuilder_GetIUri returned 0x%08lx, expected 0x%08lx on uri_builder_tests[%ld].\n",
10439 "Error: IUriBuilder_GetUserName returned 0x%08lx, expected 0x%08lx on uri_builder_tests[%ld].\n",
10442 ok(!
len,
"Error: Expected len to be 0, but was %ld instead on uri_builder_tests[%ld].\n",
10444 ok(!
received,
"Error: Expected received to be NULL, but was %p instead on uri_builder_tests[%ld].\n",
10453 "Error: Expected IUri_GetUserName to succeed, but got 0x%08lx instead on uri_builder_tests[%ld].\n",
10460 "Error: IUriBuilder_GetUserName returned 0x%08lx, expected 0x%08lx on uri_builder_tests[%ld].\n",
10464 "Error: Expected %s but got %s instead on uri_builder_tests[%ld].\n",
10467 "Error: Expected the length to be %d, but was %ld instead on uri_builder_tests[%ld].\n",
10472 "Error: IUriBuilder_GetUserName returned 0x%08lx, expected 0x%08lx on uri_builder_tests[%ld].\n",
10475 ok(!
received,
"Error: Expected received to be NULL on uri_builder_tests[%ld].\n", test_index);
10476 ok(!
len,
"Error: Expected the length to be 0, but was %ld instead on uri_builder_tests[%ld].\n",
10483 if(
uri) IUri_Release(
uri);
10500 hr = pCreateUri(uriW,
test.create_flags, 0, &
uri);
10501 ok(
hr ==
S_OK,
"Error: CreateUri returned 0x%08lx, expected 0x%08lx on uri_builder_tests[%ld].\n",
10505 hr = pCreateIUriBuilder(
uri, 0, 0, &builder);
10507 ok(
hr ==
test.create_builder_expected,
10508 "Error: CreateIUriBuilder returned 0x%08lx, expected 0x%08lx on uri_builder_tests[%ld].\n",
10509 hr,
test.create_builder_expected,
i);
10519 if(prop.
property != Uri_PROPERTY_SCHEME_NAME &&
10520 prop.
property != Uri_PROPERTY_HOST)
10530 if(
test.port_prop.change) {
10531 hr = IUriBuilder_SetPort(builder,
test.port_prop.set,
test.port_prop.
value);
10535 "Error: IUriBuilder_SetPort returned 0x%08lx, expected 0x%08lx on uri_builder_tests[%ld].\n",
10536 hr,
test.port_prop.expected,
i);
10539 hr = IUriBuilder_HasBeenModified(builder, &
received);
10541 "Error IUriBuilder_HasBeenModified returned 0x%08lx, expected 0x%08lx on uri_builder_tests[%ld].\n",
10545 "Error: Expected received to be %d but was %d instead on uri_builder_tests[%ld].\n",
10562 if(builder) IUriBuilder_Release(builder);
10563 if(
uri) IUri_Release(
uri);
10572 hr = pCreateIUriBuilder(
NULL, 0, 0, &builder);
10573 ok(
hr ==
S_OK,
"Error: CreateIUriBuilder returned 0x%08lx, expected 0x%08lx.\n",
hr,
S_OK);
10575 static const WCHAR hostW[] = {
'g',
'o',
'o',
'g',
'l',
'e',
'.',
'c',
'o',
'm',0};
10579 hr = IUriBuilder_HasBeenModified(builder,
NULL);
10580 ok(
hr ==
E_POINTER,
"Error: IUriBuilder_HasBeenModified returned 0x%08lx, expected 0x%08lx.\n",
10583 hr = IUriBuilder_SetHost(builder,
hostW);
10584 ok(
hr ==
S_OK,
"Error: IUriBuilder_SetHost returned 0x%08lx, expected 0x%08lx.\n",
10587 hr = IUriBuilder_HasBeenModified(builder, &
received);
10588 ok(
hr ==
S_OK,
"Error: IUriBuilder_HasBeenModified returned 0x%08lx, expected 0x%08lx.\n",
10594 ok(
hr ==
S_OK,
"Error: CreateUri returned 0x%08lx, expected 0x%08lx.\n",
hr,
S_OK);
10599 hr = IUriBuilder_SetIUri(builder,
uri);
10600 ok(
hr ==
S_OK,
"Error: IUriBuilder_SetIUri returned 0x%08lx, expected 0x%08lx.\n",
10603 hr = IUriBuilder_HasBeenModified(builder, &
received);
10604 ok(
hr ==
S_OK,
"Error: IUriBuilder_HasBeenModified returned 0x%08lx, expected 0x%08lx.\n",
10610 hr = IUriBuilder_SetHost(builder,
hostW);
10611 ok(
hr ==
S_OK,
"Error: IUriBuilder_SetHost returned 0x%08lx, expected 0x%08lx.\n",
hr,
S_OK);
10613 hr = IUriBuilder_HasBeenModified(builder, &
received);
10614 ok(
hr ==
S_OK,
"Error: IUriBuilder_HasBeenModified returned 0x%08lx, expected 0x%08lx.\n",
10619 hr = IUriBuilder_SetIUri(builder,
uri);
10620 ok(
hr ==
S_OK,
"Error: IUriBuilder_SetIUri returned 0x%08lx, expected 0x%08lx.\n",
hr,
S_OK);
10625 hr = IUriBuilder_HasBeenModified(builder, &
received);
10626 ok(
hr ==
S_OK,
"Error: IUriBuilder_HasBeenModified returned 0x%08lx, expected 0x%08lx.\n",
hr,
S_OK);
10630 hr = IUriBuilder_GetHost(builder, &
len, &prop);
10631 ok(
hr ==
S_OK,
"Error: IUriBuilder_GetHost returned 0x%08lx, expected 0x%08lx.\n",
hr,
S_OK);
10633 ok(!
lstrcmpW(prop,
hostW),
"Error: Expected %s but got %s instead.\n",
10639 hr = IUriBuilder_SetIUri(builder,
NULL);
10640 ok(
hr ==
S_OK,
"Error: IUriBuilder_SetIUri returned 0x%08lx, expected 0x%08lx.\n",
hr,
S_OK);
10642 hr = IUriBuilder_SetHost(builder,
hostW);
10643 ok(
hr ==
S_OK,
"Error: IUriBuilder_SetHost returned 0x%08lx, expected 0x%08lx.\n",
hr,
S_OK);
10644 hr = IUriBuilder_HasBeenModified(builder, &
received);
10645 ok(
hr ==
S_OK,
"Error: IUriBuilder_HasBeenModified returned 0x%08lx, expected 0x%08lx.\n",
10650 hr = IUriBuilder_SetIUri(builder,
NULL);
10651 ok(
hr ==
S_OK,
"Error: IUriBuilder_SetIUri returned 0x%08lx, expected 0x%09lx.\n",
hr,
S_OK);
10653 hr = IUriBuilder_HasBeenModified(builder, &
received);
10654 ok(
hr ==
S_OK,
"Error: IUriBuilder_HasBeenModified returned 0x%08lx, expected 0x%08lx.\n",
10659 hr = IUriBuilder_GetHost(builder, &
len, &prop);
10660 ok(
hr ==
S_OK,
"Error: IUriBuilder_GetHost returned 0x%08lx, expected 0x%08lx.\n",
hr,
S_OK);
10662 ok(!
lstrcmpW(prop,
hostW),
"Error: Expected %s but got %s instead.\n",
10668 if(
uri) IUri_Release(
uri);
10670 if(builder) IUriBuilder_Release(builder);
10678 hr = pCreateIUriBuilder(
NULL, 0, 0, &builder);
10679 ok(
hr ==
S_OK,
"Error: CreateIUriBuilder returned 0x%08lx, expected 0x%08lx.\n",
hr,
S_OK);
10683 hr = IUriBuilder_GetIUri(builder,
NULL);
10684 ok(
hr ==
E_POINTER,
"Error: IUriBuilder_GetIUri returned 0x%08lx, expected 0x%08lx.\n",
10690 ULONG cur_count, orig_count;
10694 hr = IUriBuilder_SetIUri(builder,
uri);
10697 ok(cur_count == orig_count+1,
"Error: Expected uri ref count to be %ld, but was %ld instead.\n",
10698 orig_count+1, cur_count);
10700 hr = IUriBuilder_SetIUri(builder,
NULL);
10703 ok(cur_count == orig_count,
"Error: Expected uri ref count to be %ld, but was %ld instead.\n",
10704 orig_count, cur_count);
10707 hr = IUriBuilder_SetIUri(builder,
uri);
10708 ok(
hr ==
S_OK,
"Error: IUriBuilder_SetIUri returned 0x%08lx, expected 0x%08lx.\n",
hr,
S_OK);
10711 hr = IUriBuilder_CreateUri(builder, 0, 0, 0, &
test);
10712 ok(
hr ==
S_OK,
"Error: IUriBuilder_CreateUri returned 0x%08lx, expected 0x%08lx.\n",
hr,
S_OK);
10715 ok(cur_count == orig_count+1,
"Error: Expected uri ref count to be %ld, but was %ld instead.\n",
10716 orig_count+1, cur_count);
10717 ok(
test ==
uri,
"Error: Expected test to be %p, but was %p instead.\n",
10723 hr = IUriBuilder_CreateUri(builder, -1, 0, 0, &
test);
10724 ok(
hr ==
S_OK,
"Error: IUriBuilder_CreateUri returned 0x%08lx, expected 0x%08lx.\n",
hr,
S_OK);
10727 ok(cur_count == orig_count+1,
"Error: Expected uri ref count to be %ld, but was %ld instead.\n",
10728 orig_count+1, cur_count);
10729 ok(
test ==
uri,
"Error: Expected test to be %p, but was %p instead.\n",
uri,
test);
10737 hr = IUriBuilder_CreateUri(builder, Uri_CREATE_ALLOW_RELATIVE, 0, 0, &
test);
10738 ok(
hr ==
S_OK,
"Error: IUriBuilder_CreateUri returned 0x%08lx, expected 0x%08lx.\n",
hr,
S_OK);
10740 ok(
test !=
uri,
"Error: Wasn't expecting 'test' to be 'uri'\n");
10748 hr = IUriBuilder_CreateUri(builder, Uri_CREATE_CANONICALIZE, 0, 0, &
test);
10749 ok(
hr ==
S_OK,
"Error: IUriBuilder_CreateUri returned 0x%08lx, expected 0x%08lx.\n",
hr,
S_OK);
10752 ok(cur_count == orig_count+1,
"Error: Expected uri ref count to be %ld, but was %ld instead.\n",
10753 orig_count+1, cur_count);
10754 ok(
test ==
uri,
"Error: Expected 'test' to be %p, but was %p instead.\n",
uri,
test);
10759 hr = IUriBuilder_CreateUriSimple(builder, 0, 0, &
test);
10760 ok(
hr ==
S_OK,
"Error: IUriBuilder_CreateUriSimple returned 0x%08lx, expected 0x%08lx.\n",
hr,
S_OK);
10763 ok(cur_count == orig_count+1,
"Error: Expected uri ref count to be %ld, but was %ld instead.\n",
10764 orig_count+1, cur_count);
10765 ok(
test ==
uri,
"Error: Expected test to be %p, but was %p instead.\n",
uri,
test);
10770 hr = IUriBuilder_CreateUriWithFlags(builder, 0, 0, 0, 0, &
test);
10771 ok(
hr ==
S_OK,
"Error: IUriBuilder_CreateUriWithFlags returned 0x%08lx, expected 0x%08lx.\n",
10775 ok(cur_count == orig_count+1,
"Error: Expected uri ref count to be %ld, but was %ld instead.\n",
10776 orig_count+1, cur_count);
10777 ok(
test ==
uri,
"Error: Expected test to be %p, but was %p instead.\n",
uri,
test);
10785 hr = IUriBuilder_CreateUriWithFlags(builder, Uri_CREATE_ALLOW_RELATIVE, 0, 0, 0, &
test);
10786 ok(
hr ==
S_OK,
"Error: IUriBuilder_CreateUriWithFlags returned 0x%08lx, expected 0x%08lx.\n",
hr,
S_OK);
10788 ok(
test !=
uri,
"Error: Wasn't expecting 'test' to be 'uri'\n");
10796 hr = IUriBuilder_CreateUriWithFlags(builder, Uri_CREATE_CANONICALIZE, 0, 0, 0, &
test);
10797 ok(
hr ==
S_OK,
"Error: IUriBuilder_CreateUriWithFlags returned 0x%08lx, expected 0x%08lx.\n",
hr,
S_OK);
10800 ok(cur_count == orig_count+1,
"Error: Expected uri ref count to be %ld, but was %ld instead.\n",
10801 orig_count+1, cur_count);
10802 ok(
test ==
uri,
"Error: Expected 'test' to be %p, but was %p instead.\n",
uri,
test);
10806 if(
uri) IUri_Release(
uri);
10808 if(builder) IUriBuilder_Release(builder);
10816 hr = pCreateIUriBuilder(
NULL, 0, 0, &builder);
10817 ok(
hr ==
S_OK,
"Error: CreateIUriBuilder returned 0x%08lx, expected 0x%08lx.\n",
hr,
S_OK);
10820 const DWORD invalid = Uri_HAS_ABSOLUTE_URI|Uri_HAS_DISPLAY_URI|Uri_HAS_RAW_URI|Uri_HAS_HOST_TYPE|
10821 Uri_HAS_SCHEME|Uri_HAS_ZONE;
10823 for(
i = Uri_PROPERTY_STRING_START;
i <= Uri_PROPERTY_DWORD_LAST; ++
i) {
10824 hr = IUriBuilder_RemoveProperties(builder,
i << 1);
10825 if((
i << 1) & invalid) {
10827 "Error: IUriBuilder_RemoveProperties returned 0x%08lx, expected 0x%08lx with prop=%ld.\n",
10831 "Error: IUriBuilder_RemoveProperties returned 0x%08lx, expected 0x%08lx with prop=%ld.\n",
10839 hr = IUriBuilder_RemoveProperties(builder, (Uri_PROPERTY_DWORD_LAST+1) << 1);
10840 ok(
hr ==
E_INVALIDARG,
"Error: IUriBuilder_RemoveProperties returned 0x%08lx, expected 0x%08lx.\n",
10843 if(builder) IUriBuilder_Release(builder);
10851 hr = pCreateUri(uriW,
test.create_flags, 0, &
uri);
10855 hr = pCreateIUriBuilder(
uri, 0, 0, &builder);
10857 ok(
hr ==
test.create_builder_expected,
10858 "Error: CreateIUriBuilder returned 0x%08lx, expected 0x%08lx on test %ld.\n",
10859 hr,
test.create_builder_expected,
i);
10862 hr = IUriBuilder_RemoveProperties(builder,
test.remove_properties);
10865 "Error: IUriBuilder returned 0x%08lx, expected 0x%08lx on test %ld.\n",
10866 hr,
test.remove_expected,
i);
10870 hr = IUriBuilder_CreateUri(builder,
test.expected_flags, 0, 0, &
result);
10873 "Error: IUriBuilder_CreateUri returned 0x%08lx, expected 0x%08lx on test %ld.\n",
10879 ok(
hr ==
S_OK,
"Error: Expected S_OK, but got 0x%08lx instead.\n",
hr);
10881 "Error: Expected %s but got %s instead on test %ld.\n",
10888 if(builder) IUriBuilder_Release(builder);
10890 if(
uri) IUri_Release(
uri);
10903 hr = pCreateIUriBuilder(
uri, 0, 0, &builder);
10904 ok(
hr ==
S_OK,
"Error: CreateIUriBuilder returned 0x%08lx, expected 0x%08lx.\n",
hr,
S_OK);
10909 hr = IUriBuilder_GetPort(builder, &has, &
port);
10910 ok(
hr ==
S_OK,
"Error: IUriBuilder_GetPort returned 0x%08lx, expected 0x%08lx.\n",
hr,
S_OK);
10913 ok(has ==
FALSE,
"Error: Expected 'has' to be FALSE, was %d instead.\n", has);
10915 ok(
port == 80,
"Error: Expected the port to be 80, but, was %ld instead.\n",
port);
10918 if(builder) IUriBuilder_Release(builder);
10920 if(
uri) IUri_Release(
uri);
10933 hr = IUri_QueryInterface(
uri, &IID_IUriBuilderFactory, (
void**)&
factory);
10934 ok(
hr ==
S_OK,
"Error: Expected S_OK, but got 0x%08lx.\n",
hr);
10935 ok(
factory !=
NULL,
"Error: Expected 'factory' to not be NULL.\n");
10938 builder = (
void*) 0xdeadbeef;
10939 hr = IUriBuilderFactory_CreateIUriBuilder(
factory, 10, 0, &builder);
10940 ok(
hr ==
E_INVALIDARG,
"Error: CreateInitializedIUriBuilder returned 0x%08lx, expected 0x%08lx.\n",
10942 ok(!builder,
"Error: Expected 'builder' to be NULL, but was %p.\n", builder);
10944 builder = (
void*) 0xdeadbeef;
10945 hr = IUriBuilderFactory_CreateIUriBuilder(
factory, 0, 10, &builder);
10946 ok(
hr ==
E_INVALIDARG,
"Error: CreateInitializedIUriBuilder returned 0x%08lx, expected 0x%08lx.\n",
10948 ok(!builder,
"Error: Expected 'builder' to be NULL, but was %p.\n", builder);
10950 hr = IUriBuilderFactory_CreateIUriBuilder(
factory, 0, 0,
NULL);
10951 ok(
hr ==
E_POINTER,
"Error: CreateInitializedIUriBuilder returned 0x%08lx, expected 0x%08lx.\n",
10955 hr = IUriBuilderFactory_CreateIUriBuilder(
factory, 0, 0, &builder);
10956 ok(
hr ==
S_OK,
"Error: CreateInitializedIUriBuilder returned 0x%08lx, expected 0x%08lx.\n",
10959 IUri *tmp = (
void*) 0xdeadbeef;
10963 hr = IUriBuilder_GetIUri(builder, &tmp);
10964 ok(
hr ==
S_OK,
"Error: GetIUri returned 0x%08lx, expected 0x%08lx.\n",
10966 ok(!tmp,
"Error: Expected 'tmp' to be NULL, but was %p instead.\n", tmp);
10968 hr = IUriBuilder_GetHost(builder, &result_len, &
result);
10969 ok(
hr ==
S_FALSE,
"Error: GetHost returned 0x%08lx, expected 0x%08lx.\n",
10972 if(builder) IUriBuilder_Release(builder);
10974 builder = (
void*) 0xdeadbeef;
10975 hr = IUriBuilderFactory_CreateInitializedIUriBuilder(
factory, 10, 0, &builder);
10976 ok(
hr ==
E_INVALIDARG,
"Error: CreateIUriBuilder returned 0x%08lx, expected 0x%08lx.\n",
10978 ok(!builder,
"Error: Expected 'builder' to be NULL, but was %p.\n", builder);
10980 builder = (
void*) 0xdeadbeef;
10981 hr = IUriBuilderFactory_CreateInitializedIUriBuilder(
factory, 0, 10, &builder);
10982 ok(
hr ==
E_INVALIDARG,
"Error: CreateIUriBuilder returned 0x%08lx, expected 0x%08lx.\n",
10984 ok(!builder,
"Error: Expected 'builder' to be NULL, but was %p.\n", builder);
10986 hr = IUriBuilderFactory_CreateInitializedIUriBuilder(
factory, 0, 0,
NULL);
10987 ok(
hr ==
E_POINTER,
"Error: CreateIUriBuilder returned 0x%08lx, expected 0x%08lx.\n",
10991 hr = IUriBuilderFactory_CreateInitializedIUriBuilder(
factory, 0, 0, &builder);
10992 ok(
hr ==
S_OK,
"Error: CreateIUriBuilder returned 0x%08lx, expected 0x%08lx.\n",
10997 hr = IUriBuilder_GetIUri(builder, &tmp);
10998 ok(
hr ==
S_OK,
"Error: GetIUri return 0x%08lx, expected 0x%08lx.\n",
11000 ok(tmp ==
uri,
"Error: Expected tmp to be %p, but was %p.\n",
uri, tmp);
11001 if(tmp) IUri_Release(tmp);
11003 if(builder) IUriBuilder_Release(builder);
11007 if(
uri) IUri_Release(
uri);
11017 ok(
SUCCEEDED(
hr),
"Error: Expected CreateUri to succeed, got 0x%08lx.\n",
hr);
11019 result = (
void*) 0xdeadbeef;
11022 ok(!
result,
"Error: Expected 'result' to be NULL, was %p.\n",
result);
11027 ok(
SUCCEEDED(
hr),
"Error: Expected CreateUri to succeed, got 0x%08lx.\n",
hr);
11029 result = (
void*) 0xdeadbeef;
11030 hr = pCoInternetCombineIUri(
NULL, relative, 0, &
result, 0);
11032 ok(!
result,
"Error: Expected 'result' to be NULL, was %p.\n",
result);
11035 hr = pCoInternetCombineIUri(
base, relative, 0,
NULL, 0);
11039 if(relative) IUri_Release(relative);
11045 ok(
SUCCEEDED(
hr),
"Error: Expected CreateUri to succeed, got 0x%08lx on uri_combine_tests[%ld].\n",
hr,
i);
11050 ok(
SUCCEEDED(
hr),
"Error: Expected CreateUri to succeed, got 0x%08lx on uri_combine_tests[%ld].\n",
hr,
i);
11058 "Error: CoInternetCombineIUri returned 0x%08lx, expected 0x%08lx on uri_combine_tests[%ld].\n",
11070 "Error: IUri_GetPropertyBSTR returned 0x%08lx, expected 0x%08lx on uri_combine_tests[%ld].str_props[%ld].\n",
11074 "Error: Expected \"%s\" but got %s instead on uri_combine_tests[%ld].str_props[%ld].\n",
11087 "Error: IUri_GetPropertyDWORD returned 0x%08lx, expected 0x%08lx on uri_combine_tests[%ld].dword_props[%ld].\n",
11090 ok(prop.
value ==
received,
"Error: Expected %ld, but got %ld instead on uri_combine_tests[%ld].dword_props[%ld].\n",
11097 if(relative) IUri_Release(relative);
11108 ok(0,
"unexpected call\n");
11131 ok(cchResult == 200,
"Error: Got %ld.\n", cchResult);
11149 "Error: Expected 0, but got 0x%08lx.\n", dwCombineFlags);
11161 ok(0,
"unexpected call\n");
11169 ok(0,
"unexpected call\n");
11192 ok(0,
"unexpected call\n");
11209 ok(0,
"unexpected call\n");
11215 ok(0,
"unexpected call\n");
11243 IInternetSession_Release(
session);
11250 hr = pCoInternetGetSession(0, &
session, 0);
11251 ok(
hr ==
S_OK,
"CoInternetGetSession failed: 0x%08lx\n",
hr);
11256 ok(
hr ==
S_OK,
"UnregisterNameSpace failed: 0x%08lx\n",
hr);
11258 IInternetSession_Release(
session);
11279 ok(
hr ==
S_OK,
"Error: CoInternetCombineIUri returned 0x%08lx, expected 0x%08lx.\n",
hr,
S_OK);
11286 ok(
hr ==
S_OK,
"Error: Expected S_OK, but got 0x%08lx instead.\n",
hr);
11295 if(relative) IUri_Release(relative);
11309 result = (
void*) 0xdeadbeef;
11311 ok(
hr ==
E_UNEXPECTED,
"Error: CoInternetCombineUrlEx returned 0x%08lx, expected 0x%08lx.\n",
11313 ok(!
result,
"Error: Expected 'result' to be NULL was %p instead.\n",
result);
11316 result = (
void*) 0xdeadbeef;
11318 ok(
hr ==
E_INVALIDARG,
"Error: CoInternetCombineUrlEx returned 0x%08lx, expected 0x%08lx.\n",
11320 ok(!
result,
"Error: Expected 'result' to be NULL, but was %p instead.\n",
result);
11322 result = (
void*) 0xdeadbeef;
11324 ok(
hr ==
E_UNEXPECTED,
"Error: CoInternetCombineUrlEx returned 0x%08lx, expected 0x%08lx.\n",
11326 ok(!
result,
"Error: Expected 'result' to be NULL, but was %p instead.\n",
result);
11329 ok(
hr ==
E_POINTER,
"Error: CoInternetCombineUrlEx returned 0x%08lx, expected 0x%08lx.\n",
11337 ok(
SUCCEEDED(
hr),
"Error: CreateUri returned 0x%08lx on uri_combine_tests[%ld].\n",
hr,
i);
11346 "Error: CoInternetCombineUrlEx returned 0x%08lx, expected 0x%08lx on uri_combine_tests[%ld].\n",
11359 "Error: IUri_GetPropertyBSTR returned 0x%08lx, expected 0x%08lx on uri_combine_tests[%ld].str_props[%ld].\n",
11363 "Error: Expected \"%s\" but got %s instead on uri_combine_tests[%ld].str_props[%ld].\n",
11376 "Error: IUri_GetPropertyDWORD returned 0x%08lx, expected 0x%08lx on uri_combine_tests[%ld].dword_props[%ld].\n",
11379 ok(prop.
value ==
received,
"Error: Expected %ld, but got %ld instead on uri_combine_tests[%ld].dword_props[%ld].\n",
11405 ok(
hr ==
S_OK,
"Error: CoInternetCombineUrlEx returned 0x%08lx, expected 0x%08lx.\n",
hr,
S_OK);
11412 ok(
hr ==
S_OK,
"Error: Expected S_OK, but got 0x%08lx instead.\n",
hr);
11432 hr = pCoInternetParseIUri(
NULL, PARSE_CANONICALIZE, 0, tmp, 3, &
result, 0);
11433 ok(
hr ==
E_INVALIDARG,
"Error: CoInternetParseIUri returned 0x%08lx, expected 0x%08lx.\n",
11435 ok(!
result,
"Error: Expected 'result' to be 0, but was %ld.\n",
result);
11440 DWORD expected_len;
11443 hr = pCoInternetParseIUri(
uri, PARSE_CANONICALIZE, 0,
NULL, 0, &
result, 0);
11444 ok(
hr ==
E_INVALIDARG,
"Error: CoInternetParseIUri returned 0x%08lx, expected 0x%08lx.\n",
11446 ok(!
result,
"Error: Expected 'result' to be 0, but was %ld.\n",
result);
11448 hr = pCoInternetParseIUri(
uri, PARSE_CANONICALIZE, 0, tmp, 3,
NULL, 0);
11449 ok(
hr ==
E_POINTER,
"Error: CoInternetParseIUri returned 0x%08lx, expected 0x%08lx.\n",
11453 hr = pCoInternetParseIUri(
uri, PARSE_SECURITY_URL, 0, tmp, 3, &
result, 0);
11454 ok(
hr ==
E_FAIL,
"Error: CoInternetParseIUri returned 0x%08lx expected 0x%08lx.\n",
11456 ok(!
result,
"Error: Expected 'result' to be 0, but was %ld.\n",
result);
11459 hr = pCoInternetParseIUri(
uri, PARSE_MIME, 0, tmp, 3, &
result, 0);
11460 ok(
hr ==
E_FAIL,
"Error: CoInternetParseIUri returned 0x%08lx, expected 0x%08lx.\n",
11462 ok(!
result,
"Error: Expected 'result' to be 0, but was %ld.\n",
result);
11465 hr = pCoInternetParseIUri(
uri, PARSE_SERVER, 0, tmp, 3, &
result, 0);
11466 ok(
hr ==
E_FAIL,
"Error: CoInternetParseIUri returned 0x%08lx, expected 0x%08lx.\n",
11468 ok(!
result,
"Error: Expected 'result' to be 0, but was %ld.\n",
result);
11471 hr = pCoInternetParseIUri(
uri, PARSE_SECURITY_DOMAIN, 0, tmp, 3, &
result, 0);
11472 ok(
hr ==
E_FAIL,
"Error: CoInternetParseIUri returned 0x%08lx, expected 0x%08lx.\n",
11474 ok(!
result,
"Error: Expected 'result' to be 0, but was %ld.\n",
result);
11478 hr = pCoInternetParseIUri(
uri, PARSE_CANONICALIZE, 0, tmp, 3, &
result, 0);
11480 "Error: CoInternetParseIUri returned 0x%08lx, expected 0x%08lx.\n",
11482 ok(
result == expected_len,
"Error: Expected 'result' to be %ld, but was %ld instead.\n",
11485 if(
uri) IUri_Release(
uri);
11498 hr = pCreateUri(longurl, 0, 0, &
uri);
11503 hr = pCoInternetParseIUri(
uri, PARSE_CANONICALIZE, 0, longurl,
len+1, &
result, 0);
11504 ok(
SUCCEEDED(
hr),
"Error: CoInternetParseIUri returned 0x%08lx.\n",
hr);
11505 ok(!
lstrcmpW(longurl,
copy),
"Error: expected long url '%s' but was '%s'.\n",
11507 ok(
result ==
len,
"Error: Expected 'result' to be %ld, but was %ld instead.\n",
11512 if(
uri) IUri_Release(
uri);
11525 hr = pCreateUri(uriW,
test.uri_flags, 0, &
uri);
11526 ok(
SUCCEEDED(
hr),
"Error: CreateUri returned 0x%08lx on uri_parse_tests[%ld].\n",
hr,
i);
11529 DWORD result_len = -1;
11534 "Error: CoInternetParseIUri returned 0x%08lx, expected 0x%08lx on uri_parse_tests[%ld].\n",
11539 "Error: Expected %s but got %s instead on uri_parse_tests[%ld] - %s.\n",
11542 "Error: Expected %ld, but got %ld instead on uri_parse_tests[%ld] - %s.\n",
11546 "Error: Expected 'result_len' to be 0, but was %ld on uri_parse_tests[%ld].\n",
11550 if(
uri) IUri_Release(
uri);
11560 ok(
SUCCEEDED(
hr),
"Error: Expected CreateUri to succeed, but got 0x%08lx.\n",
hr);
11571 ok(
hr ==
S_OK,
"Error: CoInternetParseIUri returned 0x%08lx, expected 0x%08lx.\n",
hr,
S_OK);
11582 if(
uri) IUri_Release(
uri);
11598 "http://www.winehq.org",Uri_CREATE_NO_CANONICALIZE,
11600 "http://www.winehq.org/",
11601 "http://www.winehq.org/",
11602 "http://www.winehq.org",
11603 "http://www.winehq.org"
11606 "file://c:\\dir\\file.txt",Uri_CREATE_NO_CANONICALIZE,
11608 "file://c:\\dir\\file.txt",
11609 "file:///c:/dir/file.txt",
11610 "file:///c:/dir/file.txt",
11611 "file:///c:/dir/file.txt"
11614 "file://c:\\dir\\file.txt",Uri_CREATE_FILE_USE_DOS_PATH,
11616 "file://c:\\dir\\file.txt",
11617 "file:///c:/dir/file.txt",
11618 "file:///c:/dir/file.txt",
11619 "file://c:\\dir\\file.txt"
11622 "dat%61",Uri_CREATE_ALLOW_RELATIVE,
11623 "http://www.winehq.org",0,
11624 "http://www.winehq.org/data",
11625 "http://www.winehq.org/data",
11626 "http://www.winehq.org:80/data",
11629 "file.txt",Uri_CREATE_ALLOW_RELATIVE,
11630 "file://c:\\dir\\x.txt",Uri_CREATE_NO_CANONICALIZE,
11631 "file://c:\\dir\\file.txt",
11632 "file:///c:/dir/file.txt",
11633 "file:///c:/dir/file.txt",
11636 "",Uri_CREATE_ALLOW_RELATIVE,
11644 "test",Uri_CREATE_ALLOW_RELATIVE,
11652 "c:\\dir\\file.txt",Uri_CREATE_ALLOW_IMPLICIT_FILE_SCHEME,
11654 "file://c:\\dir\\file.txt",
11655 "file:///c:/dir/file.txt",
11656 "file:///c:/dir/file.txt",
11657 "file:///c:/dir/file.txt",
11660 "c:\\dir\\file.txt#frag|part",Uri_CREATE_ALLOW_IMPLICIT_FILE_SCHEME,
11662 "file://c:\\dir\\file.txt#frag|part",
11663 "file:///c:/dir/file.txt#frag%7Cpart",
11664 "file:///c:/dir/file.txt#frag%7Cpart",
11665 "file:///c:/dir/file.txt#frag%7Cpart",
11669#define test_urlmon_display_name(a,b) _test_urlmon_display_name(__LINE__,a,b)
11672 WCHAR *display_name;
11675 hres = IMoniker_GetDisplayName(mon,
NULL,
NULL, &display_name);
11677 ok_(__FILE__,
line)(!
strcmp_aw(exurl, display_name),
"unexpected display name: %s, expected %s\n",
11683#define test_display_uri(a,b) _test_display_uri(__LINE__,a,b)
11691 hres = IMoniker_QueryInterface(mon, &IID_IUriContainer, (
void**)&uri_container);
11692 ok(
hres ==
S_OK,
"Could not get IUriContainer iface: %08lx\n",
hres);
11695 hres = IUriContainer_GetIUri(uri_container, &
uri);
11696 IUriContainer_Release(uri_container);
11700 hres = IUri_GetDisplayUri(
uri, &display_uri);
11703 ok_(__FILE__,
line)(!
strcmp_aw(exurl, display_uri),
"unexpected display uri: %s, expected %s\n",
11724 hres = pCreateURLMonikerEx2(
NULL, base_uri, &base_mon, URL_MK_NO_CANONICALIZE);
11735 IMoniker_Release(mon);
11737 hres = pCreateURLMonikerEx(base_mon,
url, &mon, URL_MK_LEGACY);
11741 IMoniker_Release(mon);
11743 hres = pCreateURLMonikerEx(base_mon,
url, &mon, URL_MK_UNIFORM);
11747 IMoniker_Release(mon);
11749 hres = pCreateURLMonikerEx(base_mon,
url, &mon, URL_MK_NO_CANONICALIZE);
11753 IMoniker_Release(mon);
11758 hres = pCreateURLMonikerEx2(base_mon,
uri, &mon, URL_MK_LEGACY);
11762 IMoniker_Release(mon);
11764 hres = pCreateURLMonikerEx2(base_mon,
uri, &mon, URL_MK_UNIFORM);
11768 IMoniker_Release(mon);
11770 hres = pCreateURLMonikerEx2(base_mon,
uri, &mon, URL_MK_NO_CANONICALIZE);
11774 IMoniker_Release(mon);
11780 IUri_Release(base_uri);
11782 IMoniker_Release(base_mon);
11787 if(!(
flags & Uri_CREATE_NO_CANONICALIZE))
11788 flags |= Uri_CREATE_CANONICALIZE;
11789 if(!(
flags & Uri_CREATE_NO_DECODE_EXTRA_INFO))
11790 flags |= Uri_CREATE_DECODE_EXTRA_INFO;
11791 if(!(
flags & Uri_CREATE_NO_CRACK_UNKNOWN_SCHEMES))
11792 flags |= Uri_CREATE_CRACK_UNKNOWN_SCHEMES;
11793 if(!(
flags & Uri_CREATE_NO_PRE_PROCESS_HTML_URI))
11794 flags |= Uri_CREATE_PRE_PROCESS_HTML_URI;
11795 if(!(
flags & Uri_CREATE_IE_SETTINGS))
11796 flags |= Uri_CREATE_NO_IE_SETTINGS;
11803 int i, props_order[Uri_PROPERTY_DWORD_LAST+1] = { 0 };
11805 props_order[Uri_PROPERTY_RAW_URI] = 1;
11806 props_order[Uri_PROPERTY_FRAGMENT] = 2;
11807 props_order[Uri_PROPERTY_HOST] = 3;
11808 props_order[Uri_PROPERTY_PASSWORD] = 4;
11809 props_order[Uri_PROPERTY_PATH] = 5;
11810 props_order[Uri_PROPERTY_PORT] = 6;
11811 props_order[Uri_PROPERTY_QUERY] = 7;
11812 props_order[Uri_PROPERTY_SCHEME_NAME] = 8;
11813 props_order[Uri_PROPERTY_USER_NAME] = 9;
11823 WCHAR str_data[1024];
11834 hr = pCreateUri(uriW,
test->create_flags, 0, &
uri);
11835 ok(
hr ==
S_OK,
"%d) CreateUri failed 0x%08lx, expected S_OK..\n",
i,
hr);
11838 ok(
hr ==
S_OK,
"%d) QueryInterface failed 0x%08lx, expected S_OK.\n",
i,
hr);
11841 ok(
hr ==
S_OK,
"CreateStreamOnHGlobal failed 0x%08lx.\n",
hr);
11842 hr = IPersistStream_IsDirty(persist_stream);
11843 ok(
hr ==
S_FALSE,
"%d) IsDirty returned 0x%08lx, expected S_FALSE.\n",
i,
hr);
11845 ok(
hr ==
S_OK,
"%d) Save failed 0x%08lx, expected S_OK.\n",
i,
hr);
11846 hr = IPersistStream_IsDirty(persist_stream);
11847 ok(
hr ==
S_FALSE,
"%d) IsDirty returned 0x%08lx, expected S_FALSE.\n",
i,
hr);
11849 hr = IStream_Seek(
stream, no_off, STREAM_SEEK_CUR, &
size);
11850 ok(
hr ==
S_OK,
"%d) Seek failed 0x%08lx, expected S_OK.\n",
i,
hr);
11851 hr = IStream_Seek(
stream, no_off, STREAM_SEEK_SET,
NULL);
11852 ok(
hr ==
S_OK,
"%d) Seek failed 0x%08lx, expected S_OK.\n",
i,
hr);
11853 hr = IPersistStream_GetSizeMax(persist_stream, &
max_size);
11854 ok(
hr ==
S_OK,
"%d) GetSizeMax failed 0x%08lx, expected S_OK.\n",
i,
hr);
11856 "%d) Written data size is %ld, max_size %ld.\n",
11860 ok(
hr ==
S_OK,
"%d) Read failed 0x%08lx, expected S_OK.\n",
i,
hr);
11861 ok(dw_data[0]-2 ==
size.LowPart,
"%d) Structure size is %ld, expected %ld\n",
11862 i, dw_data[0]-2,
size.LowPart);
11864 ok(
hr ==
S_OK,
"%d) Read failed 0x%08lx, expected S_OK.\n",
i,
hr);
11865 ok(dw_data[0] == 0,
"%d) Incorrect value %lx, expected 0 (unknown).\n",
i, dw_data[0]);
11866 ok(dw_data[1] == 0,
"%d) Incorrect value %lx, expected 0 (unknown).\n",
i, dw_data[1]);
11868 "%d) Incorrect value %lx, expected %x (creation flags).\n",
11870 ok(dw_data[3] == 0,
"%d) Incorrect value %lx, expected 0 (unknown).\n",
i, dw_data[3]);
11871 ok(dw_data[4] == 0,
"%d) Incorrect value %lx, expected 0 (unknown).\n",
i, dw_data[4]);
11872 ok(dw_data[5] == 0,
"%d) Incorrect value %lx, expected 0 (unknown).\n",
i, dw_data[5]);
11876 if(!props_order[
props])
11879 if(
props <= Uri_PROPERTY_STRING_LAST) {
11883 if(
test->dword_props[
props-Uri_PROPERTY_DWORD_START].expected ==
S_OK)
11893 ok(
hr ==
S_OK,
"%d) Read failed 0x%08lx, expected S_OK.\n",
i,
hr);
11894 ok(
props == props_no,
"%d) Properties no is %ld, expected %ld.\n",
i,
props, props_no);
11900 ok(
hr ==
S_OK,
"%d) Read failed 0x%08lx, expected S_OK.\n",
i,
hr);
11902 ok(dw_data[2]<props_order[dw_data[0]],
11903 "%d) Incorrect properties order (%ld, %ld)\n",
11904 i, dw_data[0], dw_data[3]);
11905 dw_data[2] = props_order[dw_data[0]];
11906 dw_data[3] = dw_data[0];
11908 if(dw_data[0]<=Uri_PROPERTY_STRING_LAST) {
11910 hr = IStream_Read(
stream, (
void*)str_data, dw_data[1],
NULL);
11911 ok(
hr ==
S_OK,
"%d) Read failed 0x%08lx, expected S_OK.\n",
i,
hr);
11913 "%d) Expected %s but got %s (%ld).\n",
i, prop->
value,
wine_dbgstr_w(str_data), dw_data[0]);
11914 }
else if(dw_data[0]>=Uri_PROPERTY_DWORD_START && dw_data[0]<=Uri_PROPERTY_DWORD_LAST) {
11916 ok(dw_data[1] ==
sizeof(
DWORD),
"%d) Size of dword property is %ld (%ld)\n",
i, dw_data[1], dw_data[0]);
11918 ok(
hr ==
S_OK,
"%d) Read failed 0x%08lx, expected S_OK.\n",
i,
hr);
11919 ok(prop->
value == dw_data[1],
"%d) Expected %ld but got %ld (%ld).\n",
i, prop->
value, dw_data[1], dw_data[0]);
11921 ok(
FALSE,
"%d) Incorrect property type (%ld)\n",
i, dw_data[0]);
11925 ok(
props == 0,
"%d) Not all properties were processed %ld. Next property type: %ld\n",
11930 hr = IStream_Seek(
stream, no_off, STREAM_SEEK_SET,
NULL);
11931 ok(
hr ==
S_OK,
"%d) Seek failed 0x%08lx, expected S_OK.\n",
i,
hr);
11932 hr = IPersistStream_GetClassID(persist_stream, &curi);
11933 ok(
hr ==
S_OK,
"%d) GetClassID failed 0x%08lx, expected S_OK.\n",
i,
hr);
11934 ok(
IsEqualCLSID(&curi, &CLSID_CUri),
"%d) GetClassID returned incorrect CLSID.\n",
i);
11935 IPersistStream_Release(persist_stream);
11938 &IID_IUri, (
void**)&
uri);
11939 ok(
hr ==
S_OK,
"%d) Error creating uninitialized Uri: 0x%08lx.\n",
i,
hr);
11941 ok(
hr ==
S_OK,
"%d) QueryInterface failed 0x%08lx, expected S_OK.\n",
i,
hr);
11942 hr = IPersistStream_Load(persist_stream,
stream);
11943 ok(
hr ==
S_OK,
"%d) Load failed 0x%08lx, expected S_OK.\n",
i,
hr);
11944 hr = IUri_GetRawUri(
uri, &raw_uri);
11945 ok(
hr ==
S_OK,
"%d) GetRawUri failed 0x%08lx, expected S_OK.\n",
i,
hr);
11947 ||
broken(
test->str_props[Uri_PROPERTY_RAW_URI].broken_value
11948 && !
strcmp_aw(
test->str_props[Uri_PROPERTY_RAW_URI].broken_value, raw_uri)),
11949 "%d) Expected %s but got %s.\n",
i,
test->str_props[Uri_PROPERTY_RAW_URI].
value,
11952 IPersistStream_Release(persist_stream);
11954 hr = IUri_QueryInterface(
uri, &IID_IMarshal, (
void**)&marshal);
11955 ok(
hr ==
S_OK,
"%d) QueryInterface(IID_IMarshal) failed 0x%08lx, expected S_OK.\n",
i,
hr);
11956 hr = IStream_Seek(
stream, no_off, STREAM_SEEK_SET,
NULL);
11957 ok(
hr ==
S_OK,
"%d) Seek failed 0x%08lx, expected S_OK.\n",
i,
hr);
11958 hr = IMarshal_MarshalInterface(marshal,
stream, &IID_IUri, (
void*)
uri,
11959 MSHCTX_DIFFERENTMACHINE,
NULL, MSHLFLAGS_NORMAL);
11960 ok(
hr ==
E_INVALIDARG,
"%d) MarshalInterface returned 0x%08lx, expected E_INVALIDARG.\n",
i,
hr);
11961 hr = IMarshal_MarshalInterface(marshal,
stream, &IID_IUri, (
void*)
uri,
11962 MSHCTX_CROSSCTX,
NULL, MSHLFLAGS_NORMAL);
11963 ok(
hr ==
E_INVALIDARG,
"%d) MarshalInterface returned 0x%08lx, expected E_INVALIDARG.\n",
i,
hr);
11964 hr = IMarshal_MarshalInterface(marshal,
stream, &IID_IUri, (
void*)
uri,
11965 MSHCTX_LOCAL,
NULL, MSHLFLAGS_TABLESTRONG);
11966 ok(
hr ==
E_INVALIDARG,
"%d) MarshalInterface returned 0x%08lx, expected E_INVALIDARG.\n",
i,
hr);
11967 hr = IMarshal_MarshalInterface(marshal,
stream, &IID_IUri, (
void*)
uri,
11968 MSHCTX_LOCAL,
NULL, MSHLFLAGS_TABLEWEAK);
11969 ok(
hr ==
E_INVALIDARG,
"%d) MarshalInterface returned 0x%08lx, expected E_INVALIDARG.\n",
i,
hr);
11970 hr = IMarshal_MarshalInterface(marshal,
stream, &IID_IUri, (
void*)
uri,
11971 MSHCTX_LOCAL,
NULL, MSHLFLAGS_NOPING);
11972 ok(
hr ==
E_INVALIDARG,
"%d) MarshalInterface returned 0x%08lx, expected E_INVALIDARG.\n",
i,
hr);
11973 hr = IMarshal_MarshalInterface(marshal,
stream, &IID_IUri, (
void*)
uri,
11974 MSHCTX_LOCAL,
NULL, MSHLFLAGS_NORMAL);
11975 ok(
hr ==
S_OK,
"%d) MarshalInterface failed 0x%08lx, expected S_OK.\n",
i,
hr);
11976 hr = IMarshal_GetUnmarshalClass(marshal, &IID_IUri, (
void*)
uri,
11977 MSHCTX_CROSSCTX,
NULL, MSHLFLAGS_NORMAL, &curi);
11978 ok(
hr ==
E_INVALIDARG,
"%d) GetUnmarshalClass returned 0x%08lx, expected E_INVALIDARG.\n",
i,
hr);
11979 hr = IMarshal_GetUnmarshalClass(marshal, &IID_IUri, (
void*)
uri,
11980 MSHCTX_INPROC,
NULL, MSHLFLAGS_NORMAL, &curi);
11981 ok(
hr ==
S_OK,
"%d) GetUnmarshalClass failed 0x%08lx, expected S_OK.\n",
i,
hr);
11982 ok(
IsEqualCLSID(&curi, &CLSID_CUri),
"%d) GetUnmarshalClass returned incorrect CLSID.\n",
i);
11984 hr = IStream_Seek(
stream, no_off, STREAM_SEEK_CUR, &
size);
11985 ok(
hr ==
S_OK,
"%d) Seek failed 0x%08lx, expected S_OK.\n",
i,
hr);
11986 hr = IStream_Seek(
stream, no_off, STREAM_SEEK_SET,
NULL);
11987 ok(
hr ==
S_OK,
"%d) Seek failed 0x%08lx, expected S_OK.\n",
i,
hr);
11989 ok(
hr ==
S_OK,
"%d) Read failed 0x%08lx, expected S_OK.\n",
i,
hr);
11990 ok(dw_data[0]-2 ==
size.LowPart,
"%d) Structure size is %ld, expected %ld\n",
11991 i, dw_data[0]-2,
size.LowPart);
11992 ok(dw_data[1] == MSHCTX_LOCAL,
"%d) Incorrect value %ld, expected MSHCTX_LOCAL.\n",
11994 ok(dw_data[2] == dw_data[0]-8,
"%d) Incorrect value %ld, expected %ld (PersistStream size).\n",
11995 i, dw_data[2], dw_data[0]-8);
11996 if(!
test->str_props[Uri_PROPERTY_PATH].
value[0] &&
12001 ok(dw_data[2] ==
max_size.LowPart,
"%d) Incorrect value %ld, expected %ld (PersistStream size).\n",
12003 IMarshal_Release(marshal);
12006 hr = IStream_Seek(
stream, no_off, STREAM_SEEK_SET,
NULL);
12007 ok(
hr ==
S_OK,
"%d) Seek failed 0x%08lx, expected S_OK.\n",
i,
hr);
12009 &IID_IUri, (
void**)&
uri);
12010 ok(
hr ==
S_OK,
"%d) Error creating uninitialized Uri: 0x%08lx.\n",
i,
hr);
12011 hr = IUri_QueryInterface(
uri, &IID_IMarshal, (
void**)&marshal);
12012 ok(
hr ==
S_OK,
"%d) QueryInterface failed 0x%08lx, expected S_OK.\n",
i,
hr);
12014 hr = IMarshal_UnmarshalInterface(marshal,
stream, &IID_IUri, (
void**)&
uri);
12015 ok(
hr ==
S_OK,
"%d) UnmarshalInterface failed 0x%08lx, expected S_OK.\n",
i,
hr);
12016 hr = IUri_GetRawUri(
uri, &raw_uri);
12017 ok(
hr ==
S_OK,
"%d) GetRawUri failed 0x%08lx, expected S_OK.\n",
i,
hr);
12019 ||
broken(
test->str_props[Uri_PROPERTY_RAW_URI].broken_value
12020 && !
strcmp_aw(
test->str_props[Uri_PROPERTY_RAW_URI].broken_value, raw_uri)),
12021 "%d) Expected %s but got %s.\n",
i,
test->str_props[Uri_PROPERTY_RAW_URI].
value,
12025 IMarshal_Release(marshal);
12026 IStream_Release(
stream);
12045 &IID_IUri, (
void**)&
uri);
12047 win_skip(
"Skipping uninitialized Uri tests.\n");
12051 hr = IUri_QueryInterface(
uri, &IID_IUriBuilderFactory, (
void**)&ubf);
12052 ok(
hr ==
S_OK,
"QueryInterface(IID_IUriBuillderFactory) failed: %lx.\n",
hr);
12054 ok(
hr ==
S_OK,
"QueryInterface(IID_IPersistStream) failed: %lx.\n",
hr);
12057 ok(
hr ==
E_UNEXPECTED,
"GetAbsoluteUri returned %lx, expected E_UNEXPECTED.\n",
hr);
12058 hr = IUri_GetAbsoluteUri(
uri, &bstr);
12059 ok(
hr ==
E_UNEXPECTED,
"GetAbsoluteUri returned %lx, expected E_UNEXPECTED.\n",
hr);
12060 hr = IUri_GetAuthority(
uri, &bstr);
12062 hr = IUri_GetDisplayUri(
uri, &bstr);
12064 hr = IUri_GetDomain(
uri, &bstr);
12066 hr = IUri_GetExtension(
uri, &bstr);
12068 hr = IUri_GetFragment(
uri, &bstr);
12070 hr = IUri_GetHost(
uri, &bstr);
12072 hr = IUri_GetHostType(
uri, &dword);
12074 hr = IUri_GetPassword(
uri, &bstr);
12076 hr = IUri_GetPassword(
uri, &bstr);
12078 hr = IUri_GetPathAndQuery(
uri, &bstr);
12079 ok(
hr ==
E_UNEXPECTED,
"GetPathAndQuery returned %lx, expected E_UNEXPECTED.\n",
hr);
12080 hr = IUri_GetPort(
uri, &dword);
12082 hr = IUri_GetProperties(
uri, &dword);
12084 hr = IUri_GetPropertyBSTR(
uri, Uri_PROPERTY_RAW_URI, &bstr, 0);
12085 ok(
hr ==
E_UNEXPECTED,
"GetPropertyBSTR returned %lx, expected E_UNEXPECTED.\n",
hr);
12086 hr = IUri_GetPropertyDWORD(
uri, Uri_PROPERTY_PORT, &dword, 0);
12087 ok(
hr ==
E_UNEXPECTED,
"GetPropertyDWORD returned %lx, expected E_UNEXPECTED.\n",
hr);
12088 hr = IUri_GetPropertyLength(
uri, Uri_PROPERTY_RAW_URI, &dword, 0);
12089 ok(
hr ==
E_UNEXPECTED,
"GetPropertyLength returned %lx, expected E_UNEXPECTED.\n",
hr);
12090 hr = IUri_GetQuery(
uri, &bstr);
12092 hr = IUri_GetRawUri(
uri, &bstr);
12094 hr = IUri_GetScheme(
uri, &dword);
12096 hr = IUri_GetSchemeName(
uri, &bstr);
12098 hr = IUri_GetUserInfo(
uri, &bstr);
12100 hr = IUri_GetUserName(
uri, &bstr);
12102 hr = IUri_GetZone(
uri, &dword);
12107 hr = IUriBuilderFactory_CreateInitializedIUriBuilder(ubf, 0, 0, &ub);
12108 ok(
hr ==
E_UNEXPECTED,
"CreateInitializedIUriBuilder returned %lx, expected E_UNEXPECTED.\n",
hr);
12109 hr = IUriBuilderFactory_CreateIUriBuilder(ubf, 0, 0, &ub);
12110 ok(
hr ==
S_OK,
"CreateIUriBuilder returned %lx, expected S_OK.\n",
hr);
12111 IUriBuilder_Release(ub);
12113 hr = IPersistStream_GetSizeMax(ps, &
ui);
12114 ok(
hr ==
S_OK,
"GetSizeMax returned %lx, expected S_OK.\n",
hr);
12115 ok(
ui.u.LowPart == 34,
"ui.LowPart = %ld, expected 34.\n",
ui.u.LowPart);
12116 hr = IPersistStream_IsDirty(ps);
12117 ok(
hr ==
S_FALSE,
"IsDirty returned %lx, expected S_FALSE.\n",
hr);
12119 IPersistStream_Release(ps);
12120 IUriBuilderFactory_Release(ubf);
12128 pCoInternetGetSession = (
void*)
GetProcAddress(hurlmon,
"CoInternetGetSession");
12130 pCreateUriWithFragment = (
void*)
GetProcAddress(hurlmon,
"CreateUriWithFragment");
12131 pCreateIUriBuilder = (
void*)
GetProcAddress(hurlmon,
"CreateIUriBuilder");
12132 pCoInternetCombineIUri = (
void*)
GetProcAddress(hurlmon,
"CoInternetCombineIUri");
12133 pCoInternetCombineUrlEx = (
void*)
GetProcAddress(hurlmon,
"CoInternetCombineUrlEx");
12134 pCoInternetParseIUri = (
void*)
GetProcAddress(hurlmon,
"CoInternetParseIUri");
12135 pCreateURLMonikerEx = (
void*)
GetProcAddress(hurlmon,
"CreateURLMonikerEx");
12136 pCreateURLMonikerEx2 = (
void*)
GetProcAddress(hurlmon,
"CreateURLMonikerEx2");
12139 win_skip(
"CreateUri is not present, skipping tests.\n");
12143 trace(
"test CreateUri invalid flags...\n");
12146 trace(
"test CreateUri invalid args...\n");
12149 trace(
"test CreateUri invalid URIs...\n");
12152 trace(
"test IUri_GetPropertyBSTR...\n");
12155 trace(
"test IUri_GetPropertyDWORD...\n");
12158 trace(
"test IUri_GetStrProperties...\n");
12161 trace(
"test IUri_GetDwordProperties...\n");
12164 trace(
"test IUri_GetPropertyLength...\n");
12167 trace(
"test IUri_GetProperties...\n");
12170 trace(
"test IUri_HasProperty...\n");
12173 trace(
"test IUri_IsEqual...\n");
12176 trace(
"test CreateUriWithFragment invalid args...\n");
12179 trace(
"test CreateUriWithFragment invalid flags...\n");
12182 trace(
"test CreateUriWithFragment...\n");
12185 trace(
"test CreateIUriBuilder...\n");
12188 trace(
"test IUriBuilder_CreateInvalidArgs...\n");
12191 trace(
"test IUriBuilder...\n");
12194 trace(
"test IUriBuilder_GetInvalidArgs...\n");
12197 trace(
"test IUriBuilder_HasBeenModified...\n");
12200 trace(
"test IUriBuilder_IUriProperty...\n");
12203 trace(
"test IUriBuilder_RemoveProperties...\n");
12206 trace(
"test IUriBuilder miscellaneous...\n");
12209 trace(
"test IUriBuilderFactory...\n");
12212 trace(
"test CoInternetCombineIUri...\n");
12215 trace(
"test CoInternetCombineUrlEx...\n");
12218 trace(
"test CoInternetParseIUri Invalid Args...\n");
12221 trace(
"test CoInternetParseIUri...\n");
12226 trace(
"test CoInternetCombineIUri pluggable...\n");
12229 trace(
"test CoInternetCombineUrlEx Pluggable...\n");
12232 trace(
"test CoInternetParseIUri pluggable...\n");
12235 trace(
"test CreateURLMoniker...\n");
12240 trace(
"test IPersistStream...\n");
12243 trace(
"test uninitialized Uri...\n");
static WCHAR baseW[MAX_PATH]
INT copy(TCHAR source[MAX_PATH], TCHAR dest[MAX_PATH], INT append, DWORD lpdwFlags, BOOL bTouch)
void WINAPI DECLSPEC_HOTPATCH CoUninitialize(void)
HRESULT WINAPI DECLSPEC_HOTPATCH CoCreateInstance(REFCLSID rclsid, IUnknown *outer, DWORD cls_context, REFIID riid, void **obj)
HRESULT WINAPI CreateStreamOnHGlobal(HGLOBAL hGlobal, BOOL delete_on_release, IStream **stream)
void WINAPI CoTaskMemFree(void *ptr)
#define GetProcAddress(x, y)
#define MultiByteToWideChar
HMODULE WINAPI DECLSPEC_HOTPATCH GetModuleHandleA(LPCSTR lpModuleName)
int WINAPI lstrcmpW(LPCWSTR str1, LPCWSTR str2)
_ACRTIMP size_t __cdecl strlen(const char *)
HRESULT WINAPI CoInitialize(LPVOID lpReserved)
static Uri * impl_from_IUri(IUri *iface)
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[]
int WINAPI lstrlenA(LPCSTR lpString)
#define todo_wine_if(is_todo)
#define memcpy(s1, s2, n)
#define eq(received, expected, label, type)
static const WCHAR invalidW[]
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
#define INET_E_INVALID_URL
#define INTERNET_MAX_URL_LENGTH