summaryrefslogtreecommitdiff
path: root/app/src/androidTest/java/de/test/antennapod
diff options
context:
space:
mode:
authorMartin Fietz <Martin.Fietz@gmail.com>2015-04-22 09:53:48 +0200
committerMartin Fietz <Martin.Fietz@gmail.com>2015-04-22 09:53:48 +0200
commitb253289b1f90783db536a490b63530b72df2ea8b (patch)
treeca35f92e2a96dc1aadd3ae89b48af154f2e5d7b8 /app/src/androidTest/java/de/test/antennapod
parent75d9c6ec7bb316ee677da2dc9bb3b187d0958a19 (diff)
parent8ed0353c48de056086e5b82977d6660826c130bc (diff)
downloadAntennaPod-b253289b1f90783db536a490b63530b72df2ea8b.zip
Merge pull request #759 from mfietz/nav_drawer_preferences
Nav Drawer Preferences
Diffstat (limited to 'app/src/androidTest/java/de/test/antennapod')
-rw-r--r--app/src/androidTest/java/de/test/antennapod/ui/MainActivityTest.java103
1 files changed, 95 insertions, 8 deletions
diff --git a/app/src/androidTest/java/de/test/antennapod/ui/MainActivityTest.java b/app/src/androidTest/java/de/test/antennapod/ui/MainActivityTest.java
index bbcc4ce5c..470866c3c 100644
--- a/app/src/androidTest/java/de/test/antennapod/ui/MainActivityTest.java
+++ b/app/src/androidTest/java/de/test/antennapod/ui/MainActivityTest.java
@@ -7,11 +7,21 @@ import android.widget.ListView;
import com.robotium.solo.Solo;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+
import de.danoeh.antennapod.R;
import de.danoeh.antennapod.activity.DefaultOnlineFeedViewActivity;
import de.danoeh.antennapod.activity.MainActivity;
import de.danoeh.antennapod.core.feed.Feed;
+import de.danoeh.antennapod.core.preferences.UserPreferences;
import de.danoeh.antennapod.core.storage.PodDBAdapter;
+import de.danoeh.antennapod.fragment.AllEpisodesFragment;
+import de.danoeh.antennapod.fragment.DownloadsFragment;
+import de.danoeh.antennapod.fragment.NewEpisodesFragment;
+import de.danoeh.antennapod.fragment.PlaybackHistoryFragment;
+import de.danoeh.antennapod.fragment.QueueFragment;
import de.danoeh.antennapod.preferences.PreferenceController;
/**
@@ -22,6 +32,8 @@ public class MainActivityTest extends ActivityInstrumentationTestCase2<MainActiv
private Solo solo;
private UITestUtils uiTestUtils;
+ private SharedPreferences prefs;
+
public MainActivityTest() {
super(MainActivity.class);
}
@@ -38,7 +50,7 @@ public class MainActivityTest extends ActivityInstrumentationTestCase2<MainActiv
adapter.close();
// override first launch preference
- SharedPreferences prefs = getInstrumentation().getTargetContext().getSharedPreferences(MainActivity.PREF_NAME, Context.MODE_PRIVATE);
+ prefs = getInstrumentation().getTargetContext().getSharedPreferences(MainActivity.PREF_NAME, Context.MODE_PRIVATE);
prefs.edit().putBoolean(MainActivity.PREF_IS_FIRST_LAUNCH, false).commit();
}
@@ -46,7 +58,12 @@ public class MainActivityTest extends ActivityInstrumentationTestCase2<MainActiv
protected void tearDown() throws Exception {
uiTestUtils.tearDown();
solo.finishOpenedActivities();
+
PodDBAdapter.deleteDatabase(getInstrumentation().getTargetContext());
+
+ // reset preferences
+ prefs.edit().clear().commit();
+
super.tearDown();
}
@@ -71,11 +88,13 @@ public class MainActivityTest extends ActivityInstrumentationTestCase2<MainActiv
public void testClickNavDrawer() throws Exception {
uiTestUtils.addLocalFeedData(false);
- // all episodes
+ UserPreferences.setHiddenDrawerItems(getInstrumentation().getTargetContext(), new ArrayList<String>());
+
+ // queue
openNavDrawer();
- solo.clickOnText(solo.getString(R.string.all_episodes_label));
+ solo.clickOnText(solo.getString(R.string.queue_label));
solo.waitForView(android.R.id.list);
- assertEquals(solo.getString(R.string.all_episodes_label), getActionbarTitle());
+ assertEquals(solo.getString(R.string.queue_label), getActionbarTitle());
// new episodes
openNavDrawer();
@@ -83,11 +102,11 @@ public class MainActivityTest extends ActivityInstrumentationTestCase2<MainActiv
solo.waitForView(android.R.id.list);
assertEquals(solo.getString(R.string.new_episodes_label), getActionbarTitle());
- // queue
+ // all episodes
openNavDrawer();
- solo.clickOnText(solo.getString(R.string.queue_label));
+ solo.clickOnText(solo.getString(R.string.all_episodes_label));
solo.waitForView(android.R.id.list);
- assertEquals(solo.getString(R.string.queue_label), getActionbarTitle());
+ assertEquals(solo.getString(R.string.all_episodes_label), getActionbarTitle());
// downloads
openNavDrawer();
@@ -125,7 +144,75 @@ public class MainActivityTest extends ActivityInstrumentationTestCase2<MainActiv
public void testGoToPreferences() {
openNavDrawer();
- solo.clickOnMenuItem(solo.getString(R.string.settings_label));
+ solo.clickOnText(solo.getString(R.string.settings_label));
solo.waitForActivity(PreferenceController.getPreferenceActivity());
}
+
+ public void testDrawerPreferencesHideSomeElements() {
+ UserPreferences.setHiddenDrawerItems(getInstrumentation().getTargetContext(), new ArrayList<String>());
+ openNavDrawer();
+ solo.clickLongOnText(solo.getString(R.string.queue_label));
+ solo.waitForDialogToOpen();
+ solo.clickOnText(solo.getString(R.string.all_episodes_label));
+ solo.clickOnText(solo.getString(R.string.playback_history_label));
+ solo.clickOnText(solo.getString(R.string.confirm_label));
+ solo.waitForDialogToClose();
+ List<String> hidden = UserPreferences.getHiddenDrawerItems();
+ assertEquals(2, hidden.size());
+ assertTrue(hidden.contains(AllEpisodesFragment.TAG));
+ assertTrue(hidden.contains(PlaybackHistoryFragment.TAG));
+ }
+
+ public void testDrawerPreferencesUnhideSomeElements() {
+ List<String> hidden = Arrays.asList(NewEpisodesFragment.TAG, DownloadsFragment.TAG);
+ UserPreferences.setHiddenDrawerItems(getInstrumentation().getTargetContext(), hidden);
+ openNavDrawer();
+ solo.clickLongOnText(solo.getString(R.string.queue_label));
+ solo.waitForDialogToOpen();
+ solo.clickOnText(solo.getString(R.string.downloads_label));
+ solo.clickOnText(solo.getString(R.string.queue_label));
+ solo.clickOnText(solo.getString(R.string.confirm_label));
+ solo.waitForDialogToClose();
+ hidden = UserPreferences.getHiddenDrawerItems();
+ assertEquals(2, hidden.size());
+ assertTrue(hidden.contains(QueueFragment.TAG));
+ assertTrue(hidden.contains(NewEpisodesFragment.TAG));
+ }
+
+ public void testDrawerPreferencesHideAllElements() {
+ UserPreferences.setHiddenDrawerItems(getInstrumentation().getTargetContext(), new ArrayList<String>());
+ String[] titles = getInstrumentation().getTargetContext().getResources().getStringArray(R.array.nav_drawer_titles);
+
+ openNavDrawer();
+ solo.clickLongOnText(solo.getString(R.string.queue_label));
+ solo.waitForDialogToOpen();
+ for(String title : titles) {
+ solo.clickOnText(title);
+ }
+ solo.clickOnText(solo.getString(R.string.confirm_label));
+ solo.waitForDialogToClose();
+ List<String> hidden = UserPreferences.getHiddenDrawerItems();
+ assertEquals(6, hidden.size());
+ for(String tag : MainActivity.NAV_DRAWER_TAGS) {
+ assertTrue(hidden.contains(tag));
+ }
+ }
+
+ public void testDrawerPreferencesHideCurrentElement() {
+ UserPreferences.setHiddenDrawerItems(getInstrumentation().getTargetContext(), new ArrayList<String>());
+
+ openNavDrawer();
+ String downloads = solo.getString(R.string.downloads_label);
+ solo.clickOnText(downloads);
+ solo.waitForView(android.R.id.list);
+ openNavDrawer();
+ solo.clickLongOnText(downloads);
+ solo.waitForDialogToOpen();
+ solo.clickOnText(downloads);
+ solo.clickOnText(solo.getString(R.string.confirm_label));
+ solo.waitForDialogToClose();
+ List<String> hidden = UserPreferences.getHiddenDrawerItems();
+ assertEquals(1, hidden.size());
+ assertTrue(hidden.contains(DownloadsFragment.TAG));
+ }
}