mirror of
https://git.huckle.dev/Huckles-Minecraft-Archive/jpexs-decompiler.git
synced 2026-05-22 14:16:28 +00:00
96 lines
2.7 KiB
Java
96 lines
2.7 KiB
Java
/*
|
|
* Copyright (C) 2010-2015 JPEXS, All rights reserved.
|
|
*
|
|
* This library is free software; you can redistribute it and/or
|
|
* modify it under the terms of the GNU Lesser General Public
|
|
* License as published by the Free Software Foundation; either
|
|
* version 3.0 of the License, or (at your option) any later version.
|
|
*
|
|
* This library is distributed in the hope that it will be useful,
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
* Lesser General Public License for more details.
|
|
*
|
|
* You should have received a copy of the GNU Lesser General Public
|
|
* License along with this library.
|
|
*/
|
|
package com.jpexs.decompiler.flash;
|
|
|
|
import com.jpexs.decompiler.flash.action.parser.script.ActionScript2Parser;
|
|
import com.jpexs.decompiler.flash.configuration.Configuration;
|
|
import com.jpexs.decompiler.graph.CompilationException;
|
|
import java.io.IOException;
|
|
import static org.testng.Assert.fail;
|
|
import org.testng.annotations.BeforeClass;
|
|
import org.testng.annotations.Test;
|
|
|
|
/**
|
|
*
|
|
* @author JPEXS
|
|
*/
|
|
public class ActionScript2ParserTest extends ActionScript2TestBase {
|
|
|
|
@BeforeClass
|
|
public void init() throws IOException, InterruptedException {
|
|
//Main.initLogging(false);
|
|
Configuration.autoDeobfuscate.set(false);
|
|
}
|
|
|
|
private void parseAS2(String script) {
|
|
try {
|
|
ActionScript2Parser par = new ActionScript2Parser(SWF.DEFAULT_VERSION);
|
|
par.actionsFromString(script);
|
|
} catch (IOException | CompilationException | ParseException ex) {
|
|
fail("Unable to parse: " + script, ex);
|
|
}
|
|
}
|
|
|
|
@Test
|
|
private void testAS2Parse1() {
|
|
parseAS2(
|
|
"var x = true;\n"
|
|
+ "while(x) { }");
|
|
}
|
|
|
|
@Test
|
|
private void testAS2Parse2() {
|
|
parseAS2(
|
|
"function test(a, b, c)\n"
|
|
+ "{\n"
|
|
+ " return a != 0?b * 2:c;\n"
|
|
+ "}");
|
|
}
|
|
|
|
@Test
|
|
private void testAS2Parse3() {
|
|
parseAS2(
|
|
"for(;i < 10;i++) { }");
|
|
}
|
|
|
|
@Test
|
|
private void testAS2Parse4() {
|
|
parseAS2(
|
|
"class cl1\n"
|
|
+ "{\n"
|
|
+ " function stop()\n"
|
|
+ " {\n"
|
|
+ " }\n"
|
|
+ "}");
|
|
}
|
|
|
|
@Test
|
|
private void testAS2Parse5() {
|
|
parseAS2(
|
|
"if(!test.T1)\n"
|
|
+ "{\n"
|
|
+ " test.T1 = function()\n"
|
|
+ " {\n"
|
|
+ " super();\n"
|
|
+ " }.Initialize = function(obj)\n"
|
|
+ " {\n"
|
|
+ " var x = 1;\n"
|
|
+ " };\n"
|
|
+ "}");
|
|
}
|
|
}
|