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