Jacek Caban : urlmon: Added user agent tests.

Alexandre Julliard julliard at winehq.org
Mon Jun 29 09:17:38 CDT 2009


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

Author: Jacek Caban <jacek at codeweavers.com>
Date:   Sat Jun 27 00:37:34 2009 +0200

urlmon: Added user agent tests.

---

 dlls/urlmon/tests/misc.c |   84 ++++++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 82 insertions(+), 2 deletions(-)

diff --git a/dlls/urlmon/tests/misc.c b/dlls/urlmon/tests/misc.c
index 443fd82..6436cd7 100644
--- a/dlls/urlmon/tests/misc.c
+++ b/dlls/urlmon/tests/misc.c
@@ -1155,9 +1155,11 @@ static void test_UrlMkGetSessionOption(void)
     ok(encoding == 0xdeadbeef, "encoding = %08x, exepcted 0xdeadbeef\n", encoding);
 }
 
-static void test_ObtainUserAgentString(void)
+static void test_user_agent(void)
 {
     static const CHAR expected[] = "Mozilla/4.0 (compatible; MSIE ";
+    static char test_str[] = "test";
+    static char test2_str[] = "test\0test";
     static CHAR str[3];
     LPSTR str2 = NULL;
     HRESULT hres;
@@ -1209,6 +1211,84 @@ static void test_ObtainUserAgentString(void)
         ok(hres == S_OK, "ObtainUserAgentString failed: %08x\n", hres);
         ok(size == saved, "size=%d, expected %d\n", size, saved);
     }
+
+    size = 0;
+    hres = UrlMkGetSessionOption(URLMON_OPTION_USERAGENT, NULL, 0, &size, 0);
+    ok(hres == E_OUTOFMEMORY, "UrlMkGetSessionOption failed: %08x\n", hres);
+    ok(size, "size == 0\n");
+
+    size = 0xdeadbeef;
+    hres = UrlMkGetSessionOption(URLMON_OPTION_USERAGENT, NULL, 1000, &size, 0);
+    ok(hres == E_INVALIDARG, "UrlMkGetSessionOption failed: %08x\n", hres);
+    ok(size, "size == 0\n");
+
+    saved = size;
+    size = 0;
+    hres = UrlMkGetSessionOption(URLMON_OPTION_USERAGENT, str2, saved+10, &size, 0);
+    ok(hres == E_OUTOFMEMORY, "UrlMkGetSessionOption failed: %08x\n", hres);
+    ok(size == saved, "size = %d, expected %d\n", size, saved);
+    ok(sizeof(expected) <= strlen(str2) && !memcmp(expected, str2, sizeof(expected)-1),
+       "user agent was \"%s\", expected to start with \"%s\"\n",
+       str2, expected);
+
+    size = 0;
+    str2[0] = 0;
+    hres = UrlMkGetSessionOption(URLMON_OPTION_USERAGENT, str2, saved, &size, 0);
+    ok(hres == E_OUTOFMEMORY, "UrlMkGetSessionOption failed: %08x\n", hres);
+    ok(size == saved, "size = %d, expected %d\n", size, saved);
+    ok(sizeof(expected) <= strlen(str2) && !memcmp(expected, str2, sizeof(expected)-1),
+       "user agent was \"%s\", expected to start with \"%s\"\n",
+       str2, expected);
+
+    size = saved;
+    str2[0] = 0;
+    hres = UrlMkGetSessionOption(URLMON_OPTION_USERAGENT, str2, saved-1, &size, 0);
+    ok(hres == E_OUTOFMEMORY, "UrlMkGetSessionOption failed: %08x\n", hres);
+    ok(size == saved, "size = %d, expected %d\n", size, saved);
+    ok(!str2[0], "buf changed\n");
+
+    size = saved;
+    str2[0] = 0;
+    hres = UrlMkGetSessionOption(URLMON_OPTION_USERAGENT, str2, saved, NULL, 0);
+    ok(hres == E_INVALIDARG, "UrlMkGetSessionOption failed: %08x\n", hres);
+    ok(!str2[0], "buf changed\n");
+
+    hres = UrlMkSetSessionOption(URLMON_OPTION_USERAGENT, test_str, sizeof(test_str), 0);
+    ok(hres == S_OK, "UrlMkSetSessionOption failed: %08x\n", hres);
+
+    size = 0;
+    str2[0] = 0;
+    hres = UrlMkGetSessionOption(URLMON_OPTION_USERAGENT, str2, saved, &size, 0);
+    ok(hres == E_OUTOFMEMORY, "UrlMkGetSessionOption failed: %08x\n", hres);
+    ok(size == sizeof(test_str) && !memcmp(str2, test_str, sizeof(test_str)), "wrong user agent\n");
+
+    hres = UrlMkSetSessionOption(URLMON_OPTION_USERAGENT, test2_str, sizeof(test2_str), 0);
+    ok(hres == S_OK, "UrlMkSetSessionOption failed: %08x\n", hres);
+
+    size = 0;
+    str2[0] = 0;
+    hres = UrlMkGetSessionOption(URLMON_OPTION_USERAGENT, str2, saved, &size, 0);
+    ok(hres == E_OUTOFMEMORY, "UrlMkGetSessionOption failed: %08x\n", hres);
+    ok(size == sizeof(test_str) && !memcmp(str2, test_str, sizeof(test_str)), "wrong user agent\n");
+
+    hres = UrlMkSetSessionOption(URLMON_OPTION_USERAGENT, test_str, 2, 0);
+    ok(hres == S_OK, "UrlMkSetSessionOption failed: %08x\n", hres);
+
+    size = 0;
+    str2[0] = 0;
+    hres = UrlMkGetSessionOption(URLMON_OPTION_USERAGENT, str2, saved, &size, 0);
+    ok(hres == E_OUTOFMEMORY, "UrlMkGetSessionOption failed: %08x\n", hres);
+    ok(size == 3 && !strcmp(str2, "te"), "wrong user agent\n");
+
+    hres = UrlMkSetSessionOption(URLMON_OPTION_USERAGENT, test_str, 0, 0);
+    ok(hres == E_INVALIDARG, "UrlMkSetSessionOption failed: %08x\n", hres);
+
+    hres = UrlMkSetSessionOption(URLMON_OPTION_USERAGENT, NULL, sizeof(test_str), 0);
+    ok(hres == E_INVALIDARG, "UrlMkSetSessionOption failed: %08x\n", hres);
+
+    hres = UrlMkSetSessionOption(URLMON_OPTION_USERAGENT, NULL, 0, 0);
+    ok(hres == E_INVALIDARG, "UrlMkSetSessionOption failed: %08x\n", hres);
+
     HeapFree(GetProcessHeap(), 0, str2);
 }
 
@@ -1277,7 +1357,7 @@ START_TEST(misc)
     test_ReleaseBindInfo();
     test_CopyStgMedium();
     test_UrlMkGetSessionOption();
-    test_ObtainUserAgentString();
+    test_user_agent();
     test_MkParseDisplayNameEx();
 
     OleUninitialize();




More information about the wine-cvs mailing list