mshtml: Added parser compatMode tests.
This commit is contained in:
parent
3f39f69f41
commit
c54a989430
|
@ -781,6 +781,17 @@ static IHTMLDOMNode2 *_get_node2_iface(unsigned line, IUnknown *unk)
|
||||||
return node;
|
return node;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#define get_htmldoc5_iface(u) _get_htmldoc5_iface(__LINE__,u)
|
||||||
|
static IHTMLDocument5 *_get_htmldoc5_iface(unsigned line, IUnknown *unk)
|
||||||
|
{
|
||||||
|
IHTMLDocument5 *doc;
|
||||||
|
HRESULT hres;
|
||||||
|
|
||||||
|
hres = IUnknown_QueryInterface(unk, &IID_IHTMLDocument5, (void**)&doc);
|
||||||
|
ok_(__FILE__,line) (hres == S_OK, "Could not get IHTMLDocument5: %08x\n", hres);
|
||||||
|
return doc;
|
||||||
|
}
|
||||||
|
|
||||||
#define get_img_iface(u) _get_img_iface(__LINE__,u)
|
#define get_img_iface(u) _get_img_iface(__LINE__,u)
|
||||||
static IHTMLImgElement *_get_img_iface(unsigned line, IUnknown *unk)
|
static IHTMLImgElement *_get_img_iface(unsigned line, IUnknown *unk)
|
||||||
{
|
{
|
||||||
|
@ -4478,22 +4489,18 @@ static void test_txtrange2(IHTMLDocument2 *doc)
|
||||||
IHTMLTxtRange_Release(range);
|
IHTMLTxtRange_Release(range);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void test_compatmode(IHTMLDocument2 *doc)
|
#define test_compatmode(a,b) _test_compatmode(__LINE__,a,b)
|
||||||
|
static void _test_compatmode(unsigned line, IHTMLDocument2 *doc2, const char *excompat)
|
||||||
{
|
{
|
||||||
IHTMLDocument5 *doc5;
|
IHTMLDocument5 *doc = get_htmldoc5_iface((IUnknown*)doc2);
|
||||||
BSTR mode;
|
BSTR str;
|
||||||
HRESULT hres;
|
HRESULT hres;
|
||||||
|
|
||||||
hres = IHTMLDocument2_QueryInterface(doc, &IID_IHTMLDocument5, (void**)&doc5);
|
hres = IHTMLDocument5_get_compatMode(doc, &str);
|
||||||
ok(hres == S_OK, "Could not get IHTMLDocument5 interface: %08x\n", hres);
|
ok_(__FILE__,line)(hres == S_OK, "get_compatMode failed: %08x\n", hres);
|
||||||
if(FAILED(hres))
|
ok_(__FILE__,line)(!strcmp_wa(str, excompat), "compatMode = %s, expected %s\n", wine_dbgstr_w(str), excompat);
|
||||||
return;
|
|
||||||
|
|
||||||
hres = IHTMLDocument5_get_compatMode(doc5, &mode);
|
IHTMLDocument5_Release(doc);
|
||||||
IHTMLDocument5_Release(doc5);
|
|
||||||
ok(hres == S_OK, "get_compatMode failed: %08x\n", hres);
|
|
||||||
ok(!strcmp_wa(mode, "BackCompat"), "compatMode=%s\n", wine_dbgstr_w(mode));
|
|
||||||
SysFreeString(mode);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static void test_location(IHTMLDocument2 *doc)
|
static void test_location(IHTMLDocument2 *doc)
|
||||||
|
@ -5313,7 +5320,7 @@ static void test_defaults(IHTMLDocument2 *doc)
|
||||||
SysFreeString(str);
|
SysFreeString(str);
|
||||||
|
|
||||||
test_window(doc);
|
test_window(doc);
|
||||||
test_compatmode(doc);
|
test_compatmode(doc, "BackCompat");
|
||||||
test_location(doc);
|
test_location(doc);
|
||||||
test_navigator(doc);
|
test_navigator(doc);
|
||||||
test_plugins_col(doc);
|
test_plugins_col(doc);
|
||||||
|
@ -6652,9 +6659,8 @@ static void test_create_elems(IHTMLDocument2 *doc)
|
||||||
test_elem_innertext(body, "insert test Test");
|
test_elem_innertext(body, "insert test Test");
|
||||||
IHTMLDOMNode_Release(node);
|
IHTMLDOMNode_Release(node);
|
||||||
|
|
||||||
hres = IHTMLDocument2_QueryInterface(doc, &IID_IHTMLDocument5, (void**)&doc5);
|
doc5 = get_htmldoc5_iface((IUnknown*)doc);
|
||||||
if(hres == S_OK)
|
if(doc5) {
|
||||||
{
|
|
||||||
str = a2bstr("testing");
|
str = a2bstr("testing");
|
||||||
hres = IHTMLDocument5_createComment(doc5, str, &comment);
|
hres = IHTMLDocument5_createComment(doc5, str, &comment);
|
||||||
SysFreeString(str);
|
SysFreeString(str);
|
||||||
|
@ -7168,6 +7174,16 @@ static void test_docfrag(IHTMLDocument2 *doc)
|
||||||
IHTMLDocument2_Release(frag);
|
IHTMLDocument2_Release(frag);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void check_quirks_mode(IHTMLDocument2 *doc)
|
||||||
|
{
|
||||||
|
test_compatmode(doc, "BackCompat");
|
||||||
|
}
|
||||||
|
|
||||||
|
static void check_strict_mode(IHTMLDocument2 *doc)
|
||||||
|
{
|
||||||
|
test_compatmode(doc, "CSS1Compat");
|
||||||
|
}
|
||||||
|
|
||||||
static IHTMLDocument2 *notif_doc;
|
static IHTMLDocument2 *notif_doc;
|
||||||
static BOOL doc_complete;
|
static BOOL doc_complete;
|
||||||
|
|
||||||
|
@ -7299,6 +7315,12 @@ static void run_domtest(const char *str, domtest_t test)
|
||||||
"ref = %d\n", ref);
|
"ref = %d\n", ref);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void test_quirks_mode(void)
|
||||||
|
{
|
||||||
|
run_domtest("<html></html>", check_quirks_mode);
|
||||||
|
run_domtest("<!DOCTYPE html>\n<html></html>", check_strict_mode);
|
||||||
|
}
|
||||||
|
|
||||||
START_TEST(dom)
|
START_TEST(dom)
|
||||||
{
|
{
|
||||||
HMODULE hkernel32 = GetModuleHandleA("kernel32.dll");
|
HMODULE hkernel32 = GetModuleHandleA("kernel32.dll");
|
||||||
|
@ -7329,5 +7351,7 @@ START_TEST(dom)
|
||||||
run_domtest(doc_blank, test_replacechild_elems);
|
run_domtest(doc_blank, test_replacechild_elems);
|
||||||
run_domtest(doctype_str, test_doctype);
|
run_domtest(doctype_str, test_doctype);
|
||||||
|
|
||||||
|
test_quirks_mode();
|
||||||
|
|
||||||
CoUninitialize();
|
CoUninitialize();
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue