Jacek Caban : mshtml: Added noscript tag handling tests.

Alexandre Julliard julliard at winehq.org
Wed Oct 10 15:07:52 CDT 2012


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

Author: Jacek Caban <jacek at codeweavers.com>
Date:   Wed Oct 10 11:19:22 2012 +0200

mshtml: Added noscript tag handling tests.

---

 dlls/mshtml/tests/dom.c |   48 +++++++++++++++++++++++++++++++++++++++++++---
 1 files changed, 44 insertions(+), 4 deletions(-)

diff --git a/dlls/mshtml/tests/dom.c b/dlls/mshtml/tests/dom.c
index 08ea83e7..f7bba1d 100644
--- a/dlls/mshtml/tests/dom.c
+++ b/dlls/mshtml/tests/dom.c
@@ -80,6 +80,9 @@ static const char frameset_str[] =
 static const char emptydiv_str[] =
     "<html><head><title>emptydiv test</title></head>"
     "<body><div id=\"divid\"></div></body></html>";
+static const char noscript_str[] =
+    "<html><head><title>noscript test</title><noscript><style>.body { margin-right: 0px; }</style></noscript></head>"
+    "<body><noscript><div>test</div></noscript></body></html>";
 
 static WCHAR characterW[] = {'c','h','a','r','a','c','t','e','r',0};
 static WCHAR texteditW[] = {'t','e','x','t','e','d','i','t',0};
@@ -115,7 +118,8 @@ typedef enum {
     ET_OBJECT,
     ET_EMBED,
     ET_DIV,
-    ET_META
+    ET_META,
+    ET_NOSCRIPT
 } elem_type_t;
 
 static const IID * const none_iids[] = {
@@ -427,7 +431,8 @@ static const elem_type_info_t elem_type_infos[] = {
     {"OBJECT",    object_iids,      &DIID_DispHTMLObjectElement},
     {"EMBED",     embed_iids,       &DIID_DispHTMLEmbed},
     {"DIV",       elem_iids,        NULL},
-    {"META",      meta_iids,        &DIID_DispHTMLMetaElement}
+    {"META",      meta_iids,        &DIID_DispHTMLMetaElement},
+    {"NOSCRIPT",  elem_iids,        NULL /*&DIID_DispHTMLNoShowElement*/}
 };
 
 static const char *dbgstr_guid(REFIID riid)
@@ -2011,8 +2016,11 @@ static void _test_elem_innertext(unsigned line, IHTMLElement *elem, const char *
 
     hres = IHTMLElement_get_innerText(elem, &text);
     ok_(__FILE__,line) (hres == S_OK, "get_innerText failed: %08x\n", hres);
-    ok_(__FILE__,line) (!strcmp_wa(text, extext), "get_innerText returned %s expected %s\n",
-                        wine_dbgstr_w(text), extext);
+    if(extext)
+        ok_(__FILE__,line) (!strcmp_wa(text, extext), "get_innerText returned %s expected %s\n",
+                            wine_dbgstr_w(text), extext);
+    else
+        ok_(__FILE__,line) (!text, "get_innerText returned %s expected NULL\n", wine_dbgstr_w(text));
     SysFreeString(text);
 }
 
@@ -6042,6 +6050,37 @@ static void test_replacechild_elems(IHTMLDocument2 *doc)
     IHTMLElement_Release(body);
 }
 
+static void test_noscript(IHTMLDocument2 *doc)
+{
+    IHTMLElementCollection *col;
+    IHTMLElement *body;
+    HRESULT hres;
+
+    static const elem_type_t all_types[] = {
+        ET_HTML,
+        ET_HEAD,
+        ET_TITLE,
+        ET_NOSCRIPT,
+        ET_BODY,
+        ET_NOSCRIPT
+    };
+
+    static const elem_type_t body_all_types[] = {
+        ET_DIV,
+        ET_NOSCRIPT
+    };
+
+    hres = IHTMLDocument2_get_all(doc, &col);
+    ok(hres == S_OK, "get_all failed: %08x\n", hres);
+    test_elem_collection((IUnknown*)col, all_types, sizeof(all_types)/sizeof(all_types[0]));
+    IHTMLElementCollection_Release(col);
+
+    body = doc_get_body(doc);
+    test_elem_set_innerhtml((IUnknown*)body, "<div>test</div><noscript><a href=\"about:blank\">A</a></noscript>");
+    test_elem_all((IUnknown*)body, body_all_types, sizeof(body_all_types)/sizeof(*body_all_types));
+    IHTMLElement_Release(body);
+}
+
 static void test_null_write(IHTMLDocument2 *doc)
 {
     HRESULT hres;
@@ -6536,6 +6575,7 @@ START_TEST(dom)
     run_domtest(frameset_str, test_frameset);
     run_domtest(emptydiv_str, test_docfrag);
     run_domtest(doc_blank, test_replacechild_elems);
+    run_domtest(noscript_str, test_noscript);
 
     CoUninitialize();
 }




More information about the wine-cvs mailing list