From 50fd04a2bb9b2a8f374ea99446f6631606704c6c Mon Sep 17 00:00:00 2001 From: kramm Date: Tue, 23 Dec 2008 18:49:55 +0000 Subject: [PATCH] unittest file --- lib/as3/err/bogusimport.as | 3 +++ lib/as3/err/doubleclass.as | 12 +++++++++ lib/as3/err/internalvar.as | 14 +++++++++++ lib/as3/err/invalidthis.as | 3 +++ lib/as3/err/invalidthisassign.as | 8 ++++++ lib/as3/err/packagesnested.as | 4 +++ lib/as3/err/privatevar.as | 11 ++++++++ lib/as3/err/protectedvar.as | 11 ++++++++ lib/as3/err/publicinternal.as | 4 +++ lib/as3/err/publicoutsidepackage.as | 2 ++ lib/as3/ok/boolvalue.as | 17 +++++++++++++ lib/as3/ok/boundmethod.as | 15 +++++++++++ lib/as3/ok/break.as | 45 +++++++++++++++++++++++++++++++++ lib/as3/ok/class1.as | 17 +++++++++++++ lib/as3/ok/compare.as | 36 +++++++++++++++++++++++++++ lib/as3/ok/defaultparamvalue.as | 17 +++++++++++++ lib/as3/ok/elseif.as | 14 +++++++++++ lib/as3/ok/extraparams.as | 16 ++++++++++++ lib/as3/ok/for.as | 24 ++++++++++++++++++ lib/as3/ok/getset.as | 24 ++++++++++++++++++ lib/as3/ok/if.as | 15 +++++++++++ lib/as3/ok/import.as | 25 +++++++++++++++++++ lib/as3/ok/interface.as | 6 +++++ lib/as3/ok/members.as | 40 +++++++++++++++++++++++++++++ lib/as3/ok/new.as | 35 ++++++++++++++++++++++++++ lib/as3/ok/null.as | 17 +++++++++++++ lib/as3/ok/numbers.as | 36 +++++++++++++++++++++++++++ lib/as3/ok/return.as | 22 ++++++++++++++++ lib/as3/ok/scope.as | 39 +++++++++++++++++++++++++++++ lib/as3/ok/strings.as | 19 ++++++++++++++ lib/as3/ok/switch.as | 22 ++++++++++++++++ lib/as3/ok/this.as | 30 ++++++++++++++++++++++ lib/as3/ok/trace.as | 7 ++++++ lib/as3/ok/while.as | 47 +++++++++++++++++++++++++++++++++++ 34 files changed, 657 insertions(+) create mode 100644 lib/as3/err/bogusimport.as create mode 100644 lib/as3/err/doubleclass.as create mode 100644 lib/as3/err/internalvar.as create mode 100644 lib/as3/err/invalidthis.as create mode 100644 lib/as3/err/invalidthisassign.as create mode 100644 lib/as3/err/packagesnested.as create mode 100644 lib/as3/err/privatevar.as create mode 100644 lib/as3/err/protectedvar.as create mode 100644 lib/as3/err/publicinternal.as create mode 100644 lib/as3/err/publicoutsidepackage.as create mode 100644 lib/as3/ok/boolvalue.as create mode 100644 lib/as3/ok/boundmethod.as create mode 100644 lib/as3/ok/break.as create mode 100644 lib/as3/ok/class1.as create mode 100644 lib/as3/ok/compare.as create mode 100644 lib/as3/ok/defaultparamvalue.as create mode 100644 lib/as3/ok/elseif.as create mode 100644 lib/as3/ok/extraparams.as create mode 100644 lib/as3/ok/for.as create mode 100644 lib/as3/ok/getset.as create mode 100644 lib/as3/ok/if.as create mode 100644 lib/as3/ok/import.as create mode 100644 lib/as3/ok/interface.as create mode 100644 lib/as3/ok/members.as create mode 100644 lib/as3/ok/new.as create mode 100644 lib/as3/ok/null.as create mode 100644 lib/as3/ok/numbers.as create mode 100644 lib/as3/ok/return.as create mode 100644 lib/as3/ok/scope.as create mode 100644 lib/as3/ok/strings.as create mode 100644 lib/as3/ok/switch.as create mode 100644 lib/as3/ok/this.as create mode 100644 lib/as3/ok/trace.as create mode 100644 lib/as3/ok/while.as diff --git a/lib/as3/err/bogusimport.as b/lib/as3/err/bogusimport.as new file mode 100644 index 0000000..cbe26ec --- /dev/null +++ b/lib/as3/err/bogusimport.as @@ -0,0 +1,3 @@ +package abc { + import some.nonexisting.package.MyClass; +} diff --git a/lib/as3/err/doubleclass.as b/lib/as3/err/doubleclass.as new file mode 100644 index 0000000..2991526 --- /dev/null +++ b/lib/as3/err/doubleclass.as @@ -0,0 +1,12 @@ +package abc { + class Twice { + } +} +package def { + class Twice { + } +} +package abc { + class Twice { + } +} diff --git a/lib/as3/err/internalvar.as b/lib/as3/err/internalvar.as new file mode 100644 index 0000000..1ee16bc --- /dev/null +++ b/lib/as3/err/internalvar.as @@ -0,0 +1,14 @@ +package package1 { + public class A { + internal var x; + } +} +package package2 { + + public class Test extends flash.display.MovieClip { + public function Test() { + var cls = new package1.A(); + cls.x=3; //invalid: x is internal + } + } +} diff --git a/lib/as3/err/invalidthis.as b/lib/as3/err/invalidthis.as new file mode 100644 index 0000000..01bb042 --- /dev/null +++ b/lib/as3/err/invalidthis.as @@ -0,0 +1,3 @@ +function test() { + this.x = 3; +} diff --git a/lib/as3/err/invalidthisassign.as b/lib/as3/err/invalidthisassign.as new file mode 100644 index 0000000..8b50208 --- /dev/null +++ b/lib/as3/err/invalidthisassign.as @@ -0,0 +1,8 @@ +package { + import flash.display.MovieClip + public class Main extends flash.display.MovieClip { + function Main() { + this = 3; + } + } +} diff --git a/lib/as3/err/packagesnested.as b/lib/as3/err/packagesnested.as new file mode 100644 index 0000000..a2ee475 --- /dev/null +++ b/lib/as3/err/packagesnested.as @@ -0,0 +1,4 @@ +package Test { + package Test2 { + } +} diff --git a/lib/as3/err/privatevar.as b/lib/as3/err/privatevar.as new file mode 100644 index 0000000..6de34ff --- /dev/null +++ b/lib/as3/err/privatevar.as @@ -0,0 +1,11 @@ +package package1 { + public class A { + private var x; + } + public class Test extends flash.display.MovieClip { + public function Test() { + var cls = new package1.A(); + cls.x=3; //invalid: x is private + } + } +} diff --git a/lib/as3/err/protectedvar.as b/lib/as3/err/protectedvar.as new file mode 100644 index 0000000..a5536ba --- /dev/null +++ b/lib/as3/err/protectedvar.as @@ -0,0 +1,11 @@ +package package1 { + public class A { + protected var x; + } + public class Test extends flash.display.MovieClip { + public function Test() { + var cls = new package1.A(); + cls.x=3; //invalid: x is protected + } + } +} diff --git a/lib/as3/err/publicinternal.as b/lib/as3/err/publicinternal.as new file mode 100644 index 0000000..8eaffbf --- /dev/null +++ b/lib/as3/err/publicinternal.as @@ -0,0 +1,4 @@ +package mypackage { + public internal class Test { + } +} diff --git a/lib/as3/err/publicoutsidepackage.as b/lib/as3/err/publicoutsidepackage.as new file mode 100644 index 0000000..a065407 --- /dev/null +++ b/lib/as3/err/publicoutsidepackage.as @@ -0,0 +1,2 @@ +public class Test { +} diff --git a/lib/as3/ok/boolvalue.as b/lib/as3/ok/boolvalue.as new file mode 100644 index 0000000..b926a47 --- /dev/null +++ b/lib/as3/ok/boolvalue.as @@ -0,0 +1,17 @@ +package { + import flash.display.MovieClip; + public class Main extends flash.display.MovieClip { + function Main() { + trace(false || "ok 1/6"); + trace("ok 2/6" || "error"); + + if(false && true) trace("error") else trace("ok 3/6"); + trace("error" && "ok 4/6"); + + if(!false) trace("ok 5/6"); + + if(!true) trace("error"); + else trace("ok 6/6"); + } + } +} diff --git a/lib/as3/ok/boundmethod.as b/lib/as3/ok/boundmethod.as new file mode 100644 index 0000000..885e5b3 --- /dev/null +++ b/lib/as3/ok/boundmethod.as @@ -0,0 +1,15 @@ +package { + import flash.display.MovieClip; + public class Main extends flash.display.MovieClip { + internal var r; + function print(s) { + trace(s); + trace(this.r); + } + function Main() { + var x = this.print; + this.r = "ok 2/2"; + x("ok 1/2"); + } + } +} diff --git a/lib/as3/ok/break.as b/lib/as3/ok/break.as new file mode 100644 index 0000000..852fc3c --- /dev/null +++ b/lib/as3/ok/break.as @@ -0,0 +1,45 @@ +package test.package { + public class Main extends flash.display.MovieClip { + function Main() { + var i:int; + /* test breaking loop */ + for(i=0;i<100;i++) { + var x=-1; + if(i*i==49) + break; + } + if(i!=7) trace("error"); + else trace("ok 1/4"); + + /* test not breaking loop */ + for(;i<10;i++) { + var x="String"; + if(i==20) + break; + } + if(i!=10) trace("error"); + else trace("ok 2/4"); + + /* test breaking while */ + while(i<20) { + var x=1.0; + if(i==15) + break; + i++; + } + if(i!=15) trace("error"); + else trace("ok 3/4"); + + /* test non-breaking while */ + while(i<30) { + var x=new Object; + if(i==40) + break; + i++; + } + if(i!=30) trace("error"); + else trace("ok 4/4"); + } + } +} + diff --git a/lib/as3/ok/class1.as b/lib/as3/ok/class1.as new file mode 100644 index 0000000..b1e2835 --- /dev/null +++ b/lib/as3/ok/class1.as @@ -0,0 +1,17 @@ +package test1 { + public class Main extends flash.display.MovieClip { + function Main() { + trace("ok"); + } + } + /* explicitly internal */ + internal class InternalClass { + } + /* implicitly internal */ + class ImplicitInternalClass { + } +} +package test2 { + public class PublicClass extends test1.Main { + } +} diff --git a/lib/as3/ok/compare.as b/lib/as3/ok/compare.as new file mode 100644 index 0000000..30bc523 --- /dev/null +++ b/lib/as3/ok/compare.as @@ -0,0 +1,36 @@ +package test.package { + public class Main extends flash.display.MovieClip { + function Main() { + var a=3; + var b=10; + var c=15; + var d=10; + + if(a=d) trace("ok 5/18");else trace("error"); + if(b<=d) trace("ok 6/18");else trace("error"); + + if(a<=b) trace("ok 7/18");else trace("error"); + if(b<=c) trace("ok 8/18");else trace("error"); + if(a<=c) trace("ok 9/18");else trace("error"); + + if(b>=a) trace("ok 10/18");else trace("error"); + if(c>=b) trace("ok 11/18");else trace("error"); + if(c>=a) trace("ok 12/18");else trace("error"); + + if(b>a) trace("ok 13/18");else trace("error"); + if(c>b) trace("ok 14/18");else trace("error"); + if(c>a) trace("ok 15/18");else trace("error"); + + if(bd) trace("error");else trace("ok 17/18"); + + trace("ok 18/18"); + } + } +} + diff --git a/lib/as3/ok/defaultparamvalue.as b/lib/as3/ok/defaultparamvalue.as new file mode 100644 index 0000000..6d0d2dc --- /dev/null +++ b/lib/as3/ok/defaultparamvalue.as @@ -0,0 +1,17 @@ +package { + public class Main extends flash.display.MovieClip { + public myfunction(var x:String="ok 2/4") + { + trace(x); + } + public myfunction2(var i:int,var x:String="ok 4/4") + { + } + public function HelloWorld() { + myfunction("ok 1/4"); + myfunction(); + myfunction2(0,"ok 3/4"); + myfunction2(0); + } + } +} diff --git a/lib/as3/ok/elseif.as b/lib/as3/ok/elseif.as new file mode 100644 index 0000000..25a5e04 --- /dev/null +++ b/lib/as3/ok/elseif.as @@ -0,0 +1,14 @@ +package { + import flash.display.MovieClip; + public class Main extends flash.display.MovieClip { + function Main() { + if(false) { + trace("error"); + } else if(true) { + trace("ok 1/1"); + } else { + trace("error"); + } + } + } +} diff --git a/lib/as3/ok/extraparams.as b/lib/as3/ok/extraparams.as new file mode 100644 index 0000000..5de4c36 --- /dev/null +++ b/lib/as3/ok/extraparams.as @@ -0,0 +1,16 @@ +package { + import flash.display.MovieClip; + + public class Main extends flash.display.MovieClip { + public function test(s,...numbers) { + if(numbers[0]==1 && + numbers[1]==2 && + numbers[2]==3 && + numbers[3]==4) trace("ok 1/2"); + if(numbers.length==4) trace("ok 2/2"); + } + function Main() { + test("", 1,2,3,4); + } + } +} diff --git a/lib/as3/ok/for.as b/lib/as3/ok/for.as new file mode 100644 index 0000000..d3bd828 --- /dev/null +++ b/lib/as3/ok/for.as @@ -0,0 +1,24 @@ + +package { + import flash.display.MovieClip + public class Main extends flash.display.MovieClip { + function Main() { + var a1 = 0; + for(a1=0;a1<100;a1++) { + } + if(a1==100) trace("ok 1/4"); + else trace("error"); + + if(a1<50) trace("error"); + else trace("ok 2/4"); + + if(a1<150) trace("ok 3/4"); + else trace("error"); + + for(var a2=0;a2<99;a2++) { + } + if(a2==99) trace("ok 4/4"); + } + } +} + diff --git a/lib/as3/ok/getset.as b/lib/as3/ok/getset.as new file mode 100644 index 0000000..49a3c7f --- /dev/null +++ b/lib/as3/ok/getset.as @@ -0,0 +1,24 @@ +package package2 { + public class Test { + public function set x (v) { + if(v==2) + trace("ok 2/2"); + } + public function get x ():uint { + trace("ok 1/2"); + return 1; + } + } +} + +package { + import flash.display.MovieClip; + import package2.Test + + public class Main extends flash.display.MovieClip { + function Main() { + var t:Test = new Test(); + t.x++; + } + } +} diff --git a/lib/as3/ok/if.as b/lib/as3/ok/if.as new file mode 100644 index 0000000..1d6c6e6 --- /dev/null +++ b/lib/as3/ok/if.as @@ -0,0 +1,15 @@ +package test.mypackage { + import flash.display.MovieClip; + public class Main extends flash.display.MovieClip { + function Main() { + if(true) trace("ok 1/4"); + if(false) trace("error"); + if(1+1==2) trace("ok 2/4"); + if(1+1==3) trace("error"); + if(1+1!=2) trace("error"); + if(1+2==3) trace("ok 3/4"); + + if(1+1==3) {} else {trace("ok 4/4");} + } + } +} diff --git a/lib/as3/ok/import.as b/lib/as3/ok/import.as new file mode 100644 index 0000000..ec2d5f0 --- /dev/null +++ b/lib/as3/ok/import.as @@ -0,0 +1,25 @@ +package package1 { + public class Class1 { + public function Class1() { + trace("ok 1/2"); + } + } +package package2 { + public class Class2 { + public function Class4() { + trace("ok 2/2"); + } + } +} + +package { + import package1.Class1 + import package2.* + + public class Main extends flash.display.MovieClip { + public function TestImport() { + new Class1(); + new Class2(); + } + } +} diff --git a/lib/as3/ok/interface.as b/lib/as3/ok/interface.as new file mode 100644 index 0000000..9bcd5a0 --- /dev/null +++ b/lib/as3/ok/interface.as @@ -0,0 +1,6 @@ +package I { + public class ClassInMultiLevelPackage { + } + public interface I1 { + } +} diff --git a/lib/as3/ok/members.as b/lib/as3/ok/members.as new file mode 100644 index 0000000..e4cc63f --- /dev/null +++ b/lib/as3/ok/members.as @@ -0,0 +1,40 @@ +package package1 { + public class Class1 { + public var a; + public var b; + public var c:int; + public var d = 1; + public var e:int = 1; + + function Class1() { + } + public function write() { + if(a==1) + trace("ok 1/5"); + if(b==1) + trace("ok 2/5"); + if(c==1) + trace("ok 3/5"); + if(d==1) + trace("ok 4/5"); + if(e==1) + trace("ok 5/5"); + } + } +} +package package2 { + import package1.Class1 + + public class Main extends flash.display.MovieClip { + public function Main() { + var cls = new Class1(); + cls.a = 1; + cls.b++; + cls.c = c.a; + cls.write(); + + cls.c += 1; + cls.c -= c.a; + } + } +} diff --git a/lib/as3/ok/new.as b/lib/as3/ok/new.as new file mode 100644 index 0000000..03a24cb --- /dev/null +++ b/lib/as3/ok/new.as @@ -0,0 +1,35 @@ +package some.other.package { + public class Class4 { + public function Class4() { + trace("ok 4/4"); + } + } +} + +package { + public class Class1 { + public function Class1() { + trace("ok 1/4"); + } + } + public class Class2 { + public function Class2() { + trace("ok 2/4"); + } + } + public class Class3 { + public function Class3(x,s) { + trace(s) + } + } + + public class Main extends flash.display.MovieClip { + public function Main() { + new Class1() + new Class2 + new Class3(0,"ok 3/3") + import some.other.package.Class4 + new Class4(); + } + } +} diff --git a/lib/as3/ok/null.as b/lib/as3/ok/null.as new file mode 100644 index 0000000..c0b7b35 --- /dev/null +++ b/lib/as3/ok/null.as @@ -0,0 +1,17 @@ +package { + + public class Main extends flash.display.MovieClip { + public function Main() { + var x = null; + var y = null; + if(x == y) { + trace("ok 1/2"); + } + if(x === y) { + trace("ok 2/2"); + } + + } + } + +} diff --git a/lib/as3/ok/numbers.as b/lib/as3/ok/numbers.as new file mode 100644 index 0000000..bd4810d --- /dev/null +++ b/lib/as3/ok/numbers.as @@ -0,0 +1,36 @@ +package test.package { + public class Main extends flash.display.MovieClip { + function Main() { + /* test the encoding of various constants. + Depending on the radix size, int constants may be + encoded as byte, u30 short, u31 short, signed, etc. */ + var a1 = 127; + if(String(a1) == "127") trace("ok 1/13"); + var a2 = 256; + if(String(a2) == "256") trace("ok 2/13"); + var a3 = 1073741823; + if(String(a3) == "1073741823") trace("ok 3/13"); + var a4 = 1073741824; + if(String(a4) == "1073741824") trace("ok 4/13"); + var a5 = 2147483647; + if(String(a5) == "2147483647") trace("ok 5/13"); + var a6 = -1; + if(String(a6) == "-1") trace("ok 6/13"); + var a7 = -127; + if(String(a7) == "-127") trace("ok 7/13"); + var a8 = -32767; + if(String(a8) == "-32767") trace("ok 8/13"); + var a9 = -32768; + if(String(a9) == "-32768") trace("ok 9/13"); + var a10 = -32769; + if(String(a10) == "-32769") trace("ok 10/13"); + var a11 = -65536; + if(String(a11) == "-65536") trace("ok 11/13"); + var a12 = -1073741823; + if(String(a12) == "-1073741823") trace("ok 12/13"); + var a13 = -1073741824; + if(String(a13) == "-1073741824") trace("ok 13/13"); + } + } +} + diff --git a/lib/as3/ok/return.as b/lib/as3/ok/return.as new file mode 100644 index 0000000..4d421f6 --- /dev/null +++ b/lib/as3/ok/return.as @@ -0,0 +1,22 @@ +package { + + public class Test { + function Test() { + } + function getok1() { + return "ok1/2"; + } + function getok2():String { + return "ok2/2"; + } + }; + + import flash.display.MovieClip + public class Main extends flash.display.MovieClip { + function Main() { + trace((new Test).getok1()); + var t = new Test; + trace(t.getok2()); + } + } +} diff --git a/lib/as3/ok/scope.as b/lib/as3/ok/scope.as new file mode 100644 index 0000000..e63c4ed --- /dev/null +++ b/lib/as3/ok/scope.as @@ -0,0 +1,39 @@ +package some.multilevel.package { + public class ClassInMultiLevelPackage { + } +} +package some.other.multilevel.package { + import some.multilevel.package.* + public class ClassInOtherMultiLevelPackage extends ClassInMultiLevelPackage { + } +} + +package I { + public interface I1 { + } + public interface I2 { + } + public interface I3 { + } +} +package A { + + class A1 { + } + class A2 extends A1{ + } + public class A3 extends A2 { + } + +} +package B { + class B1 extends A.A3 implements I.I1,I.I2,I.I3{ + } +} +package C { + public class Main extends flash.display.MovieClip { + function Main() { + trace("ok"); + } + } +} diff --git a/lib/as3/ok/strings.as b/lib/as3/ok/strings.as new file mode 100644 index 0000000..3bce1be --- /dev/null +++ b/lib/as3/ok/strings.as @@ -0,0 +1,19 @@ +package { + import flash.display.MovieClip + public class Main extends flash.display.MovieClip { + function Main() { + var email = "test@test.de"; + if(email.length == 12) trace("ok 1/2"); + if(email.charAt(4)!='@') trace("error"); + var x; + var y:Boolean=false; + for(x=0;x