summaryrefslogtreecommitdiff
path: root/test/cuchaz/enigma/TestTranslator.java
diff options
context:
space:
mode:
authorGravatar jeff2015-02-23 23:29:22 -0500
committerGravatar jeff2015-02-23 23:29:22 -0500
commit2dc7428e37bdd7a119f53d02ce157675509b0d63 (patch)
tree68f409ac726166e427eea3a199eb462130c53ccd /test/cuchaz/enigma/TestTranslator.java
parentmake types serializable (diff)
downloadenigma-fork-2dc7428e37bdd7a119f53d02ce157675509b0d63.tar.gz
enigma-fork-2dc7428e37bdd7a119f53d02ce157675509b0d63.tar.xz
enigma-fork-2dc7428e37bdd7a119f53d02ce157675509b0d63.zip
lots of work in better handling of inner classes
also working on recognizing unobfuscated and deobfuscated jars (needed for M3L)
Diffstat (limited to 'test/cuchaz/enigma/TestTranslator.java')
-rw-r--r--test/cuchaz/enigma/TestTranslator.java36
1 files changed, 36 insertions, 0 deletions
diff --git a/test/cuchaz/enigma/TestTranslator.java b/test/cuchaz/enigma/TestTranslator.java
index 3fe1680..0252605 100644
--- a/test/cuchaz/enigma/TestTranslator.java
+++ b/test/cuchaz/enigma/TestTranslator.java
@@ -97,8 +97,44 @@ public class TestTranslator {
97 assertMapping(newMethod("none/c", "b", "()I"), newMethod("deobf/C_SubClass", "m2", "()I")); 97 assertMapping(newMethod("none/c", "b", "()I"), newMethod("deobf/C_SubClass", "m2", "()I"));
98 } 98 }
99 99
100 @Test
101 public void innerClasses() {
102
103 // classes
104 assertMapping(newClass("none/h"), newClass("deobf/H_OuterClass"));
105 assertMapping(newClass("none/h$i"), newClass("deobf/H_OuterClass$I_InnerClass"));
106 assertMapping(newClass("none/h$i$j"), newClass("deobf/H_OuterClass$I_InnerClass$J_InnerInnerClass"));
107 assertMapping(newClass("none/h$k"), newClass("deobf/H_OuterClass$k"));
108 assertMapping(newClass("none/h$k$l"), newClass("deobf/H_OuterClass$k$L_NamedInnerClass"));
109
110 // fields
111 assertMapping(newField("none/h$i", "a", "I"), newField("deobf/H_OuterClass$I_InnerClass", "f1", "I"));
112 assertMapping(newField("none/h$i", "a", "Ljava/lang/String;"), newField("deobf/H_OuterClass$I_InnerClass", "f2", "Ljava/lang/String;"));
113 assertMapping(newField("none/h$i$j", "a", "I"), newField("deobf/H_OuterClass$I_InnerClass$J_InnerInnerClass", "f3", "I"));
114 assertMapping(newField("none/h$k$l", "a", "I"), newField("deobf/H_OuterClass$k$L_NamedInnerClass", "f4", "I"));
115
116 // methods
117 assertMapping(newMethod("none/h$i", "a", "()V"), newMethod("deobf/H_OuterClass$I_InnerClass", "m1", "()V"));
118 assertMapping(newMethod("none/h$i$j", "a", "()V"), newMethod("deobf/H_OuterClass$I_InnerClass$J_InnerInnerClass", "m2", "()V"));
119 }
120
121 @Test
122 public void namelessClass() {
123 assertMapping(newClass("none/m"), newClass("none/m"));
124 }
125
100 private void assertMapping(Entry obf, Entry deobf) { 126 private void assertMapping(Entry obf, Entry deobf) {
101 assertThat(m_deobfTranslator.translateEntry(obf), is(deobf)); 127 assertThat(m_deobfTranslator.translateEntry(obf), is(deobf));
102 assertThat(m_obfTranslator.translateEntry(deobf), is(obf)); 128 assertThat(m_obfTranslator.translateEntry(deobf), is(obf));
129
130 String deobfName = m_deobfTranslator.translate(obf);
131 if (deobfName != null) {
132 assertThat(deobfName, is(deobf.getName()));
133 }
134
135 String obfName = m_obfTranslator.translate(deobf);
136 if (obfName != null) {
137 assertThat(obfName, is(obf.getName()));
138 }
103 } 139 }
104} 140}