summaryrefslogtreecommitdiff
path: root/app/src/androidTest/java/de/test/antennapod/ui/PreferencesTest.java
diff options
context:
space:
mode:
Diffstat (limited to 'app/src/androidTest/java/de/test/antennapod/ui/PreferencesTest.java')
-rw-r--r--app/src/androidTest/java/de/test/antennapod/ui/PreferencesTest.java292
1 files changed, 94 insertions, 198 deletions
diff --git a/app/src/androidTest/java/de/test/antennapod/ui/PreferencesTest.java b/app/src/androidTest/java/de/test/antennapod/ui/PreferencesTest.java
index a6af6c544..8de4ba3c8 100644
--- a/app/src/androidTest/java/de/test/antennapod/ui/PreferencesTest.java
+++ b/app/src/androidTest/java/de/test/antennapod/ui/PreferencesTest.java
@@ -14,10 +14,15 @@ import org.apache.commons.io.IOUtils;
import java.io.IOException;
import java.io.InputStream;
import java.util.List;
+import java.util.concurrent.TimeUnit;
import de.danoeh.antennapod.R;
import de.danoeh.antennapod.activity.PreferenceActivity;
import de.danoeh.antennapod.core.preferences.UserPreferences;
+import de.danoeh.antennapod.core.storage.APCleanupAlgorithm;
+import de.danoeh.antennapod.core.storage.APNullCleanupAlgorithm;
+import de.danoeh.antennapod.core.storage.APQueueCleanupAlgorithm;
+import de.danoeh.antennapod.core.storage.EpisodeCleanupAlgorithm;
public class PreferencesTest extends ActivityInstrumentationTestCase2<PreferenceActivity> {
@@ -59,12 +64,7 @@ public class PreferencesTest extends ActivityInstrumentationTestCase2<Preference
solo.clickOnText(solo.getString(R.string.pref_set_theme_title));
solo.waitForDialogToOpen();
solo.clickOnText(solo.getString(otherTheme));
- solo.waitForCondition(new Condition() {
- @Override
- public boolean isSatisfied() {
- return UserPreferences.getTheme() != theme;
- }
- }, Timeout.getLargeTimeout());
+ assertTrue(solo.waitForCondition(() -> UserPreferences.getTheme() != theme, Timeout.getLargeTimeout()));
}
public void testSwitchThemeBack() {
@@ -78,140 +78,67 @@ public class PreferencesTest extends ActivityInstrumentationTestCase2<Preference
solo.clickOnText(solo.getString(R.string.pref_set_theme_title));
solo.waitForDialogToOpen(1000);
solo.clickOnText(solo.getString(otherTheme));
- solo.waitForCondition(new Condition() {
- @Override
- public boolean isSatisfied() {
- return UserPreferences.getTheme() != theme;
- }
- }, Timeout.getLargeTimeout());
+ assertTrue(solo.waitForCondition(() -> UserPreferences.getTheme() != theme, Timeout.getLargeTimeout()));
}
public void testExpandNotification() {
final int priority = UserPreferences.getNotifyPriority();
solo.clickOnText(solo.getString(R.string.pref_expandNotify_title));
- solo.waitForCondition(new Condition() {
- @Override
- public boolean isSatisfied() {
- return priority != UserPreferences.getNotifyPriority();
- }
- }, Timeout.getLargeTimeout());
+ assertTrue(solo.waitForCondition(() -> priority != UserPreferences.getNotifyPriority(), Timeout.getLargeTimeout()));
solo.clickOnText(solo.getString(R.string.pref_expandNotify_title));
- solo.waitForCondition(new Condition() {
- @Override
- public boolean isSatisfied() {
- return priority == UserPreferences.getNotifyPriority();
- }
- }, Timeout.getLargeTimeout());
+ assertTrue(solo.waitForCondition(() -> priority == UserPreferences.getNotifyPriority(), Timeout.getLargeTimeout()));
}
public void testEnablePersistentPlaybackControls() {
final boolean persistNotify = UserPreferences.isPersistNotify();
solo.clickOnText(solo.getString(R.string.pref_persistNotify_title));
- solo.waitForCondition(new Condition() {
- @Override
- public boolean isSatisfied() {
- return persistNotify != UserPreferences.isPersistNotify();
- }
- }, Timeout.getLargeTimeout());
+ assertTrue(solo.waitForCondition(() -> persistNotify != UserPreferences.isPersistNotify(), Timeout.getLargeTimeout()));
solo.clickOnText(solo.getString(R.string.pref_persistNotify_title));
- solo.waitForCondition(new Condition() {
- @Override public boolean isSatisfied() {
- return persistNotify == UserPreferences.isPersistNotify();
- }
- }, Timeout.getLargeTimeout());
+ assertTrue(solo.waitForCondition(() -> persistNotify == UserPreferences.isPersistNotify(), Timeout.getLargeTimeout()));
}
public void testEnqueueAtFront() {
final boolean enqueueAtFront = UserPreferences.enqueueAtFront();
solo.clickOnText(solo.getString(R.string.pref_queueAddToFront_title));
- solo.waitForCondition(new Condition() {
- @Override
- public boolean isSatisfied() {
- return enqueueAtFront != UserPreferences.enqueueAtFront();
- }
- }, Timeout.getLargeTimeout());
+ assertTrue(solo.waitForCondition(() -> enqueueAtFront != UserPreferences.enqueueAtFront(), Timeout.getLargeTimeout()));
solo.clickOnText(solo.getString(R.string.pref_queueAddToFront_title));
- solo.waitForCondition(new Condition() {
- @Override public boolean isSatisfied() {
- return enqueueAtFront == UserPreferences.enqueueAtFront();
- }
- }, Timeout.getLargeTimeout());
+ assertTrue(solo.waitForCondition(() -> enqueueAtFront == UserPreferences.enqueueAtFront(), Timeout.getLargeTimeout()));
}
public void testHeadPhonesDisconnect() {
final boolean pauseOnHeadsetDisconnect = UserPreferences.isPauseOnHeadsetDisconnect();
solo.clickOnText(solo.getString(R.string.pref_pauseOnHeadsetDisconnect_title));
- solo.waitForCondition(new Condition() {
- @Override public boolean isSatisfied() {
- return pauseOnHeadsetDisconnect != UserPreferences.isPauseOnHeadsetDisconnect();
- }
- }, Timeout.getLargeTimeout());
+ assertTrue(solo.waitForCondition(() -> pauseOnHeadsetDisconnect != UserPreferences.isPauseOnHeadsetDisconnect(), Timeout.getLargeTimeout()));
solo.clickOnText(solo.getString(R.string.pref_pauseOnHeadsetDisconnect_title));
- solo.waitForCondition(new Condition() {
- @Override public boolean isSatisfied() {
- return pauseOnHeadsetDisconnect == UserPreferences.isPauseOnHeadsetDisconnect();
- }
- }, Timeout.getLargeTimeout());
+ assertTrue(solo.waitForCondition(() -> pauseOnHeadsetDisconnect == UserPreferences.isPauseOnHeadsetDisconnect(), Timeout.getLargeTimeout()));
}
public void testHeadPhonesReconnect() {
if(UserPreferences.isPauseOnHeadsetDisconnect() == false) {
solo.clickOnText(solo.getString(R.string.pref_pauseOnHeadsetDisconnect_title));
- solo.waitForCondition(new Condition() {
- @Override
- public boolean isSatisfied() {
- return UserPreferences.isPauseOnHeadsetDisconnect();
- }
- }, Timeout.getLargeTimeout());
+ assertTrue(solo.waitForCondition(() -> UserPreferences.isPauseOnHeadsetDisconnect(), Timeout.getLargeTimeout()));
}
final boolean unpauseOnHeadsetReconnect = UserPreferences.isUnpauseOnHeadsetReconnect();
solo.clickOnText(solo.getString(R.string.pref_unpauseOnHeadsetReconnect_title));
- solo.waitForCondition(new Condition() {
- @Override
- public boolean isSatisfied() {
- return unpauseOnHeadsetReconnect != UserPreferences.isUnpauseOnHeadsetReconnect();
- }
- }, Timeout.getLargeTimeout());
+ assertTrue(solo.waitForCondition(() -> unpauseOnHeadsetReconnect != UserPreferences.isUnpauseOnHeadsetReconnect(), Timeout.getLargeTimeout()));
solo.clickOnText(solo.getString(R.string.pref_unpauseOnHeadsetReconnect_title));
- solo.waitForCondition(new Condition() {
- @Override public boolean isSatisfied() {
- return unpauseOnHeadsetReconnect == UserPreferences.isUnpauseOnHeadsetReconnect();
- }
- }, Timeout.getLargeTimeout());
+ assertTrue(solo.waitForCondition(() -> unpauseOnHeadsetReconnect == UserPreferences.isUnpauseOnHeadsetReconnect(), Timeout.getLargeTimeout()));
}
public void testContinuousPlayback() {
final boolean continuousPlayback = UserPreferences.isFollowQueue();
solo.clickOnText(solo.getString(R.string.pref_followQueue_title));
- solo.waitForCondition(new Condition() {
- @Override
- public boolean isSatisfied() {
- return continuousPlayback != UserPreferences.isFollowQueue();
- }
- }, Timeout.getLargeTimeout());
+ assertTrue(solo.waitForCondition(() -> continuousPlayback != UserPreferences.isFollowQueue(), Timeout.getLargeTimeout()));
solo.clickOnText(solo.getString(R.string.pref_followQueue_title));
- solo.waitForCondition(new Condition() {
- @Override public boolean isSatisfied() {
- return continuousPlayback == UserPreferences.isFollowQueue();
- }
- }, Timeout.getLargeTimeout());
+ assertTrue(solo.waitForCondition(() -> continuousPlayback == UserPreferences.isFollowQueue(), Timeout.getLargeTimeout()));
}
public void testAutoDelete() {
final boolean autoDelete = UserPreferences.isAutoDelete();
solo.clickOnText(solo.getString(R.string.pref_auto_delete_title));
- solo.waitForCondition(new Condition() {
- @Override
- public boolean isSatisfied() {
- return autoDelete != UserPreferences.isAutoDelete();
- }
- }, Timeout.getLargeTimeout());
+ assertTrue(solo.waitForCondition(() -> autoDelete != UserPreferences.isAutoDelete(), Timeout.getLargeTimeout()));
solo.clickOnText(solo.getString(R.string.pref_auto_delete_title));
- solo.waitForCondition(new Condition() {
- @Override public boolean isSatisfied() {
- return autoDelete == UserPreferences.isAutoDelete();
- }
- }, Timeout.getLargeTimeout());
+ assertTrue(solo.waitForCondition(() -> autoDelete == UserPreferences.isAutoDelete(), Timeout.getLargeTimeout()));
}
public void testPlaybackSpeeds() {
@@ -225,31 +152,16 @@ public class PreferencesTest extends ActivityInstrumentationTestCase2<Preference
public void testPauseForInterruptions() {
final boolean pauseForFocusLoss = UserPreferences.shouldPauseForFocusLoss();
solo.clickOnText(solo.getString(R.string.pref_pausePlaybackForFocusLoss_title));
- solo.waitForCondition(new Condition() {
- @Override
- public boolean isSatisfied() {
- return pauseForFocusLoss != UserPreferences.shouldPauseForFocusLoss();
- }
- }, Timeout.getLargeTimeout());
+ assertTrue(solo.waitForCondition(() -> pauseForFocusLoss != UserPreferences.shouldPauseForFocusLoss(), Timeout.getLargeTimeout()));
solo.clickOnText(solo.getString(R.string.pref_pausePlaybackForFocusLoss_title));
- solo.waitForCondition(new Condition() {
- @Override
- public boolean isSatisfied() {
- return pauseForFocusLoss == UserPreferences.shouldPauseForFocusLoss();
- }
- }, Timeout.getLargeTimeout());
+ assertTrue(solo.waitForCondition(() -> pauseForFocusLoss == UserPreferences.shouldPauseForFocusLoss(), Timeout.getLargeTimeout()));
}
public void testDisableUpdateInterval() {
solo.clickOnText(solo.getString(R.string.pref_autoUpdateIntervallOrTime_sum));
solo.waitForDialogToOpen();
solo.clickOnText(solo.getString(R.string.pref_autoUpdateIntervallOrTime_Disable));
- solo.waitForCondition(new Condition() {
- @Override
- public boolean isSatisfied() {
- return UserPreferences.getUpdateInterval() == 0;
- }
- }, 1000);
+ assertTrue(solo.waitForCondition(() -> UserPreferences.getUpdateInterval() == 0, 1000));
}
public void testSetUpdateInterval() {
@@ -260,30 +172,16 @@ public class PreferencesTest extends ActivityInstrumentationTestCase2<Preference
String search = "12 " + solo.getString(R.string.pref_update_interval_hours_plural);
solo.clickOnText(search);
solo.waitForDialogToClose();
- solo.waitForCondition(new Condition() {
- @Override
- public boolean isSatisfied() {
- return UserPreferences.getUpdateInterval() == 12;
- }
- }, Timeout.getLargeTimeout());
+ assertTrue(solo.waitForCondition(() -> UserPreferences.getUpdateInterval() ==
+ TimeUnit.HOURS.toMillis(12), Timeout.getLargeTimeout()));
}
public void testMobileUpdates() {
final boolean mobileUpdates = UserPreferences.isAllowMobileUpdate();
solo.clickOnText(solo.getString(R.string.pref_mobileUpdate_title));
- solo.waitForCondition(new Condition() {
- @Override
- public boolean isSatisfied() {
- return mobileUpdates != UserPreferences.isAllowMobileUpdate();
- }
- }, Timeout.getLargeTimeout());
+ assertTrue(solo.waitForCondition(() -> mobileUpdates != UserPreferences.isAllowMobileUpdate(), Timeout.getLargeTimeout()));
solo.clickOnText(solo.getString(R.string.pref_mobileUpdate_title));
- solo.waitForCondition(new Condition() {
- @Override
- public boolean isSatisfied() {
- return mobileUpdates == UserPreferences.isAllowMobileUpdate();
- }
- }, Timeout.getLargeTimeout());
+ assertTrue(solo.waitForCondition(() -> mobileUpdates == UserPreferences.isAllowMobileUpdate(), Timeout.getLargeTimeout()));
}
public void testSetSequentialDownload() {
@@ -292,12 +190,7 @@ public class PreferencesTest extends ActivityInstrumentationTestCase2<Preference
solo.clearEditText(0);
solo.enterText(0, "1");
solo.clickOnText(solo.getString(android.R.string.ok));
- solo.waitForCondition(new Condition() {
- @Override
- public boolean isSatisfied() {
- return UserPreferences.getParallelDownloads() == 1;
- }
- }, Timeout.getLargeTimeout());
+ assertTrue(solo.waitForCondition(() -> UserPreferences.getParallelDownloads() == 1, Timeout.getLargeTimeout()));
}
public void testSetParallelDownloads() {
@@ -306,12 +199,7 @@ public class PreferencesTest extends ActivityInstrumentationTestCase2<Preference
solo.clearEditText(0);
solo.enterText(0, "10");
solo.clickOnText(solo.getString(android.R.string.ok));
- solo.waitForCondition(new Condition() {
- @Override
- public boolean isSatisfied() {
- return UserPreferences.getParallelDownloads() == 10;
- }
- }, Timeout.getLargeTimeout());
+ assertTrue(solo.waitForCondition(() -> UserPreferences.getParallelDownloads() == 10, Timeout.getLargeTimeout()));
}
public void testSetParallelDownloadsInvalidInput() {
@@ -333,12 +221,7 @@ public class PreferencesTest extends ActivityInstrumentationTestCase2<Preference
solo.clickOnText(solo.getString(R.string.pref_episode_cache_title));
solo.waitForDialogToOpen();
solo.clickOnText(entry);
- solo.waitForCondition(new Condition() {
- @Override
- public boolean isSatisfied() {
- return UserPreferences.getEpisodeCacheSize() == value;
- }
- }, Timeout.getLargeTimeout());
+ assertTrue(solo.waitForCondition(() -> UserPreferences.getEpisodeCacheSize() == value, Timeout.getLargeTimeout()));
}
public void testSetEpisodeCacheMin() {
@@ -350,12 +233,7 @@ public class PreferencesTest extends ActivityInstrumentationTestCase2<Preference
solo.waitForDialogToOpen(1000);
solo.scrollUp();
solo.clickOnText(minEntry);
- solo.waitForCondition(new Condition() {
- @Override
- public boolean isSatisfied() {
- return UserPreferences.getEpisodeCacheSize() == minValue;
- }
- }, Timeout.getLargeTimeout());
+ assertTrue(solo.waitForCondition(() -> UserPreferences.getEpisodeCacheSize() == minValue, Timeout.getLargeTimeout()));
}
@@ -367,12 +245,7 @@ public class PreferencesTest extends ActivityInstrumentationTestCase2<Preference
solo.clickOnText(solo.getString(R.string.pref_episode_cache_title));
solo.waitForDialogToOpen();
solo.clickOnText(maxEntry);
- solo.waitForCondition(new Condition() {
- @Override
- public boolean isSatisfied() {
- return UserPreferences.getEpisodeCacheSize() == maxValue;
- }
- }, Timeout.getLargeTimeout());
+ assertTrue(solo.waitForCondition(() -> UserPreferences.getEpisodeCacheSize() == maxValue, Timeout.getLargeTimeout()));
}
public void testAutomaticDownload() {
@@ -380,50 +253,73 @@ public class PreferencesTest extends ActivityInstrumentationTestCase2<Preference
solo.clickOnText(solo.getString(R.string.pref_automatic_download_title));
solo.waitForText(solo.getString(R.string.pref_automatic_download_title));
solo.clickOnText(solo.getString(R.string.pref_automatic_download_title));
- solo.waitForCondition(new Condition() {
- @Override
- public boolean isSatisfied() {
- return automaticDownload != UserPreferences.isEnableAutodownload();
- }
- }, Timeout.getLargeTimeout());
+ assertTrue(solo.waitForCondition(() -> automaticDownload != UserPreferences.isEnableAutodownload(), Timeout.getLargeTimeout()));
if(UserPreferences.isEnableAutodownload() == false) {
solo.clickOnText(solo.getString(R.string.pref_automatic_download_title));
}
- solo.waitForCondition(new Condition() {
- @Override
- public boolean isSatisfied() {
- return UserPreferences.isEnableAutodownload() == true;
- }
- }, Timeout.getLargeTimeout());
+ assertTrue(solo.waitForCondition(() -> UserPreferences.isEnableAutodownload() == true, Timeout.getLargeTimeout()));
final boolean enableAutodownloadOnBattery = UserPreferences.isEnableAutodownloadOnBattery();
solo.clickOnText(solo.getString(R.string.pref_automatic_download_on_battery_title));
- solo.waitForCondition(new Condition() {
- @Override
- public boolean isSatisfied() {
- return enableAutodownloadOnBattery != UserPreferences.isEnableAutodownloadOnBattery();
- }
- }, Timeout.getLargeTimeout());
+ assertTrue(solo.waitForCondition(() -> enableAutodownloadOnBattery != UserPreferences.isEnableAutodownloadOnBattery(), Timeout.getLargeTimeout()));
solo.clickOnText(solo.getString(R.string.pref_automatic_download_on_battery_title));
- solo.waitForCondition(new Condition() {
- @Override
- public boolean isSatisfied() {
- return enableAutodownloadOnBattery == UserPreferences.isEnableAutodownloadOnBattery();
- }
- }, Timeout.getLargeTimeout());
+ assertTrue(solo.waitForCondition(() -> enableAutodownloadOnBattery == UserPreferences.isEnableAutodownloadOnBattery(), Timeout.getLargeTimeout()));
final boolean enableWifiFilter = UserPreferences.isEnableAutodownloadWifiFilter();
solo.clickOnText(solo.getString(R.string.pref_autodl_wifi_filter_title));
- solo.waitForCondition(new Condition() {
- @Override
- public boolean isSatisfied() {
- return enableWifiFilter != UserPreferences.isEnableAutodownloadWifiFilter();
- }
- }, Timeout.getLargeTimeout());
- solo.clickOnText(solo.getString(R.string.pref_automatic_download_on_battery_title));
- solo.waitForCondition(new Condition() {
- @Override
- public boolean isSatisfied() {
- return enableWifiFilter == UserPreferences.isEnableAutodownloadWifiFilter();
- }
- }, Timeout.getLargeTimeout());
+ assertTrue(solo.waitForCondition(() -> enableWifiFilter != UserPreferences.isEnableAutodownloadWifiFilter(), Timeout.getLargeTimeout()));
+ solo.clickOnText(solo.getString(R.string.pref_autodl_wifi_filter_title));
+ assertTrue(solo.waitForCondition(() -> enableWifiFilter == UserPreferences.isEnableAutodownloadWifiFilter(), Timeout.getLargeTimeout()));
+ }
+
+ public void testEpisodeCleanupQueueOnly() {
+ solo.clickOnText(solo.getString(R.string.pref_episode_cleanup_title));
+ solo.waitForText(solo.getString(R.string.episode_cleanup_queue_removal));
+ solo.clickOnText(solo.getString(R.string.episode_cleanup_queue_removal));
+ assertTrue(solo.waitForCondition(() -> {
+ EpisodeCleanupAlgorithm alg = UserPreferences.getEpisodeCleanupAlgorithm();
+ return alg instanceof APQueueCleanupAlgorithm;
+ },
+ Timeout.getLargeTimeout()));
+ }
+
+ public void testEpisodeCleanupNeverAlg() {
+ solo.clickOnText(solo.getString(R.string.pref_episode_cleanup_title));
+ solo.waitForText(solo.getString(R.string.episode_cleanup_never));
+ solo.clickOnText(solo.getString(R.string.episode_cleanup_never));
+ assertTrue(solo.waitForCondition(() -> {
+ EpisodeCleanupAlgorithm alg = UserPreferences.getEpisodeCleanupAlgorithm();
+ return alg instanceof APNullCleanupAlgorithm;
+ },
+ Timeout.getLargeTimeout()));
}
+
+ public void testEpisodeCleanupClassic() {
+ solo.clickOnText(solo.getString(R.string.pref_episode_cleanup_title));
+ solo.waitForText(solo.getString(R.string.episode_cleanup_after_listening));
+ solo.clickOnText(solo.getString(R.string.episode_cleanup_after_listening));
+ assertTrue(solo.waitForCondition(() -> {
+ EpisodeCleanupAlgorithm alg = UserPreferences.getEpisodeCleanupAlgorithm();
+ if (alg instanceof APCleanupAlgorithm) {
+ APCleanupAlgorithm cleanupAlg = (APCleanupAlgorithm)alg;
+ return cleanupAlg.getNumberOfDaysAfterPlayback() == 0;
+ }
+ return false;
+ },
+ Timeout.getLargeTimeout()));
+ }
+
+ public void testEpisodeCleanupNumDays() {
+ solo.clickOnText(solo.getString(R.string.pref_episode_cleanup_title));
+ solo.waitForText(solo.getString(R.string.episode_cleanup_after_listening));
+ solo.clickOnText("5");
+ assertTrue(solo.waitForCondition(() -> {
+ EpisodeCleanupAlgorithm alg = UserPreferences.getEpisodeCleanupAlgorithm();
+ if (alg instanceof APCleanupAlgorithm) {
+ APCleanupAlgorithm cleanupAlg = (APCleanupAlgorithm)alg;
+ return cleanupAlg.getNumberOfDaysAfterPlayback() == 5;
+ }
+ return false;
+ },
+ Timeout.getLargeTimeout()));
+ }
+
}