| 1 | // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| 2 | // Use of this source code is governed by a BSD-style license that can be |
| 3 | // found in the LICENSE file. |
| 4 | |
| 5 | package org.chromium.chrome.browser.test; |
| 6 | |
| 7 | import android.content.ContentProvider; |
| 8 | import android.content.ContentResolver; |
| 9 | import android.test.IsolatedContext; |
| 10 | import android.test.mock.MockContentResolver; |
| 11 | |
| 12 | import org.chromium.chrome.browser.ChromeBrowserProvider; |
| 13 | import org.chromium.chrome.testshell.ChromiumTestShellActivity; |
| 14 | import org.chromium.chrome.testshell.ChromiumTestShellTestBase; |
| 15 | |
| 16 | /** |
| 17 | * Base class for Chrome's ContentProvider tests. |
| 18 | * Sets up a local ChromeBrowserProvider associated to a mock resolver in an isolated context. |
| 19 | */ |
| 20 | public class ProviderTestBase extends ChromiumTestShellTestBase { |
| 21 | |
| 22 | private IsolatedContext mContext; |
| 23 | |
| 24 | @Override |
| 25 | protected void setUp() throws Exception { |
| 26 | super.setUp(); |
| 27 | |
| 28 | ChromiumTestShellActivity activity = launchChromiumTestShellWithUrl(null); |
| 29 | assertNotNull(activity); |
| 30 | |
| 31 | ContentProvider provider = new ChromeBrowserProvider(); |
| 32 | provider.attachInfo(activity, null); |
| 33 | |
| 34 | MockContentResolver resolver = new MockContentResolver(); |
| 35 | resolver.addProvider(ChromeBrowserProvider.getApiAuthority(activity), provider); |
| 36 | resolver.addProvider(ChromeBrowserProvider.getInternalAuthority(activity), provider); |
| 37 | |
| 38 | mContext = new IsolatedContext(resolver, activity); |
| 39 | assertTrue(getContentResolver() instanceof MockContentResolver); |
| 40 | } |
| 41 | |
| 42 | protected ContentResolver getContentResolver() { |
| 43 | return mContext.getContentResolver(); |
| 44 | } |
| 45 | } |