diff options
author | Tom Hennen <tom.hennen@gmail.com> | 2015-10-10 05:38:18 -0400 |
---|---|---|
committer | Tom Hennen <tom.hennen@gmail.com> | 2015-10-10 05:38:18 -0400 |
commit | 113f8c55c3f4b744cb976ba1c424011db3c9a857 (patch) | |
tree | 92f8830889c599088e07c3b9654c6320b024c339 /app/src/androidTest/java/de/test/antennapod/ui | |
parent | 83e56a334c7513b402caa8cb11d279918704392f (diff) | |
download | AntennaPod-113f8c55c3f4b744cb976ba1c424011db3c9a857.zip |
updated sonic tests, still have an intermittent error
Diffstat (limited to 'app/src/androidTest/java/de/test/antennapod/ui')
3 files changed, 65 insertions, 150 deletions
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 17ec87aa3..022f7621d 100644 --- a/app/src/androidTest/java/de/test/antennapod/ui/PlaybackSonicTest.java +++ b/app/src/androidTest/java/de/test/antennapod/ui/PlaybackSonicTest.java @@ -46,98 +46,6 @@ public class PlaybackSonicTest extends ActivityInstrumentationTestCase2<MainActi private Context context; - private PlaybackController controller; - protected FeedMedia currentMedia; - - private PlaybackController createController(Activity activity) { - return new PlaybackController(activity, false) { - - @Override - public void setupGUI() { - } - - @Override - public void onPositionObserverUpdate() { - } - - @Override - public void onBufferStart() { - } - - @Override - public void onBufferEnd() { - } - - @Override - public void onBufferUpdate(float progress) { - } - - @Override - public void handleError(int code) { - } - - @Override - public void onReloadNotification(int code) { - } - - @Override - public void onSleepTimerUpdate() { - } - - @Override - public ImageButton getPlayButton() { - return null; - } - - @Override - public void postStatusMsg(int msg) { - } - - @Override - public void clearStatusMsg() { - } - - @Override - public boolean loadMediaInfo() { - Playable playable = controller.getMedia(); - if(playable == null) { - currentMedia = null; - return true; - } else if(playable instanceof FeedMedia) { - currentMedia = (FeedMedia) playable; - return true; - } else { - return false; - } - } - - @Override - public void onAwaitingVideoSurface() { - } - - @Override - public void onServiceQueried() { - } - - @Override - public void onShutdownNotification() { - } - - @Override - public void onPlaybackEnd() { - currentMedia = null; - } - - @Override - public void onPlaybackSpeedChange() { - } - - @Override - protected void setScreenOn(boolean enable) { - } - }; - } - public PlaybackSonicTest() { super(MainActivity.class); } @@ -158,9 +66,6 @@ public class PlaybackSonicTest extends ActivityInstrumentationTestCase2<MainActi .putBoolean(UserPreferences.PREF_SONIC, true) .commit(); - controller = createController(getActivity()); - controller.init(); - solo = new Solo(getInstrumentation(), getActivity()); uiTestUtils = new UITestUtils(context); @@ -174,7 +79,6 @@ public class PlaybackSonicTest extends ActivityInstrumentationTestCase2<MainActi @Override public void tearDown() throws Exception { - controller.release(); solo.finishOpenedActivities(); uiTestUtils.tearDown(); @@ -218,8 +122,8 @@ public class PlaybackSonicTest extends ActivityInstrumentationTestCase2<MainActi solo.clickOnView(solo.getView(R.id.butSecondaryAction)); long mediaId = episodes.get(0).getMedia().getId(); boolean playing = solo.waitForCondition(() -> { - if (currentMedia != null) { - return currentMedia.getId() == mediaId; + if (uiTestUtils.getCurrentMedia(getActivity()) != null) { + return uiTestUtils.getCurrentMedia(getActivity()).getId() == mediaId; } else { return false; } @@ -238,15 +142,15 @@ public class PlaybackSonicTest extends ActivityInstrumentationTestCase2<MainActi View targetView = drawerView.getChildAt(QUEUE_DRAWER_LIST_INDEX); solo.waitForView(targetView); solo.clickOnView(targetView); - assertTrue(solo.waitForView(solo.getView(R.id.butSecondaryAction))); + final List<FeedItem> queue = DBReader.getQueue(); solo.clickOnImageButton(1); assertTrue(solo.waitForView(solo.getView(R.id.butPlay))); long mediaId = queue.get(0).getMedia().getId(); boolean playing = solo.waitForCondition(() -> { - if(currentMedia != null) { - return currentMedia.getId() == mediaId; + if(uiTestUtils.getCurrentMedia(getActivity()) != null) { + return uiTestUtils.getCurrentMedia(getActivity()).getId() == mediaId; } else { return false; } @@ -276,15 +180,19 @@ public class PlaybackSonicTest extends ActivityInstrumentationTestCase2<MainActi startLocalPlaybackFromQueue(); boolean stopped = solo.waitForCondition(() -> { - if (currentMedia != null) { - return currentMedia.getId() != first.getMedia().getId(); + if (uiTestUtils.getPlaybackController(getActivity()).getStatus() + != PlayerStatus.PLAYING) { + return true; + } else if (uiTestUtils.getCurrentMedia(getActivity()) != null) { + return uiTestUtils.getCurrentMedia(getActivity()).getId() + != first.getMedia().getId(); } else { - return false; + return true; } }, Timeout.getSmallTimeout()); assertTrue(stopped); Thread.sleep(1000); - PlayerStatus status = controller.getStatus(); + PlayerStatus status = uiTestUtils.getPlaybackController(getActivity()).getStatus(); assertFalse(status.equals(PlayerStatus.PLAYING)); } @@ -298,16 +206,18 @@ public class PlaybackSonicTest extends ActivityInstrumentationTestCase2<MainActi startLocalPlaybackFromQueue(); boolean firstPlaying = solo.waitForCondition(() -> { - if (currentMedia != null) { - return currentMedia.getId() == first.getMedia().getId(); + if (uiTestUtils.getCurrentMedia(getActivity()) != null) { + return uiTestUtils.getCurrentMedia(getActivity()).getId() + == first.getMedia().getId(); } else { return false; } }, Timeout.getSmallTimeout()); assertTrue(firstPlaying); boolean secondPlaying = solo.waitForCondition(() -> { - if (currentMedia != null) { - return currentMedia.getId() == second.getMedia().getId(); + if (uiTestUtils.getCurrentMedia(getActivity()) != null) { + return uiTestUtils.getCurrentMedia(getActivity()).getId() + == second.getMedia().getId(); } else { return false; } @@ -327,8 +237,8 @@ public class PlaybackSonicTest extends ActivityInstrumentationTestCase2<MainActi startLocalPlayback(); long mediaId = episodes.get(0).getMedia().getId(); boolean startedPlaying = solo.waitForCondition(() -> { - if (currentMedia != null) { - return currentMedia.getId() == mediaId; + if (uiTestUtils.getCurrentMedia(getActivity()) != null) { + return uiTestUtils.getCurrentMedia(getActivity()).getId() == mediaId; } else { return false; } @@ -336,14 +246,15 @@ public class PlaybackSonicTest extends ActivityInstrumentationTestCase2<MainActi assertTrue(startedPlaying); boolean stoppedPlaying = solo.waitForCondition(() -> { - return currentMedia == null || currentMedia.getId() != mediaId; + return uiTestUtils.getCurrentMedia(getActivity()) == null + || uiTestUtils.getCurrentMedia(getActivity()).getId() != mediaId; }, Timeout.getLargeTimeout()); assertTrue(stoppedPlaying); startLocalPlayback(); boolean startedReplay = solo.waitForCondition(() -> { - if(currentMedia != null) { - return currentMedia.getId() == mediaId; + if(uiTestUtils.getCurrentMedia(getActivity()) != null) { + return uiTestUtils.getCurrentMedia(getActivity()).getId() == mediaId; } else { return false; } 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 b84ea59ad..195e3d250 100644 --- a/app/src/androidTest/java/de/test/antennapod/ui/PlaybackTest.java +++ b/app/src/androidTest/java/de/test/antennapod/ui/PlaybackTest.java @@ -17,15 +17,12 @@ import java.util.List; import de.danoeh.antennapod.R; import de.danoeh.antennapod.activity.MainActivity; 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.service.playback.PlaybackService; import de.danoeh.antennapod.core.service.playback.PlayerStatus; 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.playback.PlaybackController; -import de.danoeh.antennapod.fragment.ExternalPlayerFragment; /** * test cases for starting and ending playback from the MainActivity and AudioPlayerActivity @@ -41,15 +38,6 @@ public class PlaybackTest extends ActivityInstrumentationTestCase2<MainActivity> private Context context; - private PlaybackController getPlaybackController() { - ExternalPlayerFragment fragment = (ExternalPlayerFragment)getActivity().getSupportFragmentManager().findFragmentByTag(ExternalPlayerFragment.TAG); - return fragment.getPlaybackControllerTestingOnly(); - } - - private FeedMedia getCurrentMedia() { - return (FeedMedia)getPlaybackController().getMedia(); - } - public PlaybackTest() { super(MainActivity.class); } @@ -125,12 +113,12 @@ public class PlaybackTest extends ActivityInstrumentationTestCase2<MainActivity> solo.clickOnView(solo.getView(R.id.butSecondaryAction)); long mediaId = episodes.get(0).getMedia().getId(); boolean playing = solo.waitForCondition(() -> { - if (getCurrentMedia() != null) { - return getCurrentMedia().getId() == mediaId; + if (uiTestUtils.getCurrentMedia(getActivity()) != null) { + return uiTestUtils.getCurrentMedia(getActivity()).getId() == mediaId; } else { return false; } - }, Timeout.getLargeTimeout()); + }, Timeout.getSmallTimeout()); assertTrue(playing); } @@ -145,17 +133,18 @@ public class PlaybackTest extends ActivityInstrumentationTestCase2<MainActivity> solo.waitForView(targetView); solo.clickOnView(targetView); assertTrue(solo.waitForView(solo.getView(R.id.butSecondaryAction))); + final List<FeedItem> queue = DBReader.getQueue(); solo.clickOnImageButton(1); assertTrue(solo.waitForView(solo.getView(R.id.butPlay))); long mediaId = queue.get(0).getMedia().getId(); boolean playing = solo.waitForCondition(() -> { - if(getCurrentMedia() != null) { - return getCurrentMedia().getId() == mediaId; + if(uiTestUtils.getCurrentMedia(getActivity()) != null) { + return uiTestUtils.getCurrentMedia(getActivity()).getId() == mediaId; } else { return false; } - }, Timeout.getLargeTimeout()); + }, Timeout.getSmallTimeout()); assertTrue(playing); } @@ -181,19 +170,19 @@ public class PlaybackTest extends ActivityInstrumentationTestCase2<MainActivity> final FeedItem first = queue.get(0); startLocalPlaybackFromQueue(); boolean stopped = solo.waitForCondition(() -> { - // the condition is met when playback ends and we're not playing - // anything else. When playback ends, currentMedia is set to null. - if (getPlaybackController().getStatus() != PlayerStatus.PLAYING) { + if (uiTestUtils.getPlaybackController(getActivity()).getStatus() + != PlayerStatus.PLAYING) { return true; - } else if (getCurrentMedia() != null) { - return getCurrentMedia().getId() != first.getMedia().getId(); + } else if (uiTestUtils.getCurrentMedia(getActivity()) != null) { + return uiTestUtils.getCurrentMedia(getActivity()).getId() + != first.getMedia().getId(); } else { return true; } - }, Timeout.getLargeTimeout()); + }, Timeout.getSmallTimeout()); assertTrue(stopped); Thread.sleep(1000); - PlayerStatus status = getPlaybackController().getStatus(); + PlayerStatus status = uiTestUtils.getPlaybackController(getActivity()).getStatus(); assertFalse(status.equals(PlayerStatus.PLAYING)); } @@ -207,16 +196,18 @@ public class PlaybackTest extends ActivityInstrumentationTestCase2<MainActivity> startLocalPlaybackFromQueue(); boolean firstPlaying = solo.waitForCondition(() -> { - if (getCurrentMedia() != null) { - return getCurrentMedia().getId() == first.getMedia().getId(); + if (uiTestUtils.getCurrentMedia(getActivity()) != null) { + return uiTestUtils.getCurrentMedia(getActivity()).getId() + == first.getMedia().getId(); } else { return false; } - }, Timeout.getLargeTimeout()); + }, Timeout.getSmallTimeout()); assertTrue(firstPlaying); boolean secondPlaying = solo.waitForCondition(() -> { - if (getCurrentMedia() != null) { - return getCurrentMedia().getId() == second.getMedia().getId(); + if (uiTestUtils.getCurrentMedia(getActivity()) != null) { + return uiTestUtils.getCurrentMedia(getActivity()).getId() + == second.getMedia().getId(); } else { return false; } @@ -236,23 +227,24 @@ public class PlaybackTest extends ActivityInstrumentationTestCase2<MainActivity> startLocalPlayback(); long mediaId = episodes.get(0).getMedia().getId(); boolean startedPlaying = solo.waitForCondition(() -> { - if (getCurrentMedia() != null) { - return getCurrentMedia().getId() == mediaId; + if (uiTestUtils.getCurrentMedia(getActivity()) != null) { + return uiTestUtils.getCurrentMedia(getActivity()).getId() == mediaId; } else { return false; } - }, Timeout.getLargeTimeout()); + }, Timeout.getSmallTimeout()); assertTrue(startedPlaying); boolean stoppedPlaying = solo.waitForCondition(() -> { - return getCurrentMedia() == null || getCurrentMedia().getId() != mediaId; + return uiTestUtils.getCurrentMedia(getActivity()) == null + || uiTestUtils.getCurrentMedia(getActivity()).getId() != mediaId; }, Timeout.getLargeTimeout()); assertTrue(stoppedPlaying); startLocalPlayback(); boolean startedReplay = solo.waitForCondition(() -> { - if(getCurrentMedia() != null) { - return getCurrentMedia().getId() == mediaId; + if(uiTestUtils.getCurrentMedia(getActivity()) != null) { + return uiTestUtils.getCurrentMedia(getActivity()).getId() == mediaId; } else { return false; } 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 fdde58454..9670a596a 100644 --- a/app/src/androidTest/java/de/test/antennapod/ui/UITestUtils.java +++ b/app/src/androidTest/java/de/test/antennapod/ui/UITestUtils.java @@ -21,6 +21,7 @@ import java.util.Date; import java.util.List; import de.danoeh.antennapod.R; +import de.danoeh.antennapod.activity.MainActivity; import de.danoeh.antennapod.core.feed.EventDistributor; import de.danoeh.antennapod.core.feed.Feed; import de.danoeh.antennapod.core.feed.FeedImage; @@ -28,6 +29,8 @@ import de.danoeh.antennapod.core.feed.FeedItem; import de.danoeh.antennapod.core.feed.FeedMedia; import de.danoeh.antennapod.core.event.QueueEvent; import de.danoeh.antennapod.core.storage.PodDBAdapter; +import de.danoeh.antennapod.core.util.playback.PlaybackController; +import de.danoeh.antennapod.fragment.ExternalPlayerFragment; import de.greenrobot.event.EventBus; import de.test.antennapod.util.service.download.HTTPBin; import de.test.antennapod.util.syndication.feedgenerator.RSS2Generator; @@ -219,4 +222,13 @@ public class UITestUtils { EventDistributor.getInstance().sendFeedUpdateBroadcast(); EventBus.getDefault().post(new QueueEvent(QueueEvent.Action.ADDED_ITEMS, queue)); } + + public PlaybackController getPlaybackController(MainActivity mainActivity) { + ExternalPlayerFragment fragment = (ExternalPlayerFragment)mainActivity.getSupportFragmentManager().findFragmentByTag(ExternalPlayerFragment.TAG); + return fragment.getPlaybackControllerTestingOnly(); + } + + public FeedMedia getCurrentMedia(MainActivity mainActivity) { + return (FeedMedia)getPlaybackController(mainActivity).getMedia(); + } } |