mirror of
https://codeberg.org/OpenTracksApp/OpenTracks.git
synced 2026-10-02 17:43:06 +02:00
71 lines
3.0 KiB
Java
71 lines
3.0 KiB
Java
package de.dennisguse.opentracks.util;
|
|
|
|
import static androidx.test.espresso.Espresso.onView;
|
|
import static androidx.test.espresso.action.ViewActions.closeSoftKeyboard;
|
|
import static androidx.test.espresso.action.ViewActions.replaceText;
|
|
import static androidx.test.espresso.action.ViewActions.scrollTo;
|
|
import static androidx.test.espresso.matcher.ViewMatchers.isClickable;
|
|
import static androidx.test.espresso.matcher.ViewMatchers.withId;
|
|
import static de.dennisguse.opentracks.util.ActivityTestUtils.waitForResumedActivity;
|
|
import static de.dennisguse.opentracks.util.EspressoUtils.performClick;
|
|
import static de.dennisguse.opentracks.util.EspressoUtils.performLongClick;
|
|
import static de.dennisguse.opentracks.util.EspressoUtils.waitUntilDisplayed;
|
|
import static de.dennisguse.opentracks.util.TrackRecordingServiceTestUtils.waitForRecordingState;
|
|
import static org.hamcrest.Matchers.allOf;
|
|
|
|
import androidx.annotation.IdRes;
|
|
|
|
import java.time.Duration;
|
|
|
|
import de.dennisguse.opentracks.R;
|
|
import de.dennisguse.opentracks.TrackListActivity;
|
|
import de.dennisguse.opentracks.TrackRecordingActivity;
|
|
import de.dennisguse.opentracks.TrackStoppedActivity;
|
|
|
|
public final class TrackUiTestUtils {
|
|
|
|
private TrackUiTestUtils() {
|
|
}
|
|
|
|
public static void startRecordingFromTrackList(Duration timeout) {
|
|
onView(withId(R.id.track_list_fab_action))
|
|
.perform(performClick());
|
|
waitForResumedActivity(TrackRecordingActivity.class, timeout);
|
|
waitForRecordingState(true, timeout);
|
|
waitUntilDisplayed(withId(R.id.track_recording_fab_action), timeout);
|
|
}
|
|
|
|
public static void stopRecordingToTrackStopped(Duration timeout, @IdRes int... expectedVisibleViewIds) {
|
|
onView(withId(R.id.track_recording_fab_action))
|
|
.perform(performLongClick());
|
|
waitForResumedActivity(TrackStoppedActivity.class, timeout);
|
|
waitUntilDisplayed(withId(R.id.track_edit_name), timeout);
|
|
for (int viewId : expectedVisibleViewIds) {
|
|
waitUntilDisplayed(withId(viewId), timeout);
|
|
}
|
|
onView(withId(R.id.track_edit_name))
|
|
.perform(closeSoftKeyboard());
|
|
}
|
|
|
|
public static void resumeStoppedTrack(Duration timeout) {
|
|
onView(allOf(withId(R.id.resume_button), isClickable()))
|
|
.perform(performClick());
|
|
waitForResumedActivity(TrackRecordingActivity.class, timeout);
|
|
waitForRecordingState(true, timeout);
|
|
waitUntilDisplayed(withId(R.id.track_recording_fab_action), timeout);
|
|
}
|
|
|
|
public static void finishStoppedTrack(Duration timeout) {
|
|
onView(withId(R.id.finish_button))
|
|
.perform(performClick());
|
|
waitForResumedActivity(TrackListActivity.class, timeout);
|
|
waitUntilDisplayed(withId(R.id.track_list), timeout);
|
|
}
|
|
|
|
public static void renameStoppedTrack(String name, Duration timeout) {
|
|
waitUntilDisplayed(withId(R.id.track_edit_name), timeout);
|
|
onView(withId(R.id.track_edit_name))
|
|
.perform(scrollTo(), replaceText(name), closeSoftKeyboard());
|
|
}
|
|
}
|