Mike McCormack : wininet: Fix up and test InternetSetCookie parameter checking.

Alexandre Julliard julliard at wine.codeweavers.com
Fri Jun 2 14:11:54 CDT 2006


Module: wine
Branch: refs/heads/master
Commit: 68d18612a05482f82bd86ff9a0399b2e47f9e3df
URL:    http://source.winehq.org/git/?p=wine.git;a=commit;h=68d18612a05482f82bd86ff9a0399b2e47f9e3df

Author: Mike McCormack <mike at 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)




More information about the wine-cvs mailing list