blob: f7e544399c767c6e1f28eb0e77dba37790736f1b [file] [log] [blame]
Dianne Hackborn0e0b7422009-07-10 13:40:09 -07001/*
2 * Copyright (C) 2009 The Android Open Source Project
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
16
Brett Chabot03177f12009-08-13 21:23:28 -070017package android.permission2.cts;
Dianne Hackborn0e0b7422009-07-10 13:40:09 -070018
Dianne Hackborn0e0b7422009-07-10 13:40:09 -070019import android.content.Intent;
Dianne Hackborn0e0b7422009-07-10 13:40:09 -070020import android.test.AndroidTestCase;
21
22/**
23 * Verify that applications can not send protected broadcasts.
24 */
25public class ProtectedBroadcastsTest extends AndroidTestCase {
26 private static final String BROADCASTS[] = new String[] {
27 Intent.ACTION_SCREEN_OFF,
28 Intent.ACTION_SCREEN_ON,
29 Intent.ACTION_USER_PRESENT,
30 Intent.ACTION_TIME_TICK,
31 Intent.ACTION_TIMEZONE_CHANGED,
32 Intent.ACTION_BOOT_COMPLETED,
Dianne Hackborn0e0b7422009-07-10 13:40:09 -070033 Intent.ACTION_PACKAGE_INSTALL,
34 Intent.ACTION_PACKAGE_ADDED,
35 Intent.ACTION_PACKAGE_REPLACED,
36 Intent.ACTION_PACKAGE_REMOVED,
37 Intent.ACTION_PACKAGE_CHANGED,
38 Intent.ACTION_PACKAGE_RESTARTED,
39 Intent.ACTION_PACKAGE_DATA_CLEARED,
40 Intent.ACTION_UID_REMOVED,
41 Intent.ACTION_CONFIGURATION_CHANGED,
42 Intent.ACTION_BATTERY_CHANGED,
43 Intent.ACTION_BATTERY_LOW,
44 Intent.ACTION_BATTERY_OKAY,
45 Intent.ACTION_POWER_CONNECTED,
46 Intent.ACTION_POWER_DISCONNECTED,
47 Intent.ACTION_SHUTDOWN,
48 Intent.ACTION_DEVICE_STORAGE_LOW,
49 Intent.ACTION_DEVICE_STORAGE_OK,
Dianne Hackborn0e0b7422009-07-10 13:40:09 -070050 Intent.ACTION_NEW_OUTGOING_CALL,
51 Intent.ACTION_REBOOT,
52 "android.intent.action.SERVICE_STATE",
53 "android.intent.action.RADIO_TECHNOLOGY",
54 "android.intent.action.EMERGENCY_CALLBACK_MODE_CHANGED",
55 "android.intent.action.SIG_STR",
56 "android.intent.action.ANY_DATA_STATE",
57 "android.intent.action.DATA_CONNECTION_FAILED",
58 "android.intent.action.SIM_STATE_CHANGED",
59 "android.intent.action.NETWORK_SET_TIME",
60 "android.intent.action.NETWORK_SET_TIMEZONE",
61 "android.intent.action.ACTION_SHOW_NOTICE_ECM_BLOCK_OTHERS",
62 "android.intent.action.ACTION_MDN_STATE_CHANGED",
Nick Kralevich79934852012-11-29 10:09:57 -080063 "android.provider.Telephony.SPN_STRINGS_UPDATED",
64 "android.intent.action.ANY_DATA_STATE",
65 "com.android.server.WifiManager.action.START_SCAN",
66 "com.android.server.WifiManager.action.DELAYED_DRIVER_STOP",
67 "android.net.wifi.WIFI_STATE_CHANGED",
68 "android.net.wifi.WIFI_AP_STATE_CHANGED",
69 "android.net.wifi.SCAN_RESULTS",
70 "android.net.wifi.RSSI_CHANGED",
71 "android.net.wifi.STATE_CHANGE",
72 "android.net.wifi.LINK_CONFIGURATION_CHANGED",
73 "android.net.wifi.CONFIGURED_NETWORKS_CHANGE",
74 "android.net.wifi.supplicant.CONNECTION_CHANGE",
75 "android.net.wifi.supplicant.STATE_CHANGE",
76 "android.net.wifi.p2p.STATE_CHANGED",
77 "android.net.wifi.p2p.DISCOVERY_STATE_CHANGE",
78 "android.net.wifi.p2p.THIS_DEVICE_CHANGED",
79 "android.net.wifi.p2p.PEERS_CHANGED",
80 "android.net.wifi.p2p.CONNECTION_STATE_CHANGE",
81 "android.net.wifi.p2p.PERSISTENT_GROUPS_CHANGED",
82 "android.net.conn.TETHER_STATE_CHANGED",
Russell Brennered6f9372013-02-12 10:12:20 -080083 "android.net.conn.INET_CONDITION_ACTION",
84 "android.net.conn.CAPTIVE_PORTAL_TEST_COMPLETED"
Dianne Hackborn0e0b7422009-07-10 13:40:09 -070085 };
86
87 /**
88 * Verify that protected broadcast actions can't be sent.
89 */
Nick Kralevich79934852012-11-29 10:09:57 -080090 public void testSendProtectedBroadcasts() {
Dianne Hackborn0e0b7422009-07-10 13:40:09 -070091 for (String action : BROADCASTS) {
92 try {
93 Intent intent = new Intent(action);
94 getContext().sendBroadcast(intent);
95 fail("expected security exception broadcasting action: " + action);
96 } catch (SecurityException expected) {
97 assertNotNull("security exception's error message.", expected.getMessage());
98 }
99 }
100 }
101}