urlmon/tests: Windows 10 has changed the behaviour of domain detection.
The changes seem to be for the better, so the new values are not marked as broken. Signed-off-by: Huw Davies <huw@codeweavers.com> Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
parent
e0ad2c3e5f
commit
df6143325a
|
@ -115,6 +115,8 @@ typedef struct _uri_str_property {
|
||||||
HRESULT expected;
|
HRESULT expected;
|
||||||
BOOL todo;
|
BOOL todo;
|
||||||
const char* broken_value;
|
const char* broken_value;
|
||||||
|
const char* value2;
|
||||||
|
HRESULT expected2;
|
||||||
} uri_str_property;
|
} uri_str_property;
|
||||||
|
|
||||||
typedef struct _uri_dword_property {
|
typedef struct _uri_dword_property {
|
||||||
|
@ -1957,7 +1959,7 @@ static const uri_properties uri_tests[] = {
|
||||||
{"http://google.com.uk/",S_OK,FALSE},
|
{"http://google.com.uk/",S_OK,FALSE},
|
||||||
{"google.com.uk",S_OK,FALSE},
|
{"google.com.uk",S_OK,FALSE},
|
||||||
{"http://google.com.uk/",S_OK,FALSE},
|
{"http://google.com.uk/",S_OK,FALSE},
|
||||||
{"google.com.uk",S_OK,FALSE},
|
{"google.com.uk",S_OK,FALSE,NULL,"com.uk",S_OK}, /* cf. google.co.uk below */
|
||||||
{"",S_FALSE,FALSE},
|
{"",S_FALSE,FALSE},
|
||||||
{"",S_FALSE,FALSE},
|
{"",S_FALSE,FALSE},
|
||||||
{"google.com.uk",S_OK,FALSE},
|
{"google.com.uk",S_OK,FALSE},
|
||||||
|
@ -1977,6 +1979,31 @@ static const uri_properties uri_tests[] = {
|
||||||
{URLZONE_INVALID,E_NOTIMPL,FALSE}
|
{URLZONE_INVALID,E_NOTIMPL,FALSE}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
{ "http://google.co.uk", 0, S_OK, FALSE,
|
||||||
|
{
|
||||||
|
{"http://google.co.uk/",S_OK,FALSE},
|
||||||
|
{"google.co.uk",S_OK,FALSE},
|
||||||
|
{"http://google.co.uk/",S_OK,FALSE},
|
||||||
|
{"google.co.uk",S_OK,FALSE},
|
||||||
|
{"",S_FALSE,FALSE},
|
||||||
|
{"",S_FALSE,FALSE},
|
||||||
|
{"google.co.uk",S_OK,FALSE},
|
||||||
|
{"",S_FALSE,FALSE},
|
||||||
|
{"/",S_OK,FALSE},
|
||||||
|
{"/",S_OK,FALSE},
|
||||||
|
{"",S_FALSE,FALSE},
|
||||||
|
{"http://google.co.uk",S_OK,FALSE},
|
||||||
|
{"http",S_OK,FALSE},
|
||||||
|
{"",S_FALSE,FALSE},
|
||||||
|
{"",S_FALSE,FALSE}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
{Uri_HOST_DNS,S_OK,FALSE},
|
||||||
|
{80,S_OK,FALSE},
|
||||||
|
{URL_SCHEME_HTTP,S_OK,FALSE},
|
||||||
|
{URLZONE_INVALID,E_NOTIMPL,FALSE}
|
||||||
|
}
|
||||||
|
},
|
||||||
{ "http://google.com.com", 0, S_OK, FALSE,
|
{ "http://google.com.com", 0, S_OK, FALSE,
|
||||||
{
|
{
|
||||||
{"http://google.com.com/",S_OK,FALSE},
|
{"http://google.com.com/",S_OK,FALSE},
|
||||||
|
@ -2007,7 +2034,7 @@ static const uri_properties uri_tests[] = {
|
||||||
{"http://google.uk.1/",S_OK,FALSE},
|
{"http://google.uk.1/",S_OK,FALSE},
|
||||||
{"google.uk.1",S_OK,FALSE},
|
{"google.uk.1",S_OK,FALSE},
|
||||||
{"http://google.uk.1/",S_OK,FALSE},
|
{"http://google.uk.1/",S_OK,FALSE},
|
||||||
{"google.uk.1",S_OK,FALSE},
|
{"google.uk.1",S_OK,FALSE,NULL,"uk.1",S_OK},
|
||||||
{"",S_FALSE,FALSE},
|
{"",S_FALSE,FALSE},
|
||||||
{"",S_FALSE,FALSE},
|
{"",S_FALSE,FALSE},
|
||||||
{"google.uk.1",S_OK,FALSE},
|
{"google.uk.1",S_OK,FALSE},
|
||||||
|
@ -2083,7 +2110,7 @@ static const uri_properties uri_tests[] = {
|
||||||
{"http://.uk/",S_OK,FALSE},
|
{"http://.uk/",S_OK,FALSE},
|
||||||
{".uk",S_OK,FALSE},
|
{".uk",S_OK,FALSE},
|
||||||
{"http://.uk/",S_OK,FALSE},
|
{"http://.uk/",S_OK,FALSE},
|
||||||
{"",S_FALSE,FALSE},
|
{"",S_FALSE,FALSE,NULL,".uk",S_OK},
|
||||||
{"",S_FALSE,FALSE},
|
{"",S_FALSE,FALSE},
|
||||||
{"",S_FALSE,FALSE},
|
{"",S_FALSE,FALSE},
|
||||||
{".uk",S_OK,FALSE},
|
{".uk",S_OK,FALSE},
|
||||||
|
@ -2108,7 +2135,7 @@ static const uri_properties uri_tests[] = {
|
||||||
{"http://www.co.google.com.[]/",S_OK,FALSE},
|
{"http://www.co.google.com.[]/",S_OK,FALSE},
|
||||||
{"www.co.google.com.[]",S_OK,FALSE},
|
{"www.co.google.com.[]",S_OK,FALSE},
|
||||||
{"http://www.co.google.com.[]/",S_OK,FALSE},
|
{"http://www.co.google.com.[]/",S_OK,FALSE},
|
||||||
{"google.com.[]",S_OK,FALSE},
|
{"google.com.[]",S_OK,FALSE,NULL,"com.[]",S_OK},
|
||||||
{"",S_FALSE,FALSE},
|
{"",S_FALSE,FALSE},
|
||||||
{"",S_FALSE,FALSE},
|
{"",S_FALSE,FALSE},
|
||||||
{"www.co.google.com.[]",S_OK,FALSE},
|
{"www.co.google.com.[]",S_OK,FALSE},
|
||||||
|
@ -7318,6 +7345,7 @@ typedef struct _uri_parse_test {
|
||||||
const char *property;
|
const char *property;
|
||||||
HRESULT expected;
|
HRESULT expected;
|
||||||
BOOL todo;
|
BOOL todo;
|
||||||
|
const char *property2;
|
||||||
} uri_parse_test;
|
} uri_parse_test;
|
||||||
|
|
||||||
static const uri_parse_test uri_parse_tests[] = {
|
static const uri_parse_test uri_parse_tests[] = {
|
||||||
|
@ -7381,7 +7409,7 @@ static const uri_parse_test uri_parse_tests[] = {
|
||||||
{"file://server/test",0,PARSE_SITE,0,"server",S_OK,FALSE},
|
{"file://server/test",0,PARSE_SITE,0,"server",S_OK,FALSE},
|
||||||
|
|
||||||
/* PARSE_DOMAIN tests. */
|
/* PARSE_DOMAIN tests. */
|
||||||
{"http://google.com.uk/",0,PARSE_DOMAIN,0,"google.com.uk",S_OK,FALSE},
|
{"http://google.com.uk/",0,PARSE_DOMAIN,0,"google.com.uk",S_OK,FALSE,"com.uk"},
|
||||||
{"http://google.com.com/",0,PARSE_DOMAIN,0,"com.com",S_OK,FALSE},
|
{"http://google.com.com/",0,PARSE_DOMAIN,0,"com.com",S_OK,FALSE},
|
||||||
{"test/test",Uri_CREATE_ALLOW_RELATIVE,PARSE_DOMAIN,0,"",S_OK,FALSE},
|
{"test/test",Uri_CREATE_ALLOW_RELATIVE,PARSE_DOMAIN,0,"",S_OK,FALSE},
|
||||||
{"file://server/test",0,PARSE_DOMAIN,0,"",S_OK,FALSE},
|
{"file://server/test",0,PARSE_DOMAIN,0,"",S_OK,FALSE},
|
||||||
|
@ -7615,9 +7643,12 @@ static void test_IUri_GetPropertyBSTR(void) {
|
||||||
|
|
||||||
hr = IUri_GetPropertyBSTR(uri, j, &received, 0);
|
hr = IUri_GetPropertyBSTR(uri, j, &received, 0);
|
||||||
todo_wine_if(prop.todo) {
|
todo_wine_if(prop.todo) {
|
||||||
ok(hr == prop.expected, "GetPropertyBSTR returned 0x%08x, expected 0x%08x. On uri_tests[%d].str_props[%d].\n",
|
ok(hr == prop.expected ||
|
||||||
|
(prop.value2 && hr == prop.expected2),
|
||||||
|
"GetPropertyBSTR returned 0x%08x, expected 0x%08x. On uri_tests[%d].str_props[%d].\n",
|
||||||
hr, prop.expected, i, j);
|
hr, prop.expected, i, j);
|
||||||
ok(!strcmp_aw(prop.value, received) || broken(prop.broken_value && !strcmp_aw(prop.broken_value, received)),
|
ok(!strcmp_aw(prop.value, received) || (prop.value2 && !strcmp_aw(prop.value2, received)) ||
|
||||||
|
broken(prop.broken_value && !strcmp_aw(prop.broken_value, received)),
|
||||||
"Expected %s but got %s on uri_tests[%d].str_props[%d].\n",
|
"Expected %s but got %s on uri_tests[%d].str_props[%d].\n",
|
||||||
prop.value, wine_dbgstr_w(received), i, j);
|
prop.value, wine_dbgstr_w(received), i, j);
|
||||||
}
|
}
|
||||||
|
@ -7800,9 +7831,11 @@ static void test_IUri_GetStrProperties(void) {
|
||||||
prop = test.str_props[Uri_PROPERTY_DOMAIN];
|
prop = test.str_props[Uri_PROPERTY_DOMAIN];
|
||||||
hr = IUri_GetDomain(uri, &received);
|
hr = IUri_GetDomain(uri, &received);
|
||||||
todo_wine_if(prop.todo) {
|
todo_wine_if(prop.todo) {
|
||||||
ok(hr == prop.expected, "Error: GetDomain returned 0x%08x, expected 0x%08x on uri_tests[%d].\n",
|
ok(hr == prop.expected || (prop.value2 && hr == prop.expected2),
|
||||||
|
"Error: GetDomain returned 0x%08x, expected 0x%08x on uri_tests[%d].\n",
|
||||||
hr, prop.expected, i);
|
hr, prop.expected, i);
|
||||||
ok(!strcmp_aw(prop.value, received), "Error: Expected %s but got %s on uri_tests[%d].\n",
|
ok(!strcmp_aw(prop.value, received) || (prop.value2 && !strcmp_aw(prop.value2, received)),
|
||||||
|
"Error: Expected %s but got %s on uri_tests[%d].\n",
|
||||||
prop.value, wine_dbgstr_w(received), i);
|
prop.value, wine_dbgstr_w(received), i);
|
||||||
}
|
}
|
||||||
SysFreeString(received);
|
SysFreeString(received);
|
||||||
|
@ -8080,9 +8113,11 @@ static void test_IUri_GetPropertyLength(void) {
|
||||||
|
|
||||||
hr = IUri_GetPropertyLength(uri, j, &receivedLen, 0);
|
hr = IUri_GetPropertyLength(uri, j, &receivedLen, 0);
|
||||||
todo_wine_if(prop.todo) {
|
todo_wine_if(prop.todo) {
|
||||||
ok(hr == prop.expected, "Error: GetPropertyLength returned 0x%08x, expected 0x%08x on uri_tests[%d].str_props[%d].\n",
|
ok(hr == prop.expected || (prop.value2 && hr == prop.expected2),
|
||||||
|
"Error: GetPropertyLength returned 0x%08x, expected 0x%08x on uri_tests[%d].str_props[%d].\n",
|
||||||
hr, prop.expected, i, j);
|
hr, prop.expected, i, j);
|
||||||
ok(receivedLen == expectedLen || broken(prop.broken_value && receivedLen == lstrlenA(prop.broken_value)),
|
ok(receivedLen == expectedLen || (prop.value2 && receivedLen == lstrlenA(prop.value2)) ||
|
||||||
|
broken(prop.broken_value && receivedLen == lstrlenA(prop.broken_value)),
|
||||||
"Error: Expected a length of %d but got %d on uri_tests[%d].str_props[%d].\n",
|
"Error: Expected a length of %d but got %d on uri_tests[%d].str_props[%d].\n",
|
||||||
expectedLen, receivedLen, i, j);
|
expectedLen, receivedLen, i, j);
|
||||||
}
|
}
|
||||||
|
@ -8095,18 +8130,25 @@ static void test_IUri_GetPropertyLength(void) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static DWORD compute_expected_props(uri_properties *test)
|
static DWORD compute_expected_props(uri_properties *test, DWORD *mask)
|
||||||
{
|
{
|
||||||
DWORD ret = 0, i;
|
DWORD ret = 0, i;
|
||||||
|
|
||||||
|
*mask = 0;
|
||||||
|
|
||||||
for(i=Uri_PROPERTY_STRING_START; i <= Uri_PROPERTY_STRING_LAST; i++) {
|
for(i=Uri_PROPERTY_STRING_START; i <= Uri_PROPERTY_STRING_LAST; i++) {
|
||||||
if(test->str_props[i-Uri_PROPERTY_STRING_START].expected == S_OK)
|
if(test->str_props[i-Uri_PROPERTY_STRING_START].expected == S_OK)
|
||||||
ret |= 1<<i;
|
ret |= 1<<i;
|
||||||
|
if(test->str_props[i-Uri_PROPERTY_STRING_START].value2 == NULL ||
|
||||||
|
test->str_props[i-Uri_PROPERTY_STRING_START].expected ==
|
||||||
|
test->str_props[i-Uri_PROPERTY_STRING_START].expected2)
|
||||||
|
*mask |= 1<<i;
|
||||||
}
|
}
|
||||||
|
|
||||||
for(i=Uri_PROPERTY_DWORD_START; i <= Uri_PROPERTY_DWORD_LAST; i++) {
|
for(i=Uri_PROPERTY_DWORD_START; i <= Uri_PROPERTY_DWORD_LAST; i++) {
|
||||||
if(test->dword_props[i-Uri_PROPERTY_DWORD_START].expected == S_OK)
|
if(test->dword_props[i-Uri_PROPERTY_DWORD_START].expected == S_OK)
|
||||||
ret |= 1<<i;
|
ret |= 1<<i;
|
||||||
|
*mask |= 1<<i;
|
||||||
}
|
}
|
||||||
|
|
||||||
return ret;
|
return ret;
|
||||||
|
@ -8136,20 +8178,22 @@ static void test_IUri_GetProperties(void) {
|
||||||
ok(hr == test.create_expected, "Error: CreateUri returned 0x%08x, expected 0x%08x.\n", hr, test.create_expected);
|
ok(hr == test.create_expected, "Error: CreateUri returned 0x%08x, expected 0x%08x.\n", hr, test.create_expected);
|
||||||
|
|
||||||
if(SUCCEEDED(hr)) {
|
if(SUCCEEDED(hr)) {
|
||||||
DWORD received = 0, expected_props;
|
DWORD received = 0, expected_props, mask;
|
||||||
DWORD j;
|
DWORD j;
|
||||||
|
|
||||||
hr = IUri_GetProperties(uri, &received);
|
hr = IUri_GetProperties(uri, &received);
|
||||||
ok(hr == S_OK, "Error: GetProperties returned 0x%08x, expected 0x%08x.\n", hr, S_OK);
|
ok(hr == S_OK, "Error: GetProperties returned 0x%08x, expected 0x%08x.\n", hr, S_OK);
|
||||||
|
|
||||||
expected_props = compute_expected_props(&test);
|
expected_props = compute_expected_props(&test, &mask);
|
||||||
|
|
||||||
for(j = 0; j <= Uri_PROPERTY_DWORD_LAST; ++j) {
|
for(j = 0; j <= Uri_PROPERTY_DWORD_LAST; ++j) {
|
||||||
/* (1 << j) converts a Uri_PROPERTY to its corresponding Uri_HAS_* flag mask. */
|
/* (1 << j) converts a Uri_PROPERTY to its corresponding Uri_HAS_* flag mask. */
|
||||||
if(expected_props & (1 << j))
|
if(mask & (1 << j)) {
|
||||||
ok(received & (1 << j), "Error: Expected flag for property %d on uri_tests[%d].\n", j, i);
|
if(expected_props & (1 << j))
|
||||||
else
|
ok(received & (1 << j), "Error: Expected flag for property %d on uri_tests[%d].\n", j, i);
|
||||||
ok(!(received & (1 << j)), "Error: Received flag for property %d when not expected on uri_tests[%d].\n", j, i);
|
else
|
||||||
|
ok(!(received & (1 << j)), "Error: Received flag for property %d when not expected on uri_tests[%d].\n", j, i);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -8184,9 +8228,9 @@ static void test_IUri_HasProperty(void) {
|
||||||
ok(hr == test.create_expected, "Error: CreateUri returned 0x%08x, expected 0x%08x.\n", hr, test.create_expected);
|
ok(hr == test.create_expected, "Error: CreateUri returned 0x%08x, expected 0x%08x.\n", hr, test.create_expected);
|
||||||
|
|
||||||
if(SUCCEEDED(hr)) {
|
if(SUCCEEDED(hr)) {
|
||||||
DWORD expected_props, j;
|
DWORD expected_props, j, mask;
|
||||||
|
|
||||||
expected_props = compute_expected_props(&test);
|
expected_props = compute_expected_props(&test, &mask);
|
||||||
|
|
||||||
for(j = 0; j <= Uri_PROPERTY_DWORD_LAST; ++j) {
|
for(j = 0; j <= Uri_PROPERTY_DWORD_LAST; ++j) {
|
||||||
/* Assign -1, then explicitly test for TRUE or FALSE later. */
|
/* Assign -1, then explicitly test for TRUE or FALSE later. */
|
||||||
|
@ -8196,10 +8240,12 @@ static void test_IUri_HasProperty(void) {
|
||||||
ok(hr == S_OK, "Error: HasProperty returned 0x%08x, expected 0x%08x for property %d on uri_tests[%d].\n",
|
ok(hr == S_OK, "Error: HasProperty returned 0x%08x, expected 0x%08x for property %d on uri_tests[%d].\n",
|
||||||
hr, S_OK, j, i);
|
hr, S_OK, j, i);
|
||||||
|
|
||||||
if(expected_props & (1 << j)) {
|
if(mask & (1 << j)) {
|
||||||
ok(received == TRUE, "Error: Expected to have property %d on uri_tests[%d].\n", j, i);
|
if(expected_props & (1 << j)) {
|
||||||
} else {
|
ok(received == TRUE, "Error: Expected to have property %d on uri_tests[%d].\n", j, i);
|
||||||
ok(received == FALSE, "Error: Wasn't expecting to have property %d on uri_tests[%d].\n", j, i);
|
} else {
|
||||||
|
ok(received == FALSE, "Error: Wasn't expecting to have property %d on uri_tests[%d].\n", j, i);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -10518,10 +10564,10 @@ static void test_CoInternetParseIUri(void) {
|
||||||
hr, test.expected, i);
|
hr, test.expected, i);
|
||||||
if(SUCCEEDED(hr)) {
|
if(SUCCEEDED(hr)) {
|
||||||
DWORD len = lstrlenA(test.property);
|
DWORD len = lstrlenA(test.property);
|
||||||
ok(!strcmp_aw(test.property, result),
|
ok(!strcmp_aw(test.property, result) || (test.property2 && !strcmp_aw(test.property2, result)),
|
||||||
"Error: Expected %s but got %s instead on uri_parse_tests[%d].\n",
|
"Error: Expected %s but got %s instead on uri_parse_tests[%d].\n",
|
||||||
test.property, wine_dbgstr_w(result), i);
|
test.property, wine_dbgstr_w(result), i);
|
||||||
ok(len == result_len,
|
ok(len == result_len || (test.property2 && lstrlenA(test.property2) == result_len),
|
||||||
"Error: Expected %d, but got %d instead on uri_parse_tests[%d].\n",
|
"Error: Expected %d, but got %d instead on uri_parse_tests[%d].\n",
|
||||||
len, result_len, i);
|
len, result_len, i);
|
||||||
} else {
|
} else {
|
||||||
|
|
Loading…
Reference in New Issue