Module: wine Branch: master Commit: 666f7501d03983f84833a7a1952e78fd0650fde6 URL: https://source.winehq.org/git/wine.git/?a=commit;h=666f7501d03983f84833a7a19...
Author: Jacek Caban jacek@codeweavers.com Date: Tue Oct 29 19:01:35 2019 +0100
vbscript/tests: Add with statement tests.
Signed-off-by: Jacek Caban jacek@codeweavers.com Signed-off-by: Alexandre Julliard julliard@winehq.org
---
dlls/vbscript/tests/error.vbs | 71 +++++++++++++++++++++++++++++++++++++++++++ dlls/vbscript/tests/lang.vbs | 15 +++++++++ dlls/vbscript/tests/run.c | 12 ++++++++ 3 files changed, 98 insertions(+)
diff --git a/dlls/vbscript/tests/error.vbs b/dlls/vbscript/tests/error.vbs index 78314c3569..13f9a2072e 100644 --- a/dlls/vbscript/tests/error.vbs +++ b/dlls/vbscript/tests/error.vbs @@ -77,6 +77,13 @@ const CO_E_SERVER_EXEC_FAILURE = &h80080005& call ok(Err.Number = 0, "Err.Number = " & Err.Number) call ok(getVT(Err.Number) = "VT_I4", "getVT(Err.Number) = " & getVT(Err.Number))
+class emptyclass +end class + +class propclass + public prop +end class + dim calledFunc
sub returnTrue @@ -313,6 +320,70 @@ end sub
call testForEachError()
+sub testWithError() + on error resume next + dim x + + err.clear + x = false + with throwInt(E_TESTERROR) + ok Err.Number = E_TESTERROR, "Err.Number = " & Err.Number + x = true + end with + ok x, "with statement body not executed" + + err.clear + x = false + with throwInt(E_TESTERROR) + x = true + .prop = 1 + todo_wine_ok Err.Number = 424, "Err.Number = " & Err.Number + end with + ok x, "with statement body not executed" + + err.clear + x = false + with empty + .prop = 1 + todo_wine_ok Err.Number = 424, "Err.Number = " & Err.Number + x = true + end with + ok x, "with statement body not executed" +end sub + +sub testWithError2() + on error resume next + dim x + + err.clear + x = false + with new emptyclass + .prop = 1 + ok Err.Number = 438, "Err.Number = " & Err.Number + x = true + end with + ok x, "with statement body not executed" + + 'dot expression can reference only inner-most with statement + err.clear + x = false + with new propclass + with new emptyclass + .prop = 1 + ok Err.Number = 438, "Err.Number = " & Err.Number + x = true + end with + end with + ok x, "with statement body not executed" + + err.clear + .prop + ok Err.Number = 505, "Err.Number = " & Err.Number & " description """ & err.description & """" +end sub + +call testWithError() +call testWithError2() + sub testHresMap(hres, code) on error resume next
diff --git a/dlls/vbscript/tests/lang.vbs b/dlls/vbscript/tests/lang.vbs index 8027264bf5..f7cdc92ec4 100644 --- a/dlls/vbscript/tests/lang.vbs +++ b/dlls/vbscript/tests/lang.vbs @@ -1568,4 +1568,19 @@ call ok(x.getProp.prop.prop = 3, "x.getProp.prop.prop = " & x.getProp.prop.prop) ok getVT(x) = "VT_DISPATCH*", "getVT(x) = " & getVT(x) todo_wine_ok getVT(x()) = "VT_BSTR", "getVT(x()) = " & getVT(x())
+with nothing +end with + +set x = new TestPropSyntax +with x + .prop = 1 + ok .prop = 1, ".prop = "&.prop +end with +ok x.prop = 1, "x.prop = " & x.prop + +with new TestPropSyntax + .prop = 1 + ok .prop = 1, ".prop = "&.prop +end with + reportSuccess() diff --git a/dlls/vbscript/tests/run.c b/dlls/vbscript/tests/run.c index 2c0ccdd25b..19b562852d 100644 --- a/dlls/vbscript/tests/run.c +++ b/dlls/vbscript/tests/run.c @@ -2920,6 +2920,18 @@ static void run_tests(void) CHECK_CALLED(global_propargput1_d); CHECK_CALLED(global_propargput1_i);
+ SET_EXPECT(testobj_propget_d); + SET_EXPECT(testobj_propget_i); + parse_script_a("dim x\nwith testObj\nx=1+.propget\nend with"); + CHECK_CALLED(testobj_propget_d); + CHECK_CALLED(testobj_propget_i); + + SET_EXPECT(testobj_propput_d); + SET_EXPECT(testobj_propput_i); + parse_script_a("with testObj\n.propput = 1\nend with"); + CHECK_CALLED(testobj_propput_d); + CHECK_CALLED(testobj_propput_i); + parse_htmlscript_a("<!--"); parse_htmlscript_a(" -->"); parse_htmlscript_a("<!--\ndim x\nx=1\n-->\n");