AS2 classes tests reorganised

This commit is contained in:
Jindra Petřík
2018-01-27 13:38:52 +01:00
parent c0e6e728d9
commit 08751b9524
11 changed files with 82 additions and 57 deletions

View File

@@ -30,12 +30,17 @@ import static org.testng.Assert.assertNotNull;
import static org.testng.Assert.fail;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
import static org.testng.Assert.assertEquals;
import static org.testng.Assert.assertNotNull;
import static org.testng.Assert.fail;
/**
*
* @author JPEXS
*/
public class ActionScript2TestClasses extends ActionScript2TestBase {
public class ActionScript2ClassesTest extends ActionScript2TestBase {
private final String BASE_TEST_PACKAGE = "com.jpexs.flash.test.testcases";
@BeforeClass
public void init() throws IOException, InterruptedException {
@@ -47,8 +52,8 @@ public class ActionScript2TestClasses extends ActionScript2TestBase {
swf = new SWF(new BufferedInputStream(new FileInputStream("testdata/as2/as2.swf")), false);
}
private void compareSrc(String classFullName, String expectedResult) {
DoInitActionTag dia = getClassSource(classFullName);
private void compareSrc(String testClassName, String expectedClassContents) {
DoInitActionTag dia = getClassSource(BASE_TEST_PACKAGE + "." + testClassName);
assertNotNull(dia);
HighlightedTextWriter writer = new HighlightedTextWriter(new CodeFormatting(), false);
try {
@@ -57,7 +62,10 @@ public class ActionScript2TestClasses extends ActionScript2TestBase {
fail();
}
String actualResult = cleanPCode(writer.toString());
expectedResult = cleanPCode(expectedResult);
String expectedResult = cleanPCode("class " + BASE_TEST_PACKAGE + "." + testClassName + "\r\n"
+ "{\r\n"
+ expectedClassContents + "\r\n"
+ "}");
assertEquals(actualResult, expectedResult);
}
@@ -79,9 +87,7 @@ public class ActionScript2TestClasses extends ActionScript2TestBase {
@Test
public void testVarsMethods() {
compareSrc("com.jpexs.TestVarsMethods", "class com.jpexs.TestVarsMethods\r\n"
+ "{\r\n"
+ "var instVar = 1;\r\n"
compareSrc("TestVarsMethods", "var instVar = 1;\r\n"
+ "static var statVar = 2;\r\n"
+ "function TestVarsMethods()\r\n"
+ "{\r\n"
@@ -95,14 +101,12 @@ public class ActionScript2TestClasses extends ActionScript2TestBase {
+ "{\r\n"
+ "trace(\"static method\");\r\n"
+ "}\r\n"
+ "}");
);
}
@Test
public void testMaintainOrder() {
compareSrc("com.jpexs.TestMaintainOrder", "class com.jpexs.TestMaintainOrder\r\n"
+ "{\r\n"
+ "var a = 1;\r\n"
compareSrc("TestMaintainOrder", "var a = 1;\r\n"
+ "static var b = 2;\r\n"
+ "var c = 3;\r\n"
+ "static var d = 4;\r\n"
@@ -140,7 +144,6 @@ public class ActionScript2TestClasses extends ActionScript2TestBase {
+ "function _x2()\r\n"
+ "{\r\n"
+ "trace(\"after _x1\");\r\n"
+ "}\r\n"
+ "}");
+ "}\r\n");
}
}

View File

@@ -91,7 +91,7 @@ public class ActionScript2Test extends ActionScript2TestBase {
@Test
public void frame24_unicodeTest() {
compareSrc(24, "trace(\"unicodeTest\");\r\n"
+ "var k = \"\u05d4\u05d9\u05e4\u05d5\u05e4\u05d5\u05d8\u05de\u05d9, \u05d0\u05d5 \u05d0\";\r\n"
+ "var k = \"היפופוטמי, או א\";\r\n"
+ "trace(k);\r\n"
);
}
@@ -309,13 +309,7 @@ public class ActionScript2Test extends ActionScript2TestBase {
+ "ship.moveUp(0.2);\r\n"
+ "enemy.moveRight(230);\r\n"
+ "enemy.moveLeft(100);\r\n"
+ "var mt = new com.jpexs.MyTest();\r\n"
+ "mt.test();\r\n"
+ "var c = new Cox(box1);\r\n"
+ "var tg = new com.jpexs.TestSetterGetter();\r\n"
+ "var tcg = new com.jpexs.TestCallSetterGetter();\r\n"
+ "var tvm = new com.jpexs.TestVarsMethods();\r\n"
+ "var tmo = new com.jpexs.TestMaintainOrder();\r\n"
);
}
@@ -672,7 +666,7 @@ public class ActionScript2Test extends ActionScript2TestBase {
@Test
public void frame55_pushTest() {
compareSrc(55, "trace(\"pushTest\");\r\n"
+ "53;"
+ "53;\r\n"
);
}
@@ -810,6 +804,28 @@ public class ActionScript2Test extends ActionScript2TestBase {
);
}
@Test
public void frame60_numbersTest() {
compareSrc(60, "trace(\"numbersTest\");\r\n"
+ "var x = null;\r\n"
+ "trace(\"null:\" + x);\r\n"
+ "x = true;\r\n"
+ "trace(\"true:\" + x);\r\n"
+ "x = false;\r\n"
+ "trace(\"false:\" + x);\r\n"
+ "x = 1;\r\n"
+ "trace(\"1:\" + x);\r\n"
+ "x = 2147483647;\r\n"
+ "trace(\"0x7fffffff:\" + x);\r\n"
+ "x = 2147483648;\r\n"
+ "trace(\"0x80000000:\" + x);\r\n"
+ "x = -2147483648;\r\n"
+ "trace(\"-0x80000000:\" + x);\r\n"
+ "x = -2147483649;\r\n"
+ "trace(\"-0x80000001:\" + x);\r\n"
);
}
@Test
public void frame61_switchDefaultTest() {
compareSrc(61, "trace(\"switchDefaultTest\");\r\n"
@@ -850,6 +866,7 @@ public class ActionScript2Test extends ActionScript2TestBase {
);
}
@Test
public void frame63_functionVariablesTest() {
compareSrc(63, "function outfunc()\r\n"
+ "{\r\n"
@@ -891,4 +908,12 @@ public class ActionScript2Test extends ActionScript2TestBase {
+ "trace(\"functionInnerParametersTest\");\r\n"
);
}
@Test
public void frame65_loadClassesTest() {
compareSrc(65, "trace(\"loadClassesTest\");\r\n"
+ "var tst = new com.jpexs.flash.test.TestLoader();\r\n"
+ "tst.includeTests();\r\n"
);
}
}

Binary file not shown.

Binary file not shown.

View File

@@ -1,15 +0,0 @@
class com.jpexs.MyTest {
private var i:Number=5;
static var k:Number=27;
function test():Number
{
trace("hello");
return 5;
}
static function testS():Number
{
trace("hi");
return 88;
}
}

View File

@@ -1,18 +0,0 @@
class com.jpexs.TestCallSetterGetter {
public var myobj : com.jpexs.TestSetterGetter;
public function testSetterCall(){
this.myobj.myvar = 5;
}
public function testGetterCall() : Number {
return this.myobj.myvar;
}
public function testStatGetterCall() : Number {
return com.jpexs.TestSetterGetter.mystatvar;
}
public function testStatSetterCall(val:Number) {
com.jpexs.TestSetterGetter.mystatvar = 6;
}
}

View File

@@ -0,0 +1,12 @@
/**
* Class for including other TestCases, it is called from frame 65
*/
class com.jpexs.flash.test.TestLoader {
public function includeTests() {
new com.jpexs.flash.test.testcases.TestSetterGetter();
new com.jpexs.flash.test.testcases.TestCallSetterGetter();
new com.jpexs.flash.test.testcases.TestVarsMethods();
new com.jpexs.flash.test.testcases.TestMaintainOrder();
}
}

View File

@@ -0,0 +1,18 @@
class com.jpexs.flash.test.testcases.TestCallSetterGetter {
public var myobj : com.jpexs.flash.test.testcases.TestSetterGetter;
public function testSetterCall(){
this.myobj.myvar = 5;
}
public function testGetterCall() : Number {
return this.myobj.myvar;
}
public function testStatGetterCall() : Number {
return com.jpexs.flash.test.testcases.TestSetterGetter.mystatvar;
}
public function testStatSetterCall(val:Number) {
com.jpexs.flash.test.testcases.TestSetterGetter.mystatvar = 6;
}
}

View File

@@ -1,4 +1,4 @@
class com.jpexs.TestMaintainOrder {
class com.jpexs.flash.test.testcases.TestMaintainOrder {
public var a:Number = 1;
public static var b:Number = 2;

View File

@@ -1,4 +1,4 @@
class com.jpexs.TestSetterGetter {
class com.jpexs.flash.test.testcases.TestSetterGetter {
private var priv_myvar:Number;

View File

@@ -1,4 +1,4 @@
class com.jpexs.TestVarsMethods {
class com.jpexs.flash.test.testcases.TestVarsMethods {
public var instVar:Number = 1;
public static var statVar:Number = 2;