summaryrefslogtreecommitdiff
path: root/app/src/androidTest/java
diff options
context:
space:
mode:
Diffstat (limited to 'app/src/androidTest/java')
-rw-r--r--app/src/androidTest/java/de/test/antennapod/EspressoTestUtils.java32
-rw-r--r--app/src/androidTest/java/de/test/antennapod/service/playback/PlaybackServiceMediaPlayerTest.java12
-rw-r--r--app/src/androidTest/java/de/test/antennapod/ui/MainActivityTest.java47
-rw-r--r--app/src/androidTest/java/de/test/antennapod/ui/NavigationDrawerTest.java135
-rw-r--r--app/src/androidTest/java/de/test/antennapod/ui/PlaybackSonicTest.java16
-rw-r--r--app/src/androidTest/java/de/test/antennapod/ui/PlaybackTest.java4
-rw-r--r--app/src/androidTest/java/de/test/antennapod/ui/PreferencesTest.java2
-rw-r--r--app/src/androidTest/java/de/test/antennapod/ui/QueueFragmentTest.java58
-rw-r--r--app/src/androidTest/java/de/test/antennapod/ui/UITestUtils.java2
-rw-r--r--app/src/androidTest/java/de/test/antennapod/util/service/download/HTTPBin.java14
10 files changed, 161 insertions, 161 deletions
diff --git a/app/src/androidTest/java/de/test/antennapod/EspressoTestUtils.java b/app/src/androidTest/java/de/test/antennapod/EspressoTestUtils.java
index 50109c71a..9e86275fc 100644
--- a/app/src/androidTest/java/de/test/antennapod/EspressoTestUtils.java
+++ b/app/src/androidTest/java/de/test/antennapod/EspressoTestUtils.java
@@ -1,6 +1,7 @@
package de.test.antennapod;
import android.content.Context;
+import android.content.SharedPreferences;
import android.support.annotation.StringRes;
import android.support.test.InstrumentationRegistry;
import android.support.test.espresso.PerformException;
@@ -12,6 +13,10 @@ import android.support.test.espresso.util.HumanReadables;
import android.support.test.espresso.util.TreeIterables;
import android.view.View;
import de.danoeh.antennapod.R;
+import de.danoeh.antennapod.activity.MainActivity;
+import de.danoeh.antennapod.core.storage.PodDBAdapter;
+import de.danoeh.antennapod.dialog.RatingDialog;
+import de.danoeh.antennapod.fragment.QueueFragment;
import org.hamcrest.Matcher;
import java.io.File;
@@ -74,7 +79,7 @@ public class EspressoTestUtils {
/**
* Clear all app databases
*/
- public static void clearAppData() {
+ public static void clearPreferences() {
File root = InstrumentationRegistry.getTargetContext().getFilesDir().getParentFile();
String[] sharedPreferencesFileNames = new File(root, "shared_prefs").list();
for (String fileName : sharedPreferencesFileNames) {
@@ -84,6 +89,31 @@ public class EspressoTestUtils {
}
}
+ public static void makeNotFirstRun() {
+ InstrumentationRegistry.getTargetContext().getSharedPreferences(MainActivity.PREF_NAME, Context.MODE_PRIVATE)
+ .edit()
+ .putBoolean(MainActivity.PREF_IS_FIRST_LAUNCH, false)
+ .commit();
+
+ RatingDialog.init(InstrumentationRegistry.getTargetContext());
+ RatingDialog.saveRated();
+ }
+
+ public static void setLastNavFragment(String tag) {
+ InstrumentationRegistry.getTargetContext().getSharedPreferences(MainActivity.PREF_NAME, Context.MODE_PRIVATE)
+ .edit()
+ .putString(MainActivity.PREF_LAST_FRAGMENT_TAG, tag)
+ .commit();
+ }
+
+ public static void clearDatabase() {
+ PodDBAdapter.init(InstrumentationRegistry.getTargetContext());
+ PodDBAdapter.deleteDatabase();
+ PodDBAdapter adapter = PodDBAdapter.getInstance();
+ adapter.open();
+ adapter.close();
+ }
+
public static void clickPreference(@StringRes int title) {
onView(withId(R.id.list)).perform(
RecyclerViewActions.actionOnItem(hasDescendant(withText(title)),
diff --git a/app/src/androidTest/java/de/test/antennapod/service/playback/PlaybackServiceMediaPlayerTest.java b/app/src/androidTest/java/de/test/antennapod/service/playback/PlaybackServiceMediaPlayerTest.java
index 63ea697e9..d1ca25ad3 100644
--- a/app/src/androidTest/java/de/test/antennapod/service/playback/PlaybackServiceMediaPlayerTest.java
+++ b/app/src/androidTest/java/de/test/antennapod/service/playback/PlaybackServiceMediaPlayerTest.java
@@ -64,15 +64,11 @@ public class PlaybackServiceMediaPlayerTest {
@Before
public void setUp() throws Exception {
assertionError = null;
- EspressoTestUtils.clearAppData();
- final Context context = InstrumentationRegistry.getTargetContext();
+ EspressoTestUtils.clearPreferences();
+ EspressoTestUtils.makeNotFirstRun();
+ EspressoTestUtils.clearDatabase();
- // create new database
- PodDBAdapter.init(context);
- PodDBAdapter.deleteDatabase();
- PodDBAdapter adapter = PodDBAdapter.getInstance();
- adapter.open();
- adapter.close();
+ final Context context = InstrumentationRegistry.getTargetContext();
httpServer = new HTTPBin();
httpServer.start();
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 d013ab9cf..0c65bb2e6 100644
--- a/app/src/androidTest/java/de/test/antennapod/ui/MainActivityTest.java
+++ b/app/src/androidTest/java/de/test/antennapod/ui/MainActivityTest.java
@@ -5,8 +5,7 @@ import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.support.test.InstrumentationRegistry;
-import android.support.test.espresso.intent.Intents;
-import android.support.test.rule.ActivityTestRule;
+import android.support.test.espresso.intent.rule.IntentsTestRule;
import android.support.test.runner.AndroidJUnit4;
import com.robotium.solo.Solo;
import com.robotium.solo.Timeout;
@@ -29,7 +28,6 @@ import static android.support.test.InstrumentationRegistry.getInstrumentation;
import static android.support.test.espresso.Espresso.onView;
import static android.support.test.espresso.action.ViewActions.click;
import static android.support.test.espresso.contrib.ActivityResultMatchers.hasResultCode;
-import static android.support.test.espresso.matcher.ViewMatchers.withId;
import static android.support.test.espresso.matcher.ViewMatchers.withText;
import static de.test.antennapod.EspressoTestUtils.clickPreference;
import static de.test.antennapod.EspressoTestUtils.openNavDrawer;
@@ -45,47 +43,28 @@ public class MainActivityTest {
private Solo solo;
private UITestUtils uiTestUtils;
- private SharedPreferences prefs;
@Rule
- public ActivityTestRule<MainActivity> mActivityRule = new ActivityTestRule<>(MainActivity.class, false, false);
+ public IntentsTestRule<MainActivity> mActivityRule = new IntentsTestRule<>(MainActivity.class, false, false);
@Before
public void setUp() throws IOException {
- // override first launch preference
- // do this BEFORE calling getActivity()!
- EspressoTestUtils.clearAppData();
- prefs = InstrumentationRegistry.getContext()
- .getSharedPreferences(MainActivity.PREF_NAME, Context.MODE_PRIVATE);
- prefs.edit().putBoolean(MainActivity.PREF_IS_FIRST_LAUNCH, false).commit();
+ EspressoTestUtils.clearPreferences();
+ EspressoTestUtils.makeNotFirstRun();
+ EspressoTestUtils.clearDatabase();
mActivityRule.launchActivity(new Intent());
- Intents.init();
- Context context = mActivityRule.getActivity();
- uiTestUtils = new UITestUtils(context);
+ uiTestUtils = new UITestUtils(InstrumentationRegistry.getTargetContext());
uiTestUtils.setup();
- // create new database
- PodDBAdapter.init(context);
- PodDBAdapter.deleteDatabase();
- PodDBAdapter adapter = PodDBAdapter.getInstance();
- adapter.open();
- adapter.close();
-
- RatingDialog.init(context);
- RatingDialog.saveRated();
-
solo = new Solo(getInstrumentation(), mActivityRule.getActivity());
}
@After
public void tearDown() throws Exception {
uiTestUtils.tearDown();
- solo.finishOpenedActivities();
- Intents.release();
PodDBAdapter.deleteDatabase();
- prefs.edit().clear().commit();
}
@Test
@@ -93,13 +72,10 @@ public class MainActivityTest {
uiTestUtils.addHostedFeedData();
final Feed feed = uiTestUtils.hostedFeeds.get(0);
openNavDrawer();
- solo.clickOnText(solo.getString(R.string.add_feed_label));
+ onView(withText(R.string.add_feed_label)).perform(click());
solo.enterText(1, feed.getDownload_url());
- solo.clickOnButton(solo.getString(R.string.confirm_label));
- solo.waitForActivity(OnlineFeedViewActivity.class);
- solo.waitForView(R.id.butSubscribe);
- assertEquals(solo.getString(R.string.subscribe_label), solo.getButton(0).getText().toString());
- solo.clickOnButton(0);
+ onView(withText(R.string.confirm_label)).perform(click());
+ onView(withText(R.string.subscribe_label)).perform(click());
assertTrue(solo.waitForText(solo.getString(R.string.open_podcast), 0, Timeout.getLargeTimeout(), false));
}
@@ -119,7 +95,6 @@ public class MainActivityTest {
onView(withText(R.string.confirm_label)).perform(click());
solo.goBackToActivity(MainActivity.class.getSimpleName());
- solo.goBack(); // Close nav drawer
solo.goBack();
assertEquals(solo.getString(R.string.subscriptions_label), getActionbarTitle());
}
@@ -132,7 +107,6 @@ public class MainActivityTest {
clickPreference(R.string.pref_back_button_behavior_title);
onView(withText(R.string.back_button_open_drawer)).perform(click());
solo.goBackToActivity(MainActivity.class.getSimpleName());
- solo.goBack(); // Close nav drawer
solo.goBack();
assertTrue(((MainActivity)solo.getCurrentActivity()).isDrawerOpen());
}
@@ -145,7 +119,6 @@ public class MainActivityTest {
clickPreference(R.string.pref_back_button_behavior_title);
onView(withText(R.string.back_button_double_tap)).perform(click());
solo.goBackToActivity(MainActivity.class.getSimpleName());
- solo.goBack(); // Close nav drawer
solo.goBack();
solo.goBack();
assertThat(mActivityRule.getActivityResult(), hasResultCode(Activity.RESULT_CANCELED));
@@ -159,7 +132,6 @@ public class MainActivityTest {
clickPreference(R.string.pref_back_button_behavior_title);
onView(withText(R.string.back_button_show_prompt)).perform(click());
solo.goBackToActivity(MainActivity.class.getSimpleName());
- solo.goBack(); // Close nav drawer
solo.goBack();
onView(withText(R.string.yes)).perform(click());
Thread.sleep(100);
@@ -174,7 +146,6 @@ public class MainActivityTest {
clickPreference(R.string.pref_back_button_behavior_title);
onView(withText(R.string.back_button_default)).perform(click());
solo.goBackToActivity(MainActivity.class.getSimpleName());
- solo.goBack(); // Close nav drawer
solo.goBack();
assertThat(mActivityRule.getActivityResult(), hasResultCode(Activity.RESULT_CANCELED));
}
diff --git a/app/src/androidTest/java/de/test/antennapod/ui/NavigationDrawerTest.java b/app/src/androidTest/java/de/test/antennapod/ui/NavigationDrawerTest.java
index 0ed62010b..548843636 100644
--- a/app/src/androidTest/java/de/test/antennapod/ui/NavigationDrawerTest.java
+++ b/app/src/androidTest/java/de/test/antennapod/ui/NavigationDrawerTest.java
@@ -4,13 +4,11 @@ import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.support.test.InstrumentationRegistry;
+import android.support.test.espresso.ViewInteraction;
import android.support.test.espresso.contrib.DrawerActions;
-import android.support.test.espresso.intent.Intents;
-import android.support.test.filters.FlakyTest;
-import android.support.test.rule.ActivityTestRule;
+import android.support.test.espresso.intent.rule.IntentsTestRule;
import android.support.test.runner.AndroidJUnit4;
-import android.widget.ListView;
-import com.robotium.solo.Solo;
+import android.view.View;
import de.danoeh.antennapod.R;
import de.danoeh.antennapod.activity.MainActivity;
import de.danoeh.antennapod.activity.PreferenceActivity;
@@ -23,6 +21,7 @@ import de.danoeh.antennapod.fragment.EpisodesFragment;
import de.danoeh.antennapod.fragment.PlaybackHistoryFragment;
import de.danoeh.antennapod.fragment.QueueFragment;
import de.test.antennapod.EspressoTestUtils;
+import org.hamcrest.Matcher;
import org.junit.After;
import org.junit.Before;
import org.junit.Rule;
@@ -34,20 +33,20 @@ import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
-import static android.support.test.InstrumentationRegistry.getInstrumentation;
import static android.support.test.espresso.Espresso.onView;
import static android.support.test.espresso.action.ViewActions.click;
import static android.support.test.espresso.action.ViewActions.longClick;
+import static android.support.test.espresso.action.ViewActions.scrollTo;
import static android.support.test.espresso.intent.Intents.intended;
import static android.support.test.espresso.intent.matcher.IntentMatchers.hasComponent;
import static android.support.test.espresso.matcher.ViewMatchers.isRoot;
import static android.support.test.espresso.matcher.ViewMatchers.withId;
import static android.support.test.espresso.matcher.ViewMatchers.withText;
-import static de.test.antennapod.NthMatcher.first;
import static de.test.antennapod.EspressoTestUtils.waitForView;
+import static de.test.antennapod.NthMatcher.first;
import static junit.framework.TestCase.assertTrue;
+import static org.hamcrest.Matchers.allOf;
import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.fail;
/**
* User interface tests for MainActivity drawer
@@ -55,49 +54,24 @@ import static org.junit.Assert.fail;
@RunWith(AndroidJUnit4.class)
public class NavigationDrawerTest {
- private Solo solo;
private UITestUtils uiTestUtils;
- private SharedPreferences prefs;
@Rule
- public ActivityTestRule<MainActivity> mActivityRule = new ActivityTestRule<>(MainActivity.class, false, false);
+ public IntentsTestRule<MainActivity> mActivityRule = new IntentsTestRule<>(MainActivity.class, false, false);
@Before
public void setUp() throws IOException {
- // override first launch preference
- // do this BEFORE calling getActivity()!
- EspressoTestUtils.clearAppData();
- prefs = InstrumentationRegistry.getContext()
- .getSharedPreferences(MainActivity.PREF_NAME, Context.MODE_PRIVATE);
- prefs.edit().putBoolean(MainActivity.PREF_IS_FIRST_LAUNCH, false).commit();
-
- mActivityRule.launchActivity(new Intent());
-
- Intents.init();
- Context context = mActivityRule.getActivity();
- uiTestUtils = new UITestUtils(context);
+ uiTestUtils = new UITestUtils(InstrumentationRegistry.getTargetContext());
uiTestUtils.setup();
- // create new database
- PodDBAdapter.init(context);
- PodDBAdapter.deleteDatabase();
- PodDBAdapter adapter = PodDBAdapter.getInstance();
- adapter.open();
- adapter.close();
-
- RatingDialog.init(context);
- RatingDialog.saveRated();
-
- solo = new Solo(getInstrumentation(), mActivityRule.getActivity());
+ EspressoTestUtils.clearPreferences();
+ EspressoTestUtils.makeNotFirstRun();
+ EspressoTestUtils.clearDatabase();
}
@After
public void tearDown() throws Exception {
uiTestUtils.tearDown();
- solo.finishOpenedActivities();
- Intents.release();
- PodDBAdapter.deleteDatabase();
- prefs.edit().clear().commit();
}
private void openNavDrawer() {
@@ -105,69 +79,66 @@ public class NavigationDrawerTest {
onView(withId(R.id.drawer_layout)).perform(DrawerActions.open());
}
+ private ViewInteraction onDrawerItem(Matcher<View> viewMatcher) {
+ return onView(allOf(viewMatcher, withId(R.id.txtvTitle)));
+ }
+
@Test
- @FlakyTest
public void testClickNavDrawer() throws Exception {
uiTestUtils.addLocalFeedData(false);
-
- setHiddenDrawerItems(new ArrayList<>());
+ UserPreferences.setHiddenDrawerItems(new ArrayList<>());
+ mActivityRule.launchActivity(new Intent());
+ MainActivity activity = mActivityRule.getActivity();
// queue
openNavDrawer();
- solo.clickOnText(solo.getString(R.string.queue_label));
- solo.waitForView(R.id.recyclerView);
- assertEquals(solo.getString(R.string.queue_label), getActionbarTitle());
+ onDrawerItem(withText(R.string.queue_label)).perform(click());
+ onView(isRoot()).perform(waitForView(withId(R.id.recyclerView), 1000));
+ assertEquals(activity.getString(R.string.queue_label), activity.getSupportActionBar().getTitle());
// episodes
openNavDrawer();
- solo.clickOnText(solo.getString(R.string.episodes_label));
- solo.waitForView(android.R.id.list);
- assertEquals(solo.getString(R.string.episodes_label), getActionbarTitle());
+ onDrawerItem(withText(R.string.episodes_label)).perform(click());
+ onView(isRoot()).perform(waitForView(withId(android.R.id.list), 1000));
+ assertEquals(activity.getString(R.string.episodes_label), activity.getSupportActionBar().getTitle());
// Subscriptions
openNavDrawer();
- solo.clickOnText(solo.getString(R.string.subscriptions_label));
- solo.waitForView(R.id.subscriptions_grid);
- assertEquals(solo.getString(R.string.subscriptions_label), getActionbarTitle());
+ onDrawerItem(withText(R.string.subscriptions_label)).perform(click());
+ onView(isRoot()).perform(waitForView(withId(R.id.subscriptions_grid), 1000));
+ assertEquals(activity.getString(R.string.subscriptions_label), activity.getSupportActionBar().getTitle());
// downloads
openNavDrawer();
- solo.clickOnText(solo.getString(R.string.downloads_label));
- solo.waitForView(android.R.id.list);
- assertEquals(solo.getString(R.string.downloads_label), getActionbarTitle());
+ onDrawerItem(withText(R.string.downloads_label)).perform(click());
+ onView(isRoot()).perform(waitForView(withId(android.R.id.list), 1000));
+ assertEquals(activity.getString(R.string.downloads_label), activity.getSupportActionBar().getTitle());
// playback history
openNavDrawer();
- solo.clickOnText(solo.getString(R.string.playback_history_label));
- solo.waitForView(android.R.id.list);
- assertEquals(solo.getString(R.string.playback_history_label), getActionbarTitle());
+ onDrawerItem(withText(R.string.playback_history_label)).perform(click());
+ onView(isRoot()).perform(waitForView(withId(android.R.id.list), 1000));
+ assertEquals(activity.getString(R.string.playback_history_label), activity.getSupportActionBar().getTitle());
// add podcast
openNavDrawer();
- solo.clickOnText(solo.getString(R.string.add_feed_label));
- solo.waitForView(R.id.txtvFeedurl);
- assertEquals(solo.getString(R.string.add_feed_label), getActionbarTitle());
+ onDrawerItem(withText(R.string.add_feed_label)).perform(click());
+ onView(isRoot()).perform(waitForView(withId(R.id.txtvFeedurl), 1000));
+ assertEquals(activity.getString(R.string.add_feed_label), activity.getSupportActionBar().getTitle());
// podcasts
- ListView list = (ListView) solo.getView(R.id.nav_list);
for (int i = 0; i < uiTestUtils.hostedFeeds.size(); i++) {
Feed f = uiTestUtils.hostedFeeds.get(i);
openNavDrawer();
- solo.scrollListToLine(list, i);
- solo.clickOnText(f.getTitle());
- solo.waitForView(android.R.id.list);
- assertEquals("", getActionbarTitle());
+ onDrawerItem(withText(f.getTitle())).perform(scrollTo(), click());
+ onView(isRoot()).perform(waitForView(withId(android.R.id.list), 1000));
+ assertEquals("", activity.getSupportActionBar().getTitle());
}
}
- private String getActionbarTitle() {
- return ((MainActivity) solo.getCurrentActivity()).getSupportActionBar().getTitle().toString();
- }
-
-
@Test
- @FlakyTest
public void testGoToPreferences() {
+ mActivityRule.launchActivity(new Intent());
openNavDrawer();
onView(withText(R.string.settings_label)).perform(click());
intended(hasComponent(PreferenceActivity.class.getName()));
@@ -175,9 +146,10 @@ public class NavigationDrawerTest {
@Test
public void testDrawerPreferencesHideSomeElements() {
- setHiddenDrawerItems(new ArrayList<>());
+ UserPreferences.setHiddenDrawerItems(new ArrayList<>());
+ mActivityRule.launchActivity(new Intent());
openNavDrawer();
- onView(first(withText(R.string.queue_label))).perform(longClick());
+ onDrawerItem(withText(R.string.queue_label)).perform(longClick());
onView(withText(R.string.episodes_label)).perform(click());
onView(withText(R.string.playback_history_label)).perform(click());
onView(withText(R.string.confirm_label)).perform(click());
@@ -191,7 +163,8 @@ public class NavigationDrawerTest {
@Test
public void testDrawerPreferencesUnhideSomeElements() {
List<String> hidden = Arrays.asList(PlaybackHistoryFragment.TAG, DownloadsFragment.TAG);
- setHiddenDrawerItems(hidden);
+ UserPreferences.setHiddenDrawerItems(hidden);
+ mActivityRule.launchActivity(new Intent());
openNavDrawer();
onView(first(withText(R.string.queue_label))).perform(longClick());
@@ -208,7 +181,8 @@ public class NavigationDrawerTest {
@Test
public void testDrawerPreferencesHideAllElements() {
- setHiddenDrawerItems(new ArrayList<>());
+ UserPreferences.setHiddenDrawerItems(new ArrayList<>());
+ mActivityRule.launchActivity(new Intent());
String[] titles = mActivityRule.getActivity().getResources().getStringArray(R.array.nav_drawer_titles);
openNavDrawer();
@@ -227,7 +201,8 @@ public class NavigationDrawerTest {
@Test
public void testDrawerPreferencesHideCurrentElement() {
- setHiddenDrawerItems(new ArrayList<>());
+ UserPreferences.setHiddenDrawerItems(new ArrayList<>());
+ mActivityRule.launchActivity(new Intent());
openNavDrawer();
onView(withText(R.string.downloads_label)).perform(click());
openNavDrawer();
@@ -240,14 +215,4 @@ public class NavigationDrawerTest {
assertEquals(1, hidden.size());
assertTrue(hidden.contains(DownloadsFragment.TAG));
}
-
- private void setHiddenDrawerItems(List<String> items) {
- UserPreferences.setHiddenDrawerItems(items);
- try {
- mActivityRule.runOnUiThread(() -> mActivityRule.getActivity().updateNavDrawer());
- } catch (Throwable throwable) {
- throwable.printStackTrace();
- fail();
- }
- }
}
diff --git a/app/src/androidTest/java/de/test/antennapod/ui/PlaybackSonicTest.java b/app/src/androidTest/java/de/test/antennapod/ui/PlaybackSonicTest.java
index 6b41ad0ea..22959917d 100644
--- a/app/src/androidTest/java/de/test/antennapod/ui/PlaybackSonicTest.java
+++ b/app/src/androidTest/java/de/test/antennapod/ui/PlaybackSonicTest.java
@@ -52,12 +52,11 @@ public class PlaybackSonicTest {
@Before
public void setUp() throws Exception {
- EspressoTestUtils.clearAppData();
+ EspressoTestUtils.clearPreferences();
+ EspressoTestUtils.makeNotFirstRun();
+ EspressoTestUtils.clearDatabase();
context = InstrumentationRegistry.getTargetContext();
- PodDBAdapter.init(context);
- PodDBAdapter.deleteDatabase();
-
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context);
prefs.edit()
.clear()
@@ -71,11 +70,6 @@ public class PlaybackSonicTest {
uiTestUtils = new UITestUtils(context);
uiTestUtils.setup();
-
- // create database
- PodDBAdapter adapter = PodDBAdapter.getInstance();
- adapter.open();
- adapter.close();
}
@After
@@ -122,7 +116,7 @@ public class PlaybackSonicTest {
solo.clickOnText(solo.getString(R.string.all_episodes_short_label));
getInstrumentation().waitForIdleSync();
- final List<FeedItem> episodes = DBReader.getRecentlyPublishedEpisodes(10);
+ final List<FeedItem> episodes = DBReader.getRecentlyPublishedEpisodes(0, 10);
assertTrue(solo.waitForView(solo.getView(R.id.butSecondaryAction)));
solo.clickOnView(solo.getView(R.id.butSecondaryAction));
@@ -241,7 +235,7 @@ public class PlaybackSonicTest {
setContinuousPlaybackPreference(followQueue);
uiTestUtils.addLocalFeedData(true);
DBWriter.clearQueue().get();
- final List<FeedItem> episodes = DBReader.getRecentlyPublishedEpisodes(10);
+ final List<FeedItem> episodes = DBReader.getRecentlyPublishedEpisodes(0, 10);
startLocalPlayback();
long mediaId = episodes.get(0).getMedia().getId();
diff --git a/app/src/androidTest/java/de/test/antennapod/ui/PlaybackTest.java b/app/src/androidTest/java/de/test/antennapod/ui/PlaybackTest.java
index 099549a69..b302bcc91 100644
--- a/app/src/androidTest/java/de/test/antennapod/ui/PlaybackTest.java
+++ b/app/src/androidTest/java/de/test/antennapod/ui/PlaybackTest.java
@@ -114,7 +114,7 @@ public class PlaybackTest {
solo.waitForText(solo.getString(R.string.all_episodes_short_label));
solo.clickOnText(solo.getString(R.string.all_episodes_short_label));
- final List<FeedItem> episodes = DBReader.getRecentlyPublishedEpisodes(10);
+ final List<FeedItem> episodes = DBReader.getRecentlyPublishedEpisodes(0, 10);
assertTrue(solo.waitForView(solo.getView(R.id.butSecondaryAction)));
solo.clickOnView(solo.getView(R.id.butSecondaryAction));
@@ -231,7 +231,7 @@ public class PlaybackTest {
setContinuousPlaybackPreference(followQueue);
uiTestUtils.addLocalFeedData(true);
DBWriter.clearQueue().get();
- final List<FeedItem> episodes = DBReader.getRecentlyPublishedEpisodes(10);
+ final List<FeedItem> episodes = DBReader.getRecentlyPublishedEpisodes(0, 10);
startLocalPlayback();
long mediaId = episodes.get(0).getMedia().getId();
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 4b2dc75a9..1063ac90a 100644
--- a/app/src/androidTest/java/de/test/antennapod/ui/PreferencesTest.java
+++ b/app/src/androidTest/java/de/test/antennapod/ui/PreferencesTest.java
@@ -49,7 +49,7 @@ public class PreferencesTest {
@Before
public void setUp() {
- EspressoTestUtils.clearAppData();
+ EspressoTestUtils.clearPreferences();
mActivityRule.launchActivity(new Intent());
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(mActivityRule.getActivity());
prefs.edit().putBoolean(UserPreferences.PREF_ENABLE_AUTODL, true).commit();
diff --git a/app/src/androidTest/java/de/test/antennapod/ui/QueueFragmentTest.java b/app/src/androidTest/java/de/test/antennapod/ui/QueueFragmentTest.java
new file mode 100644
index 000000000..d1023dd9e
--- /dev/null
+++ b/app/src/androidTest/java/de/test/antennapod/ui/QueueFragmentTest.java
@@ -0,0 +1,58 @@
+package de.test.antennapod.ui;
+
+import android.content.Intent;
+import android.support.test.espresso.Espresso;
+import android.support.test.espresso.intent.rule.IntentsTestRule;
+import android.support.test.runner.AndroidJUnit4;
+import de.danoeh.antennapod.R;
+import de.danoeh.antennapod.activity.MainActivity;
+import de.danoeh.antennapod.fragment.QueueFragment;
+import de.test.antennapod.EspressoTestUtils;
+import org.junit.Before;
+import org.junit.Rule;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
+import static android.support.test.espresso.Espresso.onView;
+import static android.support.test.espresso.action.ViewActions.click;
+import static android.support.test.espresso.matcher.ViewMatchers.withContentDescription;
+import static android.support.test.espresso.matcher.ViewMatchers.withText;
+
+/**
+ * User interface tests for queue fragment
+ */
+@RunWith(AndroidJUnit4.class)
+public class QueueFragmentTest {
+
+ @Rule
+ public IntentsTestRule<MainActivity> mActivityRule = new IntentsTestRule<>(MainActivity.class, false, false);
+
+ @Before
+ public void setUp() {
+ EspressoTestUtils.clearPreferences();
+ EspressoTestUtils.makeNotFirstRun();
+ EspressoTestUtils.clearDatabase();
+ EspressoTestUtils.setLastNavFragment(QueueFragment.TAG);
+ mActivityRule.launchActivity(new Intent());
+ }
+
+ @Test
+ public void testLockEmptyQueue() {
+ onView(withContentDescription(R.string.lock_queue)).perform(click());
+ onView(withContentDescription(R.string.unlock_queue)).perform(click());
+ }
+
+ @Test
+ public void testSortEmptyQueue() {
+ Espresso.openContextualActionModeOverflowMenu();
+ onView(withText(R.string.sort)).perform(click());
+ onView(withText(R.string.random)).perform(click());
+ }
+
+ @Test
+ public void testKeepEmptyQueueSorted() {
+ Espresso.openContextualActionModeOverflowMenu();
+ onView(withText(R.string.sort)).perform(click());
+ onView(withText(R.string.keep_sorted)).perform(click());
+ }
+}
diff --git a/app/src/androidTest/java/de/test/antennapod/ui/UITestUtils.java b/app/src/androidTest/java/de/test/antennapod/ui/UITestUtils.java
index 20c54cb15..905c65c34 100644
--- a/app/src/androidTest/java/de/test/antennapod/ui/UITestUtils.java
+++ b/app/src/androidTest/java/de/test/antennapod/ui/UITestUtils.java
@@ -59,7 +59,7 @@ class UITestUtils {
public void setup() throws IOException {
destDir = new File(context.getFilesDir(), "test/UITestUtils");
- destDir.mkdir();
+ destDir.mkdirs();
hostedFeedDir = new File(destDir, "hostedFeeds");
hostedFeedDir.mkdir();
hostedMediaDir = new File(destDir, "hostedMediaDir");
diff --git a/app/src/androidTest/java/de/test/antennapod/util/service/download/HTTPBin.java b/app/src/androidTest/java/de/test/antennapod/util/service/download/HTTPBin.java
index 3d8417bf6..4158fd31c 100644
--- a/app/src/androidTest/java/de/test/antennapod/util/service/download/HTTPBin.java
+++ b/app/src/androidTest/java/de/test/antennapod/util/service/download/HTTPBin.java
@@ -72,20 +72,6 @@ public class HTTPBin extends NanoHTTPD {
return servedFiles.size() - 1;
}
- /**
- * Removes the file with the given ID from the server.
- *
- * @return True if a file was removed, false otherwise
- */
- public synchronized boolean removeFile(int id) {
- if (id < 0) throw new IllegalArgumentException("ID < 0");
- if (id >= servedFiles.size()) {
- return false;
- } else {
- return servedFiles.remove(id) != null;
- }
- }
-
public synchronized File accessFile(int id) {
if (id < 0 || id >= servedFiles.size()) {
return null;