urlmon: Added gecko_installer_workaround to url.c tests.

This commit is contained in:
Jacek Caban 2008-02-06 17:43:08 +01:00 committed by Alexandre Julliard
parent e00840cf57
commit 5bad12c6bc
2 changed files with 35 additions and 1 deletions

View File

@ -3,7 +3,7 @@ TOPOBJDIR = ../../..
SRCDIR = @srcdir@ SRCDIR = @srcdir@
VPATH = @srcdir@ VPATH = @srcdir@
TESTDLL = urlmon.dll TESTDLL = urlmon.dll
IMPORTS = urlmon user32 kernel32 ole32 IMPORTS = urlmon ole32 user32 advapi32 kernel32
EXTRALIBS = -luuid EXTRALIBS = -luuid
CTESTS = \ CTESTS = \

View File

@ -2395,8 +2395,40 @@ static void test_BindToStorage_fail(void)
test_ReportResult(S_FALSE); 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) START_TEST(url)
{ {
gecko_installer_workaround(TRUE);
complete_event = CreateEvent(NULL, FALSE, FALSE, NULL); complete_event = CreateEvent(NULL, FALSE, FALSE, NULL);
complete_event2 = CreateEvent(NULL, FALSE, FALSE, NULL); complete_event2 = CreateEvent(NULL, FALSE, FALSE, NULL);
thread_id = GetCurrentThreadId(); thread_id = GetCurrentThreadId();
@ -2508,4 +2540,6 @@ START_TEST(url)
CloseHandle(complete_event); CloseHandle(complete_event);
CloseHandle(complete_event2); CloseHandle(complete_event2);
CoUninitialize(); CoUninitialize();
gecko_installer_workaround(FALSE);
} }