Detlef Riekenberg : wininet/tests: Initial tests for InternetCanonicalizeUrlA.

Alexandre Julliard julliard at winehq.org
Thu Oct 11 10:47:54 CDT 2007


Module: wine
Branch: master
Commit: f98b4507bafa4f96d92ec6fed3a0abcf16f41c31
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=f98b4507bafa4f96d92ec6fed3a0abcf16f41c31

Author: Detlef Riekenberg <wine.dev at web.de>
Date:   Wed Oct 10 23:16:51 2007 +0200

wininet/tests: Initial tests for InternetCanonicalizeUrlA.

---

 dlls/wininet/tests/internet.c |   69 +++++++++++++++++++++++++++++++++++++++-
 1 files changed, 67 insertions(+), 2 deletions(-)

diff --git a/dlls/wininet/tests/internet.c b/dlls/wininet/tests/internet.c
index aa96391..2869cd1 100644
--- a/dlls/wininet/tests/internet.c
+++ b/dlls/wininet/tests/internet.c
@@ -27,7 +27,69 @@
 
 #include "wine/test.h"
 
-static void InternetQueryOptionA_test(void)
+/* ############################### */
+
+static void test_InternetCanonicalizeUrlA(void)
+{
+    CHAR    buffer[256];
+    LPCSTR  url;
+    DWORD   urllen;
+    DWORD   dwSize;
+    DWORD   res;
+
+    /* Acrobat Updater 5 calls this for Adobe Reader 8.1 */
+    url = "http://swupmf.adobe.com/manifest/50/win/AdobeUpdater.upd";
+    urllen = lstrlenA(url);
+
+    memset(buffer, '#', sizeof(buffer)-1);
+    buffer[sizeof(buffer)-1] = '\0';
+    dwSize = 1; /* Acrobat Updater use this size */
+    SetLastError(0xdeadbeef);
+    res = InternetCanonicalizeUrlA(url, buffer, &dwSize, 0);
+    todo_wine
+    ok( !res && (GetLastError() == ERROR_INSUFFICIENT_BUFFER) && (dwSize == (urllen+1)),
+        "got %u and %u with size %u for '%s' (%d)\n",
+        res, GetLastError(), dwSize, buffer, lstrlenA(buffer));
+
+
+    /* buffer has no space for the terminating '\0' */
+    memset(buffer, '#', sizeof(buffer)-1);
+    buffer[sizeof(buffer)-1] = '\0';
+    dwSize = urllen;
+    SetLastError(0xdeadbeef);
+    res = InternetCanonicalizeUrlA(url, buffer, &dwSize, 0);
+    /* dwSize is nr. of needed bytes with the terminating '\0' */
+    todo_wine
+    ok( !res && (GetLastError() == ERROR_INSUFFICIENT_BUFFER) && (dwSize == (urllen+1)),
+        "got %u and %u with size %u for '%s' (%d)\n",
+        res, GetLastError(), dwSize, buffer, lstrlenA(buffer));
+
+    /* buffer has the required size */
+    memset(buffer, '#', sizeof(buffer)-1);
+    buffer[sizeof(buffer)-1] = '\0';
+    dwSize = urllen+1;
+    SetLastError(0xdeadbeef);
+    res = InternetCanonicalizeUrlA(url, buffer, &dwSize, 0);
+    /* dwSize is nr. of copied bytes without the terminating '\0' */
+    ok( res && (dwSize == urllen) && (lstrcmpA(url, buffer) == 0),
+        "got %u and %u with size %u for '%s' (%d)\n",
+        res, GetLastError(), dwSize, buffer, lstrlenA(buffer));
+
+    /* buffer is larger as the required size */
+    memset(buffer, '#', sizeof(buffer)-1);
+    buffer[sizeof(buffer)-1] = '\0';
+    dwSize = urllen+2;
+    SetLastError(0xdeadbeef);
+    res = InternetCanonicalizeUrlA(url, buffer, &dwSize, 0);
+    /* dwSize is nr. of copied bytes without the terminating '\0' */
+    ok( res && (dwSize == urllen) && (lstrcmpA(url, buffer) == 0),
+        "got %u and %u with size %u for '%s' (%d)\n",
+        res, GetLastError(), dwSize, buffer, lstrlenA(buffer));
+}
+
+/* ############################### */
+
+static void test_InternetQueryOptionA(void)
 {
   HINTERNET hinet,hurl;
   DWORD len;
@@ -221,9 +283,12 @@ static void test_null(void)
 
 }
 
+/* ############################### */
+
 START_TEST(internet)
 {
-  InternetQueryOptionA_test();
+  test_InternetCanonicalizeUrlA();
+  test_InternetQueryOptionA();
   test_get_cookie();
   test_null();
 }




More information about the wine-cvs mailing list