1f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectpackage org.apache.harmony.luni.tests.java.lang;
2f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
3f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectimport java.io.FilePermission;
4f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectimport java.security.Permission;
5f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectimport java.security.SecurityPermission;
6f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectimport java.util.PropertyPermission;
7f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
8f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectclass MockSecurityManager extends SecurityManager {
9f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
10f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    String deletedFile = "/";
11f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    String readedFile  = "/";
12f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    String writedFile  = "/";
13f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
14f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    public void setInCheck(boolean inCheck) {
15f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        super.inCheck = inCheck;
16f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    }
17f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
18f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    @Override
19f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    public int classDepth(String name) {
20f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        return super.classDepth(name);
21f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    }
22f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
23f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    @Override
24f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    public int classLoaderDepth() {
25f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        return super.classLoaderDepth();
26f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    }
27f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
28f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    @Override
29f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    public void checkPermission(Permission perm) {
30f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        if (perm.equals(new RuntimePermission("createSecurityManager")) ||
31f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project//          perm.equals(new AWTPermission("accessEventQueue")) ||
32f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            perm.equals(new RuntimePermission("createClassLoader")) ||
33f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            perm.equals(new FilePermission(deletedFile,"delete")) ||
34f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            perm.equals(new FilePermission(readedFile,"read")) ||
35f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            perm.equals(new PropertyPermission("*", "read,write")) ||
36f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            perm.equals(new PropertyPermission("key", "read")) ||
37f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            perm.equals(new SecurityPermission("getPolicy")) ||
38f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project//          perm.equals(new AWTPermission("accessClipboard")) ||
39f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            perm.equals(new FilePermission(writedFile,"write"))) {
40f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            throw
41f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            new SecurityException("Unable to create Security Manager");
42f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        }
43f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    }
44f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
45f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    @Override
46f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    public ClassLoader currentClassLoader() {
47f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        return super.currentClassLoader();
48f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    }
49f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
50f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    @Override
51f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    public Class<?> currentLoadedClass() {
52f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        return super.currentLoadedClass();
53f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    }
54f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
55f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    @Override
56f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    public Class[] getClassContext() {
57f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        return super.getClassContext();
58f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    }
59f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
60f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    @Override
61f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    public boolean inClass(String name) {
62f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        return super.inClass(name);
63f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    }
64f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
65f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    @Override
66f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    public boolean inClassLoader() {
67f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        return super.inClassLoader();
68f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    }
69f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project}
70