summaryrefslogtreecommitdiffstats
path: root/src/test
diff options
context:
space:
mode:
authorMarcin Kosiba <mkosiba@google.com>2014-06-17 09:56:21 +0100
committerMarcin Kosiba <mkosiba@google.com>2014-06-20 11:55:22 +0100
commitab61347a2cb3254688c42c993278cefd43e5d99d (patch)
treede9bb96cdb2bc7a710c8222edcdd3e3a33e7086e /src/test
parentfe7bad2c42f39829e8d4fd990ac1da776bcaeee2 (diff)
downloadandroid_external_jarjar-ab61347a2cb3254688c42c993278cefd43e5d99d.tar.gz
android_external_jarjar-ab61347a2cb3254688c42c993278cefd43e5d99d.tar.bz2
android_external_jarjar-ab61347a2cb3254688c42c993278cefd43e5d99d.zip
Add JarJar 1.4
Change-Id: Iadcec27828223189f579b70d050cd7246cb488c2
Diffstat (limited to 'src/test')
-rw-r--r--src/test/Generics.classbin0 -> 575 bytes
-rw-r--r--src/test/com/tonicsystems/jarjar/GenericsTest.java44
-rw-r--r--src/test/com/tonicsystems/jarjar/PackageRemapperTest.java59
-rw-r--r--src/test/com/tonicsystems/jarjar/RulesFileParserTest.java36
-rw-r--r--src/test/com/tonicsystems/jarjar/WildcardTest.java48
-rw-r--r--src/test/com/tonicsystems/jarjar/example/Example.java5
-rw-r--r--src/test/enumtest.jarbin0 -> 1324 bytes
7 files changed, 192 insertions, 0 deletions
diff --git a/src/test/Generics.class b/src/test/Generics.class
new file mode 100644
index 0000000..827519a
--- /dev/null
+++ b/src/test/Generics.class
Binary files differ
diff --git a/src/test/com/tonicsystems/jarjar/GenericsTest.java b/src/test/com/tonicsystems/jarjar/GenericsTest.java
new file mode 100644
index 0000000..1996a24
--- /dev/null
+++ b/src/test/com/tonicsystems/jarjar/GenericsTest.java
@@ -0,0 +1,44 @@
+/**
+ * Copyright 2007 Google Inc.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.tonicsystems.jarjar;
+
+import com.tonicsystems.jarjar.util.*;
+import junit.framework.*;
+import java.util.*;
+import org.objectweb.asm.ClassReader;
+
+public class GenericsTest
+extends TestCase
+{
+ public void testTransform() throws Exception {
+ Rule rule = new Rule();
+ rule.setPattern("java.lang.String");
+ rule.setResult("com.tonicsystems.String");
+ RemappingClassTransformer t = new RemappingClassTransformer(new PackageRemapper(Arrays.asList(rule), false));
+ t.setTarget(new EmptyClassVisitor());
+ ClassReader reader = new ClassReader(getClass().getResourceAsStream("/Generics.class"));
+ reader.accept(t, 0);
+ }
+
+ public GenericsTest(String name) {
+ super(name);
+ }
+
+ public static Test suite() {
+ return new TestSuite(GenericsTest.class);
+ }
+}
diff --git a/src/test/com/tonicsystems/jarjar/PackageRemapperTest.java b/src/test/com/tonicsystems/jarjar/PackageRemapperTest.java
new file mode 100644
index 0000000..aea9d46
--- /dev/null
+++ b/src/test/com/tonicsystems/jarjar/PackageRemapperTest.java
@@ -0,0 +1,59 @@
+/**
+ * Copyright 2007 Google Inc.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.tonicsystems.jarjar;
+
+import junit.framework.*;
+
+import java.util.Collections;
+
+public class PackageRemapperTest
+extends TestCase
+{
+ protected PackageRemapper remapper;
+
+ protected void setUp() {
+ Rule rule = new Rule();
+ rule.setPattern("org.**");
+ rule.setResult("foo.@1");
+ remapper = new PackageRemapper(Collections.singletonList(rule), false);
+ }
+
+ public void testMapValue() {
+ assertUnchangedValue("[^\\s;/@&=,.?:+$]");
+ assertUnchangedValue("[Ljava/lang/Object;");
+ assertUnchangedValue("[Lorg/example/Object;");
+ assertUnchangedValue("[Ljava.lang.Object;");
+ assertUnchangedValue("[Lorg.example/Object;");
+ assertUnchangedValue("[L;");
+ assertUnchangedValue("[Lorg.example.Object;;");
+ assertUnchangedValue("[Lorg.example.Obj ct;");
+ assertUnchangedValue("org.example/Object");
+
+ assertEquals("[Lfoo.example.Object;", remapper.mapValue("[Lorg.example.Object;"));
+ assertEquals("foo.example.Object", remapper.mapValue("org.example.Object"));
+ assertEquals("foo/example/Object", remapper.mapValue("org/example/Object"));
+ assertEquals("foo/example.Object", remapper.mapValue("org/example.Object")); // path match
+
+ assertEquals("foo.example.package-info", remapper.mapValue("org.example.package-info"));
+ assertEquals("foo/example/package-info", remapper.mapValue("org/example/package-info"));
+ assertEquals("foo/example.package-info", remapper.mapValue("org/example.package-info"));
+ }
+
+ private void assertUnchangedValue(String value) {
+ assertEquals(value, remapper.mapValue(value));
+ }
+}
diff --git a/src/test/com/tonicsystems/jarjar/RulesFileParserTest.java b/src/test/com/tonicsystems/jarjar/RulesFileParserTest.java
new file mode 100644
index 0000000..4a4c371
--- /dev/null
+++ b/src/test/com/tonicsystems/jarjar/RulesFileParserTest.java
@@ -0,0 +1,36 @@
+/**
+ * Copyright 2007 Google Inc.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.tonicsystems.jarjar;
+
+import junit.framework.*;
+import java.io.*;
+
+public class RulesFileParserTest
+extends TestCase
+{
+ public void testSimple() throws Exception {
+ // TODO
+ }
+
+ public RulesFileParserTest(String name) {
+ super(name);
+ }
+
+ public static Test suite() {
+ return new TestSuite(RulesFileParserTest.class);
+ }
+}
diff --git a/src/test/com/tonicsystems/jarjar/WildcardTest.java b/src/test/com/tonicsystems/jarjar/WildcardTest.java
new file mode 100644
index 0000000..7cdcdf7
--- /dev/null
+++ b/src/test/com/tonicsystems/jarjar/WildcardTest.java
@@ -0,0 +1,48 @@
+/**
+ * Copyright 2007 Google Inc.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.tonicsystems.jarjar;
+
+import junit.framework.*;
+
+public class WildcardTest
+extends TestCase
+{
+ public void testWildcards() {
+ wildcard("net/sf/cglib/**", "foo/@1", "net/sf/cglib/proxy/Mixin$Generator",
+ "foo/proxy/Mixin$Generator");
+ wildcard("net/sf/cglib/**", "foo/@1", "net/sf/cglib/Bar", "foo/Bar");
+ wildcard("net/sf/cglib/**", "foo/@1", "net/sf/cglib/Bar/Baz", "foo/Bar/Baz");
+ wildcard("net/sf/cglib/**", "foo/@1", "net/sf/cglib/", "foo/");
+ wildcard("net/sf/cglib/**", "foo/@1", "net/sf/cglib/!", null);
+ wildcard("net/sf/cglib/*", "foo/@1", "net/sf/cglib/Bar", "foo/Bar");
+ wildcard("net/sf/cglib/*/*", "foo/@2/@1", "net/sf/cglib/Bar/Baz", "foo/Baz/Bar");
+ }
+
+ private void wildcard(String pattern, String result, String value, String expect) {
+ Wildcard wc = new Wildcard(pattern, result);
+ // System.err.println(wc);
+ assertEquals(expect, wc.replace(value));
+ }
+
+ public WildcardTest(String name) {
+ super(name);
+ }
+
+ public static Test suite() {
+ return new TestSuite(WildcardTest.class);
+ }
+}
diff --git a/src/test/com/tonicsystems/jarjar/example/Example.java b/src/test/com/tonicsystems/jarjar/example/Example.java
new file mode 100644
index 0000000..2129962
--- /dev/null
+++ b/src/test/com/tonicsystems/jarjar/example/Example.java
@@ -0,0 +1,5 @@
+package com.tonicsystems.jarjar.example;
+
+public class Example
+{
+}
diff --git a/src/test/enumtest.jar b/src/test/enumtest.jar
new file mode 100644
index 0000000..df34d16
--- /dev/null
+++ b/src/test/enumtest.jar
Binary files differ