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