urlmon/tests: Added tests for IUriBuilder_GetFragment.
This commit is contained in:
parent
a88421ccd1
commit
9816ec856f
|
@ -5314,6 +5314,135 @@ static void test_IUriBuilder_CreateInvalidArgs(void) {
|
||||||
if(builder) IUriBuilder_Release(builder);
|
if(builder) IUriBuilder_Release(builder);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Tests invalid args to the "Get*" functions. */
|
||||||
|
static void test_IUriBuilder_GetInvalidArgs(void) {
|
||||||
|
IUriBuilder *builder = NULL;
|
||||||
|
HRESULT hr;
|
||||||
|
|
||||||
|
hr = pCreateIUriBuilder(NULL, 0, 0, &builder);
|
||||||
|
ok(hr == S_OK, "Error: CreateIUriBuilder returned 0x%08x, expected 0x%08x.\n", hr, S_OK);
|
||||||
|
if(SUCCEEDED(hr)) {
|
||||||
|
LPCWSTR received = (void*) 0xdeadbeef;
|
||||||
|
DWORD len = -1;
|
||||||
|
|
||||||
|
hr = IUriBuilder_GetFragment(builder, NULL, NULL);
|
||||||
|
ok(hr == E_POINTER, "Error: IUriBuilder_GetFragment returned 0x%08x, expected 0x%08x.\n",
|
||||||
|
hr, E_POINTER);
|
||||||
|
hr = IUriBuilder_GetFragment(builder, NULL, &received);
|
||||||
|
ok(hr == E_POINTER, "Error: IUriBuilder_GetFragment returned 0x%08x, expected 0x%08x.\n",
|
||||||
|
hr, E_POINTER);
|
||||||
|
ok(!received, "Error: Expected received to be NULL, but was %p instead.\n", received);
|
||||||
|
hr = IUriBuilder_GetFragment(builder, &len, NULL);
|
||||||
|
ok(hr == E_POINTER, "Error: IUriBuilder_GetFragment returned 0x%08x, expected 0x%08x.\n",
|
||||||
|
hr, E_POINTER);
|
||||||
|
ok(!len, "Error: Expected len to be 0, but was %d instead.\n", len);
|
||||||
|
}
|
||||||
|
if(builder) IUriBuilder_Release(builder);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void test_IUriBuilder_GetFragment(IUriBuilder *builder, const uri_builder_test *test,
|
||||||
|
DWORD test_index) {
|
||||||
|
HRESULT hr;
|
||||||
|
DWORD i;
|
||||||
|
LPCWSTR received = NULL;
|
||||||
|
DWORD len = -1;
|
||||||
|
const uri_builder_property *prop = NULL;
|
||||||
|
|
||||||
|
/* Check if the property was set earlier. */
|
||||||
|
for(i = 0; i < sizeof(test->properties)/sizeof(test->properties[0]); ++i) {
|
||||||
|
if(test->properties[i].change && test->properties[i].property == Uri_PROPERTY_FRAGMENT)
|
||||||
|
prop = &(test->properties[i]);
|
||||||
|
}
|
||||||
|
|
||||||
|
if(prop) {
|
||||||
|
/* Use expected_value unless it's NULL, then use value. */
|
||||||
|
LPCSTR expected = prop->expected_value ? prop->expected_value : prop->value;
|
||||||
|
hr = IUriBuilder_GetFragment(builder, &len, &received);
|
||||||
|
if(prop->todo) {
|
||||||
|
todo_wine {
|
||||||
|
ok(hr == (expected ? S_OK : S_FALSE),
|
||||||
|
"Error: IUriBuilder_GetFragment returned 0x%08x, expected 0x%08x on uri_builder_tests[%d].\n",
|
||||||
|
hr, (expected ? S_OK : S_FALSE), test_index);
|
||||||
|
}
|
||||||
|
todo_wine {
|
||||||
|
ok(!strcmp_aw(expected, received), "Error: Expected %s but got %s on uri_builder_tests[%d].\n",
|
||||||
|
expected, wine_dbgstr_w(received), test_index);
|
||||||
|
}
|
||||||
|
todo_wine {
|
||||||
|
ok(lstrlen(expected) == len,
|
||||||
|
"Error: Expected the length to be %d, but was %d instead on uri_builder_tests[%d].\n",
|
||||||
|
lstrlen(expected), len, test_index);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
ok(hr == (expected ? S_OK : S_FALSE),
|
||||||
|
"Error: IUriBuilder_GetFragment returned 0x%08x, expected 0x%08x on uri_builder_tests[%d].\n",
|
||||||
|
hr, (expected ? S_OK : S_FALSE), test_index);
|
||||||
|
ok(!strcmp_aw(expected, received), "Error: Expected %s but got %s on uri_builder_tests[%d].\n",
|
||||||
|
expected, wine_dbgstr_w(received), test_index);
|
||||||
|
ok(lstrlen(expected) == len,
|
||||||
|
"Error: Expected the length to be %d, but was %d instead on uri_builder_tests[%d].\n",
|
||||||
|
lstrlen(expected), len, test_index);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
/* The property wasn't set earlier, so it should return whatever
|
||||||
|
* the base IUri contains (if anything).
|
||||||
|
*/
|
||||||
|
IUri *uri = NULL;
|
||||||
|
hr = IUriBuilder_GetIUri(builder, &uri);
|
||||||
|
todo_wine {
|
||||||
|
ok(hr == S_OK,
|
||||||
|
"Error: IUriBuilder_GetIUri returned 0x%08x, expected 0x%08x on uri_builder_tests[%d].\n",
|
||||||
|
hr, S_OK, test_index);
|
||||||
|
}
|
||||||
|
if(SUCCEEDED(hr)) {
|
||||||
|
BOOL has_prop = FALSE;
|
||||||
|
BSTR expected = NULL;
|
||||||
|
|
||||||
|
hr = IUri_GetFragment(uri, &expected);
|
||||||
|
ok(SUCCEEDED(hr),
|
||||||
|
"Error: Expected IUri_GetFragment to succeed, but got 0x%08x instead on uri_builder_tests[%d].\n",
|
||||||
|
hr, test_index);
|
||||||
|
has_prop = hr == S_OK;
|
||||||
|
|
||||||
|
hr = IUriBuilder_GetFragment(builder, &len, &received);
|
||||||
|
if(has_prop) {
|
||||||
|
todo_wine {
|
||||||
|
ok(hr == S_OK,
|
||||||
|
"Error: IUriBuilder_GetFragment returned 0x%08x, expected 0x%08x on uri_builder_tests[%d].\n",
|
||||||
|
hr, S_OK, test_index);
|
||||||
|
}
|
||||||
|
if(SUCCEEDED(hr)) {
|
||||||
|
todo_wine {
|
||||||
|
ok(!lstrcmpW(expected, received),
|
||||||
|
"Error: Expected %s but got %s instead on uri_builder_tests[%d].\n",
|
||||||
|
wine_dbgstr_w(expected), wine_dbgstr_w(received), test_index);
|
||||||
|
}
|
||||||
|
todo_wine {
|
||||||
|
ok(lstrlenW(expected) == len,
|
||||||
|
"Error: Expected the length to be %d, but was %d instead on uri_builder_tests[%d].\n",
|
||||||
|
lstrlenW(expected), len, test_index);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
todo_wine {
|
||||||
|
ok(hr == S_FALSE,
|
||||||
|
"Error: IUriBuilder_GetFragment returned 0x%08x, expected 0x%08x on uri_builder_tests[%d].\n",
|
||||||
|
hr, S_FALSE, test_index);
|
||||||
|
}
|
||||||
|
todo_wine {
|
||||||
|
ok(!received, "Error: Expected received to be NULL on uri_builder_tests[%d].\n", test_index);
|
||||||
|
}
|
||||||
|
todo_wine {
|
||||||
|
ok(!len, "Error: Expected the length to be 0, but was %d instead on uri_builder_tests[%d].\n",
|
||||||
|
len, test_index);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
SysFreeString(expected);
|
||||||
|
}
|
||||||
|
if(uri) IUri_Release(uri);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/* Tests IUriBuilder functions. */
|
/* Tests IUriBuilder functions. */
|
||||||
static void test_IUriBuilder(void) {
|
static void test_IUriBuilder(void) {
|
||||||
HRESULT hr;
|
HRESULT hr;
|
||||||
|
@ -5367,6 +5496,9 @@ static void test_IUriBuilder(void) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Test the "Get*" functions. */
|
||||||
|
test_IUriBuilder_GetFragment(builder, &test, i);
|
||||||
|
|
||||||
test_IUriBuilder_CreateUri(builder, &test, i);
|
test_IUriBuilder_CreateUri(builder, &test, i);
|
||||||
test_IUriBuilder_CreateUriSimple(builder, &test, i);
|
test_IUriBuilder_CreateUriSimple(builder, &test, i);
|
||||||
test_IUriBuilder_CreateUriWithFlags(builder, &test, i);
|
test_IUriBuilder_CreateUriWithFlags(builder, &test, i);
|
||||||
|
@ -5440,4 +5572,7 @@ START_TEST(uri) {
|
||||||
|
|
||||||
trace("test IUriBuilder...\n");
|
trace("test IUriBuilder...\n");
|
||||||
test_IUriBuilder();
|
test_IUriBuilder();
|
||||||
|
|
||||||
|
trace("test IUriBuilder_GetInvalidArgs...\n");
|
||||||
|
test_IUriBuilder_GetInvalidArgs();
|
||||||
}
|
}
|
||||||
|
|
|
@ -4195,6 +4195,19 @@ static HRESULT WINAPI UriBuilder_SetIUri(IUriBuilder *iface, IUri *pIUri)
|
||||||
static HRESULT WINAPI UriBuilder_GetFragment(IUriBuilder *iface, DWORD *pcchFragment, LPCWSTR *ppwzFragment)
|
static HRESULT WINAPI UriBuilder_GetFragment(IUriBuilder *iface, DWORD *pcchFragment, LPCWSTR *ppwzFragment)
|
||||||
{
|
{
|
||||||
UriBuilder *This = URIBUILDER_THIS(iface);
|
UriBuilder *This = URIBUILDER_THIS(iface);
|
||||||
|
TRACE("(%p)->(%p %p)\n", This, pcchFragment, ppwzFragment);
|
||||||
|
|
||||||
|
if(!pcchFragment) {
|
||||||
|
if(ppwzFragment)
|
||||||
|
*ppwzFragment = NULL;
|
||||||
|
return E_POINTER;
|
||||||
|
}
|
||||||
|
|
||||||
|
if(!ppwzFragment) {
|
||||||
|
*pcchFragment = 0;
|
||||||
|
return E_POINTER;
|
||||||
|
}
|
||||||
|
|
||||||
FIXME("(%p)->(%p %p)\n", This, pcchFragment, ppwzFragment);
|
FIXME("(%p)->(%p %p)\n", This, pcchFragment, ppwzFragment);
|
||||||
return E_NOTIMPL;
|
return E_NOTIMPL;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue