1 package com.google.android.lint.aidl
2 
3 import com.android.tools.lint.checks.infrastructure.LintDetectorTest.java
4 import com.android.tools.lint.checks.infrastructure.TestFile
5 
6 val aidlStub: TestFile = java(
7     """
8     package android.test;
9     public interface ITest extends android.os.IInterface {
10         public static abstract class Stub extends android.os.Binder implements android.test.ITest {
11             protected void test_enforcePermission() throws SecurityException {}
12         }
13         public void test() throws android.os.RemoteException;
14     }
15     """
16 ).indented()
17 
18 val contextStub: TestFile = java(
19     """
20     package android.content;
21     public class Context {
22         @android.annotation.PermissionMethod(orSelf = true)
23         public void enforceCallingOrSelfPermission(@android.annotation.PermissionName String permission, String message) {}
24         @android.annotation.PermissionMethod
25         public void enforceCallingPermission(@android.annotation.PermissionName String permission, String message) {}
26         @android.annotation.PermissionMethod(orSelf = true)
27         public int checkCallingOrSelfPermission(@android.annotation.PermissionName String permission, String message) {}
28         @android.annotation.PermissionMethod
29         public int checkCallingPermission(@android.annotation.PermissionName String permission, String message) {}
30     }
31     """
32 ).indented()
33 
34 val binderStub: TestFile = java(
35     """
36     package android.os;
37     public class Binder {
38         public static int getCallingUid() {}
39     }
40     """
41 ).indented()
42 
43 val permissionMethodStub: TestFile = java(
44     """
45     package android.annotation;
46 
47     import static java.lang.annotation.ElementType.METHOD;
48     import static java.lang.annotation.RetentionPolicy.CLASS;
49 
50     import java.lang.annotation.Retention;
51     import java.lang.annotation.Target;
52 
53     @Retention(CLASS)
54     @Target({METHOD})
55     public @interface PermissionMethod {}
56     """
57 ).indented()
58 
59 val permissionNameStub: TestFile = java(
60     """
61     package android.annotation;
62 
63     import static java.lang.annotation.ElementType.FIELD;
64     import static java.lang.annotation.ElementType.LOCAL_VARIABLE;
65     import static java.lang.annotation.ElementType.METHOD;
66     import static java.lang.annotation.ElementType.PARAMETER;
67     import static java.lang.annotation.RetentionPolicy.CLASS;
68 
69     import java.lang.annotation.Retention;
70     import java.lang.annotation.Target;
71 
72     @Retention(CLASS)
73     @Target({PARAMETER, METHOD, LOCAL_VARIABLE, FIELD})
74     public @interface PermissionName {}
75     """
76 ).indented()
77 
78 val manifestStub: TestFile = java(
79     """
80     package android;
81 
82     public final class Manifest {
83         public static final class permission {
84             public static final String READ_CONTACTS="android.permission.READ_CONTACTS";
85         }
86     }
87     """.trimIndent()
88 )