From 4be005617b3b8c3578cca07c5d085d12916f0d1d Mon Sep 17 00:00:00 2001 From: lclc98 Date: Thu, 30 Jun 2016 00:49:21 +1000 Subject: Json format (#2) * Added new format * Fixed bug * Updated Version --- test/cuchaz/enigma/TestTranslator.java | 170 --------------------------------- 1 file changed, 170 deletions(-) delete mode 100644 test/cuchaz/enigma/TestTranslator.java (limited to 'test/cuchaz/enigma/TestTranslator.java') diff --git a/test/cuchaz/enigma/TestTranslator.java b/test/cuchaz/enigma/TestTranslator.java deleted file mode 100644 index 9e58d25..0000000 --- a/test/cuchaz/enigma/TestTranslator.java +++ /dev/null @@ -1,170 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2015 Jeff Martin. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the GNU Lesser General Public - * License v3.0 which accompanies this distribution, and is available at - * http://www.gnu.org/licenses/lgpl.html - * - * Contributors: - * Jeff Martin - initial API and implementation - ******************************************************************************/ -package cuchaz.enigma; - -import static cuchaz.enigma.TestEntryFactory.*; -import static org.hamcrest.MatcherAssert.*; -import static org.hamcrest.Matchers.*; - -import java.io.InputStream; -import java.io.InputStreamReader; -import java.util.jar.JarFile; - -import org.junit.BeforeClass; -import org.junit.Test; - -import cuchaz.enigma.mapping.Entry; -import cuchaz.enigma.mapping.Mappings; -import cuchaz.enigma.mapping.MappingsReader; -import cuchaz.enigma.mapping.TranslationDirection; -import cuchaz.enigma.mapping.Translator; - - -public class TestTranslator { - - private static Deobfuscator m_deobfuscator; - private static Mappings m_mappings; - private static Translator m_deobfTranslator; - private static Translator m_obfTranslator; - - @BeforeClass - public static void beforeClass() - throws Exception { - m_deobfuscator = new Deobfuscator(new JarFile("build/test-obf/translation.jar")); - try (InputStream in = TestTranslator.class.getResourceAsStream("/cuchaz/enigma/resources/translation.mappings")) { - m_mappings = new MappingsReader().read(new InputStreamReader(in)); - m_deobfuscator.setMappings(m_mappings); - m_deobfTranslator = m_deobfuscator.getTranslator(TranslationDirection.Deobfuscating); - m_obfTranslator = m_deobfuscator.getTranslator(TranslationDirection.Obfuscating); - } - } - - @Test - public void basicClasses() { - assertMapping(newClass("none/a"), newClass("deobf/A_Basic")); - assertMapping(newClass("none/b"), newClass("deobf/B_BaseClass")); - assertMapping(newClass("none/c"), newClass("deobf/C_SubClass")); - } - - @Test - public void basicFields() { - assertMapping(newField("none/a", "a", "I"), newField("deobf/A_Basic", "f1", "I")); - assertMapping(newField("none/a", "a", "F"), newField("deobf/A_Basic", "f2", "F")); - assertMapping(newField("none/a", "a", "Ljava/lang/String;"), newField("deobf/A_Basic", "f3", "Ljava/lang/String;")); - } - - @Test - public void basicMethods() { - assertMapping(newMethod("none/a", "a", "()V"), newMethod("deobf/A_Basic", "m1", "()V")); - assertMapping(newMethod("none/a", "a", "()I"), newMethod("deobf/A_Basic", "m2", "()I")); - assertMapping(newMethod("none/a", "a", "(I)V"), newMethod("deobf/A_Basic", "m3", "(I)V")); - assertMapping(newMethod("none/a", "a", "(I)I"), newMethod("deobf/A_Basic", "m4", "(I)I")); - } - - // TODO: basic constructors - - @Test - public void inheritanceFields() { - assertMapping(newField("none/b", "a", "I"), newField("deobf/B_BaseClass", "f1", "I")); - assertMapping(newField("none/b", "a", "C"), newField("deobf/B_BaseClass", "f2", "C")); - assertMapping(newField("none/c", "b", "I"), newField("deobf/C_SubClass", "f3", "I")); - assertMapping(newField("none/c", "c", "I"), newField("deobf/C_SubClass", "f4", "I")); - } - - @Test - public void inheritanceFieldsShadowing() { - assertMapping(newField("none/c", "b", "C"), newField("deobf/C_SubClass", "f2", "C")); - } - - @Test - public void inheritanceFieldsBySubClass() { - assertMapping(newField("none/c", "a", "I"), newField("deobf/C_SubClass", "f1", "I")); - // NOTE: can't reference b.C by subclass since it's shadowed - } - - @Test - public void inheritanceMethods() { - assertMapping(newMethod("none/b", "a", "()I"), newMethod("deobf/B_BaseClass", "m1", "()I")); - assertMapping(newMethod("none/b", "b", "()I"), newMethod("deobf/B_BaseClass", "m2", "()I")); - assertMapping(newMethod("none/c", "c", "()I"), newMethod("deobf/C_SubClass", "m3", "()I")); - } - - @Test - public void inheritanceMethodsOverrides() { - assertMapping(newMethod("none/c", "a", "()I"), newMethod("deobf/C_SubClass", "m1", "()I")); - } - - @Test - public void inheritanceMethodsBySubClass() { - assertMapping(newMethod("none/c", "b", "()I"), newMethod("deobf/C_SubClass", "m2", "()I")); - } - - @Test - public void innerClasses() { - - // classes - assertMapping(newClass("none/g"), newClass("deobf/G_OuterClass")); - assertMapping(newClass("none/g$a"), newClass("deobf/G_OuterClass$A_InnerClass")); - assertMapping(newClass("none/g$a$a"), newClass("deobf/G_OuterClass$A_InnerClass$A_InnerInnerClass")); - assertMapping(newClass("none/g$b"), newClass("deobf/G_OuterClass$b")); - assertMapping(newClass("none/g$b$a"), newClass("deobf/G_OuterClass$b$A_NamedInnerClass")); - - // fields - assertMapping(newField("none/g$a", "a", "I"), newField("deobf/G_OuterClass$A_InnerClass", "f1", "I")); - assertMapping(newField("none/g$a", "a", "Ljava/lang/String;"), newField("deobf/G_OuterClass$A_InnerClass", "f2", "Ljava/lang/String;")); - assertMapping(newField("none/g$a$a", "a", "I"), newField("deobf/G_OuterClass$A_InnerClass$A_InnerInnerClass", "f3", "I")); - assertMapping(newField("none/g$b$a", "a", "I"), newField("deobf/G_OuterClass$b$A_NamedInnerClass", "f4", "I")); - - // methods - assertMapping(newMethod("none/g$a", "a", "()V"), newMethod("deobf/G_OuterClass$A_InnerClass", "m1", "()V")); - assertMapping(newMethod("none/g$a$a", "a", "()V"), newMethod("deobf/G_OuterClass$A_InnerClass$A_InnerInnerClass", "m2", "()V")); - } - - @Test - public void namelessClass() { - assertMapping(newClass("none/h"), newClass("none/h")); - } - - @Test - public void testGenerics() { - - // classes - assertMapping(newClass("none/i"), newClass("deobf/I_Generics")); - assertMapping(newClass("none/i$a"), newClass("deobf/I_Generics$A_Type")); - assertMapping(newClass("none/i$b"), newClass("deobf/I_Generics$B_Generic")); - - // fields - assertMapping(newField("none/i", "a", "Ljava/util/List;"), newField("deobf/I_Generics", "f1", "Ljava/util/List;")); - assertMapping(newField("none/i", "b", "Ljava/util/List;"), newField("deobf/I_Generics", "f2", "Ljava/util/List;")); - assertMapping(newField("none/i", "a", "Ljava/util/Map;"), newField("deobf/I_Generics", "f3", "Ljava/util/Map;")); - assertMapping(newField("none/i$b", "a", "Ljava/lang/Object;"), newField("deobf/I_Generics$B_Generic", "f4", "Ljava/lang/Object;")); - assertMapping(newField("none/i", "a", "Lnone/i$b;"), newField("deobf/I_Generics", "f5", "Ldeobf/I_Generics$B_Generic;")); - assertMapping(newField("none/i", "b", "Lnone/i$b;"), newField("deobf/I_Generics", "f6", "Ldeobf/I_Generics$B_Generic;")); - - // methods - assertMapping(newMethod("none/i$b", "a", "()Ljava/lang/Object;"), newMethod("deobf/I_Generics$B_Generic", "m1", "()Ljava/lang/Object;")); - } - - private void assertMapping(Entry obf, Entry deobf) { - assertThat(m_deobfTranslator.translateEntry(obf), is(deobf)); - assertThat(m_obfTranslator.translateEntry(deobf), is(obf)); - - String deobfName = m_deobfTranslator.translate(obf); - if (deobfName != null) { - assertThat(deobfName, is(deobf.getName())); - } - - String obfName = m_obfTranslator.translate(deobf); - if (obfName != null) { - assertThat(obfName, is(obf.getName())); - } - } -} -- cgit v1.2.3