1// Copyright 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 5package org.chromium.chrome.browser.test; 6 7import android.content.ContentProvider; 8import android.content.ContentResolver; 9import android.test.IsolatedContext; 10import android.test.mock.MockContentResolver; 11 12import org.chromium.chrome.browser.ChromeBrowserProvider; 13import org.chromium.chrome.shell.ChromeShellActivity; 14import org.chromium.chrome.shell.ChromeShellTestBase; 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 */ 20public class ProviderTestBase extends ChromeShellTestBase { 21 22 private IsolatedContext mContext; 23 24 @Override 25 protected void setUp() throws Exception { 26 super.setUp(); 27 28 ChromeShellActivity activity = launchChromeShellWithUrl(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} 46