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@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)