下面列出了怎么用android.test.IsolatedContext的API类实例代码及写法,或者点击链接到github查看源代码。
@Override
protected void setUp() throws Exception {
super.setUp();
mResolver = new MockContentResolver();
RenamingDelegatingContext targetContextWrapper = new RenamingDelegatingContext(
new DelegatedMockContext(getContext()), // The context that most methods are delegated to
getContext(), // The context that file methods are delegated to
filenamePrefix);
mProviderContext = new IsolatedContext(mResolver, targetContextWrapper);
ProviderInfo providerInfo = new ProviderInfo();
providerInfo.authority = mProviderAuthority;
mProvider = mProviderClass.newInstance();
mProvider.attachInfo(mProviderContext, providerInfo);
assertNotNull(mProvider);
mResolver.addProvider(mProviderAuthority, mProvider);
}
private SQLiteDatabase createTables(final boolean delete, final UniversalSearchContract.Table... tables) {
SQLiteDatabase db = null;
final String filenamePrefix = "test.";
RenamingDelegatingContext targetContextWrapper = new
RenamingDelegatingContext(
new MockContext2(), // The context that most methods are
//delegated to
getContext(), // The context that file methods are delegated to
filenamePrefix);
final Context context = new IsolatedContext(super.getContext().getContentResolver(), targetContextWrapper);
try {
db = context.openOrCreateDatabase(DATABASE, 1, null);
for (final UniversalSearchContract.Table table : tables) {
table.onCreate(db);
log("Table " + table + " onCreate successful");
}
return db;
} finally {
if (null != db && delete) {
db.close();
context.deleteDatabase(DATABASE);
}
}
}
public IsolatedContext getMockContext() {
return mProviderContext;
}
public void testClearBut() throws Exception {
// We need a package name in this test, thus creating our own mock context
final IsolatedContext context = getProviderMockContext();
assertTrue(mProviderHelper.persist(MODULE_A, KEY_A, STRING_A));
assertTrue(mProviderHelper.persist(MODULE_A, KEY_B, STRING_B));
assertTrue(mProviderHelper.persist(MODULE_B, KEY_A, STRING_A));
assertTrue(mProviderHelper.persist(MODULE_B, KEY_B, STRING_B));
assertTrue(mProviderHelper.persist(MODULE_C, KEY_A, STRING_A));
assertTrue(mProviderHelper.persist(MODULE_C, KEY_B, STRING_B));
assertTrue(mProviderHelper.persist(context.getPackageName(), KEY_A, STRING_A));
assertTrue(mProviderHelper.persist(context.getPackageName(), KEY_B, STRING_B));
assertUserDatabaseSize(8);
mProviderHelper.clearBut(new AppPreferences(context),
new TestTrayModulePreferences(context, MODULE_A),
new TestTrayModulePreferences(context, MODULE_B));
assertUserDatabaseSize(6);
mProviderHelper.clearBut(new TestTrayModulePreferences(context, MODULE_A),
new TestTrayModulePreferences(context, MODULE_B));
assertUserDatabaseSize(4);
mProviderHelper.clearBut(new TestTrayModulePreferences(context, MODULE_A));
assertUserDatabaseSize(2);
mProviderHelper.clearBut((TrayPreferences) null);
assertUserDatabaseSize(0);
assertTrue(mProviderHelper.persist(MODULE_A, KEY_A, STRING_A));
assertTrue(mProviderHelper.persist(MODULE_A, KEY_B, STRING_B));
assertTrue(mProviderHelper.persist(context.getPackageName(), KEY_A, STRING_A));
assertTrue(mProviderHelper.persist(context.getPackageName(), KEY_B, STRING_B));
mProviderHelper.clearBut(new AppPreferences(context));
assertUserDatabaseSize(2);
// Also test empty values (= clear everything)
assertTrue(mProviderHelper.persist(MODULE_A, KEY_A, STRING_A));
assertTrue(mProviderHelper.persist(MODULE_A, KEY_B, STRING_B));
mProviderHelper.clearBut((TrayPreferences) null);
assertUserDatabaseSize(0);
}