summaryrefslogtreecommitdiff
path: root/app/src/androidTest/java/de
diff options
context:
space:
mode:
Diffstat (limited to 'app/src/androidTest/java/de')
-rw-r--r--app/src/androidTest/java/de/test/antennapod/service/playback/PlaybackServiceTaskManagerTest.java17
-rw-r--r--app/src/androidTest/java/de/test/antennapod/storage/DBReaderTest.java5
-rw-r--r--app/src/androidTest/java/de/test/antennapod/storage/DBTasksTest.java19
-rw-r--r--app/src/androidTest/java/de/test/antennapod/storage/DBTestUtils.java2
-rw-r--r--app/src/androidTest/java/de/test/antennapod/storage/DBWriterTest.java30
-rw-r--r--app/src/androidTest/java/de/test/antennapod/ui/MainActivityTest.java103
-rw-r--r--app/src/androidTest/java/de/test/antennapod/ui/UITestUtils.java4
-rw-r--r--app/src/androidTest/java/de/test/antennapod/util/syndication/feedgenerator/AtomGenerator.java14
-rw-r--r--app/src/androidTest/java/de/test/antennapod/util/syndication/feedgenerator/RSS2Generator.java4
9 files changed, 147 insertions, 51 deletions
diff --git a/app/src/androidTest/java/de/test/antennapod/service/playback/PlaybackServiceTaskManagerTest.java b/app/src/androidTest/java/de/test/antennapod/service/playback/PlaybackServiceTaskManagerTest.java
index 81d684595..d74128c2f 100644
--- a/app/src/androidTest/java/de/test/antennapod/service/playback/PlaybackServiceTaskManagerTest.java
+++ b/app/src/androidTest/java/de/test/antennapod/service/playback/PlaybackServiceTaskManagerTest.java
@@ -2,12 +2,6 @@ package de.test.antennapod.service.playback;
import android.content.Context;
import android.test.InstrumentationTestCase;
-import de.danoeh.antennapod.core.feed.EventDistributor;
-import de.danoeh.antennapod.core.feed.Feed;
-import de.danoeh.antennapod.core.feed.FeedItem;
-import de.danoeh.antennapod.core.service.playback.PlaybackServiceTaskManager;
-import de.danoeh.antennapod.core.storage.PodDBAdapter;
-import de.danoeh.antennapod.core.util.playback.Playable;
import java.util.ArrayList;
import java.util.Date;
@@ -15,6 +9,15 @@ import java.util.List;
import java.util.concurrent.CountDownLatch;
import java.util.concurrent.TimeUnit;
+import de.danoeh.antennapod.core.feed.EventDistributor;
+import de.danoeh.antennapod.core.feed.Feed;
+import de.danoeh.antennapod.core.feed.FeedItem;
+import de.danoeh.antennapod.core.feed.QueueEvent;
+import de.danoeh.antennapod.core.service.playback.PlaybackServiceTaskManager;
+import de.danoeh.antennapod.core.storage.PodDBAdapter;
+import de.danoeh.antennapod.core.util.playback.Playable;
+import de.greenrobot.event.EventBus;
+
/**
* Test class for PlaybackServiceTaskManager
*/
@@ -94,7 +97,7 @@ public class PlaybackServiceTaskManagerTest extends InstrumentationTestCase {
};
EventDistributor.getInstance().register(queueListener);
List<FeedItem> queue = writeTestQueue("a");
- EventDistributor.getInstance().sendQueueUpdateBroadcast();
+ EventBus.getDefault().post(new QueueEvent(QueueEvent.Action.ADDED_ITEMS, queue));
countDownLatch.await(5000, TimeUnit.MILLISECONDS);
assertNotNull(queue);
diff --git a/app/src/androidTest/java/de/test/antennapod/storage/DBReaderTest.java b/app/src/androidTest/java/de/test/antennapod/storage/DBReaderTest.java
index 1f6a907d4..b90c4e2a1 100644
--- a/app/src/androidTest/java/de/test/antennapod/storage/DBReaderTest.java
+++ b/app/src/androidTest/java/de/test/antennapod/storage/DBReaderTest.java
@@ -14,6 +14,7 @@ import de.danoeh.antennapod.core.feed.FeedMedia;
import de.danoeh.antennapod.core.storage.DBReader;
import de.danoeh.antennapod.core.storage.FeedItemStatistics;
import de.danoeh.antennapod.core.storage.PodDBAdapter;
+import de.danoeh.antennapod.core.util.LongList;
import de.danoeh.antennapod.core.util.flattr.FlattrStatus;
import static de.test.antennapod.storage.DBTestUtils.saveFeedlist;
@@ -44,7 +45,7 @@ public class DBReaderTest extends InstrumentationTestCase {
private void expiredFeedListTestHelper(long lastUpdate, long expirationTime, boolean shouldReturn) {
final Context context = getInstrumentation().getTargetContext();
Feed feed = new Feed(0, new Date(lastUpdate), "feed", "link", "descr", null,
- null, null, null, "feed", null, null, "url", false, new FlattrStatus(), false, null);
+ null, null, null, "feed", null, null, "url", false, new FlattrStatus(), false, null, null);
feed.setItems(new ArrayList<FeedItem>());
PodDBAdapter adapter = new PodDBAdapter(context);
adapter.open();
@@ -194,7 +195,7 @@ public class DBReaderTest extends InstrumentationTestCase {
final Context context = getInstrumentation().getTargetContext();
final int numItems = 10;
List<FeedItem> queue = saveQueue(numItems);
- List<Long> ids = DBReader.getQueueIDList(context);
+ LongList ids = DBReader.getQueueIDList(context);
assertNotNull(ids);
assertTrue(queue.size() == ids.size());
for (int i = 0; i < queue.size(); i++) {
diff --git a/app/src/androidTest/java/de/test/antennapod/storage/DBTasksTest.java b/app/src/androidTest/java/de/test/antennapod/storage/DBTasksTest.java
index e28a7918f..41d3805bd 100644
--- a/app/src/androidTest/java/de/test/antennapod/storage/DBTasksTest.java
+++ b/app/src/androidTest/java/de/test/antennapod/storage/DBTasksTest.java
@@ -4,6 +4,14 @@ import android.content.Context;
import android.content.SharedPreferences;
import android.preference.PreferenceManager;
import android.test.InstrumentationTestCase;
+
+import java.io.File;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.Date;
+import java.util.List;
+
import de.danoeh.antennapod.core.feed.Feed;
import de.danoeh.antennapod.core.feed.FeedItem;
import de.danoeh.antennapod.core.feed.FeedMedia;
@@ -13,14 +21,7 @@ import de.danoeh.antennapod.core.storage.DBTasks;
import de.danoeh.antennapod.core.storage.PodDBAdapter;
import de.danoeh.antennapod.core.util.flattr.FlattrStatus;
-import java.io.File;
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.Date;
-import java.util.List;
-
-import static de.test.antennapod.storage.DBTestUtils.*;
+import static de.test.antennapod.storage.DBTestUtils.saveFeedlist;
/**
* Test class for DBTasks
@@ -296,7 +297,7 @@ public class DBTasksTest extends InstrumentationTestCase {
final Context context = getInstrumentation().getTargetContext();
UserPreferences.setUpdateInterval(context, expirationTime);
Feed feed = new Feed(0, new Date(lastUpdate), "feed", "link", "descr", null,
- null, null, null, "feed", null, null, "url", false, new FlattrStatus(), false, null);
+ null, null, null, "feed", null, null, "url", false, new FlattrStatus(), false, null, null);
feed.setItems(new ArrayList<FeedItem>());
PodDBAdapter adapter = new PodDBAdapter(context);
adapter.open();
diff --git a/app/src/androidTest/java/de/test/antennapod/storage/DBTestUtils.java b/app/src/androidTest/java/de/test/antennapod/storage/DBTestUtils.java
index 17c926cc2..fba3faa96 100644
--- a/app/src/androidTest/java/de/test/antennapod/storage/DBTestUtils.java
+++ b/app/src/androidTest/java/de/test/antennapod/storage/DBTestUtils.java
@@ -47,7 +47,7 @@ public class DBTestUtils {
adapter.open();
for (int i = 0; i < numFeeds; i++) {
Feed f = new Feed(0, new Date(), "feed " + i, "link" + i, "descr", null, null,
- null, null, "id" + i, null, null, "url" + i, false, new FlattrStatus(), false, null);
+ null, null, "id" + i, null, null, "url" + i, false, new FlattrStatus(), false, null, null);
f.setItems(new ArrayList<FeedItem>());
for (int j = 0; j < numItems; j++) {
FeedItem item = new FeedItem(0, "item " + j, "id" + j, "link" + j, new Date(),
diff --git a/app/src/androidTest/java/de/test/antennapod/storage/DBWriterTest.java b/app/src/androidTest/java/de/test/antennapod/storage/DBWriterTest.java
index ec8e19e22..f3b0c9165 100644
--- a/app/src/androidTest/java/de/test/antennapod/storage/DBWriterTest.java
+++ b/app/src/androidTest/java/de/test/antennapod/storage/DBWriterTest.java
@@ -5,16 +5,6 @@ import android.database.Cursor;
import android.test.InstrumentationTestCase;
import android.util.Log;
-import de.danoeh.antennapod.core.feed.Chapter;
-import de.danoeh.antennapod.core.feed.Feed;
-import de.danoeh.antennapod.core.feed.FeedImage;
-import de.danoeh.antennapod.core.feed.FeedItem;
-import de.danoeh.antennapod.core.feed.FeedMedia;
-import de.danoeh.antennapod.core.feed.SimpleChapter;
-import de.danoeh.antennapod.core.storage.DBReader;
-import de.danoeh.antennapod.core.storage.DBWriter;
-import de.danoeh.antennapod.core.storage.PodDBAdapter;
-
import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
@@ -25,6 +15,16 @@ import java.util.concurrent.Future;
import java.util.concurrent.TimeUnit;
import java.util.concurrent.TimeoutException;
+import de.danoeh.antennapod.core.feed.Chapter;
+import de.danoeh.antennapod.core.feed.Feed;
+import de.danoeh.antennapod.core.feed.FeedImage;
+import de.danoeh.antennapod.core.feed.FeedItem;
+import de.danoeh.antennapod.core.feed.FeedMedia;
+import de.danoeh.antennapod.core.feed.SimpleChapter;
+import de.danoeh.antennapod.core.storage.DBReader;
+import de.danoeh.antennapod.core.storage.DBWriter;
+import de.danoeh.antennapod.core.storage.PodDBAdapter;
+
/**
* Test class for DBWriter
*/
@@ -674,13 +674,13 @@ public class DBWriterTest extends InstrumentationTestCase {
assertTrue(item.getId() != 0);
}
for (int removeIndex = 0; removeIndex < NUM_ITEMS; removeIndex++) {
- final long id = feed.getItems().get(removeIndex).getId();
+ final FeedItem item = feed.getItems().get(removeIndex);
adapter = new PodDBAdapter(context);
adapter.open();
adapter.setQueue(feed.getItems());
adapter.close();
- DBWriter.removeQueueItem(context, id, false).get(TIMEOUT, TimeUnit.SECONDS);
+ DBWriter.removeQueueItem(context, item, false).get(TIMEOUT, TimeUnit.SECONDS);
adapter = new PodDBAdapter(context);
adapter.open();
Cursor queue = adapter.getQueueIDCursor();
@@ -688,10 +688,10 @@ public class DBWriterTest extends InstrumentationTestCase {
for (int i = 0; i < queue.getCount(); i++) {
assertTrue(queue.moveToPosition(i));
final long queueID = queue.getLong(0);
- assertTrue(queueID != id); // removed item is no longer in queue
+ assertTrue(queueID != item.getId()); // removed item is no longer in queue
boolean idFound = false;
- for (FeedItem item : feed.getItems()) { // items that were not removed are still in the queue
- idFound = idFound | (item.getId() == queueID);
+ for (FeedItem other : feed.getItems()) { // items that were not removed are still in the queue
+ idFound = idFound | (other.getId() == queueID);
}
assertTrue(idFound);
}
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));
+ }
}
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 249cb0dd6..85923d40f 100644
--- a/app/src/androidTest/java/de/test/antennapod/ui/UITestUtils.java
+++ b/app/src/androidTest/java/de/test/antennapod/ui/UITestUtils.java
@@ -25,7 +25,9 @@ import de.danoeh.antennapod.core.feed.Feed;
import de.danoeh.antennapod.core.feed.FeedImage;
import de.danoeh.antennapod.core.feed.FeedItem;
import de.danoeh.antennapod.core.feed.FeedMedia;
+import de.danoeh.antennapod.core.feed.QueueEvent;
import de.danoeh.antennapod.core.storage.PodDBAdapter;
+import de.greenrobot.event.EventBus;
import de.test.antennapod.util.service.download.HTTPBin;
import de.test.antennapod.util.syndication.feedgenerator.RSS2Generator;
@@ -202,6 +204,6 @@ public class UITestUtils {
adapter.setQueue(queue);
adapter.close();
EventDistributor.getInstance().sendFeedUpdateBroadcast();
- EventDistributor.getInstance().sendQueueUpdateBroadcast();
+ EventBus.getDefault().post(new QueueEvent(QueueEvent.Action.ADDED_ITEMS, queue));
}
}
diff --git a/app/src/androidTest/java/de/test/antennapod/util/syndication/feedgenerator/AtomGenerator.java b/app/src/androidTest/java/de/test/antennapod/util/syndication/feedgenerator/AtomGenerator.java
index 69cc827ec..bd3df0f9d 100644
--- a/app/src/androidTest/java/de/test/antennapod/util/syndication/feedgenerator/AtomGenerator.java
+++ b/app/src/androidTest/java/de/test/antennapod/util/syndication/feedgenerator/AtomGenerator.java
@@ -1,15 +1,17 @@
package de.test.antennapod.util.syndication.feedgenerator;
import android.util.Xml;
-import de.danoeh.antennapod.core.feed.Feed;
-import de.danoeh.antennapod.core.feed.FeedItem;
-import de.danoeh.antennapod.core.feed.FeedMedia;
-import de.danoeh.antennapod.core.syndication.util.SyndDateUtils;
+
import org.xmlpull.v1.XmlSerializer;
import java.io.IOException;
import java.io.OutputStream;
+import de.danoeh.antennapod.core.feed.Feed;
+import de.danoeh.antennapod.core.feed.FeedItem;
+import de.danoeh.antennapod.core.feed.FeedMedia;
+import de.danoeh.antennapod.core.util.DateUtils;
+
/**
* Creates Atom feeds. See FeedGenerator for more information.
*/
@@ -83,9 +85,9 @@ public class AtomGenerator implements FeedGenerator{
if (item.getPubDate() != null) {
xml.startTag(null, "published");
if ((flags & FEATURE_USE_RFC3339LOCAL) != 0) {
- xml.text(SyndDateUtils.formatRFC3339Local(item.getPubDate()));
+ xml.text(DateUtils.formatRFC3339Local(item.getPubDate()));
} else {
- xml.text(SyndDateUtils.formatRFC3339UTC(item.getPubDate()));
+ xml.text(DateUtils.formatRFC3339UTC(item.getPubDate()));
}
xml.endTag(null, "published");
}
diff --git a/app/src/androidTest/java/de/test/antennapod/util/syndication/feedgenerator/RSS2Generator.java b/app/src/androidTest/java/de/test/antennapod/util/syndication/feedgenerator/RSS2Generator.java
index d37434f06..27e89620d 100644
--- a/app/src/androidTest/java/de/test/antennapod/util/syndication/feedgenerator/RSS2Generator.java
+++ b/app/src/androidTest/java/de/test/antennapod/util/syndication/feedgenerator/RSS2Generator.java
@@ -3,7 +3,7 @@ package de.test.antennapod.util.syndication.feedgenerator;
import android.util.Xml;
import de.danoeh.antennapod.core.feed.Feed;
import de.danoeh.antennapod.core.feed.FeedItem;
-import de.danoeh.antennapod.core.syndication.util.SyndDateUtils;
+import de.danoeh.antennapod.core.util.DateUtils;
import org.xmlpull.v1.XmlSerializer;
import java.io.IOException;
@@ -79,7 +79,7 @@ public class RSS2Generator implements FeedGenerator{
}
if (item.getPubDate() != null) {
xml.startTag(null, "pubDate");
- xml.text(SyndDateUtils.formatRFC822Date(item.getPubDate()));
+ xml.text(DateUtils.formatRFC822Date(item.getPubDate()));
xml.endTag(null, "pubDate");
}
if ((flags & FEATURE_WRITE_GUID) != 0) {