Jacek Caban : urlmon: Added gecko_installer_workaround to url.c tests.

Alexandre Julliard julliard at winehq.org
Thu Feb 7 07:59:27 CST 2008


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

Author: Jacek Caban <jacek at codeweavers.com>
Date:   Wed Feb  6 17:43:08 2008 +0100

urlmon: Added gecko_installer_workaround to url.c tests.

---

 dlls/urlmon/tests/Makefile.in |    2 +-
 dlls/urlmon/tests/url.c       |   34 ++++++++++++++++++++++++++++++++++
 2 files changed, 35 insertions(+), 1 deletions(-)

diff --git a/dlls/urlmon/tests/Makefile.in b/dlls/urlmon/tests/Makefile.in
index 808e3a4..9cdff83 100644
--- a/dlls/urlmon/tests/Makefile.in
+++ b/dlls/urlmon/tests/Makefile.in
@@ -3,7 +3,7 @@ TOPOBJDIR = ../../..
 SRCDIR    = @srcdir@
 VPATH     = @srcdir@
 TESTDLL   = urlmon.dll
-IMPORTS   = urlmon user32 kernel32 ole32
+IMPORTS   = urlmon ole32 user32 advapi32 kernel32
 EXTRALIBS = -luuid
 
 CTESTS = \
diff --git a/dlls/urlmon/tests/url.c b/dlls/urlmon/tests/url.c
index b65f434..dec6da8 100644
--- a/dlls/urlmon/tests/url.c
+++ b/dlls/urlmon/tests/url.c
@@ -2395,8 +2395,40 @@ static void test_BindToStorage_fail(void)
     test_ReportResult(S_FALSE);
 }
 
+static void gecko_installer_workaround(BOOL disable)
+{
+    HKEY hkey;
+    DWORD res;
+
+    static BOOL has_url = FALSE;
+    static char url[2048];
+
+    if(!disable && !has_url)
+        return;
+
+    res = RegOpenKey(HKEY_CURRENT_USER, "Software\\Wine\\MSHTML", &hkey);
+    if(res != ERROR_SUCCESS)
+        return;
+
+    if(disable) {
+        DWORD type, size = sizeof(url);
+
+        res = RegQueryValueEx(hkey, "GeckoUrl", NULL, &type, (PVOID)url, &size);
+        if(res == ERROR_SUCCESS && type == REG_SZ)
+            has_url = TRUE;
+
+        RegDeleteValue(hkey, "GeckoUrl");
+    }else {
+        RegSetValueEx(hkey, "GeckoUrl", 0, REG_SZ, (PVOID)url, lstrlenA(url)+1);
+    }
+
+    RegCloseKey(hkey);
+}
+
 START_TEST(url)
 {
+    gecko_installer_workaround(TRUE);
+
     complete_event = CreateEvent(NULL, FALSE, FALSE, NULL);
     complete_event2 = CreateEvent(NULL, FALSE, FALSE, NULL);
     thread_id = GetCurrentThreadId();
@@ -2508,4 +2540,6 @@ START_TEST(url)
     CloseHandle(complete_event);
     CloseHandle(complete_event2);
     CoUninitialize();
+
+    gecko_installer_workaround(FALSE);
 }




More information about the wine-cvs mailing list