15d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis/* 2ba381a314edcd57963ed1ac5910595e04faf29ccFilip Pavlis * Copyright 2018 The Android Open Source Project 35d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis * 45d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis * Licensed under the Apache License, Version 2.0 (the "License"); 55d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis * you may not use this file except in compliance with the License. 65d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis * You may obtain a copy of the License at 75d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis * 84a360e3a3af230badc847867c117f605367170aaFilip Pavlis * http://www.apache.org/licenses/LICENSE-2.0 95d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis * 105d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis * Unless required by applicable law or agreed to in writing, software 115d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis * distributed under the License is distributed on an "AS IS" BASIS, 125d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 135d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis * See the License for the specific language governing permissions and 144a360e3a3af230badc847867c117f605367170aaFilip Pavlis * limitations under the License. 155d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis */ 165d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis 17ba381a314edcd57963ed1ac5910595e04faf29ccFilip Pavlispackage com.android.tools.build.jetifier.processor.transform.proguard 185d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis 195d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlisimport org.junit.Test 205d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis 215d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlisclass ClassSpecTest_MethodInitSelector { 225d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis 235d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis @Test fun proGuard_methodsInitSelector() { 24e237113ee534e4f6b172a5661eb6088d861a15dbFilip Pavlis ProGuardTester() 255d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis .forGivenPrefixes( 265d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis ) 275d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis .forGivenTypesMap( 285d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis ) 295d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis .testThatGivenProGuard( 305d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis "-keep public class * { \n" + 315d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis " <methods>; \n" + 325d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis "}" 335d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis ) 345d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis .rewritesTo( 355d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis "-keep public class * { \n" + 365d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis " <methods>; \n" + 375d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis "}" 385d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis ) 395d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis } 405d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis 415d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis @Test fun proGuard_methodsInitSelector_modifiers() { 42e237113ee534e4f6b172a5661eb6088d861a15dbFilip Pavlis ProGuardTester() 435d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis .forGivenPrefixes( 445d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis ) 455d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis .forGivenTypesMap( 465d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis ) 475d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis .testThatGivenProGuard( 485d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis "-keep public class * { \n" + 495d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis " public <methods>; \n" + 505d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis " public static <methods>; \n" + 515d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis " public !static <methods>; \n" + 525d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis " !private static <methods>; \n" + 535d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis "}" 545d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis ) 555d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis .rewritesTo( 565d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis "-keep public class * { \n" + 575d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis " public <methods>; \n" + 585d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis " public static <methods>; \n" + 595d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis " public !static <methods>; \n" + 605d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis " !private static <methods>; \n" + 615d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis "}" 625d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis ) 635d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis } 645d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis 655d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis @Test fun proGuard_methodsInitSelector_modifiers_annotation() { 66e237113ee534e4f6b172a5661eb6088d861a15dbFilip Pavlis ProGuardTester() 675d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis .forGivenPrefixes( 685d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis "support/" 695d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis ) 705d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis .forGivenTypesMap( 715d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis "support/Annotation" to "test/Annotation" 725d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis ) 735d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis .testThatGivenProGuard( 745d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis "-keep public class * { \n" + 755d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis " @support.Annotation public <methods>; \n" + 765d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis " @support.Annotation public static <methods>; \n" + 775d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis " @support.Annotation public !static <methods>; \n" + 785d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis " @support.Annotation !private static <methods>; \n" + 795d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis "}" 805d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis ) 815d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis .rewritesTo( 825d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis "-keep public class * { \n" + 835d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis " @test.Annotation public <methods>; \n" + 845d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis " @test.Annotation public static <methods>; \n" + 855d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis " @test.Annotation public !static <methods>; \n" + 865d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis " @test.Annotation !private static <methods>; \n" + 875d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis "}" 885d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis ) 895d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis } 905d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis 915d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis @Test fun proGuard_methodInitSelector() { 92e237113ee534e4f6b172a5661eb6088d861a15dbFilip Pavlis ProGuardTester() 935d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis .forGivenPrefixes( 945d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis "support/" 955d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis ) 965d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis .forGivenTypesMap( 975d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis "support/Activity" to "test/Activity", 985d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis "support/Fragment" to "test/Fragment" 995d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis ) 1005d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis .testThatGivenProGuard( 1015d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis "-keep public class * { \n" + 1025d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis " <init>(); \n" + 1035d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis " <init>(*); \n" + 1045d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis " <init>(...); \n" + 1055d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis " <init>(support.Activity); \n" + 1065d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis " <init>(support.Activity, support.Fragment, keep.Please); \n" + 1075d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis "}" 1085d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis ) 1095d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis .rewritesTo( 1105d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis "-keep public class * { \n" + 1115d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis " <init>(); \n" + 1125d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis " <init>(*); \n" + 1135d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis " <init>(...); \n" + 1145d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis " <init>(test.Activity); \n" + 1155d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis " <init>(test.Activity, test.Fragment, keep.Please); \n" + 1165d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis "}" 1175d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis ) 1185d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis } 1195d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis 1205d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis @Test fun proGuard_methodInitSelector_modifiers() { 121e237113ee534e4f6b172a5661eb6088d861a15dbFilip Pavlis ProGuardTester() 1225d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis .forGivenPrefixes( 1235d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis "support/" 1245d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis ) 1255d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis .forGivenTypesMap( 1265d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis "support/Activity" to "test/Activity", 1275d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis "support/Fragment" to "test/Fragment" 1285d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis ) 1295d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis .testThatGivenProGuard( 1305d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis "-keep public class * { \n" + 1315d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis " public <init>(); \n" + 1325d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis " public static <init>(*); \n" + 1335d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis " !public !static <init>(...); \n" + 1345d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis " !private static <init>(support.Activity); \n" + 1355d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis " public !abstract <init>(support.Activity, support.Fragment, keep.Please); \n" + 1365d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis "}" 1375d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis ) 1385d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis .rewritesTo( 1395d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis "-keep public class * { \n" + 1405d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis " public <init>(); \n" + 1415d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis " public static <init>(*); \n" + 1425d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis " !public !static <init>(...); \n" + 1435d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis " !private static <init>(test.Activity); \n" + 1445d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis " public !abstract <init>(test.Activity, test.Fragment, keep.Please); \n" + 1455d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis "}" 1465d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis ) 1475d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis } 1485d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis 1495d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis @Test fun proGuard_methodInitSelector_annotation() { 150e237113ee534e4f6b172a5661eb6088d861a15dbFilip Pavlis ProGuardTester() 1515d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis .forGivenPrefixes( 1525d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis "support/" 1535d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis ) 1545d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis .forGivenTypesMap( 1555d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis "support/Activity" to "test/Activity", 1565d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis "support/Fragment" to "test/Fragment", 1575d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis "support/Annotation" to "test/Annotation" 1585d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis ) 1595d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis .testThatGivenProGuard( 1605d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis "-keep public class * { \n" + 1615d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis " @support.Annotation <init>(); \n" + 1625d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis " @support.Annotation <init>(*); \n" + 1635d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis " @support.Annotation <init>(...); \n" + 1645d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis " @keep.Me <init>(support.Activity); \n" + 165e237113ee534e4f6b172a5661eb6088d861a15dbFilip Pavlis " @support.Annotation <init>(support.Activity, support.Fragment, keep.Please);" + 166e237113ee534e4f6b172a5661eb6088d861a15dbFilip Pavlis " \n" + 1675d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis "}" 1685d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis ) 1695d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis .rewritesTo( 1705d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis "-keep public class * { \n" + 1715d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis " @test.Annotation <init>(); \n" + 1725d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis " @test.Annotation <init>(*); \n" + 1735d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis " @test.Annotation <init>(...); \n" + 1745d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis " @keep.Me <init>(test.Activity); \n" + 1755d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis " @test.Annotation <init>(test.Activity, test.Fragment, keep.Please); \n" + 1765d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis "}" 1775d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis ) 1785d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis } 1795d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis 1805d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis @Test fun proGuard_methodInitSelector_modifiers_annotation() { 181e237113ee534e4f6b172a5661eb6088d861a15dbFilip Pavlis ProGuardTester() 1825d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis .forGivenPrefixes( 1835d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis "support/" 1845d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis ) 1855d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis .forGivenTypesMap( 1865d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis "support/Activity" to "test/Activity", 1875d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis "support/Fragment" to "test/Fragment", 1885d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis "support/Annotation" to "test/Annotation" 1895d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis ) 1905d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis .testThatGivenProGuard( 1915d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis "-keep public class * { \n" + 1925d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis " @support.Annotation public <init>(); \n" + 1935d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis " @support.Annotation public static <init>(*); \n" + 1945d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis " @support.Annotation !public !static <init>(...); \n" + 1955d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis " @support.Annotation !private static <init>(support.Activity); \n" + 196e237113ee534e4f6b172a5661eb6088d861a15dbFilip Pavlis " @support.Annotation public !abstract <init>(support.Activity, support.Fragment" + 197e237113ee534e4f6b172a5661eb6088d861a15dbFilip Pavlis ", keep.Please); \n" + 1985d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis "}" 1995d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis ) 2005d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis .rewritesTo( 2015d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis "-keep public class * { \n" + 2025d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis " @test.Annotation public <init>(); \n" + 2035d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis " @test.Annotation public static <init>(*); \n" + 2045d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis " @test.Annotation !public !static <init>(...); \n" + 2055d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis " @test.Annotation !private static <init>(test.Activity); \n" + 206e237113ee534e4f6b172a5661eb6088d861a15dbFilip Pavlis " @test.Annotation public !abstract <init>(test.Activity, test.Fragment, " + 207e237113ee534e4f6b172a5661eb6088d861a15dbFilip Pavlis "keep.Please); \n" + 2085d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis "}" 2095d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis ) 2105d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis } 2115d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis 2125d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis @Test fun proGuard_methodInitSelector_modifiers_annotation_test() { 213e237113ee534e4f6b172a5661eb6088d861a15dbFilip Pavlis ProGuardTester() 2145d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis .forGivenPrefixes( 2155d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis "support/" 2165d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis ) 2175d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis .forGivenTypesMap( 2185d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis "support/Activity" to "test/Activity", 2195d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis "support/Fragment" to "test/Fragment", 2205d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis "support/Annotation" to "test/Annotation" 2215d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis ) 2225d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis .testThatGivenProGuard( 2235d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis "-keep public class * { \n" + 224e237113ee534e4f6b172a5661eb6088d861a15dbFilip Pavlis " @support.Annotation public !abstract \t <init> ( support.Activity , " + 225e237113ee534e4f6b172a5661eb6088d861a15dbFilip Pavlis "support.Fragment, keep.Please); \n" + 2265d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis "}" 2275d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis ) 2285d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis .rewritesTo( 2295d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis "-keep public class * { \n" + 230e237113ee534e4f6b172a5661eb6088d861a15dbFilip Pavlis " @test.Annotation public !abstract \t <init> (test.Activity, test.Fragment, " + 231e237113ee534e4f6b172a5661eb6088d861a15dbFilip Pavlis "keep.Please); \n" + 2325d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis "}" 2335d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis ) 2345d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis } 235982679c45ee20f39c5da072ff6a80519ee262ef4Filip Pavlis 236982679c45ee20f39c5da072ff6a80519ee262ef4Filip Pavlis @Test fun proGuard_methodInitSelector_multiple() { 237982679c45ee20f39c5da072ff6a80519ee262ef4Filip Pavlis ProGuardTester() 238982679c45ee20f39c5da072ff6a80519ee262ef4Filip Pavlis .forGivenPrefixes( 239982679c45ee20f39c5da072ff6a80519ee262ef4Filip Pavlis "support/" 240982679c45ee20f39c5da072ff6a80519ee262ef4Filip Pavlis ) 241982679c45ee20f39c5da072ff6a80519ee262ef4Filip Pavlis .forGivenProGuardMapSet("support.**" to setOf("support.**", "androidx.**")) 242982679c45ee20f39c5da072ff6a80519ee262ef4Filip Pavlis .testThatGivenProGuard( 243982679c45ee20f39c5da072ff6a80519ee262ef4Filip Pavlis "-keep public class * { \n" + 244982679c45ee20f39c5da072ff6a80519ee262ef4Filip Pavlis " <init>(support.**, support.**); \n" + 245982679c45ee20f39c5da072ff6a80519ee262ef4Filip Pavlis "}" 246982679c45ee20f39c5da072ff6a80519ee262ef4Filip Pavlis ) 247982679c45ee20f39c5da072ff6a80519ee262ef4Filip Pavlis .rewritesTo( 248982679c45ee20f39c5da072ff6a80519ee262ef4Filip Pavlis "-keep public class * { \n" + 249982679c45ee20f39c5da072ff6a80519ee262ef4Filip Pavlis " <init>(support.**, support.**); \n" + 250982679c45ee20f39c5da072ff6a80519ee262ef4Filip Pavlis "}\n" + 251982679c45ee20f39c5da072ff6a80519ee262ef4Filip Pavlis "-keep public class * { \n" + 252982679c45ee20f39c5da072ff6a80519ee262ef4Filip Pavlis " <init>(androidx.**, support.**); \n" + 253982679c45ee20f39c5da072ff6a80519ee262ef4Filip Pavlis "}\n" + 254982679c45ee20f39c5da072ff6a80519ee262ef4Filip Pavlis "-keep public class * { \n" + 255982679c45ee20f39c5da072ff6a80519ee262ef4Filip Pavlis " <init>(support.**, androidx.**); \n" + 256982679c45ee20f39c5da072ff6a80519ee262ef4Filip Pavlis "}\n" + 257982679c45ee20f39c5da072ff6a80519ee262ef4Filip Pavlis "-keep public class * { \n" + 258982679c45ee20f39c5da072ff6a80519ee262ef4Filip Pavlis " <init>(androidx.**, androidx.**); \n" + 259982679c45ee20f39c5da072ff6a80519ee262ef4Filip Pavlis "}" 260982679c45ee20f39c5da072ff6a80519ee262ef4Filip Pavlis ) 261982679c45ee20f39c5da072ff6a80519ee262ef4Filip Pavlis } 2625d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis}