Jacek Caban : jscript/tests: Added @set tests.

Alexandre Julliard julliard at wine.codeweavers.com
Tue Sep 30 14:28:30 CDT 2014


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

Author: Jacek Caban <jacek at codeweavers.com>
Date:   Tue Sep 30 16:52:03 2014 +0200

jscript/tests: Added @set tests.

---

 dlls/jscript/tests/cc.js | 93 ++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 93 insertions(+)

diff --git a/dlls/jscript/tests/cc.js b/dlls/jscript/tests/cc.js
index 1fee93f..b96f21e 100644
--- a/dlls/jscript/tests/cc.js
+++ b/dlls/jscript/tests/cc.js
@@ -72,4 +72,97 @@ try {
 }
 ok(tmp, "expected syntax exception");
 
+ok(isNaN(@test), "@test = " + @test);
+
+ at set @test = 1
+ok(@test === 1, "@test = " + @test);
+
+ at set @test = 0
+ok(@test === 0, "@test = " + @test);
+
+tmp = false
+ at set @test = @test tmp=true
+ok(@test === 0, "@test = " + @test);
+ok(tmp, "expr after @set not evaluated");
+
+ at set @test = !@test
+ok(@test === true, "@test = " + @test);
+
+ at set @test = (@test+1+true)
+ok(@test === 3, "@test = " + @test);
+
+ at set
+ @test
+ =
+ 2
+ok(@test === 2, "@test = " + @test);
+
+ at set
+ @test
+ =
+ (
+ 2
+ +
+ 2
+ )
+ok(@test === 4, "@test = " + @test);
+
+ at set @test = 2.5
+ok(@test === 2.5, "@test = " + @test);
+
+ at set @test = 0x4
+ok(@test === 4, "@test = " + @test);
+
+ at set @test = (2 + 2/2)
+ok(@test === 3, "@test = " + @test);
+
+ at set @test = (false+false)
+ok(@test === 0, "@test = " + @test);
+
+ at set @test = ((1+1)*((3)+1))
+ok(@test === 8, "@test = " + @test);
+
+ at set @_test = true
+ok(@_test === true, "@_test = " + @_test);
+
+ at set @$test = true
+ok(@$test === true, "@$test = " + @$test);
+
+ at set @newtest = (@newtest != @newtest)
+ok(@newtest === true, "@newtest = " + @newtest);
+
+ at set @test = (false != 0)
+ok(@test === false, "@test = " + @test);
+
+ at set @test = (1 != true)
+ok(@test === false, "@test = " + @test);
+
+ at set @test = (0 != true)
+ok(@test === true, "@test = " + @test);
+
+var exception_map = {
+    JS_E_EXPECTED_IDENTIFIER:  {type: "SyntaxError", number: -2146827278},
+    JS_E_EXPECTED_ASSIGN:      {type: "SyntaxError", number: -2146827277},
+    JS_E_EXPECTED_AT:          {type: "SyntaxError", number: -2146827256}
+};
+
+function testException(src, id) {
+    var ex = exception_map[id];
+    var ret = "", num = "";
+
+    try {
+        eval(src);
+    } catch(e) {
+        ret = e.name;
+        num = e.number;
+    }
+
+    ok(ret === ex.type, "Exception test, ret = " + ret + ", expected " + ex.type +". Executed code: " + src);
+    ok(num === ex.number, "Exception test, num = " + num + ", expected " + ex.number + ". Executed function: " + src);
+}
+
+testException("@set test=true", "JS_E_EXPECTED_AT");
+testException("@set @1=true", "JS_E_EXPECTED_IDENTIFIER");
+testException("@set @test x=true", "JS_E_EXPECTED_ASSIGN");
+
 reportSuccess();




More information about the wine-cvs mailing list