mirror of
https://git.huckle.dev/Huckles-Minecraft-Archive/jpexs-decompiler.git
synced 2026-07-19 17:18:12 +00:00
AS2 classes tests reorganised
This commit is contained in:
@@ -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");
|
||||
}
|
||||
}
|
||||
@@ -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"
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
BIN
libsrc/ffdec_lib/testdata/as2/as2.fla
vendored
BIN
libsrc/ffdec_lib/testdata/as2/as2.fla
vendored
Binary file not shown.
BIN
libsrc/ffdec_lib/testdata/as2/as2.swf
vendored
BIN
libsrc/ffdec_lib/testdata/as2/as2.swf
vendored
Binary file not shown.
@@ -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;
|
||||
}
|
||||
}
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
12
libsrc/ffdec_lib/testdata/as2/com/jpexs/flash/test/TestLoader.as
vendored
Normal file
12
libsrc/ffdec_lib/testdata/as2/com/jpexs/flash/test/TestLoader.as
vendored
Normal 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();
|
||||
}
|
||||
}
|
||||
18
libsrc/ffdec_lib/testdata/as2/com/jpexs/flash/test/testcases/TestCallSetterGetter.as
vendored
Normal file
18
libsrc/ffdec_lib/testdata/as2/com/jpexs/flash/test/testcases/TestCallSetterGetter.as
vendored
Normal 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;
|
||||
}
|
||||
}
|
||||
@@ -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;
|
||||
@@ -1,4 +1,4 @@
|
||||
class com.jpexs.TestSetterGetter {
|
||||
class com.jpexs.flash.test.testcases.TestSetterGetter {
|
||||
|
||||
private var priv_myvar:Number;
|
||||
|
||||
@@ -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;
|
||||
Reference in New Issue
Block a user