1929a04e2830e30718930d96335dfb0a729b6ab91Debashish Chatterjee/* 2929a04e2830e30718930d96335dfb0a729b6ab91Debashish Chatterjee * Copyright (C) 2011 The Android Open Source Project 3929a04e2830e30718930d96335dfb0a729b6ab91Debashish Chatterjee * 4929a04e2830e30718930d96335dfb0a729b6ab91Debashish Chatterjee * Licensed under the Apache License, Version 2.0 (the "License"); 5929a04e2830e30718930d96335dfb0a729b6ab91Debashish Chatterjee * you may not use this file except in compliance with the License. 6929a04e2830e30718930d96335dfb0a729b6ab91Debashish Chatterjee * You may obtain a copy of the License at 7929a04e2830e30718930d96335dfb0a729b6ab91Debashish Chatterjee * 8929a04e2830e30718930d96335dfb0a729b6ab91Debashish Chatterjee * http://www.apache.org/licenses/LICENSE-2.0 9929a04e2830e30718930d96335dfb0a729b6ab91Debashish Chatterjee * 10929a04e2830e30718930d96335dfb0a729b6ab91Debashish Chatterjee * Unless required by applicable law or agreed to in writing, software 11929a04e2830e30718930d96335dfb0a729b6ab91Debashish Chatterjee * distributed under the License is distributed on an "AS IS" BASIS, 12929a04e2830e30718930d96335dfb0a729b6ab91Debashish Chatterjee * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13929a04e2830e30718930d96335dfb0a729b6ab91Debashish Chatterjee * See the License for the specific language governing permissions and 14929a04e2830e30718930d96335dfb0a729b6ab91Debashish Chatterjee * limitations under the License 15929a04e2830e30718930d96335dfb0a729b6ab91Debashish Chatterjee */ 16929a04e2830e30718930d96335dfb0a729b6ab91Debashish Chatterjee 17929a04e2830e30718930d96335dfb0a729b6ab91Debashish Chatterjeepackage com.android.providers.contacts; 18929a04e2830e30718930d96335dfb0a729b6ab91Debashish Chatterjee 19929a04e2830e30718930d96335dfb0a729b6ab91Debashish Chatterjeeimport android.content.Intent; 20929a04e2830e30718930d96335dfb0a729b6ab91Debashish Chatterjeeimport android.content.pm.ActivityInfo; 21929a04e2830e30718930d96335dfb0a729b6ab91Debashish Chatterjeeimport android.content.pm.ResolveInfo; 22929a04e2830e30718930d96335dfb0a729b6ab91Debashish Chatterjee 23929a04e2830e30718930d96335dfb0a729b6ab91Debashish Chatterjeeimport java.util.ArrayList; 24929a04e2830e30718930d96335dfb0a729b6ab91Debashish Chatterjeeimport java.util.List; 25929a04e2830e30718930d96335dfb0a729b6ab91Debashish Chatterjee 26929a04e2830e30718930d96335dfb0a729b6ab91Debashish Chatterjeepublic class MockPackageManager extends android.test.mock.MockPackageManager { 27929a04e2830e30718930d96335dfb0a729b6ab91Debashish Chatterjee private final String[] mPackages; 28929a04e2830e30718930d96335dfb0a729b6ab91Debashish Chatterjee public MockPackageManager(String... packages) { 29929a04e2830e30718930d96335dfb0a729b6ab91Debashish Chatterjee mPackages = packages; 30929a04e2830e30718930d96335dfb0a729b6ab91Debashish Chatterjee } 31929a04e2830e30718930d96335dfb0a729b6ab91Debashish Chatterjee 32929a04e2830e30718930d96335dfb0a729b6ab91Debashish Chatterjee @Override 33929a04e2830e30718930d96335dfb0a729b6ab91Debashish Chatterjee public List<ResolveInfo> queryBroadcastReceivers(Intent intent, int flags) { 34929a04e2830e30718930d96335dfb0a729b6ab91Debashish Chatterjee List<ResolveInfo> resolveInfos = new ArrayList<ResolveInfo>(); 35929a04e2830e30718930d96335dfb0a729b6ab91Debashish Chatterjee for (String pkg : mPackages) { 36929a04e2830e30718930d96335dfb0a729b6ab91Debashish Chatterjee resolveInfos.add(createResolveInfo(pkg)); 37929a04e2830e30718930d96335dfb0a729b6ab91Debashish Chatterjee } 38929a04e2830e30718930d96335dfb0a729b6ab91Debashish Chatterjee return resolveInfos; 39929a04e2830e30718930d96335dfb0a729b6ab91Debashish Chatterjee } 40929a04e2830e30718930d96335dfb0a729b6ab91Debashish Chatterjee 41929a04e2830e30718930d96335dfb0a729b6ab91Debashish Chatterjee private ResolveInfo createResolveInfo(String packageName) { 42929a04e2830e30718930d96335dfb0a729b6ab91Debashish Chatterjee ActivityInfo activityInfo = new ActivityInfo(); 43929a04e2830e30718930d96335dfb0a729b6ab91Debashish Chatterjee activityInfo.packageName = packageName; 44929a04e2830e30718930d96335dfb0a729b6ab91Debashish Chatterjee activityInfo.name = "FooClass"; 45929a04e2830e30718930d96335dfb0a729b6ab91Debashish Chatterjee ResolveInfo resolveInfo = new ResolveInfo(); 46929a04e2830e30718930d96335dfb0a729b6ab91Debashish Chatterjee resolveInfo.activityInfo = activityInfo; 47929a04e2830e30718930d96335dfb0a729b6ab91Debashish Chatterjee return resolveInfo; 48929a04e2830e30718930d96335dfb0a729b6ab91Debashish Chatterjee } 49929a04e2830e30718930d96335dfb0a729b6ab91Debashish Chatterjee 50929a04e2830e30718930d96335dfb0a729b6ab91Debashish Chatterjee @Override 51929a04e2830e30718930d96335dfb0a729b6ab91Debashish Chatterjee public String[] getPackagesForUid(int uid) { 52929a04e2830e30718930d96335dfb0a729b6ab91Debashish Chatterjee return new String[] {mPackages[0]}; 53929a04e2830e30718930d96335dfb0a729b6ab91Debashish Chatterjee } 5446c450d29bc7e2cdce7241ac735d6562785d8384Debashish Chatterjee 5546c450d29bc7e2cdce7241ac735d6562785d8384Debashish Chatterjee @Override 5646c450d29bc7e2cdce7241ac735d6562785d8384Debashish Chatterjee public int checkPermission(String permName, String pkgName) { 5746c450d29bc7e2cdce7241ac735d6562785d8384Debashish Chatterjee return PERMISSION_GRANTED; 5846c450d29bc7e2cdce7241ac735d6562785d8384Debashish Chatterjee } 59929a04e2830e30718930d96335dfb0a729b6ab91Debashish Chatterjee} 60