Dianne Hackborn | 0e0b742 | 2009-07-10 13:40:09 -0700 | [diff] [blame] | 1 | /* |
| 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 Chabot | 03177f1 | 2009-08-13 21:23:28 -0700 | [diff] [blame] | 17 | package android.permission2.cts; |
Dianne Hackborn | 0e0b742 | 2009-07-10 13:40:09 -0700 | [diff] [blame] | 18 | |
Dianne Hackborn | 0e0b742 | 2009-07-10 13:40:09 -0700 | [diff] [blame] | 19 | import android.content.Intent; |
Dianne Hackborn | 0e0b742 | 2009-07-10 13:40:09 -0700 | [diff] [blame] | 20 | import android.test.AndroidTestCase; |
| 21 | |
| 22 | /** |
| 23 | * Verify that applications can not send protected broadcasts. |
| 24 | */ |
| 25 | public 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 Hackborn | 0e0b742 | 2009-07-10 13:40:09 -0700 | [diff] [blame] | 33 | 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 Hackborn | 0e0b742 | 2009-07-10 13:40:09 -0700 | [diff] [blame] | 50 | 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 Kralevich | 7993485 | 2012-11-29 10:09:57 -0800 | [diff] [blame] | 63 | "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 Brenner | ed6f937 | 2013-02-12 10:12:20 -0800 | [diff] [blame] | 83 | "android.net.conn.INET_CONDITION_ACTION", |
| 84 | "android.net.conn.CAPTIVE_PORTAL_TEST_COMPLETED" |
Dianne Hackborn | 0e0b742 | 2009-07-10 13:40:09 -0700 | [diff] [blame] | 85 | }; |
| 86 | |
| 87 | /** |
| 88 | * Verify that protected broadcast actions can't be sent. |
| 89 | */ |
Nick Kralevich | 7993485 | 2012-11-29 10:09:57 -0800 | [diff] [blame] | 90 | public void testSendProtectedBroadcasts() { |
Dianne Hackborn | 0e0b742 | 2009-07-10 13:40:09 -0700 | [diff] [blame] | 91 | 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 | } |