Jacek Caban : mshtml: Added IOmNavigator::get_*Language tests.

Alexandre Julliard julliard at winehq.org
Mon Aug 1 13:22:10 CDT 2011


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

Author: Jacek Caban <jacek at codeweavers.com>
Date:   Sun Jul 31 16:45:45 2011 +0200

mshtml: Added IOmNavigator::get_*Language tests.

---

 dlls/mshtml/tests/dom.c |   38 ++++++++++++++++++++++++++++++++++++++
 1 files changed, 38 insertions(+), 0 deletions(-)

diff --git a/dlls/mshtml/tests/dom.c b/dlls/mshtml/tests/dom.c
index 08be27d..bba222f 100644
--- a/dlls/mshtml/tests/dom.c
+++ b/dlls/mshtml/tests/dom.c
@@ -34,6 +34,8 @@
 #include "mshtml_test.h"
 #include "objsafe.h"
 
+static INT (WINAPI *pLCIDToLocaleName)(LCID,LPWSTR,INT,DWORD);
+
 static const char doc_blank[] = "<html></html>";
 static const char doc_str1[] = "<html><body>test</body></html>";
 static const char range_test_str[] =
@@ -3820,6 +3822,22 @@ static void test_mime_types_col(IOmNavigator *nav)
     ok(!ref, "ref=%d\n", ref);
 }
 
+#define test_language_string(a,b) _test_language_string(__LINE__,a,b)
+static void _test_language_string(unsigned line, const WCHAR *lang, LCID lcid)
+{
+    WCHAR buf[64];
+    int res;
+
+    if(pLCIDToLocaleName) {
+        res = pLCIDToLocaleName(lcid, buf, sizeof(buf)/sizeof(WCHAR), 0);
+        ok_(__FILE__,line)(res, "LCIDToLocaleName failed: %u\n", GetLastError());
+        ok_(__FILE__,line)(!lstrcmpW(lang, buf), "lang = %s, expected %s\n", wine_dbgstr_w(lang), wine_dbgstr_w(buf));
+    }else {
+        win_skip("LCIDToLocaleName not available, unable to test language string\n");
+        ok_(__FILE__,line)(lang != NULL, "lang == NULL\n");
+    }
+}
+
 static void test_navigator(IHTMLDocument2 *doc)
 {
     IHTMLWindow2 *window;
@@ -3877,6 +3895,24 @@ static void test_navigator(IHTMLDocument2 *doc)
     ok(!memcmp(bstr, v40, sizeof(v40)), "appVersion is %s\n", wine_dbgstr_w(bstr));
     SysFreeString(bstr);
 
+    bstr = NULL;
+    hres = IOmNavigator_get_systemLanguage(navigator, &bstr);
+    ok(hres == S_OK, "get_systemLanguage failed: %08x\n", hres);
+    test_language_string(bstr, LOCALE_SYSTEM_DEFAULT);
+    SysFreeString(bstr);
+
+    bstr = NULL;
+    hres = IOmNavigator_get_browserLanguage(navigator, &bstr);
+    ok(hres == S_OK, "get_browserLanguage failed: %08x\n", hres);
+    test_language_string(bstr, GetUserDefaultUILanguage());
+    SysFreeString(bstr);
+
+    bstr = NULL;
+    hres = IOmNavigator_get_userLanguage(navigator, &bstr);
+    ok(hres == S_OK, "get_userLanguage failed: %08x\n", hres);
+    test_language_string(bstr, LOCALE_USER_DEFAULT);
+    SysFreeString(bstr);
+
     hres = IOmNavigator_toString(navigator, NULL);
     ok(hres == E_INVALIDARG, "toString failed: %08x\n", hres);
 
@@ -5868,6 +5904,8 @@ static void run_domtest(const char *str, domtest_t test)
 
 START_TEST(dom)
 {
+    pLCIDToLocaleName = (void*)GetProcAddress(GetModuleHandleA("kernel32.dll"), "LCIDToLocaleName");
+
     CoInitialize(NULL);
 
     run_domtest(doc_str1, test_doc_elem);




More information about the wine-cvs mailing list