Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 59a887eb authored by Flavio Lerda's avatar Flavio Lerda
Browse files

Fixes ContactLoaderTests.

The tests require an AccountTypeManager to work.

Add a way to support this in the ContactsMockContext and inject a mock
in the setUp of this test.

Bug: 5162385
Change-Id: I36c14845396ab6eeba212b5f6b7098785e71d86b
parent 0a20c77a
Loading
Loading
Loading
Loading
+20 −2
Original line number Diff line number Diff line
@@ -16,7 +16,12 @@

package com.android.contacts;

import com.android.contacts.model.AccountType;
import com.android.contacts.model.AccountWithDataSet;
import com.android.contacts.model.BaseAccountType;
import com.android.contacts.test.InjectedServices;
import com.android.contacts.tests.mocks.ContactsMockContext;
import com.android.contacts.tests.mocks.MockAccountTypeManager;
import com.android.contacts.tests.mocks.MockContentProvider;

import android.content.ContentUris;
@@ -36,18 +41,31 @@ import android.test.suitebuilder.annotation.LargeTest;
 */
@LargeTest
public class ContactLoaderTest extends LoaderTestCase {
    ContactsMockContext mMockContext;
    MockContentProvider mContactsProvider;
    private ContactsMockContext mMockContext;
    private MockContentProvider mContactsProvider;

    @Override
    protected void setUp() throws Exception {
        super.setUp();
        mMockContext = new ContactsMockContext(getContext());
        mContactsProvider = mMockContext.getContactsProvider();

        InjectedServices services = new InjectedServices();
        AccountType accountType = new BaseAccountType();
        accountType.accountType = "mockAccountType";

        AccountWithDataSet account =
                new AccountWithDataSet("mockAccountName", "mockAccountType", null);

        mMockContext.setMockAccountTypeManager(
                new MockAccountTypeManager(
                        new AccountType[] { accountType }, new AccountWithDataSet[] { account }));
    }

    @Override
    protected void tearDown() throws Exception {
        mMockContext = null;
        mContactsProvider = null;
        super.tearDown();
    }

+15 −3
Original line number Diff line number Diff line
@@ -16,6 +16,8 @@

package com.android.contacts.tests.mocks;

import com.android.contacts.model.AccountTypeManager;

import android.content.ContentResolver;
import android.content.Context;
import android.content.ContextWrapper;
@@ -32,13 +34,11 @@ import android.test.mock.MockContentResolver;
 * to mock content providers.
 */
public class ContactsMockContext extends ContextWrapper {

    private static final String TAG = "ContactsMockContext";

    private ContactsMockPackageManager mPackageManager;
    private MockContentResolver mContentResolver;
    private MockContentProvider mContactsProvider;
    private MockContentProvider mSettingsProvider;
    private MockAccountTypeManager mMockAccountTypeManager;
    private Intent mIntentForStartActivity;

    public ContactsMockContext(Context base) {
@@ -53,6 +53,10 @@ public class ContactsMockContext extends ContextWrapper {
        mContentResolver.addProvider(Settings.AUTHORITY, mSettingsProvider);
    }

    public void setMockAccountTypeManager(MockAccountTypeManager mockAccountTypeManager) {
        mMockAccountTypeManager = mockAccountTypeManager;
    }

    @Override
    public ContentResolver getContentResolver() {
        return mContentResolver;
@@ -93,4 +97,12 @@ public class ContactsMockContext extends ContextWrapper {
        mContactsProvider.verify();
        mSettingsProvider.verify();
    }

    @Override
    public Object getSystemService(String name) {
        if (AccountTypeManager.ACCOUNT_TYPE_SERVICE.equals(name)) {
           return mMockAccountTypeManager;
        }
        return super.getSystemService(name);
    }
}
+1 −1

File changed.

Contains only whitespace changes.