diff options
author | Marcin Kosiba <mkosiba@google.com> | 2014-06-17 09:56:21 +0100 |
---|---|---|
committer | Marcin Kosiba <mkosiba@google.com> | 2014-06-20 11:55:22 +0100 |
commit | ab61347a2cb3254688c42c993278cefd43e5d99d (patch) | |
tree | de9bb96cdb2bc7a710c8222edcdd3e3a33e7086e /src/test | |
parent | fe7bad2c42f39829e8d4fd990ac1da776bcaeee2 (diff) | |
download | android_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.class | bin | 0 -> 575 bytes | |||
-rw-r--r-- | src/test/com/tonicsystems/jarjar/GenericsTest.java | 44 | ||||
-rw-r--r-- | src/test/com/tonicsystems/jarjar/PackageRemapperTest.java | 59 | ||||
-rw-r--r-- | src/test/com/tonicsystems/jarjar/RulesFileParserTest.java | 36 | ||||
-rw-r--r-- | src/test/com/tonicsystems/jarjar/WildcardTest.java | 48 | ||||
-rw-r--r-- | src/test/com/tonicsystems/jarjar/example/Example.java | 5 | ||||
-rw-r--r-- | src/test/enumtest.jar | bin | 0 -> 1324 bytes |
7 files changed, 192 insertions, 0 deletions
diff --git a/src/test/Generics.class b/src/test/Generics.class Binary files differnew file mode 100644 index 0000000..827519a --- /dev/null +++ b/src/test/Generics.class 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 Binary files differnew file mode 100644 index 0000000..df34d16 --- /dev/null +++ b/src/test/enumtest.jar |