diff options
author | ByteHamster <info@bytehamster.com> | 2019-02-01 16:25:20 +0100 |
---|---|---|
committer | ByteHamster <info@bytehamster.com> | 2019-02-01 16:25:20 +0100 |
commit | abe68ec7bded95f39116fa52e099ac5be3f30c03 (patch) | |
tree | 5231f84d6b282b80ac26a3f310de5d7b9b6afccf /app/src/androidTest/java/de/test/antennapod | |
parent | 56a72088591ce1909b77baef53cd1a54b06d68cb (diff) | |
parent | 73bb2f712ebc06423aecf115c40668b2c86f8c3b (diff) | |
download | AntennaPod-abe68ec7bded95f39116fa52e099ac5be3f30c03.zip |
Merge remote-tracking branch 'upstream/develop' into auto_download_12_hour_option_2685
Diffstat (limited to 'app/src/androidTest/java/de/test/antennapod')
-rw-r--r-- | app/src/androidTest/java/de/test/antennapod/storage/DBWriterTest.java | 52 | ||||
-rw-r--r-- | app/src/androidTest/java/de/test/antennapod/ui/PreferencesTest.java | 14 |
2 files changed, 66 insertions, 0 deletions
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 427cc8ddd..b80482c53 100644 --- a/app/src/androidTest/java/de/test/antennapod/storage/DBWriterTest.java +++ b/app/src/androidTest/java/de/test/antennapod/storage/DBWriterTest.java @@ -1,7 +1,9 @@ package de.test.antennapod.storage; import android.content.Context; +import android.content.SharedPreferences; import android.database.Cursor; +import android.preference.PreferenceManager; import android.test.InstrumentationTestCase; import android.util.Log; @@ -18,10 +20,13 @@ import java.util.concurrent.TimeoutException; 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.preferences.UserPreferences; import de.danoeh.antennapod.core.storage.DBReader; import de.danoeh.antennapod.core.storage.DBWriter; import de.danoeh.antennapod.core.storage.PodDBAdapter; +import org.awaitility.Awaitility; + /** * Test class for DBWriter */ @@ -55,6 +60,12 @@ public class DBWriterTest extends InstrumentationTestCase { PodDBAdapter adapter = PodDBAdapter.getInstance(); adapter.open(); adapter.close(); + + Context context = getInstrumentation().getTargetContext(); + SharedPreferences.Editor prefEdit = PreferenceManager.getDefaultSharedPreferences(context.getApplicationContext()).edit(); + prefEdit.putBoolean(UserPreferences.PREF_DELETE_REMOVES_FROM_QUEUE, true).commit(); + + UserPreferences.init(context); } public void testSetFeedMediaPlaybackInformation() @@ -121,6 +132,47 @@ public class DBWriterTest extends InstrumentationTestCase { assertNull(media.getFile_url()); } + public void testDeleteFeedMediaOfItemRemoveFromQueue() + throws IOException, ExecutionException, InterruptedException, TimeoutException { + assertTrue(UserPreferences.shouldDeleteRemoveFromQueue()); + + File dest = new File(getInstrumentation().getTargetContext().getExternalFilesDir(TEST_FOLDER), "testFile"); + + assertTrue(dest.createNewFile()); + + Feed feed = new Feed("url", null, "title"); + List<FeedItem> items = new ArrayList<>(); + List<FeedItem> queue = new ArrayList<>(); + feed.setItems(items); + FeedItem item = new FeedItem(0, "Item", "Item", "url", new Date(), FeedItem.UNPLAYED, feed); + + FeedMedia media = new FeedMedia(0, item, 1, 1, 1, "mime_type", dest.getAbsolutePath(), "download_url", true, null, 0, 0); + item.setMedia(media); + + items.add(item); + queue.add(item); + + PodDBAdapter adapter = PodDBAdapter.getInstance(); + adapter.open(); + adapter.setCompleteFeed(feed); + adapter.setQueue(queue); + adapter.close(); + assertTrue(media.getId() != 0); + assertTrue(item.getId() != 0); + queue = DBReader.getQueue(); + assertTrue(queue.size() != 0); + + DBWriter.deleteFeedMediaOfItem(getInstrumentation().getTargetContext(), media.getId()); + Awaitility.await().until(() -> dest.exists() == false); + media = DBReader.getFeedMedia(media.getId()); + assertNotNull(media); + assertFalse(dest.exists()); + assertFalse(media.isDownloaded()); + assertNull(media.getFile_url()); + queue = DBReader.getQueue(); + assertTrue(queue.size() == 0); + } + public void testDeleteFeed() throws ExecutionException, InterruptedException, IOException, TimeoutException { File destFolder = getInstrumentation().getTargetContext().getExternalFilesDir(TEST_FOLDER); assertNotNull(destFolder); 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 81084e684..d934bf3e2 100644 --- a/app/src/androidTest/java/de/test/antennapod/ui/PreferencesTest.java +++ b/app/src/androidTest/java/de/test/antennapod/ui/PreferencesTest.java @@ -507,6 +507,20 @@ public class PreferencesTest { Timeout.getLargeTimeout())); } + @Test + public void testDeleteRemovesFromQueue() { + clickPreference(withText(R.string.storage_pref)); + if (!UserPreferences.shouldDeleteRemoveFromQueue()) { + clickPreference(withText(R.string.pref_delete_removes_from_queue_title)); + assertTrue(solo.waitForCondition(UserPreferences::shouldDeleteRemoveFromQueue, Timeout.getLargeTimeout())); + } + final boolean deleteRemovesFromQueue = UserPreferences.shouldDeleteRemoveFromQueue(); + solo.clickOnText(solo.getString(R.string.pref_delete_removes_from_queue_title)); + assertTrue(solo.waitForCondition(() -> deleteRemovesFromQueue != UserPreferences.shouldDeleteRemoveFromQueue(), Timeout.getLargeTimeout())); + solo.clickOnText(solo.getString(R.string.pref_delete_removes_from_queue_title)); + assertTrue(solo.waitForCondition(() -> deleteRemovesFromQueue == UserPreferences.shouldDeleteRemoveFromQueue(), Timeout.getLargeTimeout())); + } + private void clickPreference(Matcher<View> matcher) { onView(withId(R.id.list)) .perform(RecyclerViewActions.actionOnItem(hasDescendant(matcher), click())); |