2 * Copyright (C) 2008 The Android Open Source Project
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
8 * http://www.apache.org/licenses/LICENSE-2.0
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.
17 package android.content.pm;
19 import static android.content.pm.PackageManager.COMPONENT_ENABLED_STATE_DEFAULT;
20 import static android.content.pm.PackageManager.COMPONENT_ENABLED_STATE_DISABLED;
21 import static android.content.pm.PackageManager.COMPONENT_ENABLED_STATE_ENABLED;
22 import static android.content.pm.PackageManager.GET_DISABLED_COMPONENTS;
24 import com.android.frameworks.coretests.enabled_app.DisabledActivity;
25 import com.android.frameworks.coretests.enabled_app.DisabledProvider;
26 import com.android.frameworks.coretests.enabled_app.DisabledReceiver;
27 import com.android.frameworks.coretests.enabled_app.DisabledService;
28 import com.android.frameworks.coretests.enabled_app.EnabledActivity;
29 import com.android.frameworks.coretests.enabled_app.EnabledProvider;
30 import com.android.frameworks.coretests.enabled_app.EnabledReceiver;
31 import com.android.frameworks.coretests.enabled_app.EnabledService;
33 import android.content.ComponentName;
34 import android.content.Intent;
35 import android.test.AndroidTestCase;
36 import android.test.suitebuilder.annotation.MediumTest;
37 import android.test.suitebuilder.annotation.SmallTest;
39 import java.util.List;
42 * Tests for disabling and enabling application components.
44 * Note: These tests are on the slow side. This is probably because most of the tests trigger the
45 * package settings file to get written out by the PackageManagerService. Better, more unit-y test
49 public class ComponentTest extends AndroidTestCase {
51 private PackageManager mPackageManager;
52 private Intent mDisabledActivityIntent;
53 private Intent mEnabledActivityIntent;
54 private Intent mDisabledServiceIntent;
55 private Intent mEnabledServiceIntent;
56 private Intent mDisabledReceiverIntent;
57 private Intent mEnabledReceiverIntent;
58 private Intent mDisabledAppEnabledActivityIntent;
60 private static final String ENABLED_PACKAGENAME =
61 "com.android.frameworks.coretests.enabled_app";
62 private static final String DISABLED_PACKAGENAME =
63 "com.android.frameworks.coretests.disabled_app";
64 private static final String DISABLED_ACTIVITY_CLASSNAME =
65 DisabledActivity.class.getName();
66 private static final ComponentName DISABLED_ACTIVITY_COMPONENTNAME =
67 new ComponentName(ENABLED_PACKAGENAME, DISABLED_ACTIVITY_CLASSNAME);
68 private static final String ENABLED_ACTIVITY_CLASSNAME =
69 EnabledActivity.class.getName();
70 private static final ComponentName ENABLED_ACTIVITY_COMPONENTNAME =
71 new ComponentName(ENABLED_PACKAGENAME, ENABLED_ACTIVITY_CLASSNAME);
72 private static final String DISABLED_SERVICE_CLASSNAME =
73 DisabledService.class.getName();
74 private static final ComponentName DISABLED_SERVICE_COMPONENTNAME =
75 new ComponentName(ENABLED_PACKAGENAME, DISABLED_SERVICE_CLASSNAME);
76 private static final String DISABLED_PROVIDER_CLASSNAME =
77 DisabledProvider.class.getName();
78 private static final ComponentName DISABLED_PROVIDER_COMPONENTNAME =
79 new ComponentName(ENABLED_PACKAGENAME, DISABLED_PROVIDER_CLASSNAME);
80 private static final String DISABLED_PROVIDER_NAME = DisabledProvider.class.getName();
81 private static final String ENABLED_SERVICE_CLASSNAME =
82 EnabledService.class.getName();
83 private static final ComponentName ENABLED_SERVICE_COMPONENTNAME =
84 new ComponentName(ENABLED_PACKAGENAME, ENABLED_SERVICE_CLASSNAME);
85 private static final String DISABLED_RECEIVER_CLASSNAME =
86 DisabledReceiver.class.getName();
87 private static final ComponentName DISABLED_RECEIVER_COMPONENTNAME =
88 new ComponentName(ENABLED_PACKAGENAME, DISABLED_RECEIVER_CLASSNAME);
89 private static final String ENABLED_RECEIVER_CLASSNAME =
90 EnabledReceiver.class.getName();
91 private static final ComponentName ENABLED_RECEIVER_COMPONENTNAME =
92 new ComponentName(ENABLED_PACKAGENAME, ENABLED_RECEIVER_CLASSNAME);
93 private static final String ENABLED_PROVIDER_CLASSNAME =
94 EnabledProvider.class.getName();
95 private static final ComponentName ENABLED_PROVIDER_COMPONENTNAME =
96 new ComponentName(ENABLED_PACKAGENAME, ENABLED_PROVIDER_CLASSNAME);
97 private static final String ENABLED_PROVIDER_NAME = EnabledProvider.class.getName();
98 private static final String DISABLED_APP_ENABLED_ACTIVITY_CLASSNAME =
99 com.android.frameworks.coretests.disabled_app.EnabledActivity.class.getName();
100 private static final ComponentName DISABLED_APP_ENABLED_ACTIVITY_COMPONENTNAME =
101 new ComponentName(DISABLED_PACKAGENAME, DISABLED_APP_ENABLED_ACTIVITY_CLASSNAME);
102 private static final String TEST_CATEGORY =
103 "com.android.frameworks.coretests.enabled_app.TEST_CATEGORY";
106 protected void setUp() throws Exception {
108 mPackageManager = mContext.getPackageManager();
109 mDisabledActivityIntent = new Intent();
110 mDisabledActivityIntent.setComponent(DISABLED_ACTIVITY_COMPONENTNAME);
111 mEnabledActivityIntent = new Intent();
112 mEnabledActivityIntent.setComponent(ENABLED_ACTIVITY_COMPONENTNAME);
113 mDisabledServiceIntent = new Intent();
114 mDisabledServiceIntent.setComponent(DISABLED_SERVICE_COMPONENTNAME);
115 mEnabledServiceIntent = new Intent();
116 mEnabledServiceIntent.setComponent(ENABLED_SERVICE_COMPONENTNAME);
117 mDisabledReceiverIntent = new Intent("android.intent.action.ENABLED_APP_DISABLED_RECEIVER");
118 mDisabledReceiverIntent.setComponent(DISABLED_RECEIVER_COMPONENTNAME);
119 mEnabledReceiverIntent = new Intent("android.intent.action.ENABLED_APP_ENABLED_RECEIVER");
120 mEnabledReceiverIntent.setComponent(ENABLED_RECEIVER_COMPONENTNAME);
121 mDisabledAppEnabledActivityIntent = new Intent();
122 mDisabledAppEnabledActivityIntent.setComponent(DISABLED_APP_ENABLED_ACTIVITY_COMPONENTNAME);
126 public void testContextNotNull() throws Exception {
127 assertNotNull(mContext);
131 public void testResolveDisabledActivity() throws Exception {
132 mPackageManager.setComponentEnabledSetting(DISABLED_ACTIVITY_COMPONENTNAME,
133 COMPONENT_ENABLED_STATE_DEFAULT,
134 PackageManager.DONT_KILL_APP);
136 final ResolveInfo info = mPackageManager.resolveActivity(mDisabledActivityIntent, 0);
139 final ResolveInfo info2 = mPackageManager.resolveActivity(
140 mDisabledActivityIntent, GET_DISABLED_COMPONENTS);
141 assertNotNull(info2);
142 assertNotNull(info2.activityInfo);
143 assertFalse(info2.activityInfo.enabled);
147 public void testResolveEnabledActivity() throws Exception {
148 mPackageManager.setComponentEnabledSetting(ENABLED_ACTIVITY_COMPONENTNAME,
149 COMPONENT_ENABLED_STATE_DEFAULT,
150 PackageManager.DONT_KILL_APP);
152 final ResolveInfo info = mPackageManager.resolveActivity(mEnabledActivityIntent, 0);
155 assertNotNull(info.activityInfo);
156 assertTrue(info.activityInfo.enabled);
160 public void testQueryDisabledActivity() throws Exception {
161 mPackageManager.setComponentEnabledSetting(DISABLED_ACTIVITY_COMPONENTNAME,
162 COMPONENT_ENABLED_STATE_DEFAULT,
163 PackageManager.DONT_KILL_APP);
165 final List<ResolveInfo> infoList =
166 mPackageManager.queryIntentActivities(mDisabledActivityIntent, 0);
167 assertEquals(0, infoList.size());
169 final List<ResolveInfo> infoList2 =
170 mPackageManager.queryIntentActivities(mDisabledActivityIntent,
171 GET_DISABLED_COMPONENTS);
172 assertEquals(1, infoList2.size());
173 final ResolveInfo info = infoList2.get(0);
175 assertNotNull(info.activityInfo);
176 assertFalse(info.activityInfo.enabled);
180 public void testQueryEnabledActivity() throws Exception {
181 mPackageManager.setComponentEnabledSetting(ENABLED_ACTIVITY_COMPONENTNAME,
182 COMPONENT_ENABLED_STATE_DEFAULT,
183 PackageManager.DONT_KILL_APP);
185 final List<ResolveInfo> infoList =
186 mPackageManager.queryIntentActivities(mEnabledActivityIntent, 0);
187 assertEquals(1, infoList.size());
188 final ResolveInfo info = infoList.get(0);
190 assertNotNull(info.activityInfo);
191 assertTrue(info.activityInfo.enabled);
195 public void testGetDisabledActivityInfo() throws Exception {
196 mPackageManager.setComponentEnabledSetting(DISABLED_ACTIVITY_COMPONENTNAME,
197 COMPONENT_ENABLED_STATE_DEFAULT,
198 PackageManager.DONT_KILL_APP);
201 mPackageManager.getActivityInfo(DISABLED_ACTIVITY_COMPONENTNAME, 0);
202 fail("Attempt to get info on disabled component should fail.");
203 } catch (PackageManager.NameNotFoundException e) {
207 final ActivityInfo activityInfo =
208 mPackageManager.getActivityInfo(DISABLED_ACTIVITY_COMPONENTNAME,
209 GET_DISABLED_COMPONENTS);
210 assertNotNull(activityInfo);
211 assertFalse(activityInfo.enabled);
215 public void testGetEnabledActivityInfo() throws Exception {
216 mPackageManager.setComponentEnabledSetting(ENABLED_ACTIVITY_COMPONENTNAME,
217 COMPONENT_ENABLED_STATE_DEFAULT,
218 PackageManager.DONT_KILL_APP);
220 ActivityInfo activityInfo =
221 mPackageManager.getActivityInfo(ENABLED_ACTIVITY_COMPONENTNAME, 0);
222 assertNotNull(activityInfo);
223 assertTrue(activityInfo.enabled);
227 public void testEnableActivity() throws Exception {
228 mPackageManager.setComponentEnabledSetting(DISABLED_ACTIVITY_COMPONENTNAME,
229 COMPONENT_ENABLED_STATE_DEFAULT,
230 PackageManager.DONT_KILL_APP);
232 final ResolveInfo info = mPackageManager.resolveActivity(mDisabledActivityIntent, 0);
234 mPackageManager.setComponentEnabledSetting(DISABLED_ACTIVITY_COMPONENTNAME,
235 COMPONENT_ENABLED_STATE_ENABLED,
236 PackageManager.DONT_KILL_APP);
237 final ResolveInfo info2 =
238 mPackageManager.resolveActivity(mDisabledActivityIntent,
240 assertNotNull(info2);
241 assertNotNull(info2.activityInfo);
242 assertFalse(info2.activityInfo.enabled);
244 final List<ResolveInfo> infoList =
245 mPackageManager.queryIntentActivities(mDisabledActivityIntent, 0);
246 assertEquals(1, infoList.size());
250 public void testDisableActivity() throws Exception {
251 mPackageManager.setComponentEnabledSetting(ENABLED_ACTIVITY_COMPONENTNAME,
252 COMPONENT_ENABLED_STATE_DEFAULT,
253 PackageManager.DONT_KILL_APP);
255 final ResolveInfo info = mPackageManager.resolveActivity(mEnabledActivityIntent, 0);
257 assertNotNull(info.activityInfo);
258 mPackageManager.setComponentEnabledSetting(ENABLED_ACTIVITY_COMPONENTNAME,
259 COMPONENT_ENABLED_STATE_DISABLED,
260 PackageManager.DONT_KILL_APP);
261 final ResolveInfo info2 =
262 mPackageManager.resolveActivity(mEnabledActivityIntent,
266 final ResolveInfo info3 = mPackageManager.resolveActivity(mEnabledActivityIntent,
267 GET_DISABLED_COMPONENTS);
268 assertNotNull(info3);
269 assertNotNull(info3.activityInfo);
270 assertTrue(info3.activityInfo.enabled);
272 final List<ResolveInfo> infoList =
273 mPackageManager.queryIntentActivities(mEnabledActivityIntent, 0);
274 assertEquals(0, infoList.size());
278 public void testResolveDisabledService() throws Exception {
279 mPackageManager.setComponentEnabledSetting(DISABLED_SERVICE_COMPONENTNAME,
280 COMPONENT_ENABLED_STATE_DEFAULT,
281 PackageManager.DONT_KILL_APP);
283 final ResolveInfo info = mPackageManager.resolveService(mDisabledServiceIntent, 0);
286 final ResolveInfo info2 = mPackageManager.resolveService(
287 mDisabledServiceIntent, GET_DISABLED_COMPONENTS);
288 assertNotNull(info2);
289 assertNotNull(info2.serviceInfo);
290 assertFalse(info2.serviceInfo.enabled);
294 public void testResolveEnabledService() throws Exception {
295 mPackageManager.setComponentEnabledSetting(ENABLED_SERVICE_COMPONENTNAME,
296 COMPONENT_ENABLED_STATE_DEFAULT,
297 PackageManager.DONT_KILL_APP);
299 final ResolveInfo info = mPackageManager.resolveService(mEnabledServiceIntent, 0);
302 assertNotNull(info.serviceInfo);
303 assertTrue(info.serviceInfo.enabled);
307 public void testQueryDisabledService() throws Exception {
308 mPackageManager.setComponentEnabledSetting(DISABLED_SERVICE_COMPONENTNAME,
309 COMPONENT_ENABLED_STATE_DEFAULT,
310 PackageManager.DONT_KILL_APP);
312 final List<ResolveInfo> infoList =
313 mPackageManager.queryIntentServices(mDisabledServiceIntent, 0);
314 assertEquals(0, infoList.size());
316 final List<ResolveInfo> infoList2 =
317 mPackageManager.queryIntentServices(mDisabledServiceIntent,
318 GET_DISABLED_COMPONENTS);
319 assertEquals(1, infoList2.size());
320 final ResolveInfo info = infoList2.get(0);
322 assertNotNull(info.serviceInfo);
323 assertFalse(info.serviceInfo.enabled);
327 public void testQueryEnabledService() throws Exception {
328 mPackageManager.setComponentEnabledSetting(ENABLED_SERVICE_COMPONENTNAME,
329 COMPONENT_ENABLED_STATE_DEFAULT,
330 PackageManager.DONT_KILL_APP);
332 final List<ResolveInfo> infoList =
333 mPackageManager.queryIntentServices(mEnabledServiceIntent, 0);
334 assertEquals(1, infoList.size());
335 final ResolveInfo info = infoList.get(0);
337 assertNotNull(info.serviceInfo);
338 assertTrue(info.serviceInfo.enabled);
342 public void testGetDisabledServiceInfo() throws Exception {
343 mPackageManager.setComponentEnabledSetting(DISABLED_SERVICE_COMPONENTNAME,
344 COMPONENT_ENABLED_STATE_DEFAULT,
345 PackageManager.DONT_KILL_APP);
348 mPackageManager.getServiceInfo(DISABLED_SERVICE_COMPONENTNAME, 0);
349 fail("Attempt to get info on disabled component should fail.");
350 } catch (PackageManager.NameNotFoundException e) {
354 final ServiceInfo serviceInfo =
355 mPackageManager.getServiceInfo(DISABLED_SERVICE_COMPONENTNAME,
356 GET_DISABLED_COMPONENTS);
357 assertNotNull(serviceInfo);
358 assertFalse(serviceInfo.enabled);
362 public void testGetEnabledServiceInfo() throws Exception {
363 mPackageManager.setComponentEnabledSetting(ENABLED_SERVICE_COMPONENTNAME,
364 COMPONENT_ENABLED_STATE_DEFAULT,
365 PackageManager.DONT_KILL_APP);
367 ServiceInfo serviceInfo =
368 mPackageManager.getServiceInfo(ENABLED_SERVICE_COMPONENTNAME, 0);
369 assertNotNull(serviceInfo);
370 assertTrue(serviceInfo.enabled);
374 public void testEnableService() throws Exception {
375 mPackageManager.setComponentEnabledSetting(DISABLED_SERVICE_COMPONENTNAME,
376 COMPONENT_ENABLED_STATE_DEFAULT,
377 PackageManager.DONT_KILL_APP);
379 final ResolveInfo info = mPackageManager.resolveService(mDisabledServiceIntent, 0);
381 mPackageManager.setComponentEnabledSetting(DISABLED_SERVICE_COMPONENTNAME,
382 COMPONENT_ENABLED_STATE_ENABLED,
383 PackageManager.DONT_KILL_APP);
384 final ResolveInfo info2 =
385 mPackageManager.resolveService(mDisabledServiceIntent,
387 assertNotNull(info2);
388 assertNotNull(info2.serviceInfo);
389 assertFalse(info2.serviceInfo.enabled);
393 public void testDisableService() throws Exception {
394 mPackageManager.setComponentEnabledSetting(ENABLED_SERVICE_COMPONENTNAME,
395 COMPONENT_ENABLED_STATE_DEFAULT,
396 PackageManager.DONT_KILL_APP);
398 final ResolveInfo info = mPackageManager.resolveService(mEnabledServiceIntent, 0);
400 assertNotNull(info.serviceInfo);
401 mPackageManager.setComponentEnabledSetting(ENABLED_SERVICE_COMPONENTNAME,
402 COMPONENT_ENABLED_STATE_DISABLED,
403 PackageManager.DONT_KILL_APP);
404 final ResolveInfo info2 =
405 mPackageManager.resolveService(mEnabledServiceIntent,
409 final ResolveInfo info3 = mPackageManager.resolveService(mEnabledServiceIntent,
410 GET_DISABLED_COMPONENTS);
411 assertNotNull(info3);
412 assertNotNull(info3.serviceInfo);
413 assertTrue(info3.serviceInfo.enabled);
417 public void testQueryDisabledReceiver() throws Exception {
418 mPackageManager.setComponentEnabledSetting(DISABLED_RECEIVER_COMPONENTNAME,
419 COMPONENT_ENABLED_STATE_DEFAULT,
420 PackageManager.DONT_KILL_APP);
422 final List<ResolveInfo> infoList =
423 mPackageManager.queryBroadcastReceivers(mDisabledReceiverIntent, 0);
424 assertEquals(0, infoList.size());
426 final List<ResolveInfo> infoList2 =
427 mPackageManager.queryBroadcastReceivers(mDisabledReceiverIntent,
428 GET_DISABLED_COMPONENTS);
429 assertEquals(1, infoList2.size());
430 final ResolveInfo info = infoList2.get(0);
432 assertNotNull(info.activityInfo);
433 assertFalse(info.activityInfo.enabled);
437 public void testQueryEnabledReceiver() throws Exception {
438 mPackageManager.setComponentEnabledSetting(ENABLED_RECEIVER_COMPONENTNAME,
439 COMPONENT_ENABLED_STATE_DEFAULT,
440 PackageManager.DONT_KILL_APP);
442 final List<ResolveInfo> infoList =
443 mPackageManager.queryBroadcastReceivers(mEnabledReceiverIntent, 0);
444 assertEquals(1, infoList.size());
445 final ResolveInfo info = infoList.get(0);
447 assertNotNull(info.activityInfo);
448 assertTrue(info.activityInfo.enabled);
452 public void testGetDisabledReceiverInfo() throws Exception {
453 mPackageManager.setComponentEnabledSetting(DISABLED_RECEIVER_COMPONENTNAME,
454 COMPONENT_ENABLED_STATE_DEFAULT,
455 PackageManager.DONT_KILL_APP);
458 mPackageManager.getReceiverInfo(DISABLED_RECEIVER_COMPONENTNAME, 0);
459 fail("Attempt to get info on disabled component should fail.");
460 } catch (PackageManager.NameNotFoundException e) {
464 final ActivityInfo activityInfo =
465 mPackageManager.getReceiverInfo(DISABLED_RECEIVER_COMPONENTNAME,
466 GET_DISABLED_COMPONENTS);
467 assertNotNull(activityInfo);
468 assertFalse(activityInfo.enabled);
472 public void testGetEnabledReceiverInfo() throws Exception {
473 mPackageManager.setComponentEnabledSetting(ENABLED_RECEIVER_COMPONENTNAME,
474 COMPONENT_ENABLED_STATE_DEFAULT,
475 PackageManager.DONT_KILL_APP);
477 ActivityInfo activityInfo =
478 mPackageManager.getReceiverInfo(ENABLED_RECEIVER_COMPONENTNAME, 0);
479 assertNotNull(activityInfo);
480 assertTrue(activityInfo.enabled);
484 public void testEnableReceiver() throws Exception {
485 mPackageManager.setComponentEnabledSetting(DISABLED_RECEIVER_COMPONENTNAME,
486 COMPONENT_ENABLED_STATE_DEFAULT,
487 PackageManager.DONT_KILL_APP);
490 mPackageManager.getReceiverInfo(DISABLED_RECEIVER_COMPONENTNAME, 0);
491 fail("Attempt to get info on disabled component should fail.");
492 } catch (PackageManager.NameNotFoundException e) {
496 mPackageManager.setComponentEnabledSetting(DISABLED_RECEIVER_COMPONENTNAME,
497 COMPONENT_ENABLED_STATE_ENABLED,
498 PackageManager.DONT_KILL_APP);
499 ActivityInfo activityInfo =
500 mPackageManager.getReceiverInfo(DISABLED_RECEIVER_COMPONENTNAME, 0);
501 assertNotNull(activityInfo);
502 assertFalse(activityInfo.enabled);
506 public void testDisableReceiver() throws Exception {
507 mPackageManager.setComponentEnabledSetting(ENABLED_RECEIVER_COMPONENTNAME,
508 COMPONENT_ENABLED_STATE_DEFAULT,
509 PackageManager.DONT_KILL_APP);
511 ActivityInfo activityInfo =
512 mPackageManager.getReceiverInfo(ENABLED_RECEIVER_COMPONENTNAME, 0);
513 assertNotNull(activityInfo);
514 assertTrue(activityInfo.enabled);
515 mPackageManager.setComponentEnabledSetting(DISABLED_RECEIVER_COMPONENTNAME,
516 COMPONENT_ENABLED_STATE_DISABLED,
517 PackageManager.DONT_KILL_APP);
519 mPackageManager.getReceiverInfo(DISABLED_RECEIVER_COMPONENTNAME, 0);
520 fail("Attempt to get info on disabled component should fail.");
521 } catch (PackageManager.NameNotFoundException e) {
527 public void testResolveEnabledProvider() throws Exception {
528 mPackageManager.setComponentEnabledSetting(ENABLED_PROVIDER_COMPONENTNAME,
529 COMPONENT_ENABLED_STATE_DEFAULT,
530 PackageManager.DONT_KILL_APP);
532 ProviderInfo providerInfo =
533 mPackageManager.resolveContentProvider(ENABLED_PROVIDER_NAME, 0);
534 assertNotNull(providerInfo);
535 assertTrue(providerInfo.enabled);
539 public void testResolveDisabledProvider() throws Exception {
540 mPackageManager.setComponentEnabledSetting(DISABLED_PROVIDER_COMPONENTNAME,
541 COMPONENT_ENABLED_STATE_DEFAULT,
542 PackageManager.DONT_KILL_APP);
544 ProviderInfo providerInfo =
545 mPackageManager.resolveContentProvider(DISABLED_PROVIDER_NAME, 0);
546 assertNull(providerInfo);
547 ProviderInfo providerInfo2 =
548 mPackageManager.resolveContentProvider(DISABLED_PROVIDER_NAME,
549 GET_DISABLED_COMPONENTS);
550 assertNotNull(providerInfo2);
551 assertFalse(providerInfo2.enabled);
555 public void testEnableProvider() throws Exception {
556 mPackageManager.setComponentEnabledSetting(DISABLED_PROVIDER_COMPONENTNAME,
557 COMPONENT_ENABLED_STATE_DEFAULT,
558 PackageManager.DONT_KILL_APP);
559 ProviderInfo providerInfo =
560 mPackageManager.resolveContentProvider(DISABLED_PROVIDER_NAME, 0);
561 assertNull(providerInfo);
563 mPackageManager.setComponentEnabledSetting(DISABLED_PROVIDER_COMPONENTNAME,
564 COMPONENT_ENABLED_STATE_ENABLED,
565 PackageManager.DONT_KILL_APP);
566 ProviderInfo providerInfo2 =
567 mPackageManager.resolveContentProvider(DISABLED_PROVIDER_NAME, 0);
568 assertNotNull(providerInfo2);
569 assertFalse(providerInfo2.enabled);
573 public void testDisableProvider() throws Exception {
574 mPackageManager.setComponentEnabledSetting(ENABLED_PROVIDER_COMPONENTNAME,
575 COMPONENT_ENABLED_STATE_DEFAULT,
576 PackageManager.DONT_KILL_APP);
577 ProviderInfo providerInfo =
578 mPackageManager.resolveContentProvider(ENABLED_PROVIDER_NAME, 0);
579 assertNotNull(providerInfo);
580 assertTrue(providerInfo.enabled);
582 mPackageManager.setComponentEnabledSetting(ENABLED_PROVIDER_COMPONENTNAME,
583 COMPONENT_ENABLED_STATE_DISABLED,
584 PackageManager.DONT_KILL_APP);
585 ProviderInfo providerInfo2 =
586 mPackageManager.resolveContentProvider(ENABLED_PROVIDER_NAME, 0);
587 assertNull(providerInfo2);
591 public void testQueryEnabledProvider() throws Exception {
592 mPackageManager.setComponentEnabledSetting(ENABLED_PROVIDER_COMPONENTNAME,
593 COMPONENT_ENABLED_STATE_DEFAULT,
594 PackageManager.DONT_KILL_APP);
596 String enabledProviderProcessName = getComponentProcessName(ENABLED_PROVIDER_NAME);
597 PackageInfo pi = mPackageManager.getPackageInfo(ENABLED_PACKAGENAME, 0);
598 List<ProviderInfo> providerInfoList =
599 mPackageManager.queryContentProviders(enabledProviderProcessName,
600 pi.applicationInfo.uid, 0);
601 assertNotNull(providerInfoList);
602 assertEquals(1, providerInfoList.size());
603 assertEquals(ENABLED_PROVIDER_CLASSNAME,
604 providerInfoList.get(0).name);
608 public void testQueryDisabledProvider() throws Exception {
609 mPackageManager.setComponentEnabledSetting(DISABLED_PROVIDER_COMPONENTNAME,
610 COMPONENT_ENABLED_STATE_DEFAULT,
611 PackageManager.DONT_KILL_APP);
613 PackageInfo pi = mPackageManager.getPackageInfo(ENABLED_PACKAGENAME, 0);
615 String disabledProviderProcessName = getComponentProcessName(DISABLED_PROVIDER_NAME);
616 List<ProviderInfo> providerInfoList =
617 mPackageManager.queryContentProviders(disabledProviderProcessName,
618 pi.applicationInfo.uid, 0);
619 assertNull(providerInfoList);
622 List<ProviderInfo> providerInfoList2 =
623 mPackageManager.queryContentProviders(disabledProviderProcessName,
624 pi.applicationInfo.uid, GET_DISABLED_COMPONENTS);
625 assertNotNull(providerInfoList2);
626 assertEquals(1, providerInfoList2.size());
627 assertEquals(DISABLED_PROVIDER_CLASSNAME,
628 providerInfoList2.get(0).name);
631 private String getComponentProcessName(String componentNameStr) {
632 ComponentInfo providerInfo =
633 mPackageManager.resolveContentProvider(componentNameStr,
634 GET_DISABLED_COMPONENTS);
635 return providerInfo.processName;
638 public void DISABLED_testResolveEnabledActivityInDisabledApp() throws Exception {
639 mPackageManager.setApplicationEnabledSetting(DISABLED_PACKAGENAME,
640 COMPONENT_ENABLED_STATE_DEFAULT,
642 mPackageManager.setComponentEnabledSetting(DISABLED_APP_ENABLED_ACTIVITY_COMPONENTNAME,
643 COMPONENT_ENABLED_STATE_DEFAULT,
644 PackageManager.DONT_KILL_APP);
646 final ResolveInfo info =
647 mPackageManager.resolveActivity(mDisabledAppEnabledActivityIntent, 0);
650 final ResolveInfo info2 = mPackageManager.resolveActivity(
651 mDisabledAppEnabledActivityIntent, GET_DISABLED_COMPONENTS);
652 assertNotNull(info2);
653 assertNotNull(info2.activityInfo);
654 assertTrue(info2.activityInfo.enabled);
657 public void DISABLED_testEnableApplication() throws Exception {
658 mPackageManager.setApplicationEnabledSetting(DISABLED_PACKAGENAME,
659 COMPONENT_ENABLED_STATE_DEFAULT,
661 mPackageManager.setComponentEnabledSetting(DISABLED_APP_ENABLED_ACTIVITY_COMPONENTNAME,
662 COMPONENT_ENABLED_STATE_DEFAULT,
663 PackageManager.DONT_KILL_APP);
665 final ResolveInfo info =
666 mPackageManager.resolveActivity(mDisabledAppEnabledActivityIntent, 0);
669 mPackageManager.setApplicationEnabledSetting(DISABLED_PACKAGENAME,
670 COMPONENT_ENABLED_STATE_ENABLED,
672 final ResolveInfo info2 = mPackageManager.resolveActivity(
673 mDisabledAppEnabledActivityIntent, 0);
674 assertNotNull(info2);
675 assertNotNull(info2.activityInfo);
676 assertTrue(info2.activityInfo.enabled);
680 public void DISABLED_testDisableApplication() throws Exception {
681 mPackageManager.setApplicationEnabledSetting(ENABLED_PACKAGENAME,
682 COMPONENT_ENABLED_STATE_DEFAULT,
684 mPackageManager.setComponentEnabledSetting(ENABLED_ACTIVITY_COMPONENTNAME,
685 COMPONENT_ENABLED_STATE_DEFAULT,
686 PackageManager.DONT_KILL_APP);
688 final ResolveInfo info = mPackageManager.resolveActivity(mEnabledActivityIntent, 0);
690 assertNotNull(info.activityInfo);
691 assertTrue(info.activityInfo.enabled);
693 mPackageManager.setApplicationEnabledSetting(ENABLED_PACKAGENAME,
694 COMPONENT_ENABLED_STATE_DISABLED,
696 final ResolveInfo info2 = mPackageManager.resolveActivity(mEnabledActivityIntent, 0);
700 mPackageManager.setApplicationEnabledSetting(ENABLED_PACKAGENAME,
701 COMPONENT_ENABLED_STATE_DEFAULT,
707 public void testNonExplicitResolveAfterEnabling() throws Exception {
708 mPackageManager.setComponentEnabledSetting(DISABLED_ACTIVITY_COMPONENTNAME,
709 COMPONENT_ENABLED_STATE_DEFAULT,
710 PackageManager.DONT_KILL_APP);
712 Intent intent = new Intent(Intent.ACTION_MAIN, null);
713 intent.addCategory(TEST_CATEGORY);
715 final List<ResolveInfo> launchables =
716 mPackageManager.queryIntentActivities(intent, 0);
718 int numItems = launchables.size();
719 assertEquals(0, numItems);
721 mPackageManager.setComponentEnabledSetting(DISABLED_ACTIVITY_COMPONENTNAME,
722 COMPONENT_ENABLED_STATE_ENABLED,
723 PackageManager.DONT_KILL_APP);
725 final List<ResolveInfo> launchables2 =
726 mPackageManager.queryIntentActivities(intent, 0);
728 int numItems2 = launchables2.size();
729 assertEquals(1, numItems2);