Module: wine Branch: master Commit: 5bad12c6bc3072a2676f0d9edc9e3a48bca1ceaf URL: http://source.winehq.org/git/wine.git/?a=commit;h=5bad12c6bc3072a2676f0d9edc...
Author: Jacek Caban jacek@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); }