Module: wine Branch: master Commit: 2dc78e555be83241c660f0c567b54a3b356101fa URL: http://source.winehq.org/git/wine.git/?a=commit;h=2dc78e555be83241c660f0c567...
Author: Piotr Caban piotr.caban@gmail.com Date: Thu Apr 9 23:34:56 2009 +0200
jscript: Added html comments tests.
---
dlls/jscript/tests/run.c | 66 ++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 66 insertions(+), 0 deletions(-)
diff --git a/dlls/jscript/tests/run.c b/dlls/jscript/tests/run.c index 39577cd..a1fe3b6 100644 --- a/dlls/jscript/tests/run.c +++ b/dlls/jscript/tests/run.c @@ -600,6 +600,47 @@ static void parse_script(BSTR script_str) IUnknown_Release(parser); }
+static HRESULT parse_htmlscript(BSTR script_str) +{ + IActiveScriptParse *parser; + IActiveScript *engine; + HRESULT hres; + BSTR tmp = a2bstr("</SCRIPT>"); + + engine = create_script(); + if(!engine) + return E_FAIL; + + hres = IActiveScript_QueryInterface(engine, &IID_IActiveScriptParse, (void**)&parser); + ok(hres == S_OK, "Could not get IActiveScriptParse: %08x\n", hres); + if (FAILED(hres)) + { + IActiveScript_Release(engine); + return E_FAIL; + } + + hres = IActiveScriptParse64_InitNew(parser); + ok(hres == S_OK, "InitNew failed: %08x\n", hres); + + hres = IActiveScript_SetScriptSite(engine, &ActiveScriptSite); + ok(hres == S_OK, "SetScriptSite failed: %08x\n", hres); + + hres = IActiveScript_AddNamedItem(engine, testW, + SCRIPTITEM_ISVISIBLE|SCRIPTITEM_ISSOURCE|SCRIPTITEM_GLOBALMEMBERS); + ok(hres == S_OK, "AddNamedItem failed: %08x\n", hres); + + hres = IActiveScript_SetScriptState(engine, SCRIPTSTATE_STARTED); + ok(hres == S_OK, "SetScriptState(SCRIPTSTATE_STARTED) failed: %08x\n", hres); + + hres = IActiveScriptParse64_ParseScriptText(parser, script_str, NULL, NULL, tmp, 0, 0, 0, NULL, NULL); + + IActiveScript_Release(engine); + IUnknown_Release(parser); + SysFreeString(tmp); + + return hres; +} + static void parse_script_a(const char *src) { BSTR tmp = a2bstr(src); @@ -607,6 +648,16 @@ static void parse_script_a(const char *src) SysFreeString(tmp); }
+static HRESULT parse_htmlscript_a(const char *src) +{ + HRESULT hres; + BSTR tmp = a2bstr(src); + hres = parse_htmlscript(tmp); + SysFreeString(tmp); + + return hres; +} + static BSTR get_script_from_file(const char *filename) { DWORD size, len; @@ -741,6 +792,8 @@ static void test_isvisible(BOOL global_members)
static void run_tests(void) { + HRESULT hres; + strict_dispid_check = TRUE;
parse_script_a(""); @@ -776,6 +829,19 @@ static void run_tests(void)
test_isvisible(FALSE); test_isvisible(TRUE); + + hres = parse_htmlscript_a("<!--"); + ok(hres == S_OK, "ParseScriptText failed: %08x\n", hres); + hres = parse_htmlscript_a("-->"); + ok(hres == S_OK, "ParseScriptText failed: %08x\n", hres); + hres = parse_htmlscript_a("<!--\nvar a=1;\n-->\n"); + ok(hres == S_OK, "ParseScriptText failed: %08x\n", hres); + hres = parse_htmlscript_a("<!--\n<!-- ignore this\n-->\n"); + ok(hres == S_OK, "ParseScriptText failed: %08x\n", hres); + hres = parse_htmlscript_a("var a=1;\nif(a-->0) a=5;\n"); + ok(hres == S_OK, "ParseScriptText failed: %08x\n", hres); + hres = parse_htmlscript_a("var a=1;\nif(a\n-->0) a=5;\n"); + ok(hres != S_OK, "ParseScriptText have not failed\n"); }
START_TEST(run)