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

Commit e5d48a53 authored by avipul's avatar avipul Committed by android-build-merger
Browse files

Fixes unit tests for ContactsPreferences

am: 030b126e

Change-Id: I91a14f93e1bc356aca474ed7516972654f9de8ea
parents 611ea6c3 030b126e
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -43,6 +43,9 @@
    <!-- If true, the default sort order is primary (i.e. by given name) -->
    <bool name="config_default_display_order_primary">true</bool>

    <!-- If true, an option is shown in Display Options UI to choose a phonetic name display preference -->
    <bool name="config_phonetic_name_display_user_changeable">true</bool>

    <!-- If true, phonetic name fields are not visible when empty -->
    <bool name="config_default_hide_phonetic_name_if_empty">true</bool>

+12 −0
Original line number Diff line number Diff line
@@ -177,6 +177,11 @@ public class ContactsPreferences implements OnSharedPreferenceChangeListener {
        }
    }

    public boolean isPhoneticNameDisplayPreferenceChangeable() {
        return mContext.getResources().getBoolean(
                R.bool.config_phonetic_name_display_user_changeable);
    }

    public void setPhoneticNameDisplayPreference(int phoneticNameDisplayPreference) {
        mPhoneticNameDisplayPreference = phoneticNameDisplayPreference;
        final Editor editor = mPreferences.edit();
@@ -186,6 +191,9 @@ public class ContactsPreferences implements OnSharedPreferenceChangeListener {
    }

    public int getPhoneticNameDisplayPreference() {
        if (!isPhoneticNameDisplayPreferenceChangeable()) {
            return getDefaultPhoneticNameDisplayPreference();
        }
        if (mPhoneticNameDisplayPreference == PREFERENCE_UNASSIGNED) {
            mPhoneticNameDisplayPreference = mPreferences.getInt(PHONETIC_NAME_DISPLAY_KEY,
                    getDefaultPhoneticNameDisplayPreference());
@@ -281,6 +289,7 @@ public class ContactsPreferences implements OnSharedPreferenceChangeListener {
        // listener was unregistered.
        mDisplayOrder = PREFERENCE_UNASSIGNED;
        mSortOrder = PREFERENCE_UNASSIGNED;
        mPhoneticNameDisplayPreference = PREFERENCE_UNASSIGNED;
        mDefaultAccount = null;

        mPreferences.registerOnSharedPreferenceChangeListener(this);
@@ -319,6 +328,9 @@ public class ContactsPreferences implements OnSharedPreferenceChangeListener {
        } else if (SORT_ORDER_KEY.equals(key)) {
            mSortOrder = PREFERENCE_UNASSIGNED;
            mSortOrder = getSortOrder();
        } else if (PHONETIC_NAME_DISPLAY_KEY.equals(key)) {
            mPhoneticNameDisplayPreference = PREFERENCE_UNASSIGNED;
            mPhoneticNameDisplayPreference = getPhoneticNameDisplayPreference();
        } else if (mDefaultAccountKey.equals(key)) {
            mDefaultAccount = null;
            mDefaultAccount = getDefaultAccount();
+5 −0
Original line number Diff line number Diff line
@@ -83,6 +83,7 @@ public class DisplayOptionsPreferenceFragment extends PreferenceFragment
    private static final String KEY_EXPORT = "export";
    private static final String KEY_MY_INFO = "myInfo";
    private static final String KEY_SORT_ORDER = "sortOrder";
    private static final String KEY_PHONETIC_NAME_DISPLAY = "phoneticNameDisplay";

    private static final int LOADER_PROFILE = 0;
    private static final int LOADER_ACCOUNTS = 1;
@@ -269,6 +270,10 @@ public class DisplayOptionsPreferenceFragment extends PreferenceFragment
            getPreferenceScreen().removePreference(findPreference(KEY_SORT_ORDER));
        }

        if (!resources.getBoolean(R.bool.config_phonetic_name_display_user_changeable)) {
            getPreferenceScreen().removePreference(findPreference(KEY_PHONETIC_NAME_DISPLAY));
        }

        if (HelpUtils.isHelpAndFeedbackAvailable()) {
            getPreferenceScreen().removePreference(findPreference(KEY_ABOUT));
        }
+39 −0
Original line number Diff line number Diff line
@@ -61,6 +61,8 @@ public class ContactsPreferencesTest extends InstrumentationTestCase {
                .thenReturn(true);
        Mockito.when(mSharedPreferences.contains(ContactsPreferences.DISPLAY_ORDER_KEY))
                .thenReturn(true);
        Mockito.when(mSharedPreferences.contains(ContactsPreferences.PHONETIC_NAME_DISPLAY_KEY))
                .thenReturn(true);

        InstrumentationRegistry.getInstrumentation().runOnMainSync(new Runnable() {
            @Override
@@ -108,6 +110,43 @@ public class ContactsPreferencesTest extends InstrumentationTestCase {
                mContactsPreferences.getDisplayOrder());
    }

    public void testGetPhoneticNameDisplayDefault() {
        Mockito.when(mResources.getBoolean(Mockito.anyInt())).thenReturn(
                false, // R.bool.config_phonetic_name_display_user_changeable
                true // R.bool.config_default_hide_phonetic_name_if_empty
        );
        Assert.assertEquals(PhoneticNameDisplayPreference.HIDE_IF_EMPTY,
                mContactsPreferences.getPhoneticNameDisplayPreference());
    }

    public void testGetPhoneticNameDisplay() {
        Mockito.when(mResources.getBoolean(Mockito.anyInt())).thenReturn(
                true // R.bool.config_phonetic_name_display_user_changeable
        );
        Mockito.when(mSharedPreferences.getInt(
                Mockito.eq(ContactsPreferences.PHONETIC_NAME_DISPLAY_KEY),
                Mockito.anyInt())).thenReturn(PhoneticNameDisplayPreference.HIDE_IF_EMPTY);
        Assert.assertEquals(PhoneticNameDisplayPreference.HIDE_IF_EMPTY,
                mContactsPreferences.getPhoneticNameDisplayPreference());
    }

    public void testRefreshPhoneticNameDisplay() throws InterruptedException {
        Mockito.when(mResources.getBoolean(Mockito.anyInt())).thenReturn(
                true // R.bool.config_phonetic_name_display_user_changeable
        );
        Mockito.when(mSharedPreferences.getInt(
                Mockito.eq(ContactsPreferences.PHONETIC_NAME_DISPLAY_KEY),
                Mockito.anyInt())).thenReturn(PhoneticNameDisplayPreference.HIDE_IF_EMPTY,
                PhoneticNameDisplayPreference.SHOW_ALWAYS);

        Assert.assertEquals(PhoneticNameDisplayPreference.HIDE_IF_EMPTY,
                mContactsPreferences.getPhoneticNameDisplayPreference());
        mContactsPreferences.refreshValue(ContactsPreferences.PHONETIC_NAME_DISPLAY_KEY);

        Assert.assertEquals(PhoneticNameDisplayPreference.SHOW_ALWAYS,
                mContactsPreferences.getPhoneticNameDisplayPreference());
    }

    public void testRefreshSortOrder() throws InterruptedException {
        Mockito.when(mResources.getBoolean(Mockito.anyInt())).thenReturn(
                true // R.bool.config_sort_order_user_changeable