From: Zebediah Figura zfigura@codeweavers.com
--- dlls/shlwapi/tests/url.c | 245 +++++++++++++++++++-------------------- 1 file changed, 120 insertions(+), 125 deletions(-)
diff --git a/dlls/shlwapi/tests/url.c b/dlls/shlwapi/tests/url.c index 160f7696cc2..d99be7b6a43 100644 --- a/dlls/shlwapi/tests/url.c +++ b/dlls/shlwapi/tests/url.c @@ -74,127 +74,6 @@ static const TEST_URL_APPLY TEST_APPLY[] = { {"file://server/share", URL_APPLY_GUESSSCHEME, S_FALSE}, };
-/* ################ */ - -typedef struct _TEST_URL_CANONICALIZE { - const char *url; - DWORD flags; - const char *expecturl; - BOOL todo; -} TEST_URL_CANONICALIZE; - -static const TEST_URL_CANONICALIZE TEST_CANONICALIZE[] = { - {"", 0, ""}, - {"http://www.winehq.org/tests/../tests/../..", 0, "http://www.winehq.org/", TRUE}, - {"http://www.winehq.org/..", 0, "http://www.winehq.org/..", FALSE}, - {"http://www.winehq.org/tests/tests2/../../tests", 0, "http://www.winehq.org/tests", FALSE}, - {"http://www.winehq.org/tests/../tests", 0, "http://www.winehq.org/tests", FALSE}, - {"http://www.winehq.org/tests%5Cn", URL_WININET_COMPATIBILITY|URL_ESCAPE_SPACES_ONLY|URL_ESCAPE_UNSAFE, "http://www.winehq.org/tests", FALSE}, - {"http://www.winehq.org/tests%5Cr", URL_WININET_COMPATIBILITY|URL_ESCAPE_SPACES_ONLY|URL_ESCAPE_UNSAFE, "http://www.winehq.org/tests", FALSE}, - {"http://www.winehq.org/tests%5Cr", 0, "http://www.winehq.org/tests", FALSE}, - {"http://www.winehq.org/tests%5Cr", URL_DONT_SIMPLIFY, "http://www.winehq.org/tests", FALSE}, - {"http://www.winehq.org/tests/../tests/", 0, "http://www.winehq.org/tests/", FALSE}, - {"http://www.winehq.org/tests/../tests/..", 0, "http://www.winehq.org/", FALSE}, - {"http://www.winehq.org/tests/../tests/../", 0, "http://www.winehq.org/", FALSE}, - {"http://www.winehq.org/tests/..", 0, "http://www.winehq.org/", FALSE}, - {"http://www.winehq.org/tests/../", 0, "http://www.winehq.org/", FALSE}, - {"http://www.winehq.org/tests/..?query=x&return=y", 0, "http://www.winehq.org/?query=x&return=y", FALSE}, - {"http://www.winehq.org/tests/../?query=x&return=y", 0, "http://www.winehq.org/?query=x&return=y", FALSE}, - {"\tht\ttp\t://www\t.w\tineh\t\tq.or\tg\t/\ttests/..\t?\tquer\ty=x\t\t&re\tturn=y\t\t", 0, "http://www.winehq.org/?query=x&return=y", FALSE}, - {"http://www.winehq.org/tests/..#example", 0, "http://www.winehq.org/#example", FALSE}, - {"http://www.winehq.org/tests/../#example", 0, "http://www.winehq.org/#example", FALSE}, - {"http://www.winehq.org/tests%5C%5C../#example", 0, "http://www.winehq.org/#example", FALSE}, - {"http://www.winehq.org/tests/..%5C%5C#example", 0, "http://www.winehq.org/#example", FALSE}, - {"http://www.winehq.org%5C%5Ctests/../#example", 0, "http://www.winehq.org/#example", FALSE}, - {"http://www.winehq.org/tests/../#example", URL_DONT_SIMPLIFY, "http://www.winehq.org/tests/../#example", FALSE}, - {"http://www.winehq.org/tests/foo bar", URL_ESCAPE_SPACES_ONLY | URL_DONT_ESCAPE_EXTRA_INFO, "http://www.winehq.org/tests/foo%20bar", FALSE}, - {"http://www.winehq.org/tests/foo%20bar", URL_UNESCAPE, "http://www.winehq.org/tests/foo bar", FALSE}, - {"http://www.winehq.org", 0, "http://www.winehq.org/", FALSE}, - {"http:///www.winehq.org", 0, "http:///www.winehq.org", FALSE}, - {"http:////www.winehq.org", 0, "http:////www.winehq.org", FALSE}, - {"file:///c:/tests/foo%20bar", URL_UNESCAPE, "file:///c:/tests/foo bar", FALSE}, - {"file:///c:/tests\foo%20bar", URL_UNESCAPE, "file:///c:/tests/foo bar", FALSE}, - {"file:///c:/tests/foo%20bar", 0, "file:///c:/tests/foo%20bar", FALSE}, - {"file:///c:/tests/foo%20bar", URL_FILE_USE_PATHURL, "file://c:\tests\foo bar", FALSE}, - {"file://localhost/c:/tests/../tests/foo%20bar", URL_FILE_USE_PATHURL, "file://c:\tests\foo bar", FALSE}, - {"file://localhost\c:/tests/../tests/foo%20bar", URL_FILE_USE_PATHURL, "file://c:\tests\foo bar", FALSE}, - {"file://localhost\\c:/tests/../tests/foo%20bar", URL_FILE_USE_PATHURL, "file://c:\tests\foo bar", FALSE}, - {"file://localhost\c:\tests/../tests/foo%20bar", URL_FILE_USE_PATHURL, "file://c:\tests\foo bar", FALSE}, - {"file://c:/tests/../tests/foo%20bar", URL_FILE_USE_PATHURL, "file://c:\tests\foo bar", FALSE}, - {"file://c:/tests\../tests/foo%20bar", URL_FILE_USE_PATHURL, "file://c:\tests\foo bar", FALSE}, - {"file://c:/tests/foo%20bar", URL_FILE_USE_PATHURL, "file://c:\tests\foo bar", FALSE}, - {"file:///c://tests/foo%20bar", URL_FILE_USE_PATHURL, "file://c:\\tests\foo bar", FALSE}, - {"file:///c:\tests\foo bar", 0, "file:///c:/tests/foo bar", FALSE}, - {"file:///c:\tests\foo bar", URL_DONT_SIMPLIFY, "file:///c:/tests/foo bar", FALSE}, - {"file:///c:\tests\foobar", 0, "file:///c:/tests/foobar", FALSE}, - {"file:///c:\tests\foobar", URL_WININET_COMPATIBILITY, "file://c:\tests\foobar", FALSE}, - {"file://home/user/file", 0, "file://home/user/file", FALSE}, - {"file:///home/user/file", 0, "file:///home/user/file", FALSE}, - {"file:////home/user/file", 0, "file://home/user/file", FALSE}, - {"file://home/user/file", URL_WININET_COMPATIBILITY, "file://\\home\user\file", FALSE}, - {"file:///home/user/file", URL_WININET_COMPATIBILITY, "file://\home\user\file", FALSE}, - {"file:////home/user/file", URL_WININET_COMPATIBILITY, "file://\\home\user\file", FALSE}, - {"file://///home/user/file", URL_WININET_COMPATIBILITY, "file://\\home\user\file", FALSE}, - {"file://C:/user/file", 0, "file:///C:/user/file", FALSE}, - {"file://C:/user/file/../asdf", 0, "file:///C:/user/asdf", FALSE}, - {"file:///C:/user/file", 0, "file:///C:/user/file", FALSE}, - {"file:////C:/user/file", 0, "file:///C:/user/file", FALSE}, - {"file://C:/user/file", URL_WININET_COMPATIBILITY, "file://C:\user\file", FALSE}, - {"file:///C:/user/file", URL_WININET_COMPATIBILITY, "file://C:\user\file", FALSE}, - {"file:////C:/user/file", URL_WININET_COMPATIBILITY, "file://C:\user\file", FALSE}, - {"http:///www.winehq.org", 0, "http:///www.winehq.org", FALSE}, - {"http:///www.winehq.org", URL_WININET_COMPATIBILITY, "http:///www.winehq.org", FALSE}, - {"http://www.winehq.org/site/about", URL_FILE_USE_PATHURL, "http://www.winehq.org/site/about", FALSE}, - {"file_://www.winehq.org/site/about", URL_FILE_USE_PATHURL, "file_://www.winehq.org/site/about", FALSE}, - {"c:\dir\file", 0, "file:///c:/dir/file", FALSE}, - {"file:///c:\dir\file", 0, "file:///c:/dir/file", FALSE}, - {"c:dir\file", 0, "file:///c:dir/file", FALSE}, - {"c:\tests\foo bar", URL_FILE_USE_PATHURL, "file://c:\tests\foo bar", FALSE}, - {"c:\tests\foo bar", 0, "file:///c:/tests/foo%20bar", FALSE}, - {"c\t:\t\te\tsts\fo\to \tbar\t", 0, "file:///c:/tests/foo%20bar", FALSE}, - {"res://file", 0, "res://file/", FALSE}, - {"res://file", URL_FILE_USE_PATHURL, "res://file/", FALSE}, - {"res:///c:/tests/foo%20bar", URL_UNESCAPE, "res:///c:/tests/foo bar", FALSE}, - {"res:///c:/tests\foo%20bar", URL_UNESCAPE, "res:///c:/tests\foo bar", FALSE}, - {"res:///c:/tests/foo%20bar", 0, "res:///c:/tests/foo%20bar", FALSE}, - {"res:///c:/tests/foo%20bar", URL_FILE_USE_PATHURL, "res:///c:/tests/foo%20bar", FALSE}, - {"res://c:/tests/../tests/foo%20bar", URL_FILE_USE_PATHURL, "res://c:/tests/foo%20bar", FALSE}, - {"res://c:/tests\../tests/foo%20bar", URL_FILE_USE_PATHURL, "res://c:/tests/foo%20bar", FALSE}, - {"res://c:/tests/foo%20bar", URL_FILE_USE_PATHURL, "res://c:/tests/foo%20bar", FALSE}, - {"res:///c://tests/foo%20bar", URL_FILE_USE_PATHURL, "res:///c://tests/foo%20bar", FALSE}, - {"res:///c:\tests\foo bar", 0, "res:///c:\tests\foo bar", FALSE}, - {"res:///c:\tests\foo bar", URL_DONT_SIMPLIFY, "res:///c:\tests\foo bar", FALSE}, - {"res://c:\tests\foo bar/res", URL_FILE_USE_PATHURL, "res://c:\tests\foo bar/res", FALSE}, - {"res://c:\tests/res\foo%20bar/strange\sth", 0, "res://c:\tests/res\foo%20bar/strange\sth", FALSE}, - {"res://c:\tests/res\foo%20bar/strange\sth", URL_FILE_USE_PATHURL, "res://c:\tests/res\foo%20bar/strange\sth", FALSE}, - {"res://c:\tests/res\foo%20bar/strange\sth", URL_UNESCAPE, "res://c:\tests/res\foo bar/strange\sth", FALSE}, - {"/A/../B/./C/../../test_remove_dot_segments", 0, "/test_remove_dot_segments", FALSE}, - {"/A/../B/./C/../../test_remove_dot_segments", URL_FILE_USE_PATHURL, "/test_remove_dot_segments", FALSE}, - {"/A/../B/./C/../../test_remove_dot_segments", URL_WININET_COMPATIBILITY, "/test_remove_dot_segments", FALSE}, - {"/A/B\C/D\E", 0, "/A/B\C/D\E", FALSE}, - {"/A/B\C/D\E", URL_FILE_USE_PATHURL, "/A/B\C/D\E", FALSE}, - {"/A/B\C/D\E", URL_WININET_COMPATIBILITY, "/A/B\C/D\E", FALSE}, - {"///A/../B", 0, "///B", FALSE}, - {"///A/../B", URL_FILE_USE_PATHURL, "///B", FALSE}, - {"///A/../B", URL_WININET_COMPATIBILITY, "///B", FALSE}, - {"A", 0, "A", FALSE}, - {"../A", 0, "../A", FALSE}, - {"A/../B", 0, "B", TRUE}, - {"/uri-res/N2R?urn:sha1:B3K", URL_DONT_ESCAPE_EXTRA_INFO | URL_WININET_COMPATIBILITY /*0x82000000*/, "/uri-res/N2R?urn:sha1:B3K", FALSE} /*LimeWire online installer calls this*/, - {"http:www.winehq.org/dir/../index.html", 0, "http:www.winehq.org/index.html"}, - {"http://localhost/test.html", URL_FILE_USE_PATHURL, "http://localhost/test.html%22%7D, - {"http://localhost/te%20st.html", URL_FILE_USE_PATHURL, "http://localhost/te%20st.html%22%7D, - {"http://www.winehq.org/%E6%A1%9C.html", URL_FILE_USE_PATHURL, "http://www.winehq.org/%E6%A1%9C.html%22%7D, - {"mk:@MSITStore:C:\Program Files/AutoCAD 2008\Help/acad_acg.chm::/WSfacf1429558a55de1a7524c1004e616f8b-322b.htm", 0, "mk:@MSITStore:C:\Program Files/AutoCAD 2008\Help/acad_acg.chm::/WSfacf1429558a55de1a7524c1004e616f8b-322b.htm"}, - {"ftp:@MSITStore:C:\Program Files/AutoCAD 2008\Help/acad_acg.chm::/WSfacf1429558a55de1a7524c1004e616f8b-322b.htm", 0, "ftp:@MSITStore:C:\Program Files/AutoCAD 2008\Help/acad_acg.chm::/WSfacf1429558a55de1a7524c1004e616f8b-322b.htm"}, - {"file:@MSITStore:C:\Program Files/AutoCAD 2008\Help/acad_acg.chm::/WSfacf1429558a55de1a7524c1004e616f8b-322b.htm", 0, "file:@MSITStore:C:/Program Files/AutoCAD 2008/Help/acad_acg.chm::/WSfacf1429558a55de1a7524c1004e616f8b-322b.htm"}, - {"http:@MSITStore:C:\Program Files/AutoCAD 2008\Help/acad_acg.chm::/WSfacf1429558a55de1a7524c1004e616f8b-322b.htm", 0, "http:@MSITStore:C:/Program Files/AutoCAD 2008/Help/acad_acg.chm::/WSfacf1429558a55de1a7524c1004e616f8b-322b.htm"}, - {"http:@MSITStore:C:\Program Files/AutoCAD 2008\Help/acad_acg.chm::/WSfacf1429558a55de1a7524c1004e616f8b-322b.htm", URL_FILE_USE_PATHURL, "http:@MSITStore:C:/Program Files/AutoCAD 2008/Help/acad_acg.chm::/WSfacf1429558a55de1a7524c1004e616f8b-322b.htm"}, - {"mk:@MSITStore:C:\Program Files/AutoCAD 2008\Help/acad_acg.chm::/WSfacf1429558a55de1a7524c1004e616f8b-322b.htm", URL_FILE_USE_PATHURL, "mk:@MSITStore:C:\Program Files/AutoCAD 2008\Help/acad_acg.chm::/WSfacf1429558a55de1a7524c1004e616f8b-322b.htm"}, -}; - -/* ################ */ - typedef struct _TEST_URL_ESCAPE { const char *url; DWORD flags; @@ -1084,6 +963,124 @@ static void test_UrlCanonicalizeA(void) DWORD urllen; HRESULT hr;
+ static const struct + { + const char *url; + DWORD flags; + const char *expect; + BOOL todo; + } + tests[] = + { + {"", 0, ""}, + {"http://www.winehq.org/tests/../tests/../..", 0, "http://www.winehq.org/", TRUE}, + {"http://www.winehq.org/..", 0, "http://www.winehq.org/..%22%7D, + {"http://www.winehq.org/tests/tests2/../../tests", 0, "http://www.winehq.org/tests%22%7D, + {"http://www.winehq.org/tests/../tests", 0, "http://www.winehq.org/tests%22%7D, + {"http://www.winehq.org/tests%5Cn", URL_WININET_COMPATIBILITY|URL_ESCAPE_SPACES_ONLY|URL_ESCAPE_UNSAFE, "http://www.winehq.org/tests%22%7D, + {"http://www.winehq.org/tests%5Cr", URL_WININET_COMPATIBILITY|URL_ESCAPE_SPACES_ONLY|URL_ESCAPE_UNSAFE, "http://www.winehq.org/tests%22%7D, + {"http://www.winehq.org/tests%5Cr", 0, "http://www.winehq.org/tests%22%7D, + {"http://www.winehq.org/tests%5Cr", URL_DONT_SIMPLIFY, "http://www.winehq.org/tests%22%7D, + {"http://www.winehq.org/tests/../tests/", 0, "http://www.winehq.org/tests/%22%7D, + {"http://www.winehq.org/tests/../tests/..", 0, "http://www.winehq.org/%22%7D, + {"http://www.winehq.org/tests/../tests/../", 0, "http://www.winehq.org/%22%7D, + {"http://www.winehq.org/tests/..", 0, "http://www.winehq.org/%22%7D, + {"http://www.winehq.org/tests/../", 0, "http://www.winehq.org/%22%7D, + {"http://www.winehq.org/tests/..?query=x&return=y", 0, "http://www.winehq.org/?query=x&return=y%22%7D, + {"http://www.winehq.org/tests/../?query=x&return=y", 0, "http://www.winehq.org/?query=x&return=y%22%7D, + {"\tht\ttp\t://www\t.w\tineh\t\tq.or\tg\t/\ttests/..\t?\tquer\ty=x\t\t&re\tturn=y\t\t", 0, "http://www.winehq.org/?query=x&return=y%22%7D, + {"http://www.winehq.org/tests/..#example", 0, "http://www.winehq.org/#example%22%7D, + {"http://www.winehq.org/tests/../#example", 0, "http://www.winehq.org/#example%22%7D, + {"http://www.winehq.org/tests%5C%5C../#example", 0, "http://www.winehq.org/#example%22%7D, + {"http://www.winehq.org/tests/..%5C%5C#example", 0, "http://www.winehq.org/#example%22%7D, + {"http://www.winehq.org%5C%5Ctests/../#example", 0, "http://www.winehq.org/#example%22%7D, + {"http://www.winehq.org/tests/../#example", URL_DONT_SIMPLIFY, "http://www.winehq.org/tests/../#example%22%7D, + {"http://www.winehq.org/tests/foo bar", URL_ESCAPE_SPACES_ONLY | URL_DONT_ESCAPE_EXTRA_INFO, "http://www.winehq.org/tests/foo%20bar%22%7D, + {"http://www.winehq.org/tests/foo%20bar", URL_UNESCAPE, "http://www.winehq.org/tests/foo bar"}, + {"http://www.winehq.org", 0, "http://www.winehq.org/%22%7D, + {"http:///www.winehq.org", 0, "http:///www.winehq.org%22%7D, + {"http:////www.winehq.org", 0, "http:////www.winehq.org%22%7D, + {"file:///c:/tests/foo%20bar", URL_UNESCAPE, "file:///c:/tests/foo bar"}, + {"file:///c:/tests\foo%20bar", URL_UNESCAPE, "file:///c:/tests/foo bar"}, + {"file:///c:/tests/foo%20bar", 0, "file:///c:/tests/foo%20bar"}, + {"file:///c:/tests/foo%20bar", URL_FILE_USE_PATHURL, "file://c:\tests\foo bar"}, + {"file://localhost/c:/tests/../tests/foo%20bar", URL_FILE_USE_PATHURL, "file://c:\tests\foo bar"}, + {"file://localhost\c:/tests/../tests/foo%20bar", URL_FILE_USE_PATHURL, "file://c:\tests\foo bar"}, + {"file://localhost\\c:/tests/../tests/foo%20bar", URL_FILE_USE_PATHURL, "file://c:\tests\foo bar"}, + {"file://localhost\c:\tests/../tests/foo%20bar", URL_FILE_USE_PATHURL, "file://c:\tests\foo bar"}, + {"file://c:/tests/../tests/foo%20bar", URL_FILE_USE_PATHURL, "file://c:\tests\foo bar"}, + {"file://c:/tests\../tests/foo%20bar", URL_FILE_USE_PATHURL, "file://c:\tests\foo bar"}, + {"file://c:/tests/foo%20bar", URL_FILE_USE_PATHURL, "file://c:\tests\foo bar"}, + {"file:///c://tests/foo%20bar", URL_FILE_USE_PATHURL, "file://c:\\tests\foo bar"}, + {"file:///c:\tests\foo bar", 0, "file:///c:/tests/foo bar"}, + {"file:///c:\tests\foo bar", URL_DONT_SIMPLIFY, "file:///c:/tests/foo bar"}, + {"file:///c:\tests\foobar", 0, "file:///c:/tests/foobar"}, + {"file:///c:\tests\foobar", URL_WININET_COMPATIBILITY, "file://c:\tests\foobar"}, + {"file://home/user/file", 0, "file://home/user/file"}, + {"file:///home/user/file", 0, "file:///home/user/file"}, + {"file:////home/user/file", 0, "file://home/user/file"}, + {"file://home/user/file", URL_WININET_COMPATIBILITY, "file://\\home\user\file"}, + {"file:///home/user/file", URL_WININET_COMPATIBILITY, "file://\home\user\file"}, + {"file:////home/user/file", URL_WININET_COMPATIBILITY, "file://\\home\user\file"}, + {"file://///home/user/file", URL_WININET_COMPATIBILITY, "file://\\home\user\file"}, + {"file://C:/user/file", 0, "file:///C:/user/file"}, + {"file://C:/user/file/../asdf", 0, "file:///C:/user/asdf"}, + {"file:///C:/user/file", 0, "file:///C:/user/file"}, + {"file:////C:/user/file", 0, "file:///C:/user/file"}, + {"file://C:/user/file", URL_WININET_COMPATIBILITY, "file://C:\user\file"}, + {"file:///C:/user/file", URL_WININET_COMPATIBILITY, "file://C:\user\file"}, + {"file:////C:/user/file", URL_WININET_COMPATIBILITY, "file://C:\user\file"}, + {"http:///www.winehq.org", 0, "http:///www.winehq.org%22%7D, + {"http:///www.winehq.org", URL_WININET_COMPATIBILITY, "http:///www.winehq.org%22%7D, + {"http://www.winehq.org/site/about", URL_FILE_USE_PATHURL, "http://www.winehq.org/site/about%22%7D, + {"file_://www.winehq.org/site/about", URL_FILE_USE_PATHURL, "file_://www.winehq.org/site/about"}, + {"c:\dir\file", 0, "file:///c:/dir/file"}, + {"file:///c:\dir\file", 0, "file:///c:/dir/file"}, + {"c:dir\file", 0, "file:///c:dir/file"}, + {"c:\tests\foo bar", URL_FILE_USE_PATHURL, "file://c:\tests\foo bar"}, + {"c:\tests\foo bar", 0, "file:///c:/tests/foo%20bar"}, + {"c\t:\t\te\tsts\fo\to \tbar\t", 0, "file:///c:/tests/foo%20bar"}, + {"res://file", 0, "res://file/"}, + {"res://file", URL_FILE_USE_PATHURL, "res://file/"}, + {"res:///c:/tests/foo%20bar", URL_UNESCAPE, "res:///c:/tests/foo bar"}, + {"res:///c:/tests\foo%20bar", URL_UNESCAPE, "res:///c:/tests\foo bar"}, + {"res:///c:/tests/foo%20bar", 0, "res:///c:/tests/foo%20bar"}, + {"res:///c:/tests/foo%20bar", URL_FILE_USE_PATHURL, "res:///c:/tests/foo%20bar"}, + {"res://c:/tests/../tests/foo%20bar", URL_FILE_USE_PATHURL, "res://c:/tests/foo%20bar"}, + {"res://c:/tests\../tests/foo%20bar", URL_FILE_USE_PATHURL, "res://c:/tests/foo%20bar"}, + {"res://c:/tests/foo%20bar", URL_FILE_USE_PATHURL, "res://c:/tests/foo%20bar"}, + {"res:///c://tests/foo%20bar", URL_FILE_USE_PATHURL, "res:///c://tests/foo%20bar"}, + {"res:///c:\tests\foo bar", 0, "res:///c:\tests\foo bar"}, + {"res:///c:\tests\foo bar", URL_DONT_SIMPLIFY, "res:///c:\tests\foo bar"}, + {"res://c:\tests\foo bar/res", URL_FILE_USE_PATHURL, "res://c:\tests\foo bar/res"}, + {"res://c:\tests/res\foo%20bar/strange\sth", 0, "res://c:\tests/res\foo%20bar/strange\sth"}, + {"res://c:\tests/res\foo%20bar/strange\sth", URL_FILE_USE_PATHURL, "res://c:\tests/res\foo%20bar/strange\sth"}, + {"res://c:\tests/res\foo%20bar/strange\sth", URL_UNESCAPE, "res://c:\tests/res\foo bar/strange\sth"}, + {"/A/../B/./C/../../test_remove_dot_segments", 0, "/test_remove_dot_segments"}, + {"/A/../B/./C/../../test_remove_dot_segments", URL_FILE_USE_PATHURL, "/test_remove_dot_segments"}, + {"/A/../B/./C/../../test_remove_dot_segments", URL_WININET_COMPATIBILITY, "/test_remove_dot_segments"}, + {"/A/B\C/D\E", 0, "/A/B\C/D\E"}, + {"/A/B\C/D\E", URL_FILE_USE_PATHURL, "/A/B\C/D\E"}, + {"/A/B\C/D\E", URL_WININET_COMPATIBILITY, "/A/B\C/D\E"}, + {"///A/../B", 0, "///B"}, + {"///A/../B", URL_FILE_USE_PATHURL, "///B"}, + {"///A/../B", URL_WININET_COMPATIBILITY, "///B"}, + {"A", 0, "A"}, + {"../A", 0, "../A"}, + {"A/../B", 0, "B", TRUE}, + {"/uri-res/N2R?urn:sha1:B3K", URL_DONT_ESCAPE_EXTRA_INFO | URL_WININET_COMPATIBILITY /*0x82000000*/, "/uri-res/N2R?urn:sha1:B3K"} /*LimeWire online installer calls this*/, + {"http:www.winehq.org/dir/../index.html", 0, "http:www.winehq.org/index.html"}, + {"http://localhost/test.html", URL_FILE_USE_PATHURL, "http://localhost/test.html%22%7D, + {"http://localhost/te%20st.html", URL_FILE_USE_PATHURL, "http://localhost/te%20st.html%22%7D, + {"http://www.winehq.org/%E6%A1%9C.html", URL_FILE_USE_PATHURL, "http://www.winehq.org/%E6%A1%9C.html%22%7D, + {"mk:@MSITStore:C:\Program Files/AutoCAD 2008\Help/acad_acg.chm::/WSfacf1429558a55de1a7524c1004e616f8b-322b.htm", 0, "mk:@MSITStore:C:\Program Files/AutoCAD 2008\Help/acad_acg.chm::/WSfacf1429558a55de1a7524c1004e616f8b-322b.htm"}, + {"ftp:@MSITStore:C:\Program Files/AutoCAD 2008\Help/acad_acg.chm::/WSfacf1429558a55de1a7524c1004e616f8b-322b.htm", 0, "ftp:@MSITStore:C:\Program Files/AutoCAD 2008\Help/acad_acg.chm::/WSfacf1429558a55de1a7524c1004e616f8b-322b.htm"}, + {"file:@MSITStore:C:\Program Files/AutoCAD 2008\Help/acad_acg.chm::/WSfacf1429558a55de1a7524c1004e616f8b-322b.htm", 0, "file:@MSITStore:C:/Program Files/AutoCAD 2008/Help/acad_acg.chm::/WSfacf1429558a55de1a7524c1004e616f8b-322b.htm"}, + {"http:@MSITStore:C:\Program Files/AutoCAD 2008\Help/acad_acg.chm::/WSfacf1429558a55de1a7524c1004e616f8b-322b.htm", 0, "http:@MSITStore:C:/Program Files/AutoCAD 2008/Help/acad_acg.chm::/WSfacf1429558a55de1a7524c1004e616f8b-322b.htm"}, + {"http:@MSITStore:C:\Program Files/AutoCAD 2008\Help/acad_acg.chm::/WSfacf1429558a55de1a7524c1004e616f8b-322b.htm", URL_FILE_USE_PATHURL, "http:@MSITStore:C:/Program Files/AutoCAD 2008/Help/acad_acg.chm::/WSfacf1429558a55de1a7524c1004e616f8b-322b.htm"}, + {"mk:@MSITStore:C:\Program Files/AutoCAD 2008\Help/acad_acg.chm::/WSfacf1429558a55de1a7524c1004e616f8b-322b.htm", URL_FILE_USE_PATHURL, "mk:@MSITStore:C:\Program Files/AutoCAD 2008\Help/acad_acg.chm::/WSfacf1429558a55de1a7524c1004e616f8b-322b.htm"}, + }; + urllen = lstrlenA(winehqA);
/* Parameter checks */ @@ -1161,10 +1158,8 @@ static void test_UrlCanonicalizeA(void) ok(hr == S_OK, "hr = %lx\n", hr);
/* test url-modification */ - for (i = 0; i < ARRAY_SIZE(TEST_CANONICALIZE); i++) { - check_url_canonicalize(i, TEST_CANONICALIZE[i].url, TEST_CANONICALIZE[i].flags, - TEST_CANONICALIZE[i].expecturl, TEST_CANONICALIZE[i].todo); - } + for (i = 0; i < ARRAY_SIZE(tests); i++) + check_url_canonicalize(i, tests[i].url, tests[i].flags, tests[i].expect, tests[i].todo); }
/* ########################### */