[PATCH] shlwapi/tests: UrlGetPart* not present on Win95B (winetestbot) [url patch 6]

Detlef Riekenberg wine.dev at web.de
Sat Jan 30 17:51:44 CST 2010


---
 dlls/shlwapi/tests/url.c |   40 +++++++++++++++++++++++++++++-----------
 1 files changed, 29 insertions(+), 11 deletions(-)

diff --git a/dlls/shlwapi/tests/url.c b/dlls/shlwapi/tests/url.c
index 67e2ad7..af7b10c 100644
--- a/dlls/shlwapi/tests/url.c
+++ b/dlls/shlwapi/tests/url.c
@@ -31,6 +31,8 @@
 
 /* ################ */
 static HMODULE hShlwapi;
+static HRESULT (WINAPI *pUrlGetPartA)(LPCSTR,LPSTR,LPDWORD,DWORD,DWORD);
+static HRESULT (WINAPI *pUrlGetPartW)(LPCWSTR,LPWSTR,LPDWORD,DWORD,DWORD);
 static HRESULT (WINAPI *pUrlEscapeA)(LPCSTR,LPSTR,LPDWORD,DWORD);
 static HRESULT (WINAPI *pUrlEscapeW)(LPCWSTR,LPWSTR,LPDWORD,DWORD);
 static HRESULT (WINAPI *pUrlCreateFromPathA)(LPCSTR,LPSTR,LPDWORD,DWORD);
@@ -516,20 +518,29 @@ static void test_url_part(const char* szUrl, DWORD dwPart, DWORD dwFlags, const
   WCHAR wszPart[INTERNET_MAX_URL_LENGTH];
   LPWSTR wszUrl = GetWideString(szUrl);
   LPWSTR wszConvertedPart;
-
+  HRESULT res;
   DWORD dwSize;
 
   dwSize = INTERNET_MAX_URL_LENGTH;
-  ok( UrlGetPartA(szUrl, szPart, &dwSize, dwPart, dwFlags) == S_OK, "UrlGetPartA for \"%s\" part 0x%08x didn't return S_OK but \"%s\"\n", szUrl, dwPart, szPart);
-  dwSize = INTERNET_MAX_URL_LENGTH;
-  ok( UrlGetPartW(wszUrl, wszPart, &dwSize, dwPart, dwFlags) == S_OK, "UrlGetPartW didn't return S_OK\n" );
+  res = pUrlGetPartA(szUrl, szPart, &dwSize, dwPart, dwFlags);
+  ok(res == S_OK,
+    "UrlGetPartA for \"%s\" part 0x%08x returned 0x%x and \"%s\"\n",
+    szUrl, dwPart, res, szPart);
+  if (pUrlGetPartW) {
+    dwSize = INTERNET_MAX_URL_LENGTH;
+    res = pUrlGetPartW(wszUrl, wszPart, &dwSize, dwPart, dwFlags);
+    ok(res == S_OK,
+      "UrlGetPartW for \"%s\" part 0x%08x returned 0x%x\n",
+      szUrl, dwPart, res);
 
-  wszConvertedPart = GetWideString(szPart);
+    wszConvertedPart = GetWideString(szPart);
 
-  ok(lstrcmpW(wszPart,wszConvertedPart)==0, "Strings didn't match between ascii and unicode UrlGetPart!\n");
+    ok(lstrcmpW(wszPart,wszConvertedPart)==0,
+        "Strings didn't match between ascii and unicode UrlGetPart!\n");
 
+    FreeWideString(wszConvertedPart);
+  }
   FreeWideString(wszUrl);
-  FreeWideString(wszConvertedPart);
 
   /* Note that v6.0 and later don't return '?' with the query */
   ok(strcmp(szPart,szExpected)==0 ||
@@ -548,16 +559,21 @@ static void test_UrlGetPart(void)
   DWORD dwSize;
   HRESULT res;
 
+  if (!pUrlGetPartA) {
+    win_skip("UrlGetPartA not found\n");
+    return;
+  }
+
   dwSize = sizeof szPart;
   szPart[0]='x'; szPart[1]=0;
-  res = UrlGetPartA("hi", szPart, &dwSize, URL_PART_SCHEME, 0);
+  res = pUrlGetPartA("hi", szPart, &dwSize, URL_PART_SCHEME, 0);
   todo_wine {
   ok (res==S_FALSE, "UrlGetPartA(\"hi\") returned %08X\n", res);
   ok(szPart[0]==0, "UrlGetPartA(\"hi\") return \"%s\" instead of \"\"\n", szPart);
   }
   dwSize = sizeof szPart;
   szPart[0]='x'; szPart[1]=0;
-  res = UrlGetPartA("hi", szPart, &dwSize, URL_PART_QUERY, 0);
+  res = pUrlGetPartA("hi", szPart, &dwSize, URL_PART_QUERY, 0);
   todo_wine {
   ok (res==S_FALSE, "UrlGetPartA(\"hi\") returned %08X\n", res);
   ok(szPart[0]==0, "UrlGetPartA(\"hi\") return \"%s\" instead of \"\"\n", szPart);
@@ -576,12 +592,12 @@ static void test_UrlGetPart(void)
   test_url_part(http_url, URL_PART_PASSWORD, 0, "pass 123");
 
   dwSize = sizeof(szPart);
-  res = UrlGetPartA("file://c:\\index.htm", szPart, &dwSize, URL_PART_HOSTNAME, 0);
+  res = pUrlGetPartA("file://c:\\index.htm", szPart, &dwSize, URL_PART_HOSTNAME, 0);
   ok(res==S_FALSE, "returned %08x\n", res);
 
   dwSize = sizeof(szPart);
   szPart[0] = 'x'; szPart[1] = '\0';
-  res = UrlGetPartA("file:some text", szPart, &dwSize, URL_PART_HOSTNAME, 0);
+  res = pUrlGetPartA("file:some text", szPart, &dwSize, URL_PART_HOSTNAME, 0);
   ok(res==S_FALSE, "returned %08x\n", res);
   ok(szPart[0] == '\0', "szPart[0] = %c\n", szPart[0]);
   ok(dwSize == 0, "dwSize = %d\n", dwSize);
@@ -1227,6 +1243,8 @@ START_TEST(url)
 {
 
   hShlwapi = GetModuleHandleA("shlwapi.dll");
+  pUrlGetPartA = (void *) GetProcAddress(hShlwapi, "UrlGetPartA");
+  pUrlGetPartW = (void *) GetProcAddress(hShlwapi, "UrlGetPartW");
   pUrlEscapeA = (void *) GetProcAddress(hShlwapi, "UrlEscapeA");
   pUrlEscapeW = (void *) GetProcAddress(hShlwapi, "UrlEscapeW");
   pUrlCreateFromPathA = (void *) GetProcAddress(hShlwapi, "UrlCreateFromPathA");
-- 
1.6.5




More information about the wine-patches mailing list