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 Mantler
329b4df381c0a1197d8381134181c6c12087a90e2fTony Mantlerpublic class GeneralPrefsFragmentTest
337da3422697f511ed4aa8aa73462917fbd0cffabfTony Mantler        extends ActivityInstrumentationTestCase2<MailPreferenceActivity> {
347da3422697f511ed4aa8aa73462917fbd0cffabfTony Mantler
357da3422697f511ed4aa8aa73462917fbd0cffabfTony Mantler    private static final String PREFS_NAME_TEST = "UnifiedEmailTest";
369b4df381c0a1197d8381134181c6c12087a90e2fTony Mantler
379b4df381c0a1197d8381134181c6c12087a90e2fTony Mantler    public GeneralPrefsFragmentTest() {
387da3422697f511ed4aa8aa73462917fbd0cffabfTony Mantler        super(MailPreferenceActivity.class);
399b4df381c0a1197d8381134181c6c12087a90e2fTony Mantler    }
409b4df381c0a1197d8381134181c6c12087a90e2fTony Mantler
419b4df381c0a1197d8381134181c6c12087a90e2fTony Mantler    @Override
429b4df381c0a1197d8381134181c6c12087a90e2fTony Mantler    protected void setUp() throws Exception {
439b4df381c0a1197d8381134181c6c12087a90e2fTony Mantler        super.setUp();
449b4df381c0a1197d8381134181c6c12087a90e2fTony Mantler
459b4df381c0a1197d8381134181c6c12087a90e2fTony Mantler        final Intent i = new Intent();
467da3422697f511ed4aa8aa73462917fbd0cffabfTony Mantler        i.putExtra(PreferenceActivity.EXTRA_SHOW_FRAGMENT,
477da3422697f511ed4aa8aa73462917fbd0cffabfTony Mantler                "com.android.mail.ui.settings.GeneralPrefsFragment");
487da3422697f511ed4aa8aa73462917fbd0cffabfTony Mantler        final Bundle b = new Bundle(1);
497da3422697f511ed4aa8aa73462917fbd0cffabfTony Mantler        b.putBoolean(GeneralPrefsFragment.CALLED_FROM_TEST, true);
507da3422697f511ed4aa8aa73462917fbd0cffabfTony Mantler        i.putExtra(PreferenceActivity.EXTRA_SHOW_FRAGMENT_ARGUMENTS, b);
519b4df381c0a1197d8381134181c6c12087a90e2fTony Mantler        setActivityIntent(i);
527da3422697f511ed4aa8aa73462917fbd0cffabfTony Mantler        final MailPreferenceActivity activity = getActivity();
537da3422697f511ed4aa8aa73462917fbd0cffabfTony Mantler        getInstrumentation().waitForIdleSync();
547da3422697f511ed4aa8aa73462917fbd0cffabfTony Mantler        getInstrumentation().runOnMainSync(new Runnable() {
557da3422697f511ed4aa8aa73462917fbd0cffabfTony Mantler            @Override
567da3422697f511ed4aa8aa73462917fbd0cffabfTony Mantler            public void run() {
577da3422697f511ed4aa8aa73462917fbd0cffabfTony Mantler                activity.getFragmentManager().executePendingTransactions();
587da3422697f511ed4aa8aa73462917fbd0cffabfTony Mantler            }
597da3422697f511ed4aa8aa73462917fbd0cffabfTony Mantler        });
607da3422697f511ed4aa8aa73462917fbd0cffabfTony Mantler        final GeneralPrefsFragment fragment = activity.getGeneralPrefsFragment();
617da3422697f511ed4aa8aa73462917fbd0cffabfTony Mantler        fragment.mMailPrefs = new MailPrefs(activity, PREFS_NAME_TEST);
629b4df381c0a1197d8381134181c6c12087a90e2fTony Mantler    }
639b4df381c0a1197d8381134181c6c12087a90e2fTony Mantler
649b4df381c0a1197d8381134181c6c12087a90e2fTony Mantler    @UiThreadTest
659b4df381c0a1197d8381134181c6c12087a90e2fTony Mantler    @MediumTest
669b4df381c0a1197d8381134181c6c12087a90e2fTony Mantler    public void testChangeAutoAdvance() throws Throwable {
677da3422697f511ed4aa8aa73462917fbd0cffabfTony Mantler        final MailPreferenceActivity activity = getActivity();
689b4df381c0a1197d8381134181c6c12087a90e2fTony Mantler        final GeneralPrefsFragment fragment = activity.getGeneralPrefsFragment();
697da3422697f511ed4aa8aa73462917fbd0cffabfTony Mantler        final MailPrefs mailPrefs = fragment.mMailPrefs;
709b4df381c0a1197d8381134181c6c12087a90e2fTony Mantler        final ListPreference autoAdvancePref = (ListPreference) fragment
719b4df381c0a1197d8381134181c6c12087a90e2fTony Mantler                .findPreference(GeneralPrefsFragment.AUTO_ADVANCE_WIDGET);
729b4df381c0a1197d8381134181c6c12087a90e2fTony Mantler
739b4df381c0a1197d8381134181c6c12087a90e2fTony Mantler        fragment.onPreferenceChange(autoAdvancePref, UIProvider.AUTO_ADVANCE_MODE_OLDER);
747da3422697f511ed4aa8aa73462917fbd0cffabfTony Mantler        assertEquals(mailPrefs.getAutoAdvanceMode(), AutoAdvance.OLDER);
759b4df381c0a1197d8381134181c6c12087a90e2fTony Mantler
769b4df381c0a1197d8381134181c6c12087a90e2fTony Mantler        fragment.onPreferenceChange(autoAdvancePref, UIProvider.AUTO_ADVANCE_MODE_NEWER);
777da3422697f511ed4aa8aa73462917fbd0cffabfTony Mantler        assertEquals(mailPrefs.getAutoAdvanceMode(), AutoAdvance.NEWER);
789b4df381c0a1197d8381134181c6c12087a90e2fTony Mantler    }
799b4df381c0a1197d8381134181c6c12087a90e2fTony Mantler
809b4df381c0a1197d8381134181c6c12087a90e2fTony Mantler}
81