From a1f67e73b415ce7a4c2ccabc57e0150aead6baa7 Mon Sep 17 00:00:00 2001 From: Lei Zhang Date: Thu, 8 Nov 2007 13:30:40 -0800 Subject: [PATCH] wininet: make a test pass on all versions of windows --- dlls/wininet/tests/internet.c | 56 +++++++++++++++++++++++++++++++++++------ 1 files changed, 48 insertions(+), 8 deletions(-) diff --git a/dlls/wininet/tests/internet.c b/dlls/wininet/tests/internet.c index 9fac11e..0aebeb0 100644 --- a/dlls/wininet/tests/internet.c +++ b/dlls/wininet/tests/internet.c @@ -215,9 +215,11 @@ 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 }; + static const WCHAR szExpectSP1[] = { 's','e','r','v','e','r',';',' ','s','e','r','v','e','r',0 }; + static const WCHAR szExpect[] = { 's','e','r','v','e','r',0 }; WCHAR buffer[0x20]; BOOL r; + int is_sp1; /* xp sp1 = 0, before xp sp1 = -1, after xp sp1 = 1 */ DWORD sz; hi = InternetOpenW(NULL, 0, NULL, NULL, 0); @@ -292,18 +294,56 @@ static void test_null(void) sz = 0; r = InternetGetCookieW(szUrl, szServer, NULL, &sz); ok( r == TRUE, "return wrong\n"); - todo_wine { - ok( sz == 30, "sz wrong\n"); + + { + OSVERSIONINFOEX foo; + BOOL r; + memset(&foo, 0, sizeof(foo)); + foo.dwOSVersionInfoSize = sizeof(foo); + r = GetVersionEx((OSVERSIONINFO *) &foo); + if (!r) + { + skip("could not get windows version\n"); + return; + } + + is_sp1 = -1; + if (foo.dwMajorVersion > 5) + is_sp1 = 1; + else if (foo.dwMajorVersion == 5) + { + if (foo.dwMinorVersion > 1) + is_sp1 = 1; + else if (foo.dwMinorVersion == 1) + { + if (foo.wServicePackMajor > 1) + is_sp1 = 1; + else if (foo.wServicePackMajor == 1) + is_sp1 = 0; + } + } } + /* sz is 14 on XP SP1, 30 on XP */ + if (is_sp1 < 1) + todo_wine ok( sz == 30, "sz wrong\n"); + else + todo_wine ok( sz == 14, "sz wrong\n"); + sz = 0x20; - memset(buffer, 0, sizeof buffer); + 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"); - } + + if (is_sp1) + todo_wine ok( sz == 1 + lstrlenW(buffer), "sz wrong\n"); + else + todo_wine ok( sz == lstrlenW(buffer), "sz wrong\n"); + + if (is_sp1 < 1) + todo_wine ok( !lstrcmpW(szExpectSP1, buffer), "cookie data wrong\n"); + else + todo_wine ok( !lstrcmpW(szExpect, buffer), "cookie data wrong\n"); sz = sizeof(buffer); r = InternetQueryOptionA(NULL, INTERNET_OPTION_CONNECTED_STATE, buffer, &sz); -- 1.4.1