Module: wine Branch: master Commit: b67f0de1c64fcfc2fa6d6f5ce453b7b0f0323666 URL: http://source.winehq.org/git/wine.git/?a=commit;h=b67f0de1c64fcfc2fa6d6f5ce4...
Author: Ge van Geldorp ge@gse.nl Date: Thu Jan 8 13:34:42 2009 +0100
mshtml/tests: Skip a couple of tests when IE is running in Enhanced Security Configuration.
---
dlls/mshtml/tests/dom.c | 27 ++++++++++++++++++++++++++- dlls/mshtml/tests/script.c | 33 +++++++++++++++++++++++++++++---- 2 files changed, 55 insertions(+), 5 deletions(-)
diff --git a/dlls/mshtml/tests/dom.c b/dlls/mshtml/tests/dom.c index 46136c1..03068d1 100644 --- a/dlls/mshtml/tests/dom.c +++ b/dlls/mshtml/tests/dom.c @@ -4001,6 +4001,27 @@ static void gecko_installer_workaround(BOOL disable) RegCloseKey(hkey); }
+/* Check if Internet Explorer is configured to run in "Enhanced Security Configuration" (aka hardened mode) */ +/* Note: this code is duplicated in dlls/mshtml/tests/dom.c, dlls/mshtml/tests/script.c and dlls/urlmon/tests/misc.c */ +static BOOL is_ie_hardened() +{ + HKEY zone_map; + DWORD ie_harden, type, size; + + ie_harden = 0; + if(RegOpenKeyEx(HKEY_CURRENT_USER, "Software\Microsoft\Windows\CurrentVersion\Internet Settings\ZoneMap", + 0, KEY_QUERY_VALUE, &zone_map) == ERROR_SUCCESS) { + size = sizeof(DWORD); + if (RegQueryValueEx(zone_map, "IEHarden", NULL, &type, (LPBYTE) &ie_harden, &size) != ERROR_SUCCESS || + type != REG_DWORD) { + ie_harden = 0; + } + RegCloseKey(zone_map); + } + + return ie_harden != 0; +} + START_TEST(dom) { gecko_installer_workaround(TRUE); @@ -4009,7 +4030,11 @@ START_TEST(dom) run_domtest(doc_str1, test_doc_elem); run_domtest(range_test_str, test_txtrange); run_domtest(range_test2_str, test_txtrange2); - run_domtest(elem_test_str, test_elems); + if (winetest_interactive || ! is_ie_hardened()) { + run_domtest(elem_test_str, test_elems); + }else { + skip("IE running in Enhanced Security Configuration\n"); + } run_domtest(doc_blank, test_create_elems); run_domtest(doc_blank, test_defaults); run_domtest(indent_test_str, test_indent); diff --git a/dlls/mshtml/tests/script.c b/dlls/mshtml/tests/script.c index 32f0974..30be52c 100644 --- a/dlls/mshtml/tests/script.c +++ b/dlls/mshtml/tests/script.c @@ -1137,16 +1137,41 @@ static void gecko_installer_workaround(BOOL disable) RegCloseKey(hkey); }
+/* Check if Internet Explorer is configured to run in "Enhanced Security Configuration" (aka hardened mode) */ +/* Note: this code is duplicated in dlls/mshtml/tests/dom.c, dlls/mshtml/tests/script.c and dlls/urlmon/tests/misc.c */ +static BOOL is_ie_hardened() +{ + HKEY zone_map; + DWORD ie_harden, type, size; + + ie_harden = 0; + if(RegOpenKeyEx(HKEY_CURRENT_USER, "Software\Microsoft\Windows\CurrentVersion\Internet Settings\ZoneMap", + 0, KEY_QUERY_VALUE, &zone_map) == ERROR_SUCCESS) { + size = sizeof(DWORD); + if (RegQueryValueEx(zone_map, "IEHarden", NULL, &type, (LPBYTE) &ie_harden, &size) != ERROR_SUCCESS || + type != REG_DWORD) { + ie_harden = 0; + } + RegCloseKey(zone_map); + } + + return ie_harden != 0; +} + START_TEST(script) { gecko_installer_workaround(TRUE); CoInitialize(NULL);
- if(register_script_engine()) { - test_simple_script(); - init_registry(FALSE); + if(winetest_interactive || ! is_ie_hardened()) { + if(register_script_engine()) { + test_simple_script(); + init_registry(FALSE); + }else { + skip("Could not register TestScript engine\n"); + } }else { - skip("Could not register TestScript engine\n"); + skip("IE running in Enhanced Security Configuration\n"); }
CoUninitialize();