Search in sources :

Example 16 with ClassNode

use of jadx.core.dex.nodes.ClassNode in project jadx by skylot.

the class TestLoopCondition2 method test.

@Test
public void test() {
    ClassNode cls = getClassNode(TestCls.class);
    String code = cls.getCode().toString();
    assertThat(code, containsOne("int i = 0;"));
    assertThat(code, containsOne("while (a && i < 10) {"));
    assertThat(code, containsOne("i++;"));
    assertThat(code, containsOne("return i;"));
}
Also used : ClassNode(jadx.core.dex.nodes.ClassNode) IntegrationTest(jadx.tests.api.IntegrationTest) Test(org.junit.Test)

Example 17 with ClassNode

use of jadx.core.dex.nodes.ClassNode in project jadx by skylot.

the class TestLoopCondition3 method test.

@Test
public void test() {
    ClassNode cls = getClassNode(TestCls.class);
    String code = cls.getCode().toString();
    assertThat(code, containsOne("while (a < 12) {"));
    assertThat(code, containsOne("if (b + a < 9 && b < 8) {"));
    assertThat(code, containsOne("if (b >= 2 && a > -1 && b < 6) {"));
}
Also used : ClassNode(jadx.core.dex.nodes.ClassNode) IntegrationTest(jadx.tests.api.IntegrationTest) Test(org.junit.Test)

Example 18 with ClassNode

use of jadx.core.dex.nodes.ClassNode in project jadx by skylot.

the class TestLoopCondition4 method test.

@Test
public void test() {
    ClassNode cls = getClassNode(TestCls.class);
    String code = cls.getCode().toString();
    assertThat(code, containsOne("int n = -1;"));
    assertThat(code, containsOne("while (n < 0) {"));
    assertThat(code, containsOne("n += 12;"));
    assertThat(code, containsOne("while (n > 11) {"));
    assertThat(code, containsOne("n -= 12;"));
    assertThat(code, containsOne("System.out.println(n);"));
}
Also used : ClassNode(jadx.core.dex.nodes.ClassNode) IntegrationTest(jadx.tests.api.IntegrationTest) Test(org.junit.Test)

Example 19 with ClassNode

use of jadx.core.dex.nodes.ClassNode in project jadx by skylot.

the class TestLoopConditionInvoke method test.

@Test
public void test() {
    ClassNode cls = getClassNode(TestCls.class);
    String code = cls.getCode().toString();
    assertThat(code, containsOne("do {"));
    assertThat(code, containsOne("if (ch == '\\u0000') {"));
    assertThat(code, containsOne("this.pos = startPos;"));
    assertThat(code, containsOne("return false;"));
    assertThat(code, containsOne("} while (ch != lastChar);"));
    assertThat(code, containsOne("return true;"));
}
Also used : ClassNode(jadx.core.dex.nodes.ClassNode) IntegrationTest(jadx.tests.api.IntegrationTest) Test(org.junit.Test)

Example 20 with ClassNode

use of jadx.core.dex.nodes.ClassNode in project jadx by skylot.

the class TestLoopDetection2 method test.

@Test
public void test() {
    ClassNode cls = getClassNode(TestCls.class);
    String code = cls.getCode().toString();
    assertThat(code, containsOne("int c = a + b;"));
    assertThat(code, containsOne("for (int i = a; i < b; i++) {"));
    assertThat(code, not(containsString("c_2")));
}
Also used : ClassNode(jadx.core.dex.nodes.ClassNode) CoreMatchers.containsString(org.hamcrest.CoreMatchers.containsString) IntegrationTest(jadx.tests.api.IntegrationTest) Test(org.junit.Test)

Aggregations

ClassNode (jadx.core.dex.nodes.ClassNode)236 Test (org.junit.Test)201 IntegrationTest (jadx.tests.api.IntegrationTest)197 CoreMatchers.containsString (org.hamcrest.CoreMatchers.containsString)93 JadxMatchers.countString (jadx.tests.api.utils.JadxMatchers.countString)17 MethodNode (jadx.core.dex.nodes.MethodNode)12 FieldNode (jadx.core.dex.nodes.FieldNode)10 Matchers.containsString (org.hamcrest.Matchers.containsString)10 ConstClassNode (jadx.core.dex.instructions.ConstClassNode)7 InsnNode (jadx.core.dex.nodes.InsnNode)7 ClassInfo (jadx.core.dex.info.ClassInfo)6 IndexInsnNode (jadx.core.dex.instructions.IndexInsnNode)6 DexNode (jadx.core.dex.nodes.DexNode)5 InsnArg (jadx.core.dex.instructions.args.InsnArg)4 ConstructorInsn (jadx.core.dex.instructions.mods.ConstructorInsn)4 SmaliTest (jadx.tests.api.SmaliTest)4 ArrayList (java.util.ArrayList)4 FieldReplaceAttr (jadx.core.dex.attributes.nodes.FieldReplaceAttr)3 FieldInfo (jadx.core.dex.info.FieldInfo)3 MethodInfo (jadx.core.dex.info.MethodInfo)3