summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorGravatar jeff2014-09-24 01:00:54 -0400
committerGravatar jeff2014-09-24 01:00:54 -0400
commit8776a8ba38123c822530e5f659c626c8db616217 (patch)
tree8138a4e4447552e598bb99cfd8fb23a5f27f840b /test
parenttrying to figure out why some mappings to correspond to anything in the jar f... (diff)
downloadenigma-8776a8ba38123c822530e5f659c626c8db616217.tar.gz
enigma-8776a8ba38123c822530e5f659c626c8db616217.tar.xz
enigma-8776a8ba38123c822530e5f659c626c8db616217.zip
HOW DO I WRITE SO MANY BUGS?!?
Diffstat (limited to 'test')
-rw-r--r--test/cuchaz/enigma/TestJarIndexInheritanceTree.java46
-rw-r--r--test/cuchaz/enigma/TestJarIndexLoneClass.java13
-rw-r--r--test/cuchaz/enigma/TestSourceIndex.java56
3 files changed, 77 insertions, 38 deletions
diff --git a/test/cuchaz/enigma/TestJarIndexInheritanceTree.java b/test/cuchaz/enigma/TestJarIndexInheritanceTree.java
index 317a6bc4..50c22825 100644
--- a/test/cuchaz/enigma/TestJarIndexInheritanceTree.java
+++ b/test/cuchaz/enigma/TestJarIndexInheritanceTree.java
@@ -100,28 +100,6 @@ public class TestJarIndexInheritanceTree
100 } 100 }
101 101
102 @Test 102 @Test
103 public void isImplemented( )
104 {
105 // getName()
106 assertThat( m_index.isMethodImplemented( new MethodEntry( m_baseClass, "a", "()Ljava/lang/String;" ) ), is( true ) );
107 assertThat( m_index.isMethodImplemented( new MethodEntry( m_subClassA, "a", "()Ljava/lang/String;" ) ), is( false ) );
108 assertThat( m_index.isMethodImplemented( new MethodEntry( m_subClassAA, "a", "()Ljava/lang/String;" ) ), is( true ) );
109 assertThat( m_index.isMethodImplemented( new MethodEntry( m_subClassB, "a", "()Ljava/lang/String;" ) ), is( false ) );
110
111 // doBaseThings()
112 assertThat( m_index.isMethodImplemented( new MethodEntry( m_baseClass, "a", "()V" ) ), is( true ) );
113 assertThat( m_index.isMethodImplemented( new MethodEntry( m_subClassA, "a", "()V" ) ), is( false ) );
114 assertThat( m_index.isMethodImplemented( new MethodEntry( m_subClassAA, "a", "()V" ) ), is( true ) );
115 assertThat( m_index.isMethodImplemented( new MethodEntry( m_subClassB, "a", "()V" ) ), is( true ) );
116
117 // doBThings()
118 assertThat( m_index.isMethodImplemented( new MethodEntry( m_baseClass, "b", "()V" ) ), is( false ) );
119 assertThat( m_index.isMethodImplemented( new MethodEntry( m_subClassA, "b", "()V" ) ), is( false ) );
120 assertThat( m_index.isMethodImplemented( new MethodEntry( m_subClassAA, "b", "()V" ) ), is( false ) );
121 assertThat( m_index.isMethodImplemented( new MethodEntry( m_subClassB, "b", "()V" ) ), is( true ) );
122 }
123
124 @Test
125 public void relatedMethodImplementations( ) 103 public void relatedMethodImplementations( )
126 { 104 {
127 Set<MethodEntry> entries; 105 Set<MethodEntry> entries;
@@ -238,11 +216,23 @@ public class TestJarIndexInheritanceTree
238 assertThat( m_index.containsObfField( m_numThingsField ), is( true ) ); 216 assertThat( m_index.containsObfField( m_numThingsField ), is( true ) );
239 217
240 // methods 218 // methods
241 assertThat( m_index.containsObfMethod( new MethodEntry( m_baseClass, "a", "()Ljava/lang/String;" ) ), is( true ) ); 219 // getName()
242 assertThat( m_index.containsObfMethod( new MethodEntry( m_baseClass, "a", "()V" ) ), is( true ) ); 220 assertThat( m_index.containsObfBehavior( new MethodEntry( m_baseClass, "a", "()Ljava/lang/String;" ) ), is( true ) );
243 assertThat( m_index.containsObfMethod( new MethodEntry( m_subClassAA, "a", "()Ljava/lang/String;" ) ), is( true ) ); 221 assertThat( m_index.containsObfBehavior( new MethodEntry( m_subClassA, "a", "()Ljava/lang/String;" ) ), is( false ) );
244 assertThat( m_index.containsObfMethod( new MethodEntry( m_subClassAA, "a", "()V" ) ), is( true ) ); 222 assertThat( m_index.containsObfBehavior( new MethodEntry( m_subClassAA, "a", "()Ljava/lang/String;" ) ), is( true ) );
245 assertThat( m_index.containsObfMethod( new MethodEntry( m_subClassB, "a", "()V" ) ), is( true ) ); 223 assertThat( m_index.containsObfBehavior( new MethodEntry( m_subClassB, "a", "()Ljava/lang/String;" ) ), is( false ) );
246 assertThat( m_index.containsObfMethod( new MethodEntry( m_subClassB, "b", "()V" ) ), is( true ) ); 224
225 // doBaseThings()
226 assertThat( m_index.containsObfBehavior( new MethodEntry( m_baseClass, "a", "()V" ) ), is( true ) );
227 assertThat( m_index.containsObfBehavior( new MethodEntry( m_subClassA, "a", "()V" ) ), is( false ) );
228 assertThat( m_index.containsObfBehavior( new MethodEntry( m_subClassAA, "a", "()V" ) ), is( true ) );
229 assertThat( m_index.containsObfBehavior( new MethodEntry( m_subClassB, "a", "()V" ) ), is( true ) );
230
231 // doBThings()
232 assertThat( m_index.containsObfBehavior( new MethodEntry( m_baseClass, "b", "()V" ) ), is( false ) );
233 assertThat( m_index.containsObfBehavior( new MethodEntry( m_subClassA, "b", "()V" ) ), is( false ) );
234 assertThat( m_index.containsObfBehavior( new MethodEntry( m_subClassAA, "b", "()V" ) ), is( false ) );
235 assertThat( m_index.containsObfBehavior( new MethodEntry( m_subClassB, "b", "()V" ) ), is( true ) );
236
247 } 237 }
248} 238}
diff --git a/test/cuchaz/enigma/TestJarIndexLoneClass.java b/test/cuchaz/enigma/TestJarIndexLoneClass.java
index 4c32b703..f77d86a7 100644
--- a/test/cuchaz/enigma/TestJarIndexLoneClass.java
+++ b/test/cuchaz/enigma/TestJarIndexLoneClass.java
@@ -1,5 +1,5 @@
1/******************************************************************************* 1/*******************************************************************************
2 * Copyright (c) 2014 Jeff Martin.\ 2 * Copyright (c) 2014 Jeff Martin.
3 * 3 *
4 * All rights reserved. This program and the accompanying materials 4 * All rights reserved. This program and the accompanying materials
5 * are made available under the terms of the GNU Public License v3.0 5 * are made available under the terms of the GNU Public License v3.0
@@ -73,13 +73,6 @@ public class TestJarIndexLoneClass
73 } 73 }
74 74
75 @Test 75 @Test
76 public void isImplemented( )
77 {
78 assertThat( m_index.isMethodImplemented( newMethod( "none/a", "a", "()Ljava/lang/String;" ) ), is( true ) );
79 assertThat( m_index.isMethodImplemented( newMethod( "none/a", "b", "()Ljava/lang/String;" ) ), is( false ) );
80 }
81
82 @Test
83 public void classInheritance( ) 76 public void classInheritance( )
84 { 77 {
85 ClassInheritanceTreeNode node = m_index.getClassInheritance( new Translator(), newClass( "none/a" ) ); 78 ClassInheritanceTreeNode node = m_index.getClassInheritance( new Translator(), newClass( "none/a" ) );
@@ -187,7 +180,7 @@ public class TestJarIndexLoneClass
187 assertThat( m_index.containsObfClass( newClass( "none/b" ) ), is( false ) ); 180 assertThat( m_index.containsObfClass( newClass( "none/b" ) ), is( false ) );
188 assertThat( m_index.containsObfField( newField( "none/a", "a" ) ), is( true ) ); 181 assertThat( m_index.containsObfField( newField( "none/a", "a" ) ), is( true ) );
189 assertThat( m_index.containsObfField( newField( "none/a", "b" ) ), is( false ) ); 182 assertThat( m_index.containsObfField( newField( "none/a", "b" ) ), is( false ) );
190 assertThat( m_index.containsObfMethod( newMethod( "none/a", "a", "()Ljava/lang/String;" ) ), is( true ) ); 183 assertThat( m_index.containsObfBehavior( newMethod( "none/a", "a", "()Ljava/lang/String;" ) ), is( true ) );
191 assertThat( m_index.containsObfMethod( newMethod( "none/a", "b", "()Ljava/lang/String;" ) ), is( false ) ); 184 assertThat( m_index.containsObfBehavior( newMethod( "none/a", "b", "()Ljava/lang/String;" ) ), is( false ) );
192 } 185 }
193} 186}
diff --git a/test/cuchaz/enigma/TestSourceIndex.java b/test/cuchaz/enigma/TestSourceIndex.java
new file mode 100644
index 00000000..dc6ca7e2
--- /dev/null
+++ b/test/cuchaz/enigma/TestSourceIndex.java
@@ -0,0 +1,56 @@
1/*******************************************************************************
2 * Copyright (c) 2014 Jeff Martin.
3 *
4 * All rights reserved. This program and the accompanying materials
5 * are made available under the terms of the GNU Public License v3.0
6 * which accompanies this distribution, and is available at
7 * http://www.gnu.org/licenses/gpl.html
8 *
9 * Contributors:
10 * Jeff Martin - initial API and implementation
11 ******************************************************************************/
12package cuchaz.enigma;
13
14import java.io.File;
15import java.util.Set;
16
17import org.junit.Test;
18
19import com.google.common.collect.Sets;
20import com.strobel.decompiler.languages.java.ast.CompilationUnit;
21
22import cuchaz.enigma.mapping.ClassEntry;
23
24public class TestSourceIndex
25{
26 @Test
27 public void indexEverything( )
28 throws Exception
29 {
30 Deobfuscator deobfuscator = new Deobfuscator( new File( "input/1.8.jar" ) );
31
32 // get all classes that aren't inner classes
33 Set<ClassEntry> classEntries = Sets.newHashSet();
34 for( ClassEntry obfClassEntry : deobfuscator.getJarIndex().getObfClassEntries() )
35 {
36 if( !obfClassEntry.isInnerClass() )
37 {
38 classEntries.add( obfClassEntry );
39 }
40 }
41
42 for( ClassEntry obfClassEntry : classEntries )
43 {
44 try
45 {
46 CompilationUnit tree = deobfuscator.getSourceTree( obfClassEntry.getName() );
47 String source = deobfuscator.getSource( tree );
48 deobfuscator.getSourceIndex( tree, source );
49 }
50 catch( Throwable t )
51 {
52 throw new Error( "Unable to index " + obfClassEntry, t );
53 }
54 }
55 }
56}