unittest file
authorkramm <kramm>
Tue, 23 Dec 2008 18:49:55 +0000 (18:49 +0000)
committerkramm <kramm>
Tue, 23 Dec 2008 18:49:55 +0000 (18:49 +0000)
34 files changed:
lib/as3/err/bogusimport.as [new file with mode: 0644]
lib/as3/err/doubleclass.as [new file with mode: 0644]
lib/as3/err/internalvar.as [new file with mode: 0644]
lib/as3/err/invalidthis.as [new file with mode: 0644]
lib/as3/err/invalidthisassign.as [new file with mode: 0644]
lib/as3/err/packagesnested.as [new file with mode: 0644]
lib/as3/err/privatevar.as [new file with mode: 0644]
lib/as3/err/protectedvar.as [new file with mode: 0644]
lib/as3/err/publicinternal.as [new file with mode: 0644]
lib/as3/err/publicoutsidepackage.as [new file with mode: 0644]
lib/as3/ok/boolvalue.as [new file with mode: 0644]
lib/as3/ok/boundmethod.as [new file with mode: 0644]
lib/as3/ok/break.as [new file with mode: 0644]
lib/as3/ok/class1.as [new file with mode: 0644]
lib/as3/ok/compare.as [new file with mode: 0644]
lib/as3/ok/defaultparamvalue.as [new file with mode: 0644]
lib/as3/ok/elseif.as [new file with mode: 0644]
lib/as3/ok/extraparams.as [new file with mode: 0644]
lib/as3/ok/for.as [new file with mode: 0644]
lib/as3/ok/getset.as [new file with mode: 0644]
lib/as3/ok/if.as [new file with mode: 0644]
lib/as3/ok/import.as [new file with mode: 0644]
lib/as3/ok/interface.as [new file with mode: 0644]
lib/as3/ok/members.as [new file with mode: 0644]
lib/as3/ok/new.as [new file with mode: 0644]
lib/as3/ok/null.as [new file with mode: 0644]
lib/as3/ok/numbers.as [new file with mode: 0644]
lib/as3/ok/return.as [new file with mode: 0644]
lib/as3/ok/scope.as [new file with mode: 0644]
lib/as3/ok/strings.as [new file with mode: 0644]
lib/as3/ok/switch.as [new file with mode: 0644]
lib/as3/ok/this.as [new file with mode: 0644]
lib/as3/ok/trace.as [new file with mode: 0644]
lib/as3/ok/while.as [new file with mode: 0644]

diff --git a/lib/as3/err/bogusimport.as b/lib/as3/err/bogusimport.as
new file mode 100644 (file)
index 0000000..cbe26ec
--- /dev/null
@@ -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 (file)
index 0000000..2991526
--- /dev/null
@@ -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 (file)
index 0000000..1ee16bc
--- /dev/null
@@ -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 (file)
index 0000000..01bb042
--- /dev/null
@@ -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 (file)
index 0000000..8b50208
--- /dev/null
@@ -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 (file)
index 0000000..a2ee475
--- /dev/null
@@ -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 (file)
index 0000000..6de34ff
--- /dev/null
@@ -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 (file)
index 0000000..a5536ba
--- /dev/null
@@ -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 (file)
index 0000000..8eaffbf
--- /dev/null
@@ -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 (file)
index 0000000..a065407
--- /dev/null
@@ -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 (file)
index 0000000..b926a47
--- /dev/null
@@ -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 (file)
index 0000000..885e5b3
--- /dev/null
@@ -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 (file)
index 0000000..852fc3c
--- /dev/null
@@ -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 (file)
index 0000000..b1e2835
--- /dev/null
@@ -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 (file)
index 0000000..30bc523
--- /dev/null
@@ -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<b) trace("ok 1/18");else trace("error");
+            if(b<c) trace("ok 2/18");else trace("error");
+            if(a<c) trace("ok 3/18");else trace("error");
+            
+            if(b==d) trace("ok 4/18");else trace("error");
+            if(b>=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(b<d) trace("error");else trace("ok 16/18");
+            if(b>d) 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 (file)
index 0000000..6d0d2dc
--- /dev/null
@@ -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 (file)
index 0000000..25a5e04
--- /dev/null
@@ -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 (file)
index 0000000..5de4c36
--- /dev/null
@@ -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 (file)
index 0000000..d3bd828
--- /dev/null
@@ -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 (file)
index 0000000..49a3c7f
--- /dev/null
@@ -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 (file)
index 0000000..1d6c6e6
--- /dev/null
@@ -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 (file)
index 0000000..ec2d5f0
--- /dev/null
@@ -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 (file)
index 0000000..9bcd5a0
--- /dev/null
@@ -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 (file)
index 0000000..e4cc63f
--- /dev/null
@@ -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 (file)
index 0000000..03a24cb
--- /dev/null
@@ -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 (file)
index 0000000..c0b7b35
--- /dev/null
@@ -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 (file)
index 0000000..bd4810d
--- /dev/null
@@ -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 (file)
index 0000000..4d421f6
--- /dev/null
@@ -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 (file)
index 0000000..e63c4ed
--- /dev/null
@@ -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 (file)
index 0000000..3bce1be
--- /dev/null
@@ -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<email.length;x++) {
+                if(email.charAt(x)=='.') {
+                    y=true;
+                }
+            }
+            if(y) trace("ok 2/2");
+        }
+    }
+}
+
diff --git a/lib/as3/ok/switch.as b/lib/as3/ok/switch.as
new file mode 100644 (file)
index 0000000..637b9ea
--- /dev/null
@@ -0,0 +1,22 @@
+package {
+    import flash.display.MovieClip;
+    public class Main extends flash.display.MovieClip {
+        function Main() {
+            var x:int;
+            for(x=0;x<5;x++) {
+                switch(x*x) {
+                    case 0: trace("ok 1/5");break;
+                    case 1: trace("ok 2/5");break;
+                    case 2: trace("error");break;
+                    case 3: trace("error");break;
+                    case 4: trace("ok 3/5");break;
+                    case 9: //fallthrough
+                    case 10:
+                    trace("ok 4/5");break;
+                    default:
+                    trace("ok 5/5");break;
+                }
+            }
+        }
+    }
+}
diff --git a/lib/as3/ok/this.as b/lib/as3/ok/this.as
new file mode 100644 (file)
index 0000000..361d26b
--- /dev/null
@@ -0,0 +1,30 @@
+package {
+    import flash.display.MovieClip
+    public class Main extends flash.display.MovieClip {
+        internal var s0;
+        internal var s1:String="ok3/4";
+        internal var s2;
+        function myswf() {
+
+            this.printok1();
+            this.s0 = "ok2/4";
+            this.printok2(0);
+
+            // member w/ default value:
+            trace(this.s1);
+
+            //omit "this":
+            s2 = "ok4/4";
+            printok3();
+        }
+        public function printok1() {
+            trace("ok1/4");
+        }
+        public function printok2(x:uint) {
+            trace(this.s0);
+        }
+        public function printok3() {
+            trace(this.s2);
+        }
+    }
+}
diff --git a/lib/as3/ok/trace.as b/lib/as3/ok/trace.as
new file mode 100644 (file)
index 0000000..ee09ec1
--- /dev/null
@@ -0,0 +1,7 @@
+package {
+    public class Main extends flash.display.MovieClip {
+        public function Main() {
+            trace("ok");
+        }
+    }
+}
diff --git a/lib/as3/ok/while.as b/lib/as3/ok/while.as
new file mode 100644 (file)
index 0000000..83b71d2
--- /dev/null
@@ -0,0 +1,47 @@
+package test.package {
+    public class Main extends flash.display.MovieClip {
+        function Main() {
+            var i = 0;
+            var j = 0;
+            while(i*i<100) {
+                i++;
+            }
+            if(i!=10) trace("error");
+            else trace("ok 1/3");
+            
+            while(j*j<121) {
+                i++;
+                j++;
+            }
+            if(i!=21) trace("error");
+            else trace("ok 2/3");
+
+            var x1=0;
+            var a=1;
+            var sum=0;
+            while(x1<10) {
+                var x2=0;
+                var a=2;
+                x2 = 0;
+                while(x2<10) {
+                    var x3=0;
+                    var a=3;
+                    x3 = 0;
+                    while(x3<10) {
+                        var a=4;
+                        sum+=a;
+                        x3++;
+                    }
+                    sum+=a;
+                    x2++;
+                }
+                sum+=a;
+                x1++;
+            }
+            sum+=a;
+            if(sum!=4321) trace("error");
+            else trace("ok 3/3");
+        }
+    }
+}
+