From 2399bfb7841801dd517e50cf2e8ae2d6054403fb Mon Sep 17 00:00:00 2001 From: Ahmed Ashour Date: Sun, 24 Mar 2019 08:47:52 +0100 Subject: [PATCH] test: add case for #504 --- .../annotations/AnnotationsRenaming.java | 44 +++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 jadx-core/src/test/java/jadx/tests/integration/annotations/AnnotationsRenaming.java diff --git a/jadx-core/src/test/java/jadx/tests/integration/annotations/AnnotationsRenaming.java b/jadx-core/src/test/java/jadx/tests/integration/annotations/AnnotationsRenaming.java new file mode 100644 index 000000000..477dd9614 --- /dev/null +++ b/jadx-core/src/test/java/jadx/tests/integration/annotations/AnnotationsRenaming.java @@ -0,0 +1,44 @@ +package jadx.tests.integration.annotations; + +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +import org.junit.jupiter.api.Test; + +import jadx.NotYetImplemented; +import jadx.core.dex.nodes.ClassNode; +import jadx.tests.api.IntegrationTest; + +import static org.hamcrest.CoreMatchers.containsString; +import static org.hamcrest.CoreMatchers.not; +import static org.hamcrest.MatcherAssert.assertThat; + +public class AnnotationsRenaming extends IntegrationTest { + + public static class TestCls { + + @Target({ElementType.METHOD}) + @Retention(RetentionPolicy.RUNTIME) + public static @interface A { + int x(); + } + + @A(x = 5) + void test() { + } + + } + + @Test + @NotYetImplemented + public void test504() { + enableDeobfuscation(); + ClassNode cls = getClassNode(TestCls.class); + String code = cls.getCode().toString(); + + assertThat(code, containsString("public static @interface ")); + assertThat(code, not(containsString("(x = 5)"))); + } +}