summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--build.py1
-rw-r--r--src/cuchaz/enigma/mapping/Mappings.java23
-rw-r--r--test/cuchaz/enigma/TestTranslator.java39
-rw-r--r--test/cuchaz/enigma/inputs/translation/A.java8
-rw-r--r--test/cuchaz/enigma/resources/translation.mappings4
5 files changed, 52 insertions, 23 deletions
diff --git a/build.py b/build.py
index 8e37d0ff..47294987 100644
--- a/build.py
+++ b/build.py
@@ -105,6 +105,7 @@ def taskBuildTestJars():
105 buildTestJar("testConstructors", "cuchaz/enigma/inputs/constructors/*.class") 105 buildTestJar("testConstructors", "cuchaz/enigma/inputs/constructors/*.class")
106 buildTestJar("testInheritanceTree", "cuchaz/enigma/inputs/inheritanceTree/*.class") 106 buildTestJar("testInheritanceTree", "cuchaz/enigma/inputs/inheritanceTree/*.class")
107 buildTestJar("testInnerClasses", "cuchaz/enigma/inputs/innerClasses/*.class") 107 buildTestJar("testInnerClasses", "cuchaz/enigma/inputs/innerClasses/*.class")
108 buildTestJar("testTranslation", "cuchaz/enigma/inputs/translation/*.class")
108 109
109def taskBuild(): 110def taskBuild():
110 ssjb.file.delete(DirBuild) 111 ssjb.file.delete(DirBuild)
diff --git a/src/cuchaz/enigma/mapping/Mappings.java b/src/cuchaz/enigma/mapping/Mappings.java
index cc560a87..92134edf 100644
--- a/src/cuchaz/enigma/mapping/Mappings.java
+++ b/src/cuchaz/enigma/mapping/Mappings.java
@@ -10,20 +10,15 @@
10 ******************************************************************************/ 10 ******************************************************************************/
11package cuchaz.enigma.mapping; 11package cuchaz.enigma.mapping;
12 12
13import java.io.IOException;
14import java.io.InputStream;
15import java.io.ObjectInputStream;
16import java.io.Serializable; 13import java.io.Serializable;
17import java.util.ArrayList; 14import java.util.ArrayList;
18import java.util.Collection; 15import java.util.Collection;
19import java.util.Map; 16import java.util.Map;
20import java.util.Set; 17import java.util.Set;
21import java.util.zip.GZIPInputStream;
22 18
23import com.google.common.collect.Maps; 19import com.google.common.collect.Maps;
24import com.google.common.collect.Sets; 20import com.google.common.collect.Sets;
25 21
26import cuchaz.enigma.Util;
27import cuchaz.enigma.analysis.TranslationIndex; 22import cuchaz.enigma.analysis.TranslationIndex;
28import cuchaz.enigma.mapping.SignatureUpdater.ClassNameUpdater; 23import cuchaz.enigma.mapping.SignatureUpdater.ClassNameUpdater;
29 24
@@ -50,16 +45,6 @@ public class Mappings implements Serializable {
50 } 45 }
51 } 46 }
52 47
53 public static Mappings newFromResource(String resource) throws IOException {
54 InputStream in = null;
55 try {
56 in = Mappings.class.getResourceAsStream(resource);
57 return newFromStream(in);
58 } finally {
59 Util.closeQuietly(in);
60 }
61 }
62
63 public Collection<ClassMapping> classes() { 48 public Collection<ClassMapping> classes() {
64 assert (m_classesByObf.size() >= m_classesByDeobf.size()); 49 assert (m_classesByObf.size() >= m_classesByDeobf.size());
65 return m_classesByObf.values(); 50 return m_classesByObf.values();
@@ -134,14 +119,6 @@ public class Mappings implements Serializable {
134 } 119 }
135 } 120 }
136 121
137 public static Mappings newFromStream(InputStream in) throws IOException {
138 try {
139 return (Mappings)new ObjectInputStream(new GZIPInputStream(in)).readObject();
140 } catch (ClassNotFoundException ex) {
141 throw new Error(ex);
142 }
143 }
144
145 @Override 122 @Override
146 public String toString() { 123 public String toString() {
147 StringBuilder buf = new StringBuilder(); 124 StringBuilder buf = new StringBuilder();
diff --git a/test/cuchaz/enigma/TestTranslator.java b/test/cuchaz/enigma/TestTranslator.java
new file mode 100644
index 00000000..290f6f04
--- /dev/null
+++ b/test/cuchaz/enigma/TestTranslator.java
@@ -0,0 +1,39 @@
1package cuchaz.enigma;
2
3import static cuchaz.enigma.EntryFactory.*;
4import static org.hamcrest.MatcherAssert.*;
5import static org.hamcrest.Matchers.*;
6
7import java.io.InputStream;
8import java.io.InputStreamReader;
9import java.util.jar.JarFile;
10
11import org.junit.Test;
12
13import cuchaz.enigma.mapping.Mappings;
14import cuchaz.enigma.mapping.MappingsReader;
15import cuchaz.enigma.mapping.TranslationDirection;
16import cuchaz.enigma.mapping.Translator;
17
18
19public class TestTranslator {
20
21 private Deobfuscator m_deobfuscator;
22 private Mappings m_mappings;
23
24 public TestTranslator()
25 throws Exception {
26 m_deobfuscator = new Deobfuscator(new JarFile("build/testTranslation.obf.jar"));
27 try (InputStream in = getClass().getResourceAsStream("/cuchaz/enigma/resources/translation.mappings")) {
28 m_mappings = new MappingsReader().read(new InputStreamReader(in));
29 m_deobfuscator.setMappings(m_mappings);
30 }
31 }
32
33 @Test
34 public void deobfuscatingTranslations()
35 throws Exception {
36 Translator translator = m_deobfuscator.getTranslator(TranslationDirection.Deobfuscating);
37 assertThat(translator.translateEntry(newClass("none/a")), is(newClass("deobf/A")));
38 }
39}
diff --git a/test/cuchaz/enigma/inputs/translation/A.java b/test/cuchaz/enigma/inputs/translation/A.java
new file mode 100644
index 00000000..b8aaf11e
--- /dev/null
+++ b/test/cuchaz/enigma/inputs/translation/A.java
@@ -0,0 +1,8 @@
1package cuchaz.enigma.inputs.translation;
2
3public class A {
4
5 public int one;
6 public float two;
7 public String three;
8}
diff --git a/test/cuchaz/enigma/resources/translation.mappings b/test/cuchaz/enigma/resources/translation.mappings
new file mode 100644
index 00000000..70755bf6
--- /dev/null
+++ b/test/cuchaz/enigma/resources/translation.mappings
@@ -0,0 +1,4 @@
1CLASS none/a deobf/A
2 FIELD a one
3 FIELD b two
4 FIELD c three \ No newline at end of file