1a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)// Copyright 2012 The Chromium Authors. All rights reserved.
25821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be
35821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// found in the LICENSE file.
45821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
52a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)package org.chromium.chrome.browser.test;
65821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
75821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)import android.content.ContentProvider;
85821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)import android.content.ContentResolver;
95821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)import android.test.IsolatedContext;
105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)import android.test.mock.MockContentResolver;
115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)import org.chromium.chrome.browser.ChromeBrowserProvider;
13a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)import org.chromium.chrome.shell.ChromeShellActivity;
14a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)import org.chromium.chrome.shell.ChromeShellTestBase;
155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/**
175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * Base class for Chrome's ContentProvider tests.
185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * Sets up a local ChromeBrowserProvider associated to a mock resolver in an isolated context.
195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */
20a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)public class ProviderTestBase extends ChromeShellTestBase {
215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    private IsolatedContext mContext;
235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    @Override
255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    protected void setUp() throws Exception {
265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        super.setUp();
275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
28a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)        ChromeShellActivity activity = launchChromeShellWithUrl(null);
295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        assertNotNull(activity);
305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        ContentProvider provider = new ChromeBrowserProvider();
325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        provider.attachInfo(activity, null);
335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        MockContentResolver resolver = new MockContentResolver();
355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        resolver.addProvider(ChromeBrowserProvider.getApiAuthority(activity), provider);
365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        resolver.addProvider(ChromeBrowserProvider.getInternalAuthority(activity), provider);
375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        mContext = new IsolatedContext(resolver, activity);
395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        assertTrue(getContentResolver() instanceof MockContentResolver);
405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    }
415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    protected ContentResolver getContentResolver() {
435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        return mContext.getContentResolver();
445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    }
455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
46