Jacek Caban : mshtml: Removed code duplication in frame collection tests.
Alexandre Julliard
julliard at winehq.org
Wed Feb 8 17:45:29 CST 2012
Module: wine
Branch: master
Commit: 666004cdbd5a73d76b8db4a4f3f40534b4b5a943
URL: http://source.winehq.org/git/wine.git/?a=commit;h=666004cdbd5a73d76b8db4a4f3f40534b4b5a943
Author: Jacek Caban <jacek at codeweavers.com>
Date: Wed Feb 8 15:57:53 2012 +0100
mshtml: Removed code duplication in frame collection tests.
---
dlls/mshtml/tests/dom.c | 94 ++++++++++++-----------------------------------
1 files changed, 24 insertions(+), 70 deletions(-)
diff --git a/dlls/mshtml/tests/dom.c b/dlls/mshtml/tests/dom.c
index a847998..6ceb9ea 100644
--- a/dlls/mshtml/tests/dom.c
+++ b/dlls/mshtml/tests/dom.c
@@ -5832,27 +5832,12 @@ static void test_frame(IDispatch *disp, const char *exp_id)
IHTMLDocument2_Release(top_doc);
}
-static void test_frameset(IHTMLDocument2 *doc)
+static void test_frames_collection(IHTMLFramesCollection2 *frames, const char *frid)
{
- IHTMLWindow2 *window;
- IHTMLFramesCollection2 *frames;
- IHTMLElement *elem;
- IHTMLFrameBase *fbase;
- LONG length;
VARIANT index_var, result_var;
- BSTR str;
+ LONG length;
HRESULT hres;
- window = get_doc_window(doc);
-
- /* test using IHTMLFramesCollection object */
-
- hres = IHTMLWindow2_get_frames(window, &frames);
- ok(hres == S_OK, "IHTMLWindow2_get_frames failed: 0x%08x\n", hres);
- IHTMLWindow2_Release(window);
- if(FAILED(hres))
- return;
-
/* test result length */
hres = IHTMLFramesCollection2_get_length(frames, &length);
ok(hres == S_OK, "IHTMLFramesCollection2_get_length failed: 0x%08x\n", hres);
@@ -5888,12 +5873,12 @@ static void test_frameset(IHTMLDocument2 *doc)
/* string argument (element id lookup) */
V_VT(&index_var) = VT_BSTR;
- V_BSTR(&index_var) = a2bstr("fr1");
+ V_BSTR(&index_var) = a2bstr(frid);
hres = IHTMLFramesCollection2_item(frames, &index_var, &result_var);
ok(hres == S_OK, "IHTMLFramesCollection2_item failed: 0x%08x\n", hres);
if(SUCCEEDED(hres)) {
ok(V_VT(&result_var) == VT_DISPATCH, "result type should have been VT_DISPATCH, was: 0x%x\n", V_VT(&result_var));
- test_frame(V_DISPATCH(&result_var), "fr1");
+ test_frame(V_DISPATCH(&result_var), frid);
}
VariantClear(&result_var);
VariantClear(&index_var);
@@ -5905,63 +5890,31 @@ static void test_frameset(IHTMLDocument2 *doc)
ok(hres == E_INVALIDARG, "IHTMLFramesCollection2_item should have"
"failed with E_INVALIDARG, instead: 0x%08x\n", hres);
VariantClear(&result_var);
+}
- IHTMLFramesCollection2_Release(frames);
-
- /* test using IHTMLWindow2 inheritance */
-
- /* test result length */
- hres = IHTMLWindow2_get_length(window, &length);
- ok(hres == S_OK, "IHTMLWindow2_get_length failed: 0x%08x\n", hres);
- ok(length == 3, "IHTMLWindow2_get_length should have been 3, was: %d\n", length);
+static void test_frameset(IHTMLDocument2 *doc)
+{
+ IHTMLWindow2 *window;
+ IHTMLFramesCollection2 *frames;
+ IHTMLElement *elem;
+ IHTMLFrameBase *fbase;
+ BSTR str;
+ HRESULT hres;
- /* test first frame */
- V_VT(&index_var) = VT_I4;
- V_I4(&index_var) = 0;
- hres = IHTMLWindow2_item(window, &index_var, &result_var);
- ok(hres == S_OK, "IHTMLWindow2_item failed: 0x%08x\n", hres);
- if(SUCCEEDED(hres)) {
- ok(V_VT(&result_var) == VT_DISPATCH, "result type should have been VT_DISPATCH, was: 0x%x\n", V_VT(&result_var));
- test_frame((IDispatch*)V_DISPATCH(&result_var), "fr1");
- }
- VariantClear(&result_var);
+ window = get_doc_window(doc);
- /* test second frame */
- V_I4(&index_var) = 1;
- hres = IHTMLWindow2_item(window, &index_var, &result_var);
- ok(hres == S_OK, "IHTMLWindow2_item failed: 0x%08x\n", hres);
- if(SUCCEEDED(hres)) {
- ok(V_VT(&result_var) == VT_DISPATCH, "result type should have been VT_DISPATCH, was: 0x%x\n", V_VT(&result_var));
- test_frame((IDispatch*)V_DISPATCH(&result_var), "fr2");
- }
- VariantClear(&result_var);
+ /* test using IHTMLFramesCollection object */
- /* fail on next frame */
- V_I4(&index_var) = 3;
- hres = IHTMLWindow2_item(window, &index_var, &result_var);
- ok(hres == DISP_E_MEMBERNOTFOUND, "IHTMLWindow2_item should have"
- "failed with DISP_E_MEMBERNOTFOUND, instead: 0x%08x\n", hres);
- VariantClear(&result_var);
+ hres = IHTMLWindow2_get_frames(window, &frames);
+ ok(hres == S_OK, "IHTMLWindow2_get_frames failed: 0x%08x\n", hres);
+ if(FAILED(hres))
+ return;
- /* string argument (element id lookup) */
- V_VT(&index_var) = VT_BSTR;
- V_BSTR(&index_var) = a2bstr("fr2");
- hres = IHTMLWindow2_item(window, &index_var, &result_var);
- ok(hres == S_OK, "IHTMLWindow2_item failed: 0x%08x\n", hres);
- if(SUCCEEDED(hres)) {
- ok(V_VT(&result_var) == VT_DISPATCH, "result type should have been VT_DISPATCH, was: 0x%x\n", V_VT(&result_var));
- test_frame((IDispatch*)V_DISPATCH(&result_var), "fr2");
- }
- VariantClear(&result_var);
- VariantClear(&index_var);
+ test_frames_collection(frames, "fr1");
+ IHTMLFramesCollection2_Release(frames);
- /* invalid argument */
- V_VT(&index_var) = VT_BOOL;
- V_BOOL(&index_var) = VARIANT_TRUE;
- hres = IHTMLWindow2_item(window, &index_var, &result_var);
- ok(hres == E_INVALIDARG, "IHTMLWindow2_item should have"
- "failed with E_INVALIDARG, instead: 0x%08x\n", hres);
- VariantClear(&result_var);
+ /* test using IHTMLWindow2 inheritance */
+ test_frames_collection((IHTMLFramesCollection2*)window, "fr2");
/* getElementById with node name attributes */
elem = get_doc_elem_by_id(doc, "nm1");
@@ -6018,6 +5971,7 @@ static void test_frameset(IHTMLDocument2 *doc)
IHTMLFrameBase_Release(fbase);
IHTMLElement_Release(elem);
+ IHTMLWindow2_Release(window);
}
static IHTMLDocument2 *create_docfrag(IHTMLDocument2 *doc)
More information about the wine-cvs
mailing list