From 5bad12c6bc3072a2676f0d9edc9e3a48bca1ceaf Mon Sep 17 00:00:00 2001 From: Jacek Caban Date: Wed, 6 Feb 2008 17:43:08 +0100 Subject: [PATCH] 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 deletion(-) diff --git a/dlls/urlmon/tests/Makefile.in b/dlls/urlmon/tests/Makefile.in index 808e3a49b05..9cdff83484a 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 b65f4348124..dec6da88e33 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); }