Misha Koshelev : urlmon/tests: Add tests for ObtainUserAgentString.
Alexandre Julliard
julliard at wine.codeweavers.com
Tue Jul 10 08:02:36 CDT 2007
Module: wine
Branch: master
Commit: 82569d9d0a5ea6ea0bea4fae24bebeaaacb287f2
URL: http://source.winehq.org/git/wine.git/?a=commit;h=82569d9d0a5ea6ea0bea4fae24bebeaaacb287f2
Author: Misha Koshelev <mk144210 at bcm.edu>
Date: Mon Jul 9 21:50:10 2007 -0500
urlmon/tests: Add tests for ObtainUserAgentString.
---
dlls/urlmon/tests/misc.c | 58 ++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 58 insertions(+), 0 deletions(-)
diff --git a/dlls/urlmon/tests/misc.c b/dlls/urlmon/tests/misc.c
index 375875b..d93d94c 100644
--- a/dlls/urlmon/tests/misc.c
+++ b/dlls/urlmon/tests/misc.c
@@ -1093,6 +1093,63 @@ static void test_UrlMkGetSessionOption(void)
ok(encoding == 0xdeadbeef, "encoding = %08x, exepcted 0xdeadbeef\n", encoding);
}
+static void test_ObtainUserAgentString(void)
+{
+ static const CHAR expected[] = "Mozilla/4.0 (compatible; MSIE ";
+ static CHAR str[3];
+ LPSTR str2 = NULL;
+ HRESULT hres;
+ DWORD size, saved;
+
+ hres = ObtainUserAgentString(0, NULL, NULL);
+ ok(hres == E_INVALIDARG, "ObtainUserAgentString failed: %08x\n", hres);
+
+ size = 100;
+ hres = ObtainUserAgentString(0, NULL, &size);
+ ok(hres == E_INVALIDARG, "ObtainUserAgentString failed: %08x\n", hres);
+ ok(size == 100, "size=%d, expected %d\n", size, 100);
+
+ size = 0;
+ hres = ObtainUserAgentString(0, str, &size);
+ ok(hres == E_OUTOFMEMORY, "ObtainUserAgentString failed: %08x\n", hres);
+ ok(size > 0, "size=%d, expected non-zero\n", size);
+
+ size = 2;
+ str[0] = 'a';
+ hres = ObtainUserAgentString(0, str, &size);
+ ok(hres == E_OUTOFMEMORY, "ObtainUserAgentString failed: %08x\n", hres);
+ ok(size > 0, "size=%d, expected non-zero\n", size);
+ ok(str[0] == 'a', "str[0]=%c, expected 'a'\n", str[0]);
+
+ size = 0;
+ hres = ObtainUserAgentString(1, str, &size);
+ ok(hres == E_OUTOFMEMORY, "ObtainUserAgentString failed: %08x\n", hres);
+ ok(size > 0, "size=%d, expected non-zero\n", size);
+
+ str2 = HeapAlloc(GetProcessHeap(), 0, (size+20)*sizeof(CHAR));
+ if (!str2)
+ {
+ skip("skipping rest of ObtainUserAgent tests, out of memory\n");
+ }
+ else
+ {
+ saved = size;
+ hres = ObtainUserAgentString(0, str2, &size);
+ ok(hres == S_OK, "ObtainUserAgentString failed: %08x\n", hres);
+ ok(size == saved, "size=%d, expected %d\n", size, saved);
+ ok(strlen(expected) <= strlen(str2) &&
+ !memcmp(expected, str2, strlen(expected)*sizeof(CHAR)),
+ "user agent was \"%s\", expected to start with \"%s\"\n",
+ str2, expected);
+
+ size = saved+10;
+ hres = ObtainUserAgentString(0, str2, &size);
+ ok(hres == S_OK, "ObtainUserAgentString failed: %08x\n", hres);
+ ok(size == saved, "size=%d, expected %d\n", size, saved);
+ }
+ HeapFree(GetProcessHeap(), 0, str2);
+}
+
START_TEST(misc)
{
OleInitialize(NULL);
@@ -1109,6 +1166,7 @@ START_TEST(misc)
test_NameSpace();
test_ReleaseBindInfo();
test_UrlMkGetSessionOption();
+ test_ObtainUserAgentString();
OleUninitialize();
}
More information about the wine-cvs
mailing list