GeneralPrefsFragmentTest.java revision 7da3422697f511ed4aa8aa73462917fbd0cffabf
19b4df381c0a1197d8381134181c6c12087a90e2fTony Mantler/*******************************************************************************
29b4df381c0a1197d8381134181c6c12087a90e2fTony Mantler *      Copyright (C) 2014 Google Inc.
39b4df381c0a1197d8381134181c6c12087a90e2fTony Mantler *      Licensed to The Android Open Source Project.
49b4df381c0a1197d8381134181c6c12087a90e2fTony Mantler *
59b4df381c0a1197d8381134181c6c12087a90e2fTony Mantler *      Licensed under the Apache License, Version 2.0 (the "License");
69b4df381c0a1197d8381134181c6c12087a90e2fTony Mantler *      you may not use this file except in compliance with the License.
79b4df381c0a1197d8381134181c6c12087a90e2fTony Mantler *      You may obtain a copy of the License at
89b4df381c0a1197d8381134181c6c12087a90e2fTony Mantler *
99b4df381c0a1197d8381134181c6c12087a90e2fTony Mantler *           http://www.apache.org/licenses/LICENSE-2.0
109b4df381c0a1197d8381134181c6c12087a90e2fTony Mantler *
119b4df381c0a1197d8381134181c6c12087a90e2fTony Mantler *      Unless required by applicable law or agreed to in writing, software
129b4df381c0a1197d8381134181c6c12087a90e2fTony Mantler *      distributed under the License is distributed on an "AS IS" BASIS,
139b4df381c0a1197d8381134181c6c12087a90e2fTony Mantler *      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
149b4df381c0a1197d8381134181c6c12087a90e2fTony Mantler *      See the License for the specific language governing permissions and
159b4df381c0a1197d8381134181c6c12087a90e2fTony Mantler *      limitations under the License.
169b4df381c0a1197d8381134181c6c12087a90e2fTony Mantler *******************************************************************************/
179b4df381c0a1197d8381134181c6c12087a90e2fTony Mantler
189b4df381c0a1197d8381134181c6c12087a90e2fTony Mantlerpackage com.android.mail.ui.settings;
199b4df381c0a1197d8381134181c6c12087a90e2fTony Mantler
209b4df381c0a1197d8381134181c6c12087a90e2fTony Mantlerimport android.content.Intent;
217da3422697f511ed4aa8aa73462917fbd0cffabfTony Mantlerimport android.os.Bundle;
227da3422697f511ed4aa8aa73462917fbd0cffabfTony Mantlerimport android.preference.ListPreference;
239b4df381c0a1197d8381134181c6c12087a90e2fTony Mantlerimport android.preference.PreferenceActivity;
249b4df381c0a1197d8381134181c6c12087a90e2fTony Mantlerimport android.test.ActivityInstrumentationTestCase2;
259b4df381c0a1197d8381134181c6c12087a90e2fTony Mantlerimport android.test.UiThreadTest;
269b4df381c0a1197d8381134181c6c12087a90e2fTony Mantlerimport android.test.suitebuilder.annotation.MediumTest;
279b4df381c0a1197d8381134181c6c12087a90e2fTony Mantler
287da3422697f511ed4aa8aa73462917fbd0cffabfTony Mantlerimport com.android.mail.preferences.MailPrefs;
297da3422697f511ed4aa8aa73462917fbd0cffabfTony Mantlerimport com.android.mail.providers.UIProvider;
307da3422697f511ed4aa8aa73462917fbd0cffabfTony Mantlerimport com.android.mail.providers.UIProvider.AutoAdvance;
317da3422697f511ed4aa8aa73462917fbd0cffabfTony Mantlerimport com.android.mail.providers.UIProvider.SnapHeaderValue;
327da3422697f511ed4aa8aa73462917fbd0cffabfTony Mantler
339b4df381c0a1197d8381134181c6c12087a90e2fTony Mantlerpublic class GeneralPrefsFragmentTest
347da3422697f511ed4aa8aa73462917fbd0cffabfTony Mantler        extends ActivityInstrumentationTestCase2<MailPreferenceActivity> {
357da3422697f511ed4aa8aa73462917fbd0cffabfTony Mantler
367da3422697f511ed4aa8aa73462917fbd0cffabfTony Mantler    private static final String PREFS_NAME_TEST = "UnifiedEmailTest";
379b4df381c0a1197d8381134181c6c12087a90e2fTony Mantler
389b4df381c0a1197d8381134181c6c12087a90e2fTony Mantler    public GeneralPrefsFragmentTest() {
397da3422697f511ed4aa8aa73462917fbd0cffabfTony Mantler        super(MailPreferenceActivity.class);
409b4df381c0a1197d8381134181c6c12087a90e2fTony Mantler    }
419b4df381c0a1197d8381134181c6c12087a90e2fTony Mantler
429b4df381c0a1197d8381134181c6c12087a90e2fTony Mantler    @Override
439b4df381c0a1197d8381134181c6c12087a90e2fTony Mantler    protected void setUp() throws Exception {
449b4df381c0a1197d8381134181c6c12087a90e2fTony Mantler        super.setUp();
459b4df381c0a1197d8381134181c6c12087a90e2fTony Mantler
469b4df381c0a1197d8381134181c6c12087a90e2fTony Mantler        final Intent i = new Intent();
477da3422697f511ed4aa8aa73462917fbd0cffabfTony Mantler        i.putExtra(PreferenceActivity.EXTRA_SHOW_FRAGMENT,
487da3422697f511ed4aa8aa73462917fbd0cffabfTony Mantler                "com.android.mail.ui.settings.GeneralPrefsFragment");
497da3422697f511ed4aa8aa73462917fbd0cffabfTony Mantler        final Bundle b = new Bundle(1);
507da3422697f511ed4aa8aa73462917fbd0cffabfTony Mantler        b.putBoolean(GeneralPrefsFragment.CALLED_FROM_TEST, true);
517da3422697f511ed4aa8aa73462917fbd0cffabfTony Mantler        i.putExtra(PreferenceActivity.EXTRA_SHOW_FRAGMENT_ARGUMENTS, b);
529b4df381c0a1197d8381134181c6c12087a90e2fTony Mantler        setActivityIntent(i);
537da3422697f511ed4aa8aa73462917fbd0cffabfTony Mantler        final MailPreferenceActivity activity = getActivity();
547da3422697f511ed4aa8aa73462917fbd0cffabfTony Mantler        getInstrumentation().waitForIdleSync();
557da3422697f511ed4aa8aa73462917fbd0cffabfTony Mantler        getInstrumentation().runOnMainSync(new Runnable() {
567da3422697f511ed4aa8aa73462917fbd0cffabfTony Mantler            @Override
577da3422697f511ed4aa8aa73462917fbd0cffabfTony Mantler            public void run() {
587da3422697f511ed4aa8aa73462917fbd0cffabfTony Mantler                activity.getFragmentManager().executePendingTransactions();
597da3422697f511ed4aa8aa73462917fbd0cffabfTony Mantler            }
607da3422697f511ed4aa8aa73462917fbd0cffabfTony Mantler        });
617da3422697f511ed4aa8aa73462917fbd0cffabfTony Mantler        final GeneralPrefsFragment fragment = activity.getGeneralPrefsFragment();
627da3422697f511ed4aa8aa73462917fbd0cffabfTony Mantler        fragment.mMailPrefs = new MailPrefs(activity, PREFS_NAME_TEST);
639b4df381c0a1197d8381134181c6c12087a90e2fTony Mantler    }
649b4df381c0a1197d8381134181c6c12087a90e2fTony Mantler
659b4df381c0a1197d8381134181c6c12087a90e2fTony Mantler    @UiThreadTest
669b4df381c0a1197d8381134181c6c12087a90e2fTony Mantler    @MediumTest
679b4df381c0a1197d8381134181c6c12087a90e2fTony Mantler    public void testChangeAutoAdvance() throws Throwable {
687da3422697f511ed4aa8aa73462917fbd0cffabfTony Mantler        final MailPreferenceActivity activity = getActivity();
699b4df381c0a1197d8381134181c6c12087a90e2fTony Mantler        final GeneralPrefsFragment fragment = activity.getGeneralPrefsFragment();
707da3422697f511ed4aa8aa73462917fbd0cffabfTony Mantler        final MailPrefs mailPrefs = fragment.mMailPrefs;
719b4df381c0a1197d8381134181c6c12087a90e2fTony Mantler        final ListPreference autoAdvancePref = (ListPreference) fragment
729b4df381c0a1197d8381134181c6c12087a90e2fTony Mantler                .findPreference(GeneralPrefsFragment.AUTO_ADVANCE_WIDGET);
739b4df381c0a1197d8381134181c6c12087a90e2fTony Mantler
749b4df381c0a1197d8381134181c6c12087a90e2fTony Mantler        fragment.onPreferenceChange(autoAdvancePref, UIProvider.AUTO_ADVANCE_MODE_OLDER);
757da3422697f511ed4aa8aa73462917fbd0cffabfTony Mantler        assertEquals(mailPrefs.getAutoAdvanceMode(), AutoAdvance.OLDER);
769b4df381c0a1197d8381134181c6c12087a90e2fTony Mantler
779b4df381c0a1197d8381134181c6c12087a90e2fTony Mantler        fragment.onPreferenceChange(autoAdvancePref, UIProvider.AUTO_ADVANCE_MODE_NEWER);
787da3422697f511ed4aa8aa73462917fbd0cffabfTony Mantler        assertEquals(mailPrefs.getAutoAdvanceMode(), AutoAdvance.NEWER);
799b4df381c0a1197d8381134181c6c12087a90e2fTony Mantler    }
809b4df381c0a1197d8381134181c6c12087a90e2fTony Mantler
819b4df381c0a1197d8381134181c6c12087a90e2fTony Mantler    @UiThreadTest
829b4df381c0a1197d8381134181c6c12087a90e2fTony Mantler    @MediumTest
839b4df381c0a1197d8381134181c6c12087a90e2fTony Mantler    public void testChangeSnapHeader() throws Throwable {
847da3422697f511ed4aa8aa73462917fbd0cffabfTony Mantler        final MailPreferenceActivity activity = getActivity();
859b4df381c0a1197d8381134181c6c12087a90e2fTony Mantler        final GeneralPrefsFragment fragment = activity.getGeneralPrefsFragment();
867da3422697f511ed4aa8aa73462917fbd0cffabfTony Mantler        final MailPrefs mailPrefs = fragment.mMailPrefs;
879b4df381c0a1197d8381134181c6c12087a90e2fTony Mantler        final ListPreference snapPref = (ListPreference) fragment
889b4df381c0a1197d8381134181c6c12087a90e2fTony Mantler                .findPreference(GeneralPrefsFragment.SNAP_HEADER_MODE_WIDGET);
899b4df381c0a1197d8381134181c6c12087a90e2fTony Mantler
907da3422697f511ed4aa8aa73462917fbd0cffabfTony Mantler        fragment.onPreferenceChange(snapPref, "never");
917da3422697f511ed4aa8aa73462917fbd0cffabfTony Mantler        assertEquals(mailPrefs.getSnapHeaderMode(), SnapHeaderValue.NEVER);
929b4df381c0a1197d8381134181c6c12087a90e2fTony Mantler
937da3422697f511ed4aa8aa73462917fbd0cffabfTony Mantler        fragment.onPreferenceChange(snapPref, "always");
947da3422697f511ed4aa8aa73462917fbd0cffabfTony Mantler        assertEquals(mailPrefs.getSnapHeaderMode(), SnapHeaderValue.ALWAYS);
959b4df381c0a1197d8381134181c6c12087a90e2fTony Mantler    }
969b4df381c0a1197d8381134181c6c12087a90e2fTony Mantler
979b4df381c0a1197d8381134181c6c12087a90e2fTony Mantler}
98