Merge "Sort of port over tests for GeneralPrefsFragment" into ub-mail-master
diff --git a/src/com/android/mail/preferences/PreferenceMigratorHolder.java b/src/com/android/mail/preferences/PreferenceMigratorHolder.java
index 36a84e2..7b3a5ea 100644
--- a/src/com/android/mail/preferences/PreferenceMigratorHolder.java
+++ b/src/com/android/mail/preferences/PreferenceMigratorHolder.java
@@ -31,6 +31,10 @@
}
public static BasePreferenceMigrator createPreferenceMigrator() {
- return sCreator.createPreferenceMigrator();
+ if (sCreator != null) {
+ return sCreator.createPreferenceMigrator();
+ } else {
+ return null;
+ }
}
}
diff --git a/src/com/android/mail/preferences/VersionedPrefs.java b/src/com/android/mail/preferences/VersionedPrefs.java
index 6c252b2..f115f88 100644
--- a/src/com/android/mail/preferences/VersionedPrefs.java
+++ b/src/com/android/mail/preferences/VersionedPrefs.java
@@ -70,8 +70,16 @@
setCurrentVersion(CURRENT_VERSION_NUMBER);
if (!hasMigrationCompleted()) {
- final boolean migrationComplete = PreferenceMigratorHolder.createPreferenceMigrator()
- .performMigration(context, oldVersion, CURRENT_VERSION_NUMBER);
+ final BasePreferenceMigrator preferenceMigrator =
+ PreferenceMigratorHolder.createPreferenceMigrator();
+ final boolean migrationComplete;
+ if (preferenceMigrator != null) {
+ migrationComplete = preferenceMigrator
+ .performMigration(context, oldVersion, CURRENT_VERSION_NUMBER);
+ } else {
+ LogUtils.w(LogUtils.TAG, "No preference migrator found, not migrating preferences");
+ migrationComplete = false;
+ }
if (migrationComplete) {
setMigrationComplete();
diff --git a/tests/Android.mk b/tests/Android.mk
index 06efb23..be4845b 100644
--- a/tests/Android.mk
+++ b/tests/Android.mk
@@ -26,7 +26,7 @@
# LOCAL_JAVA_LIBRARIES := android.test.runner
-LOCAL_SDK_VERSION := 14
+LOCAL_SDK_VERSION := current
LOCAL_PACKAGE_NAME := UnifiedEmailTests
LOCAL_INSTRUMENTATION_FOR := UnifiedEmail
diff --git a/tests/src/com/android/mail/ui/settings/GeneralPrefsFragmentTest.java b/tests/src/com/android/mail/ui/settings/GeneralPrefsFragmentTest.java
new file mode 100644
index 0000000..c1a5311
--- /dev/null
+++ b/tests/src/com/android/mail/ui/settings/GeneralPrefsFragmentTest.java
@@ -0,0 +1,100 @@
+/*******************************************************************************
+ * Copyright (C) 2014 Google Inc.
+ * Licensed to The Android Open Source Project.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *******************************************************************************/
+
+package com.android.mail.ui.settings;
+
+import android.app.Activity;
+import android.content.Intent;
+import android.preference.PreferenceActivity;
+import android.test.ActivityInstrumentationTestCase2;
+import android.test.UiThreadTest;
+import android.test.suitebuilder.annotation.MediumTest;
+import android.test.suitebuilder.annotation.Suppress;
+
+// TODO: Insert the unified prefs class here once it's written
+@Suppress
+public class GeneralPrefsFragmentTest
+ extends ActivityInstrumentationTestCase2<Activity> {
+
+ public GeneralPrefsFragmentTest() {
+ super(Activity.class);
+ }
+
+ @Override
+ protected void setUp() throws Exception {
+ super.setUp();
+
+ final Intent i = new Intent();
+ i.putExtra(PreferenceActivity.EXTRA_SHOW_FRAGMENT, "com.android.mail.ui.settings.");
+ setActivityIntent(i);
+ getActivity();
+ }
+
+ @UiThreadTest
+ @MediumTest
+ public void testChangeAutoAdvance() throws Throwable {
+ // A weak proxy test that a click on auto-advance will actually persist the proper value.
+ // A better test would simulate a dialog, dialog click, and check that the value is
+ // both displayed and persisted.
+ /*
+ final Activity activity = getActivity();
+ final MailPrefs mailPrefs = MailPrefs.get(activity);
+
+ activity.getFragmentManager().executePendingTransactions();
+
+ final GeneralPrefsFragment fragment = activity.getGeneralPrefsFragment();
+ final ListPreference autoAdvancePref = (ListPreference) fragment
+ .findPreference(GeneralPrefsFragment.AUTO_ADVANCE_WIDGET);
+
+ fragment.onPreferenceChange(autoAdvancePref, UIProvider.AUTO_ADVANCE_MODE_OLDER);
+
+ assertEquals(AutoAdvance.OLDER, mailPrefs.getAutoAdvanceMode());
+
+ fragment.onPreferenceChange(autoAdvancePref, UIProvider.AUTO_ADVANCE_MODE_NEWER);
+
+ assertEquals(AutoAdvance.NEWER, mailPrefs.getAutoAdvanceMode());
+ */
+ }
+
+ @UiThreadTest
+ @MediumTest
+ public void testChangeSnapHeader() throws Throwable {
+ /*
+ final Activity activity = getActivity();
+ final MailPrefs mailPrefs = MailPrefs.get(activity);
+
+ activity.getFragmentManager().executePendingTransactions();
+
+ final GeneralPrefsFragment fragment = activity.getGeneralPrefsFragment();
+ final ListPreference snapPref = (ListPreference) fragment
+ .findPreference(GeneralPrefsFragment.SNAP_HEADER_MODE_WIDGET);
+
+ final int neverValue = GeneralPrefsFragment.prefValueToWidgetIndex(
+ GeneralPrefsFragment.SNAP_HEADER_VALUES, SnapHeaderValue.NEVER, -1);
+ snapPref.setValueIndex(neverValue);
+
+ assertEquals(SnapHeaderValue.NEVER, mailPrefs.getSnapHeaderMode());
+
+ final int alwaysValue = GeneralPrefsFragment.prefValueToWidgetIndex(
+ GeneralPrefsFragment.SNAP_HEADER_VALUES, SnapHeaderValue.ALWAYS, -1);
+ snapPref.setValueIndex(alwaysValue);
+
+ assertEquals(SnapHeaderValue.ALWAYS, mailPrefs.getSnapHeaderMode());
+ */
+ }
+
+}