diff options
author | H. Lehmann <ByteHamster@users.noreply.github.com> | 2020-03-26 17:17:52 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-03-26 17:17:52 +0100 |
commit | 11ef58f5920cadadeb8e3f34fce14ce8ff005dc8 (patch) | |
tree | 940b22047564d71f76e8a2340b1c2d0821ae2a15 /app/src/androidTest | |
parent | 9637734000d399ffaa8739f5a3f1c1624b2a6a37 (diff) | |
parent | b4b2b45247a92e7f7e43ab224598ef646608c7be (diff) | |
download | AntennaPod-11ef58f5920cadadeb8e3f34fce14ce8ff005dc8.zip |
Merge branch 'develop' into NotificationForAutoDownloads
Diffstat (limited to 'app/src/androidTest')
10 files changed, 42 insertions, 53 deletions
diff --git a/app/src/androidTest/java/de/danoeh/antennapod/core/service/download/StubDownloader.java b/app/src/androidTest/java/de/danoeh/antennapod/core/service/download/StubDownloader.java index e7fe079a6..7aac738e7 100644 --- a/app/src/androidTest/java/de/danoeh/antennapod/core/service/download/StubDownloader.java +++ b/app/src/androidTest/java/de/danoeh/antennapod/core/service/download/StubDownloader.java @@ -1,8 +1,7 @@ package de.danoeh.antennapod.core.service.download; import androidx.annotation.NonNull; - -import de.danoeh.antennapod.core.util.Consumer; +import androidx.core.util.Consumer; public class StubDownloader extends Downloader { diff --git a/app/src/androidTest/java/de/test/antennapod/EspressoTestUtils.java b/app/src/androidTest/java/de/test/antennapod/EspressoTestUtils.java index 225f07dfd..beb6ad705 100644 --- a/app/src/androidTest/java/de/test/antennapod/EspressoTestUtils.java +++ b/app/src/androidTest/java/de/test/antennapod/EspressoTestUtils.java @@ -32,7 +32,9 @@ import java.util.concurrent.TimeoutException; import static androidx.test.espresso.Espresso.onView; import static androidx.test.espresso.action.ViewActions.click; import static androidx.test.espresso.matcher.ViewMatchers.hasDescendant; +import static androidx.test.espresso.matcher.ViewMatchers.isDisplayed; import static androidx.test.espresso.matcher.ViewMatchers.isRoot; +import static androidx.test.espresso.matcher.ViewMatchers.withContentDescription; import static androidx.test.espresso.matcher.ViewMatchers.withId; import static androidx.test.espresso.matcher.ViewMatchers.withText; import static org.hamcrest.Matchers.allOf; @@ -193,4 +195,8 @@ public class EspressoTestUtils { } androidx.test.platform.app.InstrumentationRegistry.getInstrumentation().waitForIdleSync(); } + + public static Matcher<View> actionBarOverflow() { + return allOf(isDisplayed(), withContentDescription("More options")); + } } diff --git a/app/src/androidTest/java/de/test/antennapod/NthMatcher.java b/app/src/androidTest/java/de/test/antennapod/NthMatcher.java index 85eabcc63..933d4faff 100644 --- a/app/src/androidTest/java/de/test/antennapod/NthMatcher.java +++ b/app/src/androidTest/java/de/test/antennapod/NthMatcher.java @@ -18,9 +18,7 @@ public class NthMatcher { @Override public boolean matches(final Object item) { if (matcher.matches(item)) { - if (count.incrementAndGet() == index) { - return true; - } + return count.incrementAndGet() == index; } return false; } diff --git a/app/src/androidTest/java/de/test/antennapod/handler/FeedHandlerTest.java b/app/src/androidTest/java/de/test/antennapod/handler/FeedHandlerTest.java index 4f6bf0c1f..6d842aff5 100644 --- a/app/src/androidTest/java/de/test/antennapod/handler/FeedHandlerTest.java +++ b/app/src/androidTest/java/de/test/antennapod/handler/FeedHandlerTest.java @@ -139,19 +139,19 @@ public class FeedHandlerTest { @Test public void testRSS2Basic() throws IOException, UnsupportedFeedtypeException, SAXException, ParserConfigurationException { - Feed f1 = createTestFeed(10, false, true, true); + Feed f1 = createTestFeed(10, true); Feed f2 = runFeedTest(f1, new RSS2Generator(), "UTF-8", RSS2Generator.FEATURE_WRITE_GUID); feedValid(f1, f2, Feed.TYPE_RSS2); } @Test public void testAtomBasic() throws IOException, UnsupportedFeedtypeException, SAXException, ParserConfigurationException { - Feed f1 = createTestFeed(10, false, true, true); + Feed f1 = createTestFeed(10, true); Feed f2 = runFeedTest(f1, new AtomGenerator(), "UTF-8", 0); feedValid(f1, f2, Feed.TYPE_ATOM1); } - private Feed createTestFeed(int numItems, boolean withImage, boolean withFeedMedia, boolean withChapters) { + private Feed createTestFeed(int numItems, boolean withFeedMedia) { Feed feed = new Feed(0, null, "title", "http://example.com", "This is the description", "http://example.com/payment", "Daniel", "en", null, "http://example.com/feed", "http://example.com/picture", file.getAbsolutePath(), "http://example.com/feed", true); diff --git a/app/src/androidTest/java/de/test/antennapod/service/download/DownloadServiceTest.java b/app/src/androidTest/java/de/test/antennapod/service/download/DownloadServiceTest.java index 0af972352..b75044d73 100644 --- a/app/src/androidTest/java/de/test/antennapod/service/download/DownloadServiceTest.java +++ b/app/src/androidTest/java/de/test/antennapod/service/download/DownloadServiceTest.java @@ -4,6 +4,7 @@ import android.content.Context; import android.content.Intent; import androidx.annotation.NonNull; import androidx.annotation.Nullable; +import androidx.core.util.Consumer; import androidx.test.InstrumentationRegistry; import androidx.test.runner.AndroidJUnit4; @@ -35,7 +36,6 @@ import de.danoeh.antennapod.core.service.download.StubDownloader; import de.danoeh.antennapod.core.storage.DBReader; import de.danoeh.antennapod.core.storage.DBWriter; import de.danoeh.antennapod.core.storage.DownloadRequester; -import de.danoeh.antennapod.core.util.Consumer; import static de.test.antennapod.util.event.DownloadEventListener.withDownloadEventListener; import static de.test.antennapod.util.event.FeedItemEventListener.withFeedItemEventListener; @@ -45,13 +45,10 @@ import static org.junit.Assert.assertTrue; import static org.junit.Assert.fail; /** - * @see HttpDownloaderTest for the test of actual download (and saving the file) + * @see HttpDownloaderTest for the test of actual download (and saving the file). */ @RunWith(AndroidJUnit4.class) public class DownloadServiceTest { - - private CountDownLatch latch = null; - private Feed testFeed = null; private FeedMedia testMedia11 = null; private DownloaderFactory origFactory = null; @@ -61,7 +58,7 @@ public class DownloadServiceTest { EspressoTestUtils.clearDatabase(); EspressoTestUtils.clearPreferences(); origFactory = DownloadService.getDownloaderFactory(); - testFeed = setUpTestFeeds(); + Feed testFeed = setUpTestFeeds(); testMedia11 = testFeed.getItemAtIndex(0).getMedia(); } 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 d4af79645..a00a9965f 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 @@ -124,7 +124,6 @@ public class PlaybackServiceMediaPlayerTest { } private Playable writeTestPlayable(String downloadUrl, String fileUrl) { - final Context c = getInstrumentation().getTargetContext(); Feed f = new Feed(0, null, "f", "l", "d", null, null, null, null, "i", null, null, "l", false); FeedPreferences prefs = new FeedPreferences(f.getId(), false, FeedPreferences.AutoDeleteAction.NO, VolumeAdaptionSetting.OFF, null, null); f.setPreferences(prefs); 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 666cd845e..f4a66ee61 100644 --- a/app/src/androidTest/java/de/test/antennapod/storage/DBReaderTest.java +++ b/app/src/androidTest/java/de/test/antennapod/storage/DBReaderTest.java @@ -1,20 +1,16 @@ package de.test.antennapod.storage; -import android.content.Context; - import java.util.ArrayList; import java.util.Date; import java.util.List; import java.util.Random; import androidx.test.InstrumentationRegistry; -import androidx.test.filters.LargeTest; import androidx.test.filters.SmallTest; 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.storage.DBReader; -import de.danoeh.antennapod.core.storage.FeedItemStatistics; import de.danoeh.antennapod.core.storage.PodDBAdapter; import de.danoeh.antennapod.core.util.LongList; import org.junit.After; @@ -103,7 +99,6 @@ public class DBReaderTest { @Test public void testLoadFeedDataOfFeedItemlist() { - final Context context = InstrumentationRegistry.getTargetContext(); final int numFeeds = 10; final int numItems = 1; List<Feed> feeds = saveFeedlist(numFeeds, numItems, false); @@ -314,23 +309,10 @@ public class DBReaderTest { } @Test - public void testGetFeedStatisticsCheckOrder() { - final int NUM_FEEDS = 10; - final int NUM_ITEMS = 10; - List<Feed> feeds = DBTestUtils.saveFeedlist(NUM_FEEDS, NUM_ITEMS, false); - List<FeedItemStatistics> statistics = DBReader.getFeedStatisticsList(); - assertNotNull(statistics); - assertEquals(feeds.size(), statistics.size()); - for (int i = 0; i < NUM_FEEDS; i++) { - assertEquals("Wrong entry at index " + i, feeds.get(i).getId(), statistics.get(i).getFeedID()); - } - } - - @Test public void testGetNavDrawerDataQueueEmptyNoUnreadItems() { final int NUM_FEEDS = 10; final int NUM_ITEMS = 10; - List<Feed> feeds = DBTestUtils.saveFeedlist(NUM_FEEDS, NUM_ITEMS, true); + DBTestUtils.saveFeedlist(NUM_FEEDS, NUM_ITEMS, true); DBReader.NavDrawerData navDrawerData = DBReader.getNavDrawerData(); assertEquals(NUM_FEEDS, navDrawerData.feeds.size()); assertEquals(0, navDrawerData.numNewItems); 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 10ca281cb..4910882e3 100644 --- a/app/src/androidTest/java/de/test/antennapod/storage/DBWriterTest.java +++ b/app/src/androidTest/java/de/test/antennapod/storage/DBWriterTest.java @@ -6,6 +6,7 @@ import android.database.Cursor; import android.preference.PreferenceManager; import android.util.Log; +import androidx.core.util.Consumer; import androidx.test.InstrumentationRegistry; import androidx.test.filters.MediumTest; @@ -31,7 +32,6 @@ 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 de.danoeh.antennapod.core.util.Consumer; import de.danoeh.antennapod.core.util.FeedItemUtil; import static androidx.test.InstrumentationRegistry.getInstrumentation; @@ -177,7 +177,7 @@ public class DBWriterTest { assertTrue(queue.size() != 0); DBWriter.deleteFeedMediaOfItem(getInstrumentation().getTargetContext(), media.getId()); - Awaitility.await().until(() -> dest.exists() == false); + Awaitility.await().until(() -> !dest.exists()); media = DBReader.getFeedMedia(media.getId()); assertNotNull(media); assertFalse(dest.exists()); @@ -422,7 +422,6 @@ public class DBWriterTest { } private FeedMedia playbackHistorySetup(Date playbackCompletionDate) { - final Context context = getInstrumentation().getTargetContext(); Feed feed = new Feed("url", null, "title"); feed.setItems(new ArrayList<>()); FeedItem item = new FeedItem(0, "title", "id", "link", new Date(), FeedItem.PLAYED, feed); @@ -558,7 +557,6 @@ public class DBWriterTest { @Test public void testAddQueueItemMultipleItems() throws InterruptedException, ExecutionException, TimeoutException { - final Context context = getInstrumentation().getTargetContext(); final int NUM_ITEMS = 10; Feed feed = queueTestSetupMultipleItems(NUM_ITEMS); @@ -583,7 +581,7 @@ public class DBWriterTest { public void testClearQueue() throws InterruptedException, ExecutionException, TimeoutException { final int NUM_ITEMS = 10; - Feed feed = queueTestSetupMultipleItems(NUM_ITEMS); + queueTestSetupMultipleItems(NUM_ITEMS); DBWriter.clearQueue().get(TIMEOUT, TimeUnit.SECONDS); PodDBAdapter adapter = PodDBAdapter.getInstance(); adapter.open(); @@ -797,7 +795,7 @@ public class DBWriterTest { ) { List<FeedItem> queue = DBReader.getQueue(); List<Long> itemIdsActualList = toItemIds(queue); - List<Long> itemIdsExpectedList = new ArrayList<Long>(itemIdsExpected.length); + List<Long> itemIdsExpectedList = new ArrayList<>(itemIdsExpected.length); for (long id : itemIdsExpected) { itemIdsExpectedList.add(id); } @@ -806,7 +804,7 @@ public class DBWriterTest { } private static List<Long> toItemIds(List<FeedItem> items) { - List<Long> itemIds = new ArrayList<Long>(items.size()); + List<Long> itemIds = new ArrayList<>(items.size()); for(FeedItem item : items) { itemIds.add(item.getId()); } diff --git a/app/src/androidTest/java/de/test/antennapod/ui/QueueFragmentTest.java b/app/src/androidTest/java/de/test/antennapod/ui/QueueFragmentTest.java index 37d76bb6d..ec0d1fa64 100644 --- a/app/src/androidTest/java/de/test/antennapod/ui/QueueFragmentTest.java +++ b/app/src/androidTest/java/de/test/antennapod/ui/QueueFragmentTest.java @@ -1,6 +1,7 @@ package de.test.antennapod.ui; import android.content.Intent; +import android.view.View; import androidx.test.espresso.Espresso; import androidx.test.espresso.intent.rule.IntentsTestRule; import androidx.test.runner.AndroidJUnit4; @@ -8,6 +9,7 @@ import de.danoeh.antennapod.R; import de.danoeh.antennapod.activity.MainActivity; import de.danoeh.antennapod.fragment.QueueFragment; import de.test.antennapod.EspressoTestUtils; +import org.hamcrest.Matcher; import org.junit.Before; import org.junit.Rule; import org.junit.Test; @@ -18,6 +20,7 @@ import static androidx.test.espresso.action.ViewActions.click; import static androidx.test.espresso.matcher.ViewMatchers.withClassName; import static androidx.test.espresso.matcher.ViewMatchers.withContentDescription; import static androidx.test.espresso.matcher.ViewMatchers.withText; +import static de.test.antennapod.NthMatcher.first; import static org.hamcrest.CoreMatchers.allOf; import static org.hamcrest.CoreMatchers.endsWith; @@ -48,14 +51,14 @@ public class QueueFragmentTest { @Test public void testSortEmptyQueue() { - Espresso.openContextualActionModeOverflowMenu(); + onView(first(EspressoTestUtils.actionBarOverflow())).perform(click()); onView(withText(R.string.sort)).perform(click()); onView(withText(R.string.random)).perform(click()); } @Test public void testKeepEmptyQueueSorted() { - Espresso.openContextualActionModeOverflowMenu(); + onView(first(EspressoTestUtils.actionBarOverflow())).perform(click()); 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/SpeedChangeTest.java b/app/src/androidTest/java/de/test/antennapod/ui/SpeedChangeTest.java index 194d51a3c..5565bf474 100644 --- a/app/src/androidTest/java/de/test/antennapod/ui/SpeedChangeTest.java +++ b/app/src/androidTest/java/de/test/antennapod/ui/SpeedChangeTest.java @@ -7,12 +7,14 @@ import android.preference.PreferenceManager; import androidx.test.rule.ActivityTestRule; import androidx.test.runner.AndroidJUnit4; import de.danoeh.antennapod.R; -import de.danoeh.antennapod.activity.AudioplayerActivity; +import de.danoeh.antennapod.activity.MainActivity; import de.danoeh.antennapod.core.feed.FeedItem; import de.danoeh.antennapod.core.preferences.PlaybackPreferences; import de.danoeh.antennapod.core.preferences.UserPreferences; import de.danoeh.antennapod.core.service.playback.PlayerStatus; import de.danoeh.antennapod.core.storage.DBReader; +import de.danoeh.antennapod.core.util.playback.PlaybackController; +import de.danoeh.antennapod.fragment.ExternalPlayerFragment; import de.danoeh.antennapod.fragment.QueueFragment; import de.test.antennapod.EspressoTestUtils; import de.test.antennapod.IgnoreOnCi; @@ -34,6 +36,8 @@ import static androidx.test.espresso.matcher.ViewMatchers.withId; import static androidx.test.espresso.matcher.ViewMatchers.withText; import static androidx.test.platform.app.InstrumentationRegistry.getInstrumentation; import static de.test.antennapod.EspressoTestUtils.waitForView; +import static de.test.antennapod.NthMatcher.first; +import static org.hamcrest.Matchers.allOf; /** * User interface tests for changing the playback speed. @@ -43,10 +47,10 @@ import static de.test.antennapod.EspressoTestUtils.waitForView; public class SpeedChangeTest { @Rule - public ActivityTestRule<AudioplayerActivity> activityRule - = new ActivityTestRule<>(AudioplayerActivity.class, false, false); + public ActivityTestRule<MainActivity> activityRule = new ActivityTestRule<>(MainActivity.class, false, false); private UITestUtils uiTestUtils; private String[] availableSpeeds; + private PlaybackController controller; @Before public void setUp() throws Exception { @@ -70,7 +74,10 @@ public class SpeedChangeTest { UserPreferences.setPlaybackSpeedArray(availableSpeeds); EspressoTestUtils.tryKillPlaybackService(); - activityRule.launchActivity(new Intent()); + activityRule.launchActivity(new Intent().putExtra(MainActivity.EXTRA_OPEN_PLAYER, true)); + controller = new PlaybackController(activityRule.getActivity(), true); + controller.init(); + controller.getMedia(); // To load media } @After @@ -86,21 +93,21 @@ public class SpeedChangeTest { @Test public void testChangeSpeedPlaying() { onView(isRoot()).perform(waitForView(withId(R.id.butPlay), 1000)); - onView(withId(R.id.butPlay)).perform(click()); + controller.playPause(); Awaitility.await().atMost(5, TimeUnit.SECONDS).until(() - -> activityRule.getActivity().getPlaybackController().getStatus() == PlayerStatus.PLAYING); + -> controller.getStatus() == PlayerStatus.PLAYING); clickThroughSpeeds(); } @Test public void testChangeSpeedPaused() { onView(isRoot()).perform(waitForView(withId(R.id.butPlay), 1000)); - onView(withId(R.id.butPlay)).perform(click()); + controller.playPause(); Awaitility.await().atMost(5, TimeUnit.SECONDS).until(() - -> activityRule.getActivity().getPlaybackController().getStatus() == PlayerStatus.PLAYING); - onView(withId(R.id.butPlay)).perform(click()); + -> controller.getStatus() == PlayerStatus.PLAYING); + controller.playPause(); Awaitility.await().atMost(5, TimeUnit.SECONDS).until(() - -> activityRule.getActivity().getPlaybackController().getStatus() == PlayerStatus.PAUSED); + -> controller.getStatus() == PlayerStatus.PAUSED); clickThroughSpeeds(); } |