summaryrefslogtreecommitdiff
path: root/src/test/java/cuchaz/enigma/TestInnerClasses.java
diff options
context:
space:
mode:
authorGravatar Thog2017-03-08 08:17:04 +0100
committerGravatar Thog2017-03-08 08:17:04 +0100
commit6e464ea251cab63c776ece0b2a356f1498ffa294 (patch)
tree5ed30c03f5ac4cd2d6877874f5ede576049954f7 /src/test/java/cuchaz/enigma/TestInnerClasses.java
parentDrop unix case style and implement hashCode when equals is overrided (diff)
downloadenigma-fork-6e464ea251cab63c776ece0b2a356f1498ffa294.tar.gz
enigma-fork-6e464ea251cab63c776ece0b2a356f1498ffa294.tar.xz
enigma-fork-6e464ea251cab63c776ece0b2a356f1498ffa294.zip
Follow Fabric guidelines
Diffstat (limited to 'src/test/java/cuchaz/enigma/TestInnerClasses.java')
-rw-r--r--src/test/java/cuchaz/enigma/TestInnerClasses.java53
1 files changed, 27 insertions, 26 deletions
diff --git a/src/test/java/cuchaz/enigma/TestInnerClasses.java b/src/test/java/cuchaz/enigma/TestInnerClasses.java
index 64a695a..38db0df 100644
--- a/src/test/java/cuchaz/enigma/TestInnerClasses.java
+++ b/src/test/java/cuchaz/enigma/TestInnerClasses.java
@@ -4,29 +4,28 @@
4 * are made available under the terms of the GNU Lesser General Public 4 * are made available under the terms of the GNU Lesser General Public
5 * License v3.0 which accompanies this distribution, and is available at 5 * License v3.0 which accompanies this distribution, and is available at
6 * http://www.gnu.org/licenses/lgpl.html 6 * http://www.gnu.org/licenses/lgpl.html
7 * 7 *
8 * Contributors: 8 * Contributors:
9 * Jeff Martin - initial API and implementation 9 * Jeff Martin - initial API and implementation
10 ******************************************************************************/ 10 ******************************************************************************/
11package cuchaz.enigma;
12
13import static org.hamcrest.MatcherAssert.*;
14import static org.hamcrest.Matchers.*;
15 11
16import java.util.jar.JarFile; 12package cuchaz.enigma;
17 13
14import cuchaz.enigma.analysis.JarIndex;
15import cuchaz.enigma.mapping.ClassEntry;
18import org.junit.Test; 16import org.junit.Test;
19 17
20import static cuchaz.enigma.TestEntryFactory.*; 18import java.util.jar.JarFile;
21 19
22import cuchaz.enigma.analysis.JarIndex; 20import static cuchaz.enigma.TestEntryFactory.newClass;
23import cuchaz.enigma.mapping.ClassEntry; 21import static org.hamcrest.MatcherAssert.assertThat;
22import static org.hamcrest.Matchers.containsInAnyOrder;
23import static org.hamcrest.Matchers.empty;
24import static org.hamcrest.Matchers.is;
25import static org.hamcrest.Matchers.nullValue;
24 26
25public class TestInnerClasses { 27public class TestInnerClasses {
26 28
27 private JarIndex index;
28 private Deobfuscator deobfuscator;
29
30 private static final ClassEntry AnonymousOuter = newClass("a"); 29 private static final ClassEntry AnonymousOuter = newClass("a");
31 private static final ClassEntry AnonymousInner = newClass("a$1"); 30 private static final ClassEntry AnonymousInner = newClass("a$1");
32 private static final ClassEntry SimpleOuter = newClass("d"); 31 private static final ClassEntry SimpleOuter = newClass("d");
@@ -41,15 +40,17 @@ public class TestInnerClasses {
41 private static final ClassEntry ClassTreeLevel1 = newClass("f$a"); 40 private static final ClassEntry ClassTreeLevel1 = newClass("f$a");
42 private static final ClassEntry ClassTreeLevel2 = newClass("f$a$a"); 41 private static final ClassEntry ClassTreeLevel2 = newClass("f$a$a");
43 private static final ClassEntry ClassTreeLevel3 = newClass("f$a$a$a"); 42 private static final ClassEntry ClassTreeLevel3 = newClass("f$a$a$a");
44 43 private JarIndex index;
44 private Deobfuscator deobfuscator;
45
45 public TestInnerClasses() 46 public TestInnerClasses()
46 throws Exception { 47 throws Exception {
47 index = new JarIndex(); 48 index = new JarIndex();
48 JarFile jar = new JarFile("build/test-obf/innerClasses.jar"); 49 JarFile jar = new JarFile("build/test-obf/innerClasses.jar");
49 index.indexJar(jar, true); 50 index.indexJar(jar, true);
50 deobfuscator = new Deobfuscator(jar); 51 deobfuscator = new Deobfuscator(jar);
51 } 52 }
52 53
53 @Test 54 @Test
54 public void simple() { 55 public void simple() {
55 assertThat(index.getOuterClass(SimpleInner), is(SimpleOuter)); 56 assertThat(index.getOuterClass(SimpleInner), is(SimpleOuter));
@@ -57,7 +58,7 @@ public class TestInnerClasses {
57 assertThat(index.isAnonymousClass(SimpleInner), is(false)); 58 assertThat(index.isAnonymousClass(SimpleInner), is(false));
58 decompile(SimpleOuter); 59 decompile(SimpleOuter);
59 } 60 }
60 61
61 @Test 62 @Test
62 public void anonymous() { 63 public void anonymous() {
63 assertThat(index.getOuterClass(AnonymousInner), is(AnonymousOuter)); 64 assertThat(index.getOuterClass(AnonymousInner), is(AnonymousOuter));
@@ -65,7 +66,7 @@ public class TestInnerClasses {
65 assertThat(index.isAnonymousClass(AnonymousInner), is(true)); 66 assertThat(index.isAnonymousClass(AnonymousInner), is(true));
66 decompile(AnonymousOuter); 67 decompile(AnonymousOuter);
67 } 68 }
68 69
69 @Test 70 @Test
70 public void constructorArgs() { 71 public void constructorArgs() {
71 assertThat(index.getOuterClass(ConstructorArgsInner), is(ConstructorArgsOuter)); 72 assertThat(index.getOuterClass(ConstructorArgsInner), is(ConstructorArgsOuter));
@@ -73,7 +74,7 @@ public class TestInnerClasses {
73 assertThat(index.isAnonymousClass(ConstructorArgsInner), is(false)); 74 assertThat(index.isAnonymousClass(ConstructorArgsInner), is(false));
74 decompile(ConstructorArgsOuter); 75 decompile(ConstructorArgsOuter);
75 } 76 }
76 77
77 @Test 78 @Test
78 public void anonymousWithScopeArgs() { 79 public void anonymousWithScopeArgs() {
79 assertThat(index.getOuterClass(AnonymousWithScopeArgsInner), is(AnonymousWithScopeArgsOuter)); 80 assertThat(index.getOuterClass(AnonymousWithScopeArgsInner), is(AnonymousWithScopeArgsOuter));
@@ -81,7 +82,7 @@ public class TestInnerClasses {
81 assertThat(index.isAnonymousClass(AnonymousWithScopeArgsInner), is(true)); 82 assertThat(index.isAnonymousClass(AnonymousWithScopeArgsInner), is(true));
82 decompile(AnonymousWithScopeArgsOuter); 83 decompile(AnonymousWithScopeArgsOuter);
83 } 84 }
84 85
85 @Test 86 @Test
86 public void anonymousWithOuterAccess() { 87 public void anonymousWithOuterAccess() {
87 assertThat(index.getOuterClass(AnonymousWithOuterAccessInner), is(AnonymousWithOuterAccessOuter)); 88 assertThat(index.getOuterClass(AnonymousWithOuterAccessInner), is(AnonymousWithOuterAccessOuter));
@@ -89,15 +90,15 @@ public class TestInnerClasses {
89 assertThat(index.isAnonymousClass(AnonymousWithOuterAccessInner), is(true)); 90 assertThat(index.isAnonymousClass(AnonymousWithOuterAccessInner), is(true));
90 decompile(AnonymousWithOuterAccessOuter); 91 decompile(AnonymousWithOuterAccessOuter);
91 } 92 }
92 93
93 @Test 94 @Test
94 public void classTree() { 95 public void classTree() {
95 96
96 // root level 97 // root level
97 assertThat(index.containsObfClass(ClassTreeRoot), is(true)); 98 assertThat(index.containsObfClass(ClassTreeRoot), is(true));
98 assertThat(index.getOuterClass(ClassTreeRoot), is(nullValue())); 99 assertThat(index.getOuterClass(ClassTreeRoot), is(nullValue()));
99 assertThat(index.getInnerClasses(ClassTreeRoot), containsInAnyOrder(ClassTreeLevel1)); 100 assertThat(index.getInnerClasses(ClassTreeRoot), containsInAnyOrder(ClassTreeLevel1));
100 101
101 // level 1 102 // level 1
102 ClassEntry fullClassEntry = new ClassEntry(ClassTreeRoot.getName() 103 ClassEntry fullClassEntry = new ClassEntry(ClassTreeRoot.getName()
103 + "$" + ClassTreeLevel1.getInnermostClassName() 104 + "$" + ClassTreeLevel1.getInnermostClassName()
@@ -105,7 +106,7 @@ public class TestInnerClasses {
105 assertThat(index.containsObfClass(fullClassEntry), is(true)); 106 assertThat(index.containsObfClass(fullClassEntry), is(true));
106 assertThat(index.getOuterClass(ClassTreeLevel1), is(ClassTreeRoot)); 107 assertThat(index.getOuterClass(ClassTreeLevel1), is(ClassTreeRoot));
107 assertThat(index.getInnerClasses(ClassTreeLevel1), containsInAnyOrder(ClassTreeLevel2)); 108 assertThat(index.getInnerClasses(ClassTreeLevel1), containsInAnyOrder(ClassTreeLevel2));
108 109
109 // level 2 110 // level 2
110 fullClassEntry = new ClassEntry(ClassTreeRoot.getName() 111 fullClassEntry = new ClassEntry(ClassTreeRoot.getName()
111 + "$" + ClassTreeLevel1.getInnermostClassName() 112 + "$" + ClassTreeLevel1.getInnermostClassName()
@@ -114,7 +115,7 @@ public class TestInnerClasses {
114 assertThat(index.containsObfClass(fullClassEntry), is(true)); 115 assertThat(index.containsObfClass(fullClassEntry), is(true));
115 assertThat(index.getOuterClass(ClassTreeLevel2), is(ClassTreeLevel1)); 116 assertThat(index.getOuterClass(ClassTreeLevel2), is(ClassTreeLevel1));
116 assertThat(index.getInnerClasses(ClassTreeLevel2), containsInAnyOrder(ClassTreeLevel3)); 117 assertThat(index.getInnerClasses(ClassTreeLevel2), containsInAnyOrder(ClassTreeLevel3));
117 118
118 // level 3 119 // level 3
119 fullClassEntry = new ClassEntry(ClassTreeRoot.getName() 120 fullClassEntry = new ClassEntry(ClassTreeRoot.getName()
120 + "$" + ClassTreeLevel1.getInnermostClassName() 121 + "$" + ClassTreeLevel1.getInnermostClassName()
@@ -125,7 +126,7 @@ public class TestInnerClasses {
125 assertThat(index.getOuterClass(ClassTreeLevel3), is(ClassTreeLevel2)); 126 assertThat(index.getOuterClass(ClassTreeLevel3), is(ClassTreeLevel2));
126 assertThat(index.getInnerClasses(ClassTreeLevel3), is(empty())); 127 assertThat(index.getInnerClasses(ClassTreeLevel3), is(empty()));
127 } 128 }
128 129
129 private void decompile(ClassEntry classEntry) { 130 private void decompile(ClassEntry classEntry) {
130 deobfuscator.getSourceTree(classEntry.getName()); 131 deobfuscator.getSourceTree(classEntry.getName());
131 } 132 }