Jacek Caban : mshtml: Added HTMLTxtRange::Exec(IDM_INDENT) test.

Alexandre Julliard julliard at winehq.org
Thu Dec 6 08:26:52 CST 2007


Module: wine
Branch: master
Commit: e35e27de4ce490c2e33a5095d51b2f2983b6cb3e
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=e35e27de4ce490c2e33a5095d51b2f2983b6cb3e

Author: Jacek Caban <jacek at codeweavers.com>
Date:   Thu Dec  6 12:23:39 2007 +0100

mshtml: Added HTMLTxtRange::Exec(IDM_INDENT) test.

---

 dlls/mshtml/tests/dom.c |   58 +++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 58 insertions(+), 0 deletions(-)

diff --git a/dlls/mshtml/tests/dom.c b/dlls/mshtml/tests/dom.c
index 5debead..cb7faa3 100644
--- a/dlls/mshtml/tests/dom.c
+++ b/dlls/mshtml/tests/dom.c
@@ -42,6 +42,8 @@ static const char elem_test_str[] =
     "<textarea id=\"X\">text text</textarea>"
     "<table><tbody></tbody></table>"
     "</body></html>";
+static const char indent_test_str[] =
+    "<html><head><title>test</title></head><body>abc<br /><a href=\"about:blank\">123</a></body></html>";
 
 static const WCHAR noneW[] = {'N','o','n','e',0};
 
@@ -1209,6 +1211,61 @@ static void test_elems(IHTMLDocument2 *doc)
     test_create_option_elem(doc);
 }
 
+static void test_exec(IUnknown *unk, const GUID *grpid, DWORD cmdid, VARIANT *in, VARIANT *out)
+{
+    IOleCommandTarget *cmdtrg;
+    HRESULT hres;
+
+    hres = IHTMLTxtRange_QueryInterface(unk, &IID_IOleCommandTarget, (void**)&cmdtrg);
+    ok(hres == S_OK, "Could not get IOleCommandTarget interface: %08x\n", hres);
+
+    hres = IOleCommandTarget_Exec(cmdtrg, grpid, cmdid, 0, in, out);
+    ok(hres == S_OK, "Exec failed: %08x\n", hres);
+
+    IOleCommandTarget_Release(cmdtrg);
+}
+
+static void test_indent(IHTMLDocument2 *doc)
+{
+    IHTMLElementCollection *col;
+    IHTMLTxtRange *range;
+    HRESULT hres;
+
+    static const elem_type_t all_types[] = {
+        ET_HTML,
+        ET_HEAD,
+        ET_TITLE,
+        ET_BODY,
+        ET_BR,
+        ET_A,
+    };
+
+    static const elem_type_t indent_types[] = {
+        ET_HTML,
+        ET_HEAD,
+        ET_TITLE,
+        ET_BODY,
+        ET_BLOCKQUOTE,
+        ET_P,
+        ET_BR,
+        ET_A,
+    };
+
+    hres = IHTMLDocument2_get_all(doc, &col);
+    ok(hres == S_OK, "get_all failed: %08x\n", hres);
+    test_elem_collection(col, all_types, sizeof(all_types)/sizeof(all_types[0]));
+    IHTMLElementCollection_Release(col);
+
+    range = test_create_body_range(doc);
+    test_exec((IUnknown*)range, &CGID_MSHTML, IDM_INDENT, NULL, NULL);
+    IHTMLTxtRange_Release(range);
+
+    hres = IHTMLDocument2_get_all(doc, &col);
+    ok(hres == S_OK, "get_all failed: %08x\n", hres);
+    test_elem_collection(col, indent_types, sizeof(indent_types)/sizeof(indent_types[0]));
+    IHTMLElementCollection_Release(col);
+}
+
 static IHTMLDocument2 *notif_doc;
 static BOOL doc_complete;
 
@@ -1387,6 +1444,7 @@ START_TEST(dom)
     run_domtest(doc_str2, test_txtrange);
     run_domtest(elem_test_str, test_elems);
     run_domtest(doc_blank, test_defaults);
+    run_domtest(indent_test_str, test_indent);
 
     CoUninitialize();
     gecko_installer_workaround(FALSE);




More information about the wine-cvs mailing list