Mike McCormack : wininet: Fix up and test InternetSetCookie parameter checking.
Module: wine Branch: refs/heads/master Commit: 68d18612a05482f82bd86ff9a0399b2e47f9e3df URL: http://source.winehq.org/git/?p=wine.git;a=commit;h=68d18612a05482f82bd86ff9... Author: Mike McCormack <mike(a)codeweavers.com> Date: Fri Jun 2 19:49:09 2006 +0900 wininet: Fix up and test InternetSetCookie parameter checking. --- dlls/wininet/cookie.c | 4 ++-- dlls/wininet/tests/internet.c | 32 ++++++++++++++++++++++++++++++++ 2 files changed, 34 insertions(+), 2 deletions(-) diff --git a/dlls/wininet/cookie.c b/dlls/wininet/cookie.c index b34fd3f..fe32c0b 100644 --- a/dlls/wininet/cookie.c +++ b/dlls/wininet/cookie.c @@ -402,9 +402,9 @@ BOOL WINAPI InternetSetCookieW(LPCWSTR l TRACE("(%s,%s,%s)\n", debugstr_w(lpszUrl), debugstr_w(lpszCookieName), debugstr_w(lpCookieData)); - if (!lpCookieData || !strlenW(lpCookieData)) + if (!lpCookieData) { - TRACE("no cookie data, not adding\n"); + SetLastError(ERROR_INVALID_PARAMETER); return FALSE; } if (!lpszCookieName) diff --git a/dlls/wininet/tests/internet.c b/dlls/wininet/tests/internet.c index 5f48097..2f0f8b7 100644 --- a/dlls/wininet/tests/internet.c +++ b/dlls/wininet/tests/internet.c @@ -123,6 +123,9 @@ static void test_null(void) { HINTERNET hi, hc; static const WCHAR szServer[] = { 's','e','r','v','e','r',0 }; + static const WCHAR szEmpty[] = { 0 }; + static const WCHAR szUrl[] = { 'h','t','t','p',':','/','/','a','.','b','.','c',0 }; + BOOL r; hi = InternetOpenW(NULL, 0, NULL, NULL, 0); ok(hi != NULL, "open failed\n"); @@ -152,6 +155,35 @@ static void test_null(void) ok(hc == NULL, "connect failed\n"); InternetCloseHandle(hi); + + r = InternetSetCookieW(NULL, NULL, NULL); + ok(GetLastError() == ERROR_INVALID_PARAMETER, "wrong error\n"); + ok(r == FALSE, "return wrong\n"); + + r = InternetSetCookieW(szServer, NULL, NULL); + ok(GetLastError() == ERROR_INVALID_PARAMETER, "wrong error\n"); + ok(r == FALSE, "return wrong\n"); + + r = InternetSetCookieW(szUrl, szServer, NULL); + ok(GetLastError() == ERROR_INVALID_PARAMETER, "wrong error\n"); + ok(r == FALSE, "return wrong\n"); + + r = InternetSetCookieW(szUrl, szServer, szServer); + ok(r == TRUE, "return wrong\n"); + + todo_wine { + r = InternetSetCookieW(szUrl, NULL, szServer); + ok(r == TRUE, "return wrong\n"); + } + + r = InternetSetCookieW(szUrl, szServer, szEmpty); + ok(r == TRUE, "return wrong\n"); + + r = InternetSetCookieW(szServer, NULL, szServer); + todo_wine { + ok(GetLastError() == ERROR_INTERNET_UNRECOGNIZED_SCHEME, "wrong error\n"); + } + ok(r == FALSE, "return wrong\n"); } START_TEST(internet)
participants (1)
-
Alexandre Julliard