Mike McCormack : wininet: Simple tests for InternetGetCookie's parameters.

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


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

Author: Mike McCormack <mike at codeweavers.com>
Date:   Fri Jun  2 19:49:27 2006 +0900

wininet: Simple tests for InternetGetCookie's parameters.

---

 dlls/wininet/cookie.c         |    6 ++++++
 dlls/wininet/tests/internet.c |   30 ++++++++++++++++++++++++++++++
 2 files changed, 36 insertions(+), 0 deletions(-)

diff --git a/dlls/wininet/cookie.c b/dlls/wininet/cookie.c
index fe32c0b..53ee643 100644
--- a/dlls/wininet/cookie.c
+++ b/dlls/wininet/cookie.c
@@ -264,6 +264,12 @@ BOOL WINAPI InternetGetCookieW(LPCWSTR l
     TRACE("(%s, %s, %p, %p)\n", debugstr_w(lpszUrl),debugstr_w(lpszCookieName),
 	  lpCookieData, lpdwSize);
 
+    if (!lpszUrl)
+    {
+        SetLastError(ERROR_INTERNET_UNRECOGNIZED_SCHEME);
+        return FALSE;
+    }
+
     COOKIE_crackUrlSimple(lpszUrl, hostName, sizeof(hostName)/sizeof(hostName[0]), path, sizeof(path)/sizeof(path[0]));
 
     LIST_FOR_EACH(cursor, &domain_list)
diff --git a/dlls/wininet/tests/internet.c b/dlls/wininet/tests/internet.c
index 2f0f8b7..d3596ae 100644
--- a/dlls/wininet/tests/internet.c
+++ b/dlls/wininet/tests/internet.c
@@ -125,7 +125,10 @@ static void test_null(void)
   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 };
+  static const WCHAR szExpect[] = { 's','e','r','v','e','r',';',' ','s','e','r','v','e','r',0 };
+  WCHAR buffer[0x20];
   BOOL r;
+  DWORD sz;
 
   hi = InternetOpenW(NULL, 0, NULL, NULL, 0);
   ok(hi != NULL, "open failed\n");
@@ -184,6 +187,33 @@ static void test_null(void)
   ok(GetLastError() == ERROR_INTERNET_UNRECOGNIZED_SCHEME, "wrong error\n");
   }
   ok(r == FALSE, "return wrong\n");
+
+  sz = 0;
+  r = InternetGetCookieW(NULL, NULL, NULL, &sz);
+  ok(GetLastError() == ERROR_INTERNET_UNRECOGNIZED_SCHEME, "wrong error\n");
+  ok( r == FALSE, "return wrong\n");
+
+  r = InternetGetCookieW(szServer, NULL, NULL, &sz);
+  todo_wine {
+  ok(GetLastError() == ERROR_INTERNET_UNRECOGNIZED_SCHEME, "wrong error\n");
+  }
+  ok( r == FALSE, "return wrong\n");
+
+  sz = 0;
+  r = InternetGetCookieW(szUrl, szServer, NULL, &sz);
+  ok( r == TRUE, "return wrong\n");
+  todo_wine {
+  ok( sz == 30, "sz wrong\n");
+  }
+
+  sz = 0x20;
+  memset(buffer, 0, sizeof buffer);
+  r = InternetGetCookieW(szUrl, szServer, buffer, &sz);
+  ok( r == TRUE, "return wrong\n");
+  todo_wine {
+  ok( sz == lstrlenW(buffer), "sz wrong\n");
+  ok( !lstrcmpW(szExpect, buffer), "cookie data wrong\n");
+  }
 }
 
 START_TEST(internet)




More information about the wine-cvs mailing list