ClassSpecTest_NamedCtorSelector.kt revision 5d7619f3c22d5d40ff099ae5599bdbb47453d2cc
15d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis/* 25d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis * Copyright (C) 2017 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 * 85d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip 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 145d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis * limitations under the License 155d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis */ 165d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis 175d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlispackage android.support.tools.jetifier.core.transform.proguard 185d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis 195d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlisimport org.junit.Test 205d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis 215d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlisclass ClassSpecTest_NamedCtorSelector { 225d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis 235d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis @Test fun proGuard_ctorSelector() { 245d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis ProGuardTester 255d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis .forGivenPrefixes( 265d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis "support/" 275d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis ) 285d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis .forGivenTypesMap( 295d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis "support/Activity" to "test/Activity", 305d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis "support/Fragment" to "test/Fragment" 315d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis ) 325d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis .testThatGivenProGuard( 335d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis "-keep public class * { \n" + 345d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis " support.Activity(); \n" + 355d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis " support.Activity(...); \n" + 365d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis " support.Activity(*); \n" + 375d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis " support.Activity(support.Activity); \n" + 385d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis " support.Activity(support.Activity, support.Fragment, keep.Please); \n" + 395d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis "}" 405d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis ) 415d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis .rewritesTo( 425d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis "-keep public class * { \n" + 435d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis " test.Activity(); \n" + 445d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis " test.Activity(...); \n" + 455d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis " test.Activity(*); \n" + 465d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis " test.Activity(test.Activity); \n" + 475d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis " test.Activity(test.Activity, test.Fragment, keep.Please); \n" + 485d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis "}" 495d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis ) 505d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis } 515d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis 525d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis @Test fun proGuard_ctorSelector_modifiers() { 535d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis ProGuardTester 545d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis .forGivenPrefixes( 555d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis "support/" 565d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis ) 575d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis .forGivenTypesMap( 585d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis "support/Activity" to "test/Activity", 595d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis "support/Fragment" to "test/Fragment" 605d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis ) 615d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis .testThatGivenProGuard( 625d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis "-keep public class * { \n" + 635d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis " public support.Activity(); \n" + 645d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis " public static support.Activity(...); \n" + 655d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis " !private support.Activity(*); \n" + 665d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis " !public !static support.Activity(support.Activity); \n" + 675d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis " !protected support.Activity(support.Activity, support.Fragment, keep.Please); \n" + 685d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis "}" 695d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis ) 705d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis .rewritesTo( 715d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis "-keep public class * { \n" + 725d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis " public test.Activity(); \n" + 735d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis " public static test.Activity(...); \n" + 745d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis " !private test.Activity(*); \n" + 755d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis " !public !static test.Activity(test.Activity); \n" + 765d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis " !protected test.Activity(test.Activity, test.Fragment, keep.Please); \n" + 775d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis "}" 785d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis ) 795d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis } 805d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis 815d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis @Test fun proGuard_ctorSelector_annotation() { 825d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis ProGuardTester 835d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis .forGivenPrefixes( 845d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis "support/" 855d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis ) 865d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis .forGivenTypesMap( 875d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis "support/Activity" to "test/Activity", 885d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis "support/Fragment" to "test/Fragment", 895d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis "support/Annotation" to "test/Annotation" 905d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis ) 915d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis .testThatGivenProGuard( 925d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis "-keep public class * { \n" + 935d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis " @support.Annotation support.Activity(); \n" + 945d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis " @support.Annotation support.Activity(...); \n" + 955d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis " @support.Annotation support.Activity(*); \n" + 965d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis " @support.Annotation support.Activity(support.Activity); \n" + 975d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis " @support.Annotation support.Activity(support.Activity, support.Fragment, keep.Please); \n" + 985d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis "}" 995d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis ) 1005d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis .rewritesTo( 1015d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis "-keep public class * { \n" + 1025d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis " @test.Annotation test.Activity(); \n" + 1035d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis " @test.Annotation test.Activity(...); \n" + 1045d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis " @test.Annotation test.Activity(*); \n" + 1055d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis " @test.Annotation test.Activity(test.Activity); \n" + 1065d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis " @test.Annotation test.Activity(test.Activity, test.Fragment, keep.Please); \n" + 1075d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis "}" 1085d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis ) 1095d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis } 1105d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis 1115d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis @Test fun proGuard_ctorSelector_modifiers_annotation() { 1125d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis ProGuardTester 1135d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis .forGivenPrefixes( 1145d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis "support/" 1155d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis ) 1165d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis .forGivenTypesMap( 1175d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis "support/Activity" to "test/Activity", 1185d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis "support/Fragment" to "test/Fragment", 1195d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis "support/Annotation" to "test/Annotation" 1205d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis ) 1215d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis .testThatGivenProGuard( 1225d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis "-keep public class * { \n" + 1235d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis " @support.Annotation public support.Activity(); \n" + 1245d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis " @support.Annotation public static support.Activity(...); \n" + 1255d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis " @support.Annotation !private support.Activity(*); \n" + 1265d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis " @support.Annotation !public !static support.Activity(support.Activity); \n" + 1275d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis " @support.Annotation !protected support.Activity(support.Activity, support.Fragment, keep.Please); \n" + 1285d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis "}" 1295d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis ) 1305d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis .rewritesTo( 1315d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis "-keep public class * { \n" + 1325d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis " @test.Annotation public test.Activity(); \n" + 1335d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis " @test.Annotation public static test.Activity(...); \n" + 1345d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis " @test.Annotation !private test.Activity(*); \n" + 1355d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis " @test.Annotation !public !static test.Activity(test.Activity); \n" + 1365d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis " @test.Annotation !protected test.Activity(test.Activity, test.Fragment, keep.Please); \n" + 1375d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis "}" 1385d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis ) 1395d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis } 1405d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis 1415d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis @Test fun proGuard_ctorSelector_modifiers_annotation_spaces() { 1425d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis ProGuardTester 1435d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis .forGivenPrefixes( 1445d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis "support/" 1455d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis ) 1465d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis .forGivenTypesMap( 1475d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis "support/Activity" to "test/Activity", 1485d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis "support/Fragment" to "test/Fragment", 1495d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis "support/Annotation" to "test/Annotation" 1505d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis ) 1515d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis .testThatGivenProGuard( 1525d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis "-keep public class * { \n" + 1535d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis " @support.Annotation !protected \t support.Activity( support.Activity ); \n" + 1545d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis "}" 1555d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis ) 1565d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis .rewritesTo( 1575d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis "-keep public class * { \n" + 1585d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis " @test.Annotation !protected \t test.Activity(test.Activity); \n" + 1595d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis "}" 1605d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis ) 1615d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis } 1625d7619f3c22d5d40ff099ae5599bdbb47453d2ccFilip Pavlis}