summaryrefslogtreecommitdiff
path: root/src/test/java/cuchaz/enigma/TestInnerClasses.java
diff options
context:
space:
mode:
authorGravatar gegy10002018-05-19 17:02:46 +0200
committerGravatar gegy10002018-05-19 17:02:46 +0200
commit2b2249e873c4adfd2dd6e8f1f2489ccd9f6aa021 (patch)
tree14c8b1e806449ace1641a1dbafae162855f79670 /src/test/java/cuchaz/enigma/TestInnerClasses.java
parentFix build (diff)
downloadenigma-fork-2b2249e873c4adfd2dd6e8f1f2489ccd9f6aa021.tar.gz
enigma-fork-2b2249e873c4adfd2dd6e8f1f2489ccd9f6aa021.tar.xz
enigma-fork-2b2249e873c4adfd2dd6e8f1f2489ccd9f6aa021.zip
Initial port to ASM
Diffstat (limited to 'src/test/java/cuchaz/enigma/TestInnerClasses.java')
-rw-r--r--src/test/java/cuchaz/enigma/TestInnerClasses.java47
1 files changed, 7 insertions, 40 deletions
diff --git a/src/test/java/cuchaz/enigma/TestInnerClasses.java b/src/test/java/cuchaz/enigma/TestInnerClasses.java
index 38db0df..30e127e 100644
--- a/src/test/java/cuchaz/enigma/TestInnerClasses.java
+++ b/src/test/java/cuchaz/enigma/TestInnerClasses.java
@@ -12,7 +12,9 @@
12package cuchaz.enigma; 12package cuchaz.enigma;
13 13
14import cuchaz.enigma.analysis.JarIndex; 14import cuchaz.enigma.analysis.JarIndex;
15import cuchaz.enigma.analysis.ParsedJar;
15import cuchaz.enigma.mapping.ClassEntry; 16import cuchaz.enigma.mapping.ClassEntry;
17import cuchaz.enigma.mapping.ReferencedEntryPool;
16import org.junit.Test; 18import org.junit.Test;
17 19
18import java.util.jar.JarFile; 20import java.util.jar.JarFile;
@@ -26,16 +28,10 @@ import static org.hamcrest.Matchers.nullValue;
26 28
27public class TestInnerClasses { 29public class TestInnerClasses {
28 30
29 private static final ClassEntry AnonymousOuter = newClass("a");
30 private static final ClassEntry AnonymousInner = newClass("a$1");
31 private static final ClassEntry SimpleOuter = newClass("d"); 31 private static final ClassEntry SimpleOuter = newClass("d");
32 private static final ClassEntry SimpleInner = newClass("d$a"); 32 private static final ClassEntry SimpleInner = newClass("d$a");
33 private static final ClassEntry ConstructorArgsOuter = newClass("c"); 33 private static final ClassEntry ConstructorArgsOuter = newClass("c");
34 private static final ClassEntry ConstructorArgsInner = newClass("c$a"); 34 private static final ClassEntry ConstructorArgsInner = newClass("c$a");
35 private static final ClassEntry AnonymousWithScopeArgsOuter = newClass("b");
36 private static final ClassEntry AnonymousWithScopeArgsInner = newClass("b$1");
37 private static final ClassEntry AnonymousWithOuterAccessOuter = newClass("e");
38 private static final ClassEntry AnonymousWithOuterAccessInner = newClass("e$1");
39 private static final ClassEntry ClassTreeRoot = newClass("f"); 35 private static final ClassEntry ClassTreeRoot = newClass("f");
40 private static final ClassEntry ClassTreeLevel1 = newClass("f$a"); 36 private static final ClassEntry ClassTreeLevel1 = newClass("f$a");
41 private static final ClassEntry ClassTreeLevel2 = newClass("f$a$a"); 37 private static final ClassEntry ClassTreeLevel2 = newClass("f$a$a");
@@ -45,9 +41,9 @@ public class TestInnerClasses {
45 41
46 public TestInnerClasses() 42 public TestInnerClasses()
47 throws Exception { 43 throws Exception {
48 index = new JarIndex(); 44 index = new JarIndex(new ReferencedEntryPool());
49 JarFile jar = new JarFile("build/test-obf/innerClasses.jar"); 45 JarFile jar = new JarFile("build/test-obf/innerClasses.jar");
50 index.indexJar(jar, true); 46 index.indexJar(new ParsedJar(jar), true);
51 deobfuscator = new Deobfuscator(jar); 47 deobfuscator = new Deobfuscator(jar);
52 } 48 }
53 49
@@ -55,43 +51,17 @@ public class TestInnerClasses {
55 public void simple() { 51 public void simple() {
56 assertThat(index.getOuterClass(SimpleInner), is(SimpleOuter)); 52 assertThat(index.getOuterClass(SimpleInner), is(SimpleOuter));
57 assertThat(index.getInnerClasses(SimpleOuter), containsInAnyOrder(SimpleInner)); 53 assertThat(index.getInnerClasses(SimpleOuter), containsInAnyOrder(SimpleInner));
58 assertThat(index.isAnonymousClass(SimpleInner), is(false));
59 decompile(SimpleOuter); 54 decompile(SimpleOuter);
60 } 55 }
61 56
62 @Test 57 @Test
63 public void anonymous() {
64 assertThat(index.getOuterClass(AnonymousInner), is(AnonymousOuter));
65 assertThat(index.getInnerClasses(AnonymousOuter), containsInAnyOrder(AnonymousInner));
66 assertThat(index.isAnonymousClass(AnonymousInner), is(true));
67 decompile(AnonymousOuter);
68 }
69
70 @Test
71 public void constructorArgs() { 58 public void constructorArgs() {
72 assertThat(index.getOuterClass(ConstructorArgsInner), is(ConstructorArgsOuter)); 59 assertThat(index.getOuterClass(ConstructorArgsInner), is(ConstructorArgsOuter));
73 assertThat(index.getInnerClasses(ConstructorArgsOuter), containsInAnyOrder(ConstructorArgsInner)); 60 assertThat(index.getInnerClasses(ConstructorArgsOuter), containsInAnyOrder(ConstructorArgsInner));
74 assertThat(index.isAnonymousClass(ConstructorArgsInner), is(false));
75 decompile(ConstructorArgsOuter); 61 decompile(ConstructorArgsOuter);
76 } 62 }
77 63
78 @Test 64 @Test
79 public void anonymousWithScopeArgs() {
80 assertThat(index.getOuterClass(AnonymousWithScopeArgsInner), is(AnonymousWithScopeArgsOuter));
81 assertThat(index.getInnerClasses(AnonymousWithScopeArgsOuter), containsInAnyOrder(AnonymousWithScopeArgsInner));
82 assertThat(index.isAnonymousClass(AnonymousWithScopeArgsInner), is(true));
83 decompile(AnonymousWithScopeArgsOuter);
84 }
85
86 @Test
87 public void anonymousWithOuterAccess() {
88 assertThat(index.getOuterClass(AnonymousWithOuterAccessInner), is(AnonymousWithOuterAccessOuter));
89 assertThat(index.getInnerClasses(AnonymousWithOuterAccessOuter), containsInAnyOrder(AnonymousWithOuterAccessInner));
90 assertThat(index.isAnonymousClass(AnonymousWithOuterAccessInner), is(true));
91 decompile(AnonymousWithOuterAccessOuter);
92 }
93
94 @Test
95 public void classTree() { 65 public void classTree() {
96 66
97 // root level 67 // root level
@@ -101,8 +71,7 @@ public class TestInnerClasses {
101 71
102 // level 1 72 // level 1
103 ClassEntry fullClassEntry = new ClassEntry(ClassTreeRoot.getName() 73 ClassEntry fullClassEntry = new ClassEntry(ClassTreeRoot.getName()
104 + "$" + ClassTreeLevel1.getInnermostClassName() 74 + "$" + ClassTreeLevel1.getInnermostClassName());
105 );
106 assertThat(index.containsObfClass(fullClassEntry), is(true)); 75 assertThat(index.containsObfClass(fullClassEntry), is(true));
107 assertThat(index.getOuterClass(ClassTreeLevel1), is(ClassTreeRoot)); 76 assertThat(index.getOuterClass(ClassTreeLevel1), is(ClassTreeRoot));
108 assertThat(index.getInnerClasses(ClassTreeLevel1), containsInAnyOrder(ClassTreeLevel2)); 77 assertThat(index.getInnerClasses(ClassTreeLevel1), containsInAnyOrder(ClassTreeLevel2));
@@ -110,8 +79,7 @@ public class TestInnerClasses {
110 // level 2 79 // level 2
111 fullClassEntry = new ClassEntry(ClassTreeRoot.getName() 80 fullClassEntry = new ClassEntry(ClassTreeRoot.getName()
112 + "$" + ClassTreeLevel1.getInnermostClassName() 81 + "$" + ClassTreeLevel1.getInnermostClassName()
113 + "$" + ClassTreeLevel2.getInnermostClassName() 82 + "$" + ClassTreeLevel2.getInnermostClassName());
114 );
115 assertThat(index.containsObfClass(fullClassEntry), is(true)); 83 assertThat(index.containsObfClass(fullClassEntry), is(true));
116 assertThat(index.getOuterClass(ClassTreeLevel2), is(ClassTreeLevel1)); 84 assertThat(index.getOuterClass(ClassTreeLevel2), is(ClassTreeLevel1));
117 assertThat(index.getInnerClasses(ClassTreeLevel2), containsInAnyOrder(ClassTreeLevel3)); 85 assertThat(index.getInnerClasses(ClassTreeLevel2), containsInAnyOrder(ClassTreeLevel3));
@@ -120,8 +88,7 @@ public class TestInnerClasses {
120 fullClassEntry = new ClassEntry(ClassTreeRoot.getName() 88 fullClassEntry = new ClassEntry(ClassTreeRoot.getName()
121 + "$" + ClassTreeLevel1.getInnermostClassName() 89 + "$" + ClassTreeLevel1.getInnermostClassName()
122 + "$" + ClassTreeLevel2.getInnermostClassName() 90 + "$" + ClassTreeLevel2.getInnermostClassName()
123 + "$" + ClassTreeLevel3.getInnermostClassName() 91 + "$" + ClassTreeLevel3.getInnermostClassName());
124 );
125 assertThat(index.containsObfClass(fullClassEntry), is(true)); 92 assertThat(index.containsObfClass(fullClassEntry), is(true));
126 assertThat(index.getOuterClass(ClassTreeLevel3), is(ClassTreeLevel2)); 93 assertThat(index.getOuterClass(ClassTreeLevel3), is(ClassTreeLevel2));
127 assertThat(index.getInnerClasses(ClassTreeLevel3), is(empty())); 94 assertThat(index.getInnerClasses(ClassTreeLevel3), is(empty()));