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