From: Thomas Csovscity thc.fr13nd@gmail.com
Mark actually failing test, because of semi-stub function, as todo. This satisfies test bots. --- dlls/shlwapi/tests/url.c | 239 ++++++++++++++++++++------------------- 1 file changed, 122 insertions(+), 117 deletions(-)
diff --git a/dlls/shlwapi/tests/url.c b/dlls/shlwapi/tests/url.c index 20c246da076..1ee83cf58d9 100644 --- a/dlls/shlwapi/tests/url.c +++ b/dlls/shlwapi/tests/url.c @@ -1616,6 +1616,7 @@ static const struct parse_urlfixupw_test_t { PCWSTR pcszUrl; PCWSTR pszTranslatedUrl; HRESULT res; + BOOL todo; } parse_urlfixupw_tests[] = { {L"ftp:", L"ftp://", S_OK}, {L"http:", L"http://", S_OK}, @@ -1655,7 +1656,7 @@ static const struct parse_urlfixupw_test_t { {L"ahttp://", L"http://", S_OK}, {L"agopher://", L"gopher://", S_OK}, {L"amailto://", L"mailto://", S_OK}, - {L"anews://", L"snews://", S_OK}, + {L"anews://", L"snews://", S_OK, TRUE}, {L"anntp://", L"nntp://", S_OK}, {L"atelnet://", L"telnet://", S_OK}, {L"awais://", L"wais://", S_OK}, @@ -1674,43 +1675,43 @@ static const struct parse_urlfixupw_test_t { {L"ahcp://", L"hcp://", S_OK},
/* typos in front two letters */ - {L"bahttp://", L"about://", S_OK}, - {L"banews://", L"snews://", S_OK}, - {L"bavbscript://", L"javascript://", S_OK}, + {L"bahttp://", L"about://", S_OK, TRUE}, + {L"banews://", L"snews://", S_OK, TRUE}, + {L"bavbscript://", L"javascript://", S_OK, TRUE},
/* typos in front three letters */ - {L"cbavbscript://", L"javascript://", S_OK}, + {L"cbavbscript://", L"javascript://", S_OK, TRUE},
/* typos mixed up letters */ - {L"ftt://", L"ftp://", S_OK}, - {L"gophsr://", L"gopher://", S_OK}, - {L"gophs://", L"gopher://", S_OK}, - {L"gophss://", L"gopher://", S_OK}, - {L"gophsss://", L"gopher://", S_OK}, - {L"gophsss://", L"gopher://", S_OK}, - {L"mkilto://", L"mailto://", S_OK}, - {L"mkklto://", L"mailto://", S_OK}, - {L"mkikto://", L"mailto://", S_OK}, - {L"mkiktoo://", L"mailto://", S_OK}, - {L"ma://", L"mk://", S_OK}, - {L"hftp:", L"http://", S_OK}, + {L"ftt://", L"ftp://", S_OK, TRUE}, + {L"gophsr://", L"gopher://", S_OK, TRUE}, + {L"gophs://", L"gopher://", S_OK, TRUE}, + {L"gophss://", L"gopher://", S_OK, TRUE}, + {L"gophsss://", L"gopher://", S_OK, TRUE}, + {L"gophsss://", L"gopher://", S_OK, TRUE}, + {L"mkilto://", L"mailto://", S_OK, TRUE}, + {L"mkklto://", L"mailto://", S_OK, TRUE}, + {L"mkikto://", L"mailto://", S_OK, TRUE}, + {L"mkiktoo://", L"mailto://", S_OK, TRUE}, + {L"ma://", L"mk://", S_OK, TRUE}, + {L"hftp:", L"http://", S_OK, TRUE},
/* typos missed letters */ - {L"ft:", L"ftp://", S_OK}, - {L"ft://", L"ftp://", S_OK}, - {L"htt://", L"http://", S_OK}, - {L"gophe://", L"gopher://", S_OK}, - {L"goph://", L"gopher://", S_OK}, - {L"mailt://", L"mailto://", S_OK}, - {L"mail://", L"mailto://", S_OK}, - - {L"new://", L"news://", S_OK}, - {L"ne://", L"news://", S_OK}, + {L"ft:", L"ftp://", S_OK, TRUE}, + {L"ft://", L"ftp://", S_OK, TRUE}, + {L"htt://", L"http://", S_OK, TRUE}, + {L"gophe://", L"gopher://", S_OK, TRUE}, + {L"goph://", L"gopher://", S_OK, TRUE}, + {L"mailt://", L"mailto://", S_OK, TRUE}, + {L"mail://", L"mailto://", S_OK, TRUE}, + + {L"new://", L"news://", S_OK, TRUE}, + {L"ne://", L"news://", S_OK, TRUE}, {L"snews://", L"snews://", S_OK}, - {L"newss://", L"snews://", S_OK}, - {L"newsss://", L"snews://", S_OK}, - {L"newssss://", L"snews://", S_OK}, - {L"newsssss://", L"snews://", S_OK}, + {L"newss://", L"snews://", S_OK, TRUE}, + {L"newsss://", L"snews://", S_OK, TRUE}, + {L"newssss://", L"snews://", S_OK, TRUE}, + {L"newsssss://", L"snews://", S_OK, TRUE},
/* typos letters behind*/ {L"mks://", L"mk://", S_OK}, @@ -1720,56 +1721,56 @@ static const struct parse_urlfixupw_test_t { {L"mailtooooo://", L"mailto://", S_OK},
/* typos fixing two letters */ - {L"cc:", L"hcp:", S_OK}, - {L"ee:", L"res:", S_OK}, - {L"ff:", L"ftp://", S_OK}, - {L"hh:", L"hcp:", S_OK}, - {L"kk:", L"mk:", S_OK}, - {L"mm:", L"mk:", S_OK}, - {L"nn:", L"nntp:", S_OK}, - {L"rr:", L"res:", S_OK}, - {L"tt:", L"ftp://", S_OK}, + {L"cc:", L"hcp:", S_OK, TRUE}, + {L"ee:", L"res:", S_OK, TRUE}, + {L"ff:", L"ftp://", S_OK, TRUE}, + {L"hh:", L"hcp:", S_OK, TRUE}, + {L"kk:", L"mk:", S_OK, TRUE}, + {L"mm:", L"mk:", S_OK, TRUE}, + {L"nn:", L"nntp:", S_OK, TRUE}, + {L"rr:", L"res:", S_OK, TRUE}, + {L"tt:", L"ftp://", S_OK, TRUE},
/* reporting false */ - {L"baftp://", NULL, S_FALSE}, - {L"bagopher://", NULL, S_FALSE}, - {L"bamailto://", NULL, S_FALSE}, - {L"banntp://", NULL, S_FALSE}, - {L"batelnet://", NULL, S_FALSE}, - {L"bawais://", NULL, S_FALSE}, - {L"bafile://", NULL, S_FALSE}, - {L"bamk://", NULL, S_FALSE}, - {L"bahttps://", NULL, S_FALSE}, - {L"bashell://", NULL, S_FALSE}, - {L"basnews://", NULL, S_FALSE}, - {L"balocal://", NULL, S_FALSE}, - {L"bajavascript://", NULL, S_FALSE}, - {L"baabout://", NULL, S_FALSE}, - {L"bares://", NULL, S_FALSE}, - {L"bams-shell-rooted://", NULL, S_FALSE}, - {L"bams-shell-idlist://", NULL, S_FALSE}, - {L"bahcp://", NULL, S_FALSE}, - - {L"cbaftp://", NULL, S_FALSE}, - {L"cbahttp://", NULL, S_FALSE}, - {L"cbanews://", NULL, S_FALSE}, - {L"cbagopher://", NULL, S_FALSE}, - {L"cbamailto://", NULL, S_FALSE}, - {L"cbanntp://", NULL, S_FALSE}, - {L"cbatelnet://", NULL, S_FALSE}, - {L"cbawais://", NULL, S_FALSE}, - {L"cbafile://", NULL, S_FALSE}, - {L"cbamk://", NULL, S_FALSE}, - {L"cbahttps://", NULL, S_FALSE}, - {L"cbashell://", NULL, S_FALSE}, - {L"cbasnews://", NULL, S_FALSE}, - {L"cbalocal://", NULL, S_FALSE}, - {L"cbajavascript://", NULL, S_FALSE}, - {L"cbaabout://", NULL, S_FALSE}, - {L"cbares://", NULL, S_FALSE}, - {L"cbams-shell-rooted://", NULL, S_FALSE}, - {L"cbams-shell-idlist://", NULL, S_FALSE}, - {L"cbahcp://", NULL, S_FALSE}, + {L"baftp://", NULL, S_FALSE, TRUE}, + {L"bagopher://", NULL, S_FALSE, TRUE}, + {L"bamailto://", NULL, S_FALSE, TRUE}, + {L"banntp://", NULL, S_FALSE, TRUE}, + {L"batelnet://", NULL, S_FALSE, TRUE}, + {L"bawais://", NULL, S_FALSE, TRUE}, + {L"bafile://", NULL, S_FALSE, TRUE}, + {L"bamk://", NULL, S_FALSE, TRUE}, + {L"bahttps://", NULL, S_FALSE, TRUE}, + {L"bashell://", NULL, S_FALSE, TRUE}, + {L"basnews://", NULL, S_FALSE, TRUE}, + {L"balocal://", NULL, S_FALSE, TRUE}, + {L"bajavascript://", NULL, S_FALSE, TRUE}, + {L"baabout://", NULL, S_FALSE, TRUE}, + {L"bares://", NULL, S_FALSE, TRUE}, + {L"bams-shell-rooted://", NULL, S_FALSE, TRUE}, + {L"bams-shell-idlist://", NULL, S_FALSE, TRUE}, + {L"bahcp://", NULL, S_FALSE, TRUE}, + + {L"cbaftp://", NULL, S_FALSE, TRUE}, + {L"cbahttp://", NULL, S_FALSE, TRUE}, + {L"cbanews://", NULL, S_FALSE, TRUE}, + {L"cbagopher://", NULL, S_FALSE, TRUE}, + {L"cbamailto://", NULL, S_FALSE, TRUE}, + {L"cbanntp://", NULL, S_FALSE, TRUE}, + {L"cbatelnet://", NULL, S_FALSE, TRUE}, + {L"cbawais://", NULL, S_FALSE, TRUE}, + {L"cbafile://", NULL, S_FALSE, TRUE}, + {L"cbamk://", NULL, S_FALSE, TRUE}, + {L"cbahttps://", NULL, S_FALSE, TRUE}, + {L"cbashell://", NULL, S_FALSE, TRUE}, + {L"cbasnews://", NULL, S_FALSE, TRUE}, + {L"cbalocal://", NULL, S_FALSE, TRUE}, + {L"cbajavascript://", NULL, S_FALSE, TRUE}, + {L"cbaabout://", NULL, S_FALSE, TRUE}, + {L"cbares://", NULL, S_FALSE, TRUE}, + {L"cbams-shell-rooted://", NULL, S_FALSE, TRUE}, + {L"cbams-shell-idlist://", NULL, S_FALSE, TRUE}, + {L"cbahcp://", NULL, S_FALSE, TRUE},
/* without ":" never matched in winxp */ {L"a", NULL, S_FALSE}, @@ -1809,12 +1810,12 @@ static const struct parse_urlfixupw_test_t { {L"go://", NULL, S_FALSE}, {L"mai://", NULL, S_FALSE},
- {L"mkkkto://", NULL, S_FALSE}, - {L"mailtoooooo://", NULL, S_FALSE}, - {L"mailtooooop://", NULL, S_FALSE}, - {L"newssssss://", NULL, S_FALSE}, - {L"mkikkoo://", NULL, S_FALSE}, - {L"mksss://", NULL, S_FALSE}, + {L"mkkkto://", NULL, S_FALSE, TRUE}, + {L"mailtoooooo://", NULL, S_FALSE, TRUE}, + {L"mailtooooop://", NULL, S_FALSE, TRUE}, + {L"newssssss://", NULL, S_FALSE, TRUE}, + {L"mkikkoo://", NULL, S_FALSE, TRUE}, + {L"mksss://", NULL, S_FALSE, TRUE}, {L"ft", NULL, S_FALSE},
/* mixed tests */ @@ -1839,9 +1840,9 @@ static const struct parse_urlfixupw_test_t { /* taken from example in documentation */ {L"http://www.microsoft.com", L"http://www.microsoft.com", S_OK}, {L"http:www.microsoft.com", L"http://www.microsoft.com", S_OK}, - {L"mail:someone@example.com", L"mailto:someone@example.com", S_OK}, - {L"htpp:wwwmicrosoft.com", L"http://wwwmicrosoft.com", S_OK}, - {L"htps:\www.microsoft.com", L"http://www.microsoft.com", S_OK}, + {L"mail:someone@example.com", L"mailto:someone@example.com", S_OK, TRUE}, + {L"htpp:wwwmicrosoft.com", L"http://wwwmicrosoft.com", S_OK, TRUE}, + {L"htps:\www.microsoft.com", L"http://www.microsoft.com", S_OK, TRUE}, {L"http:someone@example.com", L"http://someone@example.com", S_OK}, {L"abc:def", NULL, S_FALSE}, {L"someone@example.com", NULL, S_FALSE}, @@ -1850,10 +1851,10 @@ static const struct parse_urlfixupw_test_t { {L"zfztzp:", NULL, S_FALSE}, {L"zfztp:", NULL, S_FALSE}, {L"zftzp:", NULL, S_FALSE}, - {L"zftpz:", NULL, S_FALSE}, + {L"zftpz:", NULL, S_FALSE, TRUE},
- {L"htztps:", L"http://", S_OK}, - {L"hzttps:", L"http://", S_OK}, + {L"htztps:", L"http://", S_OK, TRUE}, + {L"hzttps:", L"http://", S_OK, TRUE}, {L"htzztps:", NULL, S_FALSE}, {L"hzzzzzzzzzzzzzztp:", NULL, S_FALSE}, {L"hzzzzzzzzzzzzzztpz:", NULL, S_FALSE}, @@ -1861,23 +1862,23 @@ static const struct parse_urlfixupw_test_t { {L"zhzzzzzzzzzzzzzztpz:", NULL, S_FALSE}, {L"zzzzzzhzzzzzzzzzzzzzztzzzzzzpzzzzzz:", NULL, S_FALSE},
- {L"hfttp:", L"http://", S_OK}, - {L"hfttpz:", L"http://", S_OK}, - {L"zhftp:", NULL, S_FALSE}, - {L"hftftpz:", NULL, S_FALSE}, + {L"hfttp:", L"http://", S_OK, TRUE}, + {L"hfttpz:", L"http://", S_OK, TRUE}, + {L"zhftp:", NULL, S_FALSE, TRUE}, + {L"hftftpz:", NULL, S_FALSE, TRUE}, {L"hftddtpz:", NULL, S_FALSE}, {L"hftddtddpz:", NULL, S_FALSE},
- {L"hfftp:", L"http://", S_OK}, - {L"hftpz:", L"http://", S_OK}, - {L"hztpz:", L"http://", S_OK}, + {L"hfftp:", L"http://", S_OK, TRUE}, + {L"hftpz:", L"http://", S_OK, TRUE}, + {L"hztpz:", L"http://", S_OK, TRUE},
{L"httpz:", L"http://", S_OK}, {L"httpsz:", L"http://", S_OK}, {L"httpzz:", L"http://", S_OK}, {L"httpzzz:", L"http://", S_OK}, - {L"httpzzzz:", NULL, S_FALSE}, - {L"httpzzzzz:", NULL, S_FALSE}, + {L"httpzzzz:", NULL, S_FALSE, TRUE}, + {L"httpzzzzz:", NULL, S_FALSE, TRUE}, };
#define MAX_URL 256 @@ -1891,25 +1892,29 @@ static void test_UrlFixupW(void)
trace("test_UrlFixupW\n"); for (test = parse_urlfixupw_tests; test < parse_urlfixupw_tests + ARRAY_SIZE(parse_urlfixupw_tests); test++) { - pszTranslatedUrl[0] = 0; - hres = UrlFixupW(test->pcszUrl, TranslatedUrl,MAX_URL); - if (test->res == hres ) { - if (S_OK == hres) { - ok(_wcsicmp(TranslatedUrl, test->pszTranslatedUrl) == 0, "Expected %s got %s for %s\n", - wine_dbgstr_w(test->pszTranslatedUrl), wine_dbgstr_w(TranslatedUrl), wine_dbgstr_w(test->pcszUrl)); - } else if (S_FALSE == hres) { - ok(test->res == hres, "Expected %lu got %lu for %s\n", - test->res, hres, wine_dbgstr_w(test->pcszUrl)); + trace("test_UrlFixupW, flag %s\n", test->todo ? "todo" : "run"); + todo_wine_if (test->todo) + { + pszTranslatedUrl[0] = 0; + hres = UrlFixupW(test->pcszUrl, TranslatedUrl,MAX_URL); + if (test->res == hres ) { + if (S_OK == hres) { + ok(_wcsicmp(TranslatedUrl, test->pszTranslatedUrl) == 0,"Expected %s got %s for %s\n", + wine_dbgstr_w(test->pszTranslatedUrl), wine_dbgstr_w(TranslatedUrl), wine_dbgstr_w(test->pcszUrl)); + } else if (S_FALSE == hres) { + ok(test->res == hres, "Expected %lu got %lu for %s\n", + test->res, hres, wine_dbgstr_w(test->pcszUrl)); + } else { + printf("failed %S with %lu \n", test->pcszUrl, hres); + } + } else { + if (S_OK == hres) { + ok(test->res == hres, "Expected %lu got %lu for %s fixed: %s\n", + test->res, hres, wine_dbgstr_w(test->pcszUrl), wine_dbgstr_w(TranslatedUrl)); } else { - printf("failed %S with %lu \n", test->pcszUrl, hres); + ok(test->res == hres, "Expected %lu got %lu for %s\n", + test->res, hres, wine_dbgstr_w(test->pcszUrl)); } - } else { - if (S_OK == hres) { - ok(test->res == hres, "Expected %lu got %lu for %s fixed: %s\n", - test->res, hres, wine_dbgstr_w(test->pcszUrl), wine_dbgstr_w(TranslatedUrl)); - } else { - ok(test->res == hres, "Expected %lu got %lu for %s\n", - test->res, hres, wine_dbgstr_w(test->pcszUrl)); } } }