Piotr Caban : mshtml/tests: Added connection error handling tests.
Alexandre Julliard
julliard at winehq.org
Tue Mar 29 11:43:04 CDT 2011
Module: wine
Branch: master
Commit: 2790f363c57e283ad7b4979f52f199bbd466b5af
URL: http://source.winehq.org/git/wine.git/?a=commit;h=2790f363c57e283ad7b4979f52f199bbd466b5af
Author: Piotr Caban <piotr at codeweavers.com>
Date: Mon Mar 28 23:36:45 2011 +0200
mshtml/tests: Added connection error handling tests.
---
dlls/mshtml/tests/htmldoc.c | 68 +++++++++++++++++++++++++++++++++++++++++--
1 files changed, 65 insertions(+), 3 deletions(-)
diff --git a/dlls/mshtml/tests/htmldoc.c b/dlls/mshtml/tests/htmldoc.c
index 843b9cc..2df4e74 100644
--- a/dlls/mshtml/tests/htmldoc.c
+++ b/dlls/mshtml/tests/htmldoc.c
@@ -1212,6 +1212,10 @@ static void continue_binding(IBindStatusCallback *callback)
hres = IBindStatusCallback_OnProgress(callback, sizeof(html_page)-1, sizeof(html_page)-1,
BINDSTATUS_BEGINDOWNLOADDATA, doc_url);
ok(hres == S_OK, "OnProgress(BINDSTATUS_BEGINDOWNLOADDATA) failed: %08x\n", hres);
+ if(status_code != HTTP_STATUS_OK) {
+ CHECK_CALLED(IsErrorUrl);
+ SET_EXPECT(IsErrorUrl);
+ }
SET_EXPECT(Read);
stgmedium.tymed = TYMED_ISTREAM;
@@ -2752,6 +2756,57 @@ static HRESULT WINAPI OleCommandTarget_Exec(IOleCommandTarget *iface, const GUID
ok(V_VT(pvaIn) == VT_UNKNOWN, "V_VT(pvaIn) != VT_UNKNOWN\n");
/* FIXME: test V_UNKNOWN(pvaIn) == window */
return S_OK;
+ case 1: {
+ SAFEARRAY *sa;
+ UINT dim;
+ LONG ind=0;
+ VARIANT var;
+ HRESULT hres;
+
+ ok(pvaIn != NULL, "pvaIn == NULL\n");
+ ok(pvaOut != NULL, "pvaOut != NULL\n");
+ ok(V_VT(pvaIn) == VT_ARRAY, "V_VT(pvaIn) = %d\n", V_VT(pvaIn));
+ ok(V_VT(pvaOut) == VT_BOOL, "V_VT(pvaOut) = %d\n", V_VT(pvaOut));
+ sa = V_ARRAY(pvaIn);
+
+ dim = SafeArrayGetDim(sa);
+ ok(dim == 1, "dim = %d\n", dim);
+ hres = SafeArrayGetLBound(sa, 1, &ind);
+ ok(hres == S_OK, "SafeArrayGetLBound failed: %x\n", hres);
+ ok(ind == 0, "Lower bound = %d\n", ind);
+ hres = SafeArrayGetUBound(sa, 1, &ind);
+ ok(hres == S_OK, "SafeArrayGetUBound failed: %x\n", hres);
+ ok(ind == 7 || broken(ind == 5), "Upper bound = %d\n", ind);
+
+ ind = 0;
+ SafeArrayGetElement(sa, &ind, &var);
+ ok(V_VT(&var) == VT_I4, "Incorrect data type: %d\n", V_VT(&var));
+ ok(V_I4(&var) == status_code, "Incorrect error code: %d\n", V_I4(&var));
+ VariantClear(&var);
+ ind = 1;
+ SafeArrayGetElement(sa, &ind, &var);
+ ok(V_VT(&var) == VT_BSTR, "Incorrect data type: %d\n", V_VT(&var));
+ ok(!strcmp_wa(V_BSTR(&var), "winetest:doc"), "Page address: %s\n", wine_dbgstr_w(V_BSTR(&var)));
+ VariantClear(&var);
+ ind = 2;
+ SafeArrayGetElement(sa, &ind, &var);
+ ok(V_VT(&var) == VT_UNKNOWN, "Incorrect data type: %d\n", V_VT(&var));
+ VariantClear(&var);
+ ind = 3;
+ SafeArrayGetElement(sa, &ind, &var);
+ ok(V_VT(&var) == VT_UNKNOWN, "Incorrect data type: %d\n", V_VT(&var));
+ VariantClear(&var);
+ ind = 4;
+ SafeArrayGetElement(sa, &ind, &var);
+ ok(V_VT(&var) == VT_BOOL, "Incorrect data type: %d\n", V_VT(&var));
+ ok(!V_BOOL(&var), "Unknown value is incorrect\n");
+ VariantClear(&var);
+ ind = 5;
+ SafeArrayGetElement(sa, &ind, &var);
+ ok(V_VT(&var) == VT_BOOL, "Incorrect data type: %d\n", V_VT(&var));
+ ok(!V_BOOL(&var), "Unknown value is incorrect\n");
+ VariantClear(&var);
+ }
default:
return E_FAIL; /* TODO */
}
@@ -2967,7 +3022,8 @@ static HRESULT WINAPI DocObjectService_IsErrorUrl(
BOOL *pfIsError)
{
CHECK_EXPECT(IsErrorUrl);
- return E_NOTIMPL;
+ *pfIsError = FALSE;
+ return S_OK;
}
static IDocObjectServiceVtbl DocObjectServiceVtbl = {
@@ -5353,7 +5409,7 @@ static void test_HTMLDocument(BOOL do_load)
ok(!IsWindow(hwnd), "hwnd is not destroyed\n");
}
-static void test_HTMLDocument_hlink(void)
+static void test_HTMLDocument_hlink(DWORD status)
{
IHTMLDocument2 *doc;
@@ -5372,7 +5428,9 @@ static void test_HTMLDocument_hlink(void)
test_Persist(doc, &Moniker);
test_Navigate(doc);
+ status_code = status;
test_download(DWL_CSS|DWL_TRYCSS);
+ status_code = HTTP_STATUS_OK;
test_IsDirty(doc, S_FALSE);
test_MSHTML_QueryStatus(doc, OLECMDF_SUPPORTED);
@@ -6000,7 +6058,11 @@ START_TEST(htmldoc)
container_hwnd = create_container_window();
register_protocol();
- test_HTMLDocument_hlink();
+ asynchronous_binding = TRUE;
+ test_HTMLDocument_hlink(HTTP_STATUS_NOT_FOUND);
+
+ asynchronous_binding = FALSE;
+ test_HTMLDocument_hlink(HTTP_STATUS_OK);
test_HTMLDocument(FALSE);
test_HTMLDocument(TRUE);
test_HTMLDocument_StreamLoad();
More information about the wine-cvs
mailing list