use of androidx.test.filters.LargeTest in project ExoPlayer by google.
the class SessionPlayerConnectorTest method pause_byUnderlyingPlayerInListener_changesToPlayerStatePaused.
@Test
@LargeTest
public void pause_byUnderlyingPlayerInListener_changesToPlayerStatePaused() throws Exception {
TestUtils.loadResource(R.raw.audio, sessionPlayerConnector);
ExoPlayer exoPlayer = playerTestRule.getExoPlayer();
CountDownLatch playerStateChangesLatch = new CountDownLatch(3);
CopyOnWriteArrayList<Integer> playerStateChanges = new CopyOnWriteArrayList<>();
sessionPlayerConnector.registerPlayerCallback(executor, new SessionPlayer.PlayerCallback() {
@Override
public void onPlayerStateChanged(SessionPlayer player, int playerState) {
playerStateChanges.add(playerState);
playerStateChangesLatch.countDown();
}
});
assertPlayerResultSuccess(sessionPlayerConnector.prepare());
InstrumentationRegistry.getInstrumentation().runOnMainSync(() -> exoPlayer.addListener(new Player.Listener() {
@Override
public void onPlayWhenReadyChanged(boolean playWhenReady, int reason) {
if (playWhenReady) {
exoPlayer.setPlayWhenReady(false);
}
}
}));
assertPlayerResultSuccess(sessionPlayerConnector.play());
assertThat(playerStateChangesLatch.await(PLAYER_STATE_CHANGE_WAIT_TIME_MS, MILLISECONDS)).isTrue();
assertThat(playerStateChanges).containsExactly(// After prepare()
PLAYER_STATE_PAUSED, // After play()
PLAYER_STATE_PLAYING, // After setPlayWhenREady(false)
PLAYER_STATE_PAUSED).inOrder();
assertThat(sessionPlayerConnector.getPlayerState()).isEqualTo(PLAYER_STATE_PAUSED);
}
use of androidx.test.filters.LargeTest in project ExoPlayer by google.
the class SessionPlayerConnectorTest method setMediaItem_withVideoResource_notifiesOnPlaybackCompleted.
@Test
@LargeTest
public void setMediaItem_withVideoResource_notifiesOnPlaybackCompleted() throws Exception {
TestUtils.loadResource(R.raw.video_desks, sessionPlayerConnector);
CountDownLatch onPlaybackCompletedLatch = new CountDownLatch(1);
sessionPlayerConnector.registerPlayerCallback(executor, new SessionPlayer.PlayerCallback() {
@Override
public void onPlaybackCompleted(SessionPlayer player) {
onPlaybackCompletedLatch.countDown();
}
});
sessionPlayerConnector.prepare();
sessionPlayerConnector.play();
// waiting to complete
assertThat(onPlaybackCompletedLatch.await(PLAYBACK_COMPLETED_WAIT_TIME_MS, MILLISECONDS)).isTrue();
assertThat(sessionPlayerConnector.getPlayerState()).isEqualTo(SessionPlayer.PLAYER_STATE_PAUSED);
}
use of androidx.test.filters.LargeTest in project ExoPlayer by google.
the class SessionPlayerConnectorTest method addPlaylistItem_calledOnlyOnce_notifiesPlaylistChangeOnlyOnce.
@Test
@LargeTest
public void addPlaylistItem_calledOnlyOnce_notifiesPlaylistChangeOnlyOnce() throws Exception {
List<MediaItem> playlist = TestUtils.createPlaylist(10);
assertPlayerResultSuccess(sessionPlayerConnector.setPlaylist(playlist, /* metadata= */
null));
assertPlayerResultSuccess(sessionPlayerConnector.prepare());
CountDownLatch onPlaylistChangedLatch = new CountDownLatch(2);
int addIndex = 2;
MediaItem newMediaItem = TestUtils.createMediaItem();
playlist.add(addIndex, newMediaItem);
sessionPlayerConnector.registerPlayerCallback(executor, new SessionPlayer.PlayerCallback() {
@Override
public void onPlaylistChanged(SessionPlayer player, @Nullable List<MediaItem> list, @Nullable MediaMetadata metadata) {
assertThat(list).isEqualTo(playlist);
onPlaylistChangedLatch.countDown();
}
});
sessionPlayerConnector.addPlaylistItem(addIndex, newMediaItem);
assertThat(onPlaylistChangedLatch.await(PLAYLIST_CHANGE_WAIT_TIME_MS, MILLISECONDS)).isFalse();
assertThat(onPlaylistChangedLatch.getCount()).isEqualTo(1);
}
use of androidx.test.filters.LargeTest in project ExoPlayer by google.
the class SessionPlayerConnectorTest method play_withPlaylist_notifiesOnCurrentMediaItemChangedAndOnPlaybackCompleted.
@Test
@LargeTest
public void play_withPlaylist_notifiesOnCurrentMediaItemChangedAndOnPlaybackCompleted() throws Exception {
List<MediaItem> playlist = new ArrayList<>();
playlist.add(TestUtils.createMediaItem(R.raw.video_1));
playlist.add(TestUtils.createMediaItem(R.raw.video_2));
playlist.add(TestUtils.createMediaItem(R.raw.video_3));
CountDownLatch onPlaybackCompletedLatch = new CountDownLatch(1);
sessionPlayerConnector.registerPlayerCallback(executor, new SessionPlayer.PlayerCallback() {
int currentMediaItemChangedCount = 0;
@Override
public void onCurrentMediaItemChanged(SessionPlayer player, MediaItem item) {
assertThat(item).isEqualTo(player.getCurrentMediaItem());
int expectedCurrentIndex = currentMediaItemChangedCount++;
assertThat(player.getCurrentMediaItemIndex()).isEqualTo(expectedCurrentIndex);
assertThat(item).isEqualTo(playlist.get(expectedCurrentIndex));
}
@Override
public void onPlaybackCompleted(SessionPlayer player) {
onPlaybackCompletedLatch.countDown();
}
});
assertThat(sessionPlayerConnector.setPlaylist(playlist, null)).isNotNull();
assertThat(sessionPlayerConnector.prepare()).isNotNull();
assertThat(sessionPlayerConnector.play()).isNotNull();
assertThat(onPlaybackCompletedLatch.await(PLAYBACK_COMPLETED_WAIT_TIME_MS, MILLISECONDS)).isTrue();
}
use of androidx.test.filters.LargeTest in project Resurrection_packages_apps_Settings by ResurrectionRemix.
the class PrintJobSettingsActivityTest method viewPrintJobSettings.
@Test
@LargeTest
public void viewPrintJobSettings() throws Exception {
UUID uuid = UUID.randomUUID();
Object isWriteCalled = new Object();
// Create adapter that is good enough to start a print preview
PrintDocumentAdapter adapter = new PrintDocumentAdapter() {
@Override
public void onLayout(PrintAttributes oldAttributes, PrintAttributes newAttributes, CancellationSignal cancellationSignal, LayoutResultCallback callback, Bundle extras) {
callback.onLayoutFinished(new PrintDocumentInfo.Builder(uuid.toString()).build(), true);
}
@Override
public void onWrite(PageRange[] pages, ParcelFileDescriptor destination, CancellationSignal cancellationSignal, WriteResultCallback callback) {
synchronized (isWriteCalled) {
isWriteCalled.notify();
}
callback.onWriteFailed(null);
}
};
Activity activity = mActivityRule.getActivity();
PrintManager pm = mActivityRule.getActivity().getSystemService(PrintManager.class);
// Start printing
PrintJob printJob = pm.print(uuid.toString(), adapter, null);
// Wait until print preview is up
synchronized (isWriteCalled) {
isWriteCalled.wait();
}
// Start print job settings
Intent intent = new Intent(android.provider.Settings.ACTION_PRINT_SETTINGS);
intent.putExtra(EXTRA_PRINT_JOB_ID, printJob.getId().flattenToString());
intent.setData(Uri.fromParts("printjob", printJob.getId().flattenToString(), null));
activity.startActivity(intent);
UiDevice uiDevice = UiDevice.getInstance(InstrumentationRegistry.getInstrumentation());
UiObject2 printPrefTitle = uiDevice.wait(Until.findObject(By.text("Configuring " + uuid.toString())), 5000);
assertNotNull(printPrefTitle);
Log.i(LOG_TAG, "Found " + printPrefTitle.getText());
}
Aggregations