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}