Thomas Mullaly : urlmon/tests: Added basic tests for CoInternetCombineIUri.
Alexandre Julliard
julliard at winehq.org
Tue Nov 2 11:10:55 CDT 2010
Module: wine
Branch: master
Commit: 18c7070b7f47a908567c737808c1cfeeead7e11c
URL: http://source.winehq.org/git/wine.git/?a=commit;h=18c7070b7f47a908567c737808c1cfeeead7e11c
Author: Thomas Mullaly <thomas.mullaly at gmail.com>
Date: Thu Oct 7 19:22:44 2010 -0400
urlmon/tests: Added basic tests for CoInternetCombineIUri.
---
dlls/urlmon/tests/uri.c | 36 ++++++++++++++++++++++++++++++++++++
dlls/urlmon/uri.c | 10 ++++++++++
2 files changed, 46 insertions(+), 0 deletions(-)
diff --git a/dlls/urlmon/tests/uri.c b/dlls/urlmon/tests/uri.c
index 93493a8..39cfaaa 100644
--- a/dlls/urlmon/tests/uri.c
+++ b/dlls/urlmon/tests/uri.c
@@ -36,6 +36,7 @@
static HRESULT (WINAPI *pCreateUri)(LPCWSTR, DWORD, DWORD_PTR, IUri**);
static HRESULT (WINAPI *pCreateUriWithFragment)(LPCWSTR, LPCWSTR, DWORD, DWORD_PTR, IUri**);
static HRESULT (WINAPI *pCreateIUriBuilder)(IUri*, DWORD, DWORD_PTR, IUriBuilder**);
+static HRESULT (WINAPI *pCoInternetCombineIUri)(IUri*,IUri*,DWORD,IUri**,DWORD_PTR);
static const WCHAR http_urlW[] = { 'h','t','t','p',':','/','/','w','w','w','.','w','i','n','e','h','q',
'.','o','r','g','/',0};
@@ -8633,6 +8634,37 @@ static void test_IUriBuilder_Misc(void) {
if(uri) IUri_Release(uri);
}
+static void test_CoInternetCombineIUri(void) {
+ HRESULT hr;
+ IUri *base, *relative, *result;
+
+ base = NULL;
+ hr = pCreateUri(http_urlW, 0, 0, &base);
+ ok(SUCCEEDED(hr), "Error: Expected CreateUri to succeed, got 0x%08x.\n", hr);
+ if(SUCCEEDED(hr)) {
+ result = (void*) 0xdeadbeef;
+ hr = pCoInternetCombineIUri(base, NULL, 0, &result, 0);
+ ok(hr == E_INVALIDARG, "Error: CoInternetCombineIUri returned 0x%08x, expected 0x%08x.\n", hr, E_INVALIDARG);
+ ok(!result, "Error: Expected 'result' to be NULL, was %p.\n", result);
+ }
+
+ relative = NULL;
+ hr = pCreateUri(http_urlW, 0, 0, &relative);
+ ok(SUCCEEDED(hr), "Error: Expected CreateUri to succeed, got 0x%08x.\n", hr);
+ if(SUCCEEDED(hr)) {
+ result = (void*) 0xdeadbeef;
+ hr = pCoInternetCombineIUri(NULL, relative, 0, &result, 0);
+ ok(hr == E_INVALIDARG, "Error: CoInternetCombineIUri returned 0x%08x, expected 0x%08x.\n", hr, E_INVALIDARG);
+ ok(!result, "Error: Expected 'result' to be NULL, was %p.\n", result);
+ }
+
+ hr = pCoInternetCombineIUri(base, relative, 0, NULL, 0);
+ ok(hr == E_INVALIDARG, "Error: CoInternetCombineIUri returned 0x%08x, expected 0x%08x.\n", hr, E_INVALIDARG);
+
+ if(base) IUri_Release(base);
+ if(relative) IUri_Release(relative);
+}
+
START_TEST(uri) {
HMODULE hurlmon;
@@ -8640,6 +8672,7 @@ START_TEST(uri) {
pCreateUri = (void*) GetProcAddress(hurlmon, "CreateUri");
pCreateUriWithFragment = (void*) GetProcAddress(hurlmon, "CreateUriWithFragment");
pCreateIUriBuilder = (void*) GetProcAddress(hurlmon, "CreateIUriBuilder");
+ pCoInternetCombineIUri = (void*) GetProcAddress(hurlmon, "CoInternetCombineIUri");
if(!pCreateUri) {
win_skip("CreateUri is not present, skipping tests.\n");
@@ -8711,4 +8744,7 @@ START_TEST(uri) {
trace("test IUriBuilder miscellaneous...\n");
test_IUriBuilder_Misc();
+
+ trace("test CoInternetCombineIUri...\n");
+ test_CoInternetCombineIUri();
}
diff --git a/dlls/urlmon/uri.c b/dlls/urlmon/uri.c
index 99906d2..e6304e8 100644
--- a/dlls/urlmon/uri.c
+++ b/dlls/urlmon/uri.c
@@ -5595,6 +5595,16 @@ HRESULT WINAPI CreateIUriBuilder(IUri *pIUri, DWORD dwFlags, DWORD_PTR dwReserve
HRESULT WINAPI CoInternetCombineIUri(IUri *pBaseUri, IUri *pRelativeUri, DWORD dwCombineFlags,
IUri **ppCombinedUri, DWORD_PTR dwReserved)
{
+ TRACE("(%p %p %x %p %x)\n", pBaseUri, pRelativeUri, dwCombineFlags, ppCombinedUri, (DWORD)dwReserved);
+
+ if(!ppCombinedUri)
+ return E_INVALIDARG;
+
+ if(!pBaseUri || !pRelativeUri) {
+ *ppCombinedUri = NULL;
+ return E_INVALIDARG;
+ }
+
FIXME("(%p %p %x %p %x): stub\n", pBaseUri, pRelativeUri, dwCombineFlags, ppCombinedUri, (DWORD)dwReserved);
return E_NOTIMPL;
}
More information about the wine-cvs
mailing list