diff options
Diffstat (limited to 'src/test/com/tonicsystems')
5 files changed, 192 insertions, 0 deletions
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 +{ +} |