Module: wine Branch: refs/heads/master Commit: a1544731dbaf30c473be2ae254f2f24e3138babf URL: http://source.winehq.org/git/?p=wine.git;a=commit;h=a1544731dbaf30c473be2ae2...
Author: James Hawkins truiken@gmail.com Date: Fri Jul 14 16:45:46 2006 -0700
wininet: Add more tests for InternetCrackurl.
---
dlls/wininet/internet.c | 7 +++++++ dlls/wininet/tests/url.c | 18 ++++++++++++++++++ 2 files changed, 25 insertions(+), 0 deletions(-)
diff --git a/dlls/wininet/internet.c b/dlls/wininet/internet.c index 332e4f7..ebe209d 100644 --- a/dlls/wininet/internet.c +++ b/dlls/wininet/internet.c @@ -1323,6 +1323,13 @@ BOOL WINAPI InternetCrackUrlW(LPCWSTR lp dwUrlLength=strlenW(lpszUrl);
TRACE("(%s %lu %lx %p)\n", debugstr_w(lpszUrl), dwUrlLength, dwFlags, lpUC); + + if (!lpszUrl_orig || !*lpszUrl_orig) + { + SetLastError(ERROR_INVALID_PARAMETER); + return FALSE; + } + if (dwFlags & ICU_DECODE) { lpszUrl_decode=HeapAlloc( GetProcessHeap(), 0, dwUrlLength * sizeof (WCHAR) ); diff --git a/dlls/wininet/tests/url.c b/dlls/wininet/tests/url.c index 56e38f1..ea09631 100644 --- a/dlls/wininet/tests/url.c +++ b/dlls/wininet/tests/url.c @@ -208,6 +208,24 @@ static void InternetCrackUrl_test(void) ok(!strcmp(urlComponents.lpszScheme, "about"), "lpszScheme was "%s" instead of "about"\n", urlComponents.lpszScheme); ok(!strcmp(urlComponents.lpszHostName, "host"), "lpszHostName was "%s" instead of "host"\n", urlComponents.lpszHostName); ok(!strcmp(urlComponents.lpszUrlPath, "/blank"), "lpszUrlPath was "%s" instead of "/blank"\n", urlComponents.lpszUrlPath); + + /* try a NULL lpszUrl */ + SetLastError(0xdeadbeef); + copy_compsA(&urlSrc, &urlComponents, 32, 1024, 1024, 1024, 2048, 1024); + ret = InternetCrackUrl(NULL, 0, 0, &urlComponents); + GLE = GetLastError(); + ok(ret == FALSE, "Expected InternetCrackUrl to fail\n"); + ok(GLE == ERROR_INVALID_PARAMETER, "Expected ERROR_INVALID_PARAMETER, got %ld\n", GLE); + + /* try an empty lpszUrl, GetLastError returns 12006, whatever that means + * we just need to fail and not return success + */ + SetLastError(0xdeadbeef); + copy_compsA(&urlSrc, &urlComponents, 32, 1024, 1024, 1024, 2048, 1024); + ret = InternetCrackUrl("", 0, 0, &urlComponents); + GLE = GetLastError(); + ok(ret == FALSE, "Expected InternetCrackUrl to fail\n"); + ok(GLE != 0xdeadbeef && GLE != ERROR_SUCCESS, "Expected GLE to represent a failure\n"); }
static void InternetCrackUrlW_test(void)