OLD | NEW |
1 // Copyright 2012 The Chromium Authors. All rights reserved. | 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 | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 package org.chromium.chrome.browser.provider; | 5 package org.chromium.chrome.browser.provider; |
6 | 6 |
7 import android.content.ContentProvider; | 7 import android.content.ContentProvider; |
8 import android.content.ContentResolver; | 8 import android.content.ContentResolver; |
9 import android.content.pm.ProviderInfo; | 9 import android.content.pm.ProviderInfo; |
10 import android.test.IsolatedContext; | 10 import android.test.IsolatedContext; |
11 import android.test.mock.MockContentResolver; | 11 import android.test.mock.MockContentResolver; |
12 | 12 |
| 13 import org.junit.Assert; |
| 14 import org.junit.runner.Description; |
| 15 import org.junit.runners.model.Statement; |
| 16 |
13 import org.chromium.base.ThreadUtils; | 17 import org.chromium.base.ThreadUtils; |
14 import org.chromium.chrome.browser.ChromeActivity; | 18 import org.chromium.chrome.browser.ChromeActivity; |
15 import org.chromium.chrome.test.ChromeActivityTestCaseBase; | 19 import org.chromium.chrome.test.ChromeActivityTestRule; |
16 | 20 |
17 /** | 21 /** |
18 * Base class for Chrome's ContentProvider tests. | 22 * Base class for Chrome's ContentProvider tests. |
19 * Sets up a local ChromeBrowserProvider associated to a mock resolver in an iso
lated context. | 23 * Sets up a local ChromeBrowserProvider associated to a mock resolver in an iso
lated context. |
20 */ | 24 */ |
21 public class ProviderTestBase extends ChromeActivityTestCaseBase<ChromeActivity>
{ | 25 public class ProviderTestRule extends ChromeActivityTestRule<ChromeActivity> { |
22 | |
23 private IsolatedContext mContext; | 26 private IsolatedContext mContext; |
24 | 27 |
25 public ProviderTestBase() { | 28 public ProviderTestRule() { |
26 super(ChromeActivity.class); | 29 super(ChromeActivity.class); |
27 } | 30 } |
28 | 31 |
29 @Override | 32 @Override |
30 public void startMainActivity() throws InterruptedException { | 33 public Statement apply(final Statement base, Description description) { |
31 startMainActivityOnBlankPage(); | 34 return super.apply(new Statement() { |
| 35 @Override |
| 36 public void evaluate() throws Throwable { |
| 37 setUp(); |
| 38 base.evaluate(); |
| 39 } |
| 40 }, description); |
32 } | 41 } |
33 | 42 |
34 @Override | 43 private void setUp() throws Exception { |
35 protected void setUp() throws Exception { | 44 startMainActivityOnBlankPage(); |
36 super.setUp(); | |
37 | 45 |
38 final ChromeActivity activity = getActivity(); | 46 final ChromeActivity activity = getActivity(); |
39 assertNotNull(activity); | 47 Assert.assertNotNull(activity); |
40 | 48 |
41 final ContentProvider provider = new ChromeBrowserProvider(); | 49 final ContentProvider provider = new ChromeBrowserProvider(); |
42 ThreadUtils.runOnUiThreadBlocking(new Runnable() { | 50 ThreadUtils.runOnUiThreadBlocking(new Runnable() { |
43 @Override | 51 @Override |
44 public void run() { | 52 public void run() { |
45 ProviderInfo providerInfo = new ProviderInfo(); | 53 ProviderInfo providerInfo = new ProviderInfo(); |
46 providerInfo.authority = ChromeBrowserProvider.getApiAuthority(a
ctivity); | 54 providerInfo.authority = ChromeBrowserProvider.getApiAuthority(a
ctivity); |
47 provider.attachInfo(activity, providerInfo); | 55 provider.attachInfo(activity, providerInfo); |
48 } | 56 } |
49 }); | 57 }); |
50 | 58 |
51 MockContentResolver resolver = new MockContentResolver(); | 59 MockContentResolver resolver = new MockContentResolver(); |
52 resolver.addProvider(ChromeBrowserProvider.getApiAuthority(activity), pr
ovider); | 60 resolver.addProvider(ChromeBrowserProvider.getApiAuthority(activity), pr
ovider); |
53 | 61 |
54 mContext = new IsolatedContext(resolver, activity); | 62 mContext = new IsolatedContext(resolver, activity); |
55 assertTrue(getContentResolver() instanceof MockContentResolver); | 63 Assert.assertTrue(getContentResolver() instanceof MockContentResolver); |
56 } | 64 } |
57 | 65 |
58 protected ContentResolver getContentResolver() { | 66 protected ContentResolver getContentResolver() { |
59 return mContext.getContentResolver(); | 67 return mContext.getContentResolver(); |
60 } | 68 } |
61 } | 69 } |
OLD | NEW |