urlmon: Fixed internet features tests on IE10.
This commit is contained in:
parent
e894c897d5
commit
72edda27a1
|
@ -23,6 +23,7 @@
|
||||||
#include <wine/test.h>
|
#include <wine/test.h>
|
||||||
#include <stdarg.h>
|
#include <stdarg.h>
|
||||||
#include <stddef.h>
|
#include <stddef.h>
|
||||||
|
#include <stdio.h>
|
||||||
|
|
||||||
#include "windef.h"
|
#include "windef.h"
|
||||||
#include "winbase.h"
|
#include "winbase.h"
|
||||||
|
@ -1730,6 +1731,8 @@ static void test_internet_feature_defaults(void) {
|
||||||
* call hasn't already been made for the specified Feature). Because of
|
* call hasn't already been made for the specified Feature). Because of
|
||||||
* this we skip these tests on IE 7 and earlier.
|
* this we skip these tests on IE 7 and earlier.
|
||||||
*/
|
*/
|
||||||
|
static const char* szFeatureControlKey = "Software\\Microsoft\\Internet Explorer\\Main\\FeatureControl";
|
||||||
|
|
||||||
static void test_internet_features_registry(void) {
|
static void test_internet_features_registry(void) {
|
||||||
HRESULT hres;
|
HRESULT hres;
|
||||||
DWORD res;
|
DWORD res;
|
||||||
|
@ -1739,9 +1742,7 @@ static void test_internet_features_registry(void) {
|
||||||
HKEY feature;
|
HKEY feature;
|
||||||
DWORD value, skip_zone;
|
DWORD value, skip_zone;
|
||||||
BOOL delete_feature_key = TRUE;
|
BOOL delete_feature_key = TRUE;
|
||||||
BOOL delete_feature_control_key = FALSE;
|
|
||||||
|
|
||||||
static const char* szFeatureControlKey = "Software\\Microsoft\\Internet Explorer\\Main\\FeatureControl";
|
|
||||||
static const char* szFeatureBehaviorsKey = "FEATURE_BEHAVIORS";
|
static const char* szFeatureBehaviorsKey = "FEATURE_BEHAVIORS";
|
||||||
static const char* szFeatureZoneElevationKey = "FEATURE_ZONE_ELEVATION";
|
static const char* szFeatureZoneElevationKey = "FEATURE_ZONE_ELEVATION";
|
||||||
|
|
||||||
|
@ -1757,17 +1758,13 @@ static void test_internet_features_registry(void) {
|
||||||
|
|
||||||
/* Some Windows machines don't have a FeatureControl key in HKCU. */
|
/* Some Windows machines don't have a FeatureControl key in HKCU. */
|
||||||
res = RegOpenKeyA(HKEY_CURRENT_USER, szFeatureControlKey, &feature_control);
|
res = RegOpenKeyA(HKEY_CURRENT_USER, szFeatureControlKey, &feature_control);
|
||||||
if(res != ERROR_SUCCESS) {
|
ok(res == ERROR_SUCCESS, "RegCreateKey failed: %d\n", res);
|
||||||
res = RegCreateKeyA(HKEY_CURRENT_USER, szFeatureControlKey, &feature_control);
|
|
||||||
ok(res == ERROR_SUCCESS, "RegCreateKey failed: %d\n", res);
|
|
||||||
delete_feature_control_key = TRUE;
|
|
||||||
}
|
|
||||||
|
|
||||||
res = RegOpenKeyA(feature_control, szFeatureBehaviorsKey, &feature);
|
res = RegOpenKeyA(feature_control, szFeatureBehaviorsKey, &feature);
|
||||||
if(res == ERROR_SUCCESS)
|
if(res == ERROR_SUCCESS) {
|
||||||
/* FEATURE_BEHAVIORS already existed, so don't delete it when we're done. */
|
/* FEATURE_BEHAVIORS already existed, so don't delete it when we're done. */
|
||||||
delete_feature_key = FALSE;
|
delete_feature_key = FALSE;
|
||||||
else {
|
}else {
|
||||||
res = RegCreateKeyA(feature_control, szFeatureBehaviorsKey, &feature);
|
res = RegCreateKeyA(feature_control, szFeatureBehaviorsKey, &feature);
|
||||||
ok(res == ERROR_SUCCESS, "RegCreateKey failed: %d\n", res);
|
ok(res == ERROR_SUCCESS, "RegCreateKey failed: %d\n", res);
|
||||||
}
|
}
|
||||||
|
@ -1796,8 +1793,6 @@ static void test_internet_features_registry(void) {
|
||||||
ok(hres == S_OK, "CoInternetSetFeatureEnabled failed: %08x\n", hres);
|
ok(hres == S_OK, "CoInternetSetFeatureEnabled failed: %08x\n", hres);
|
||||||
|
|
||||||
RegCloseKey(feature_control);
|
RegCloseKey(feature_control);
|
||||||
if(delete_feature_control_key)
|
|
||||||
RegDeleteKeyA(HKEY_CURRENT_USER, szFeatureControlKey);
|
|
||||||
|
|
||||||
res = RegOpenKeyA(HKEY_LOCAL_MACHINE, szFeatureControlKey, &feature_control);
|
res = RegOpenKeyA(HKEY_LOCAL_MACHINE, szFeatureControlKey, &feature_control);
|
||||||
ok(res == ERROR_SUCCESS, "RegOpenKey failed: %d\n", res);
|
ok(res == ERROR_SUCCESS, "RegOpenKey failed: %d\n", res);
|
||||||
|
@ -1891,11 +1886,40 @@ static void test_CoInternetSetFeatureEnabled(void) {
|
||||||
}
|
}
|
||||||
|
|
||||||
static void test_internet_features(void) {
|
static void test_internet_features(void) {
|
||||||
|
HKEY key;
|
||||||
|
DWORD res;
|
||||||
|
|
||||||
if(!pCoInternetIsFeatureEnabled || !pCoInternetSetFeatureEnabled) {
|
if(!pCoInternetIsFeatureEnabled || !pCoInternetSetFeatureEnabled) {
|
||||||
win_skip("Skipping internet feature tests, IE is too old\n");
|
win_skip("Skipping internet feature tests, IE is too old\n");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* IE10 takes FeatureControl key into account only if it's available upon process start. */
|
||||||
|
res = RegOpenKeyA(HKEY_CURRENT_USER, szFeatureControlKey, &key);
|
||||||
|
if(res != ERROR_SUCCESS) {
|
||||||
|
PROCESS_INFORMATION pi;
|
||||||
|
STARTUPINFOA si = { 0 };
|
||||||
|
char cmdline[MAX_PATH];
|
||||||
|
char **argv;
|
||||||
|
BOOL ret;
|
||||||
|
|
||||||
|
res = RegCreateKeyA(HKEY_CURRENT_USER, szFeatureControlKey, &key);
|
||||||
|
ok(res == ERROR_SUCCESS, "RegCreateKey failed: %d\n", res);
|
||||||
|
|
||||||
|
trace("Running features tests in a separated process.\n");
|
||||||
|
|
||||||
|
winetest_get_mainargs( &argv );
|
||||||
|
sprintf(cmdline, "\"%s\" %s internet_features", argv[0], argv[1]);
|
||||||
|
ret = CreateProcessA(argv[0], cmdline, NULL, NULL, FALSE, 0, NULL, NULL, &si, &pi);
|
||||||
|
ok(ret, "Could not create process: %u\n", GetLastError());
|
||||||
|
winetest_wait_child_process( pi.hProcess );
|
||||||
|
CloseHandle(pi.hThread);
|
||||||
|
CloseHandle(pi.hProcess);
|
||||||
|
|
||||||
|
RegDeleteKeyA(HKEY_CURRENT_USER, szFeatureControlKey);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
test_internet_features_registry();
|
test_internet_features_registry();
|
||||||
test_CoInternetIsFeatureEnabled();
|
test_CoInternetIsFeatureEnabled();
|
||||||
test_CoInternetSetFeatureEnabled();
|
test_CoInternetSetFeatureEnabled();
|
||||||
|
@ -1904,6 +1928,10 @@ static void test_internet_features(void) {
|
||||||
START_TEST(misc)
|
START_TEST(misc)
|
||||||
{
|
{
|
||||||
HMODULE hurlmon;
|
HMODULE hurlmon;
|
||||||
|
int argc;
|
||||||
|
char **argv;
|
||||||
|
|
||||||
|
argc = winetest_get_mainargs(&argv);
|
||||||
|
|
||||||
hurlmon = GetModuleHandleA("urlmon.dll");
|
hurlmon = GetModuleHandleA("urlmon.dll");
|
||||||
pCoInternetCompareUrl = (void *) GetProcAddress(hurlmon, "CoInternetCompareUrl");
|
pCoInternetCompareUrl = (void *) GetProcAddress(hurlmon, "CoInternetCompareUrl");
|
||||||
|
@ -1930,23 +1958,26 @@ START_TEST(misc)
|
||||||
|
|
||||||
OleInitialize(NULL);
|
OleInitialize(NULL);
|
||||||
|
|
||||||
register_protocols();
|
if(argc <= 2 || strcmp(argv[2], "internet_features")) {
|
||||||
|
register_protocols();
|
||||||
|
|
||||||
|
test_CreateFormatEnum();
|
||||||
|
test_RegisterFormatEnumerator();
|
||||||
|
test_CoInternetParseUrl();
|
||||||
|
test_CoInternetCompareUrl();
|
||||||
|
test_CoInternetQueryInfo();
|
||||||
|
test_FindMimeFromData();
|
||||||
|
test_NameSpace();
|
||||||
|
test_MimeFilter();
|
||||||
|
test_ReleaseBindInfo();
|
||||||
|
test_CopyStgMedium();
|
||||||
|
test_CopyBindInfo();
|
||||||
|
test_UrlMkGetSessionOption();
|
||||||
|
test_user_agent();
|
||||||
|
test_MkParseDisplayNameEx();
|
||||||
|
test_IsValidURL();
|
||||||
|
}
|
||||||
|
|
||||||
test_CreateFormatEnum();
|
|
||||||
test_RegisterFormatEnumerator();
|
|
||||||
test_CoInternetParseUrl();
|
|
||||||
test_CoInternetCompareUrl();
|
|
||||||
test_CoInternetQueryInfo();
|
|
||||||
test_FindMimeFromData();
|
|
||||||
test_NameSpace();
|
|
||||||
test_MimeFilter();
|
|
||||||
test_ReleaseBindInfo();
|
|
||||||
test_CopyStgMedium();
|
|
||||||
test_CopyBindInfo();
|
|
||||||
test_UrlMkGetSessionOption();
|
|
||||||
test_user_agent();
|
|
||||||
test_MkParseDisplayNameEx();
|
|
||||||
test_IsValidURL();
|
|
||||||
test_internet_features();
|
test_internet_features();
|
||||||
|
|
||||||
OleUninitialize();
|
OleUninitialize();
|
||||||
|
|
Loading…
Reference in New Issue