Francois Gouget : vbscript/tests: Some tests require that the user interface be in English.
Alexandre Julliard
julliard at winehq.org
Fri Sep 16 13:28:31 CDT 2011
Module: wine
Branch: master
Commit: b6da3052ed7c1a6c22b25bcdb5b82f1ba03b6717
URL: http://source.winehq.org/git/wine.git/?a=commit;h=b6da3052ed7c1a6c22b25bcdb5b82f1ba03b6717
Author: Francois Gouget <fgouget at free.fr>
Date: Fri Sep 16 13:09:01 2011 +0200
vbscript/tests: Some tests require that the user interface be in English.
---
dlls/vbscript/tests/lang.vbs | 2 +-
dlls/vbscript/tests/run.c | 35 ++++++++++++++++++++++++++---------
2 files changed, 27 insertions(+), 10 deletions(-)
diff --git a/dlls/vbscript/tests/lang.vbs b/dlls/vbscript/tests/lang.vbs
index 3511707..867779d 100644
--- a/dlls/vbscript/tests/lang.vbs
+++ b/dlls/vbscript/tests/lang.vbs
@@ -86,7 +86,7 @@ Call ok("ab " & empty = "ab ", """ab"" & empty = " & ("ab " & empty))
Call ok(1 & 100000 = "1100000", "1 & 100000 = " & (1 & 100000))
Call ok("ab" & x = "abxx", """ab"" & x = " & ("ab"&x))
-if(isEnglishLocale) then
+if(isEnglishLang) then
Call ok("" & true = "True", """"" & true = " & true)
Call ok(true & false = "TrueFalse", "true & false = " & (true & false))
end if
diff --git a/dlls/vbscript/tests/run.c b/dlls/vbscript/tests/run.c
index d98cf38..6b2ec84 100644
--- a/dlls/vbscript/tests/run.c
+++ b/dlls/vbscript/tests/run.c
@@ -69,7 +69,7 @@ DEFINE_EXPECT(testobj_propput_i);
#define DISPID_GLOBAL_TRACE 1001
#define DISPID_GLOBAL_OK 1002
#define DISPID_GLOBAL_GETVT 1003
-#define DISPID_GLOBAL_ISENGLOC 1004
+#define DISPID_GLOBAL_ISENGLANG 1004
#define DISPID_GLOBAL_VBVAR 1005
#define DISPID_GLOBAL_TESTOBJ 1006
#define DISPID_GLOBAL_ISNULLDISP 1007
@@ -135,10 +135,27 @@ static const char *vt2a(VARIANT *v)
}
}
-static BOOL is_english(void)
+/* Returns true if the user interface is in English. Note that this does not
+ * presume of the formatting of dates, numbers, etc.
+ */
+static BOOL is_lang_english(void)
{
- return PRIMARYLANGID(GetSystemDefaultLangID()) == LANG_ENGLISH
- && PRIMARYLANGID(GetUserDefaultLangID()) == LANG_ENGLISH;
+ static HMODULE hkernel32 = NULL;
+ static LANGID (WINAPI *pGetThreadUILanguage)(void) = NULL;
+ static LANGID (WINAPI *pGetUserDefaultUILanguage)(void) = NULL;
+
+ if (!hkernel32)
+ {
+ hkernel32 = GetModuleHandleA("kernel32.dll");
+ pGetThreadUILanguage = (void*)GetProcAddress(hkernel32, "GetThreadUILanguage");
+ pGetUserDefaultUILanguage = (void*)GetProcAddress(hkernel32, "GetUserDefaultUILanguage");
+ }
+ if (pGetThreadUILanguage)
+ return PRIMARYLANGID(pGetThreadUILanguage()) == LANG_ENGLISH;
+ if (pGetUserDefaultUILanguage)
+ return PRIMARYLANGID(pGetUserDefaultUILanguage()) == LANG_ENGLISH;
+
+ return PRIMARYLANGID(GetUserDefaultLangID()) == LANG_ENGLISH;
}
static void test_disp(IDispatch *disp)
@@ -405,9 +422,9 @@ static HRESULT WINAPI Global_GetDispID(IDispatchEx *iface, BSTR bstrName, DWORD
*pid = DISPID_GLOBAL_GETVT;
return S_OK;
}
- if(!strcmp_wa(bstrName, "isEnglishLocale")) {
+ if(!strcmp_wa(bstrName, "isEnglishLang")) {
test_grfdex(grfdex, fdexNameCaseInsensitive);
- *pid = DISPID_GLOBAL_ISENGLOC;
+ *pid = DISPID_GLOBAL_ISENGLANG;
return S_OK;
}
if(!strcmp_wa(bstrName, "testObj")) {
@@ -511,7 +528,7 @@ static HRESULT WINAPI Global_InvokeEx(IDispatchEx *iface, DISPID id, LCID lcid,
V_BSTR(pvarRes) = a2bstr(vt2a(pdp->rgvarg));
return S_OK;
- case DISPID_GLOBAL_ISENGLOC:
+ case DISPID_GLOBAL_ISENGLANG:
ok(wFlags == (INVOKE_FUNC|INVOKE_PROPERTYGET), "wFlags = %x\n", wFlags);
ok(pdp != NULL, "pdp == NULL\n");
ok(!pdp->rgdispidNamedArgs, "rgdispidNamedArgs != NULL\n");
@@ -521,10 +538,10 @@ static HRESULT WINAPI Global_InvokeEx(IDispatchEx *iface, DISPID id, LCID lcid,
ok(pei != NULL, "pei == NULL\n");
V_VT(pvarRes) = VT_BOOL;
- if(is_english()) {
+ if(is_lang_english()) {
V_BOOL(pvarRes) = VARIANT_TRUE;
}else {
- skip("Skipping some test in non-English locale\n");
+ skip("Skipping some tests in non-English UIs\n");
V_BOOL(pvarRes) = VARIANT_FALSE;
}
return S_OK;
More information about the wine-cvs
mailing list