urlmon/tests: Restructured IUriBuilder tests so they can accept IUriBuilders which don't have a base IUri.

Turns out an IUriBuilder doesn't need a valid IUri set as its IUri
property for the CreateUri* functions to succeed.
This commit is contained in:
Thomas Mullaly 2010-09-07 21:22:24 -04:00 committed by Alexandre Julliard
parent 84987e05b5
commit dd0ea1cc29
1 changed files with 384 additions and 256 deletions

View File

@ -6784,6 +6784,21 @@ static void test_IUriBuilder_GetFragment(IUriBuilder *builder, const uri_builder
hr, S_OK, test_index);
}
if(SUCCEEDED(hr)) {
if(!uri) {
received = (void*) 0xdeadbeef;
len = -1;
hr = IUriBuilder_GetFragment(builder, &len, &received);
ok(hr == S_FALSE,
"Error: IUriBuilder_GetFragment returned 0x%08x, expected 0x%08x on uri_builder_tests[%d].\n",
hr, S_FALSE, test_index);
if(SUCCEEDED(hr)) {
ok(!len, "Error: Expected len to be 0, but was %d instead on uri_builder_tests[%d].\n",
len, test_index);
ok(!received, "Error: Expected received to be NULL, but was %p instead on uri_builder_tests[%d].\n",
received, test_index);
}
} else {
BOOL has_prop = FALSE;
BSTR expected = NULL;
@ -6818,6 +6833,7 @@ static void test_IUriBuilder_GetFragment(IUriBuilder *builder, const uri_builder
}
SysFreeString(expected);
}
}
if(uri) IUri_Release(uri);
}
}
@ -6879,6 +6895,21 @@ static void test_IUriBuilder_GetHost(IUriBuilder *builder, const uri_builder_tes
hr, S_OK, test_index);
}
if(SUCCEEDED(hr)) {
if(!uri) {
received = (void*) 0xdeadbeef;
len = -1;
hr = IUriBuilder_GetHost(builder, &len, &received);
ok(hr == S_FALSE,
"Error: IUriBuilder_GetHost returned 0x%08x, expected 0x%08x on uri_builder_tests[%d].\n",
hr, S_FALSE, test_index);
if(SUCCEEDED(hr)) {
ok(!len, "Error: Expected len to be 0, but was %d instead on uri_builder_tests[%d].\n",
len, test_index);
ok(!received, "Error: Expected received to be NULL, but was %p instead on uri_builder_tests[%d].\n",
received, test_index);
}
} else {
BOOL has_prop = FALSE;
BSTR expected = NULL;
@ -6913,6 +6944,7 @@ static void test_IUriBuilder_GetHost(IUriBuilder *builder, const uri_builder_tes
}
SysFreeString(expected);
}
}
if(uri) IUri_Release(uri);
}
}
@ -6974,6 +7006,21 @@ static void test_IUriBuilder_GetPassword(IUriBuilder *builder, const uri_builder
hr, S_OK, test_index);
}
if(SUCCEEDED(hr)) {
if(!uri) {
received = (void*) 0xdeadbeef;
len = -1;
hr = IUriBuilder_GetPassword(builder, &len, &received);
ok(hr == S_FALSE,
"Error: IUriBuilder_GetPassword returned 0x%08x, expected 0x%08x on uri_builder_tests[%d].\n",
hr, S_FALSE, test_index);
if(SUCCEEDED(hr)) {
ok(!len, "Error: Expected len to be 0, but was %d instead on uri_builder_tests[%d].\n",
len, test_index);
ok(!received, "Error: Expected received to be NULL, but was %p instead on uri_builder_tests[%d].\n",
received, test_index);
}
} else {
BOOL has_prop = FALSE;
BSTR expected = NULL;
@ -7008,6 +7055,7 @@ static void test_IUriBuilder_GetPassword(IUriBuilder *builder, const uri_builder
}
SysFreeString(expected);
}
}
if(uri) IUri_Release(uri);
}
}
@ -7069,6 +7117,21 @@ static void test_IUriBuilder_GetPath(IUriBuilder *builder, const uri_builder_tes
hr, S_OK, test_index);
}
if(SUCCEEDED(hr)) {
if(!uri) {
received = (void*) 0xdeadbeef;
len = -1;
hr = IUriBuilder_GetPath(builder, &len, &received);
ok(hr == S_FALSE,
"Error: IUriBuilder_GetPath returned 0x%08x, expected 0x%08x on uri_builder_tests[%d].\n",
hr, S_FALSE, test_index);
if(SUCCEEDED(hr)) {
ok(!len, "Error: Expected len to be 0, but was %d instead on uri_builder_tests[%d].\n",
len, test_index);
ok(!received, "Error: Expected received to be NULL, but was %p instead on uri_builder_tests[%d].\n",
received, test_index);
}
} else {
BOOL has_prop = FALSE;
BSTR expected = NULL;
@ -7103,6 +7166,7 @@ static void test_IUriBuilder_GetPath(IUriBuilder *builder, const uri_builder_tes
}
SysFreeString(expected);
}
}
if(uri) IUri_Release(uri);
}
}
@ -7156,6 +7220,19 @@ static void test_IUriBuilder_GetPort(IUriBuilder *builder, const uri_builder_tes
hr, S_OK, test_index);
}
if(SUCCEEDED(hr)) {
if(!uri) {
hr = IUriBuilder_GetPort(builder, &has_port, &received);
ok(hr == S_OK,
"Error: IUriBuilder_GetPort returned 0x%08x, expected 0x%08x on uri_builder_tests[%d].\n",
hr, S_OK, test_index);
if(SUCCEEDED(hr)) {
ok(has_port == FALSE,
"Error: Expected has_port to be FALSE, but was %d instead on uri_builder_tests[%d].\n",
has_port, test_index);
ok(!received, "Error: Expected received to be 0, but was %d instead on uri_builder_tests[%d].\n",
received, test_index);
}
} else {
DWORD expected;
hr = IUri_GetPort(uri, &expected);
@ -7176,6 +7253,7 @@ static void test_IUriBuilder_GetPort(IUriBuilder *builder, const uri_builder_tes
expected, received, test_index);
}
}
}
if(uri) IUri_Release(uri);
}
}
@ -7237,6 +7315,21 @@ static void test_IUriBuilder_GetQuery(IUriBuilder *builder, const uri_builder_te
hr, S_OK, test_index);
}
if(SUCCEEDED(hr)) {
if(!uri) {
received = (void*) 0xdeadbeef;
len = -1;
hr = IUriBuilder_GetQuery(builder, &len, &received);
ok(hr == S_FALSE,
"Error: IUriBuilder_GetQuery returned 0x%08x, expected 0x%08x on uri_builder_tests[%d].\n",
hr, S_FALSE, test_index);
if(SUCCEEDED(hr)) {
ok(!len, "Error: Expected len to be 0, but was %d instead on uri_builder_tests[%d].\n",
len, test_index);
ok(!received, "Error: Expected received to be NULL, but was %p instead on uri_builder_tests[%d].\n",
received, test_index);
}
} else {
BOOL has_prop = FALSE;
BSTR expected = NULL;
@ -7271,6 +7364,7 @@ static void test_IUriBuilder_GetQuery(IUriBuilder *builder, const uri_builder_te
}
SysFreeString(expected);
}
}
if(uri) IUri_Release(uri);
}
}
@ -7332,6 +7426,21 @@ static void test_IUriBuilder_GetSchemeName(IUriBuilder *builder, const uri_build
hr, S_OK, test_index);
}
if(SUCCEEDED(hr)) {
if(!uri) {
received = (void*) 0xdeadbeef;
len = -1;
hr = IUriBuilder_GetSchemeName(builder, &len, &received);
ok(hr == S_FALSE,
"Error: IUriBuilder_GetSchemeName returned 0x%08x, expected 0x%08x on uri_builder_tests[%d].\n",
hr, S_FALSE, test_index);
if(SUCCEEDED(hr)) {
ok(!len, "Error: Expected len to be 0, but was %d instead on uri_builder_tests[%d].\n",
len, test_index);
ok(!received, "Error: Expected received to be NULL, but was %p instead on uri_builder_tests[%d].\n",
received, test_index);
}
} else {
BOOL has_prop = FALSE;
BSTR expected = NULL;
@ -7366,6 +7475,7 @@ static void test_IUriBuilder_GetSchemeName(IUriBuilder *builder, const uri_build
}
SysFreeString(expected);
}
}
if(uri) IUri_Release(uri);
}
}
@ -7427,8 +7537,23 @@ static void test_IUriBuilder_GetUserName(IUriBuilder *builder, const uri_builder
hr, S_OK, test_index);
}
if(SUCCEEDED(hr)) {
BOOL has_prop = FALSE;
if(!uri) {
received = (void*) 0xdeadbeef;
len = -1;
hr = IUriBuilder_GetUserName(builder, &len, &received);
ok(hr == S_FALSE,
"Error: IUriBuilder_GetUserName returned 0x%08x, expected 0x%08x on uri_builder_tests[%d].\n",
hr, S_FALSE, test_index);
if(SUCCEEDED(hr)) {
ok(!len, "Error: Expected len to be 0, but was %d instead on uri_builder_tests[%d].\n",
len, test_index);
ok(!received, "Error: Expected received to be NULL, but was %p instead on uri_builder_tests[%d].\n",
received, test_index);
}
} else {
BSTR expected = NULL;
BOOL has_prop = FALSE;
hr = IUri_GetUserName(uri, &expected);
ok(SUCCEEDED(hr),
@ -7461,6 +7586,7 @@ static void test_IUriBuilder_GetUserName(IUriBuilder *builder, const uri_builder
}
SysFreeString(expected);
}
}
if(uri) IUri_Release(uri);
}
}
@ -7472,15 +7598,17 @@ static void test_IUriBuilder(void) {
DWORD i;
for(i = 0; i < sizeof(uri_builder_tests)/sizeof(uri_builder_tests[0]); ++i) {
IUri *uri;
IUri *uri = NULL;
uri_builder_test test = uri_builder_tests[i];
LPWSTR uriW;
LPWSTR uriW = NULL;
if(test.uri) {
uriW = a2w(test.uri);
hr = pCreateUri(uriW, test.create_flags, 0, &uri);
ok(hr == S_OK, "Error: CreateUri returned 0x%08x, expected 0x%08x on uri_builder_tests[%d].\n",
hr, S_OK, i);
if(SUCCEEDED(hr)) {
if(FAILED(hr)) continue;
}
hr = pCreateIUriBuilder(uri, 0, 0, &builder);
if(test.create_builder_todo) {
todo_wine {
@ -7551,8 +7679,8 @@ static void test_IUriBuilder(void) {
test_IUriBuilder_CreateUriWithFlags(builder, &test, i);
}
if(builder) IUriBuilder_Release(builder);
}
if(uri) IUri_Release(uri);
heap_free(uriW);
}
}