diff --git a/src/androidTest/java/de/dennisguse/opentracks/EspressoDeleteTrackTest.java b/src/androidTest/java/de/dennisguse/opentracks/EspressoDeleteTrackTest.java index cd9232503..c80e331d6 100644 --- a/src/androidTest/java/de/dennisguse/opentracks/EspressoDeleteTrackTest.java +++ b/src/androidTest/java/de/dennisguse/opentracks/EspressoDeleteTrackTest.java @@ -5,6 +5,7 @@ import static androidx.test.espresso.Espresso.onData; import static androidx.test.espresso.Espresso.onView; import static androidx.test.espresso.Espresso.pressBack; import static androidx.test.espresso.action.ViewActions.click; +import static androidx.test.espresso.action.ViewActions.longClick; import static androidx.test.espresso.action.ViewActions.scrollTo; import static androidx.test.espresso.assertion.ViewAssertions.matches; import static androidx.test.espresso.matcher.ViewMatchers.isDisplayed; @@ -14,7 +15,6 @@ import static androidx.test.espresso.matcher.ViewMatchers.withText; import static org.hamcrest.Matchers.allOf; import static org.hamcrest.Matchers.anything; import static de.dennisguse.opentracks.util.EspressoUtils.childAtPosition; -import static de.dennisguse.opentracks.util.EspressoUtils.veryLongTouch; import static de.dennisguse.opentracks.util.EspressoUtils.waitFor; import static de.dennisguse.opentracks.util.EspressoUtils.withListSize; @@ -90,7 +90,7 @@ public class EspressoDeleteTrackTest { trackControllerStopButton.perform(waitFor(5000)); // stop; - trackControllerStopButton.perform(veryLongTouch(1600)); + trackControllerStopButton.perform(longClick()); } // back @@ -100,7 +100,7 @@ public class EspressoDeleteTrackTest { countBefore = numberOfItemsListView(); // select track - onData(anything()).inAdapterView(withId(R.id.track_list)).atPosition(0).perform(veryLongTouch(5000)); + onData(anything()).inAdapterView(withId(R.id.track_list)).atPosition(0).perform(longClick()); // open menu and delete selected track ViewInteraction overflowMenuButton = onView( diff --git a/src/androidTest/java/de/dennisguse/opentracks/EspressoUITest.java b/src/androidTest/java/de/dennisguse/opentracks/EspressoUITest.java index 1bd356182..26819cf57 100644 --- a/src/androidTest/java/de/dennisguse/opentracks/EspressoUITest.java +++ b/src/androidTest/java/de/dennisguse/opentracks/EspressoUITest.java @@ -11,19 +11,12 @@ import static org.hamcrest.Matchers.anything; import static de.dennisguse.opentracks.util.EspressoUtils.selectTabAtIndex; import static de.dennisguse.opentracks.util.EspressoUtils.waitFor; -import android.view.MotionEvent; -import android.view.View; - -import androidx.test.espresso.UiController; -import androidx.test.espresso.ViewAction; import androidx.test.espresso.ViewInteraction; -import androidx.test.espresso.action.MotionEvents; import androidx.test.ext.junit.rules.ActivityScenarioRule; import androidx.test.ext.junit.runners.AndroidJUnit4; import androidx.test.filters.LargeTest; import androidx.test.rule.GrantPermissionRule; -import org.hamcrest.Matcher; import org.junit.Rule; import org.junit.Test; import org.junit.runner.RunWith; @@ -93,7 +86,7 @@ public class EspressoUITest { tabLayout.perform(waitFor(1000)); // stop - trackControllerStopButton.perform(veryLongTouch(1600)); + trackControllerStopButton.perform(longClick()); } } @@ -101,36 +94,6 @@ public class EspressoUITest { @Test public void selectAndDeleteTrack() { onView(withId(R.id.track_list)).check(matches(isDisplayed())); - onData(anything()).inAdapterView(withId(R.id.track_list)).atPosition(0).perform(veryLongTouch(2000)); + onData(anything()).inAdapterView(withId(R.id.track_list)).atPosition(0).perform(longClick()); } - - private static ViewAction veryLongTouch(final int duration_ms) { - return new ViewAction() { - @Override - public String getDescription() { - return "Perform long touch."; - } - - @Override - public Matcher getConstraints() { - return isDisplayed(); - } - - @Override - public void perform(UiController uiController, final View view) { - // Get view absolute position - int[] location = new int[2]; - view.getLocationOnScreen(location); - - // Offset coordinates by view position - float[] coordinates = new float[]{location[0] + 1, location[1] + 1}; - - // Send down event, pause, and send up - MotionEvent down = MotionEvents.sendDown(uiController, coordinates, new float[]{1f, 1f}).down; - uiController.loopMainThreadForAtLeast(duration_ms); - MotionEvents.sendUp(uiController, down, coordinates); - } - }; - } - } diff --git a/src/androidTest/java/de/dennisguse/opentracks/ui/customRecordingLayout/EspressoCustomLayoutTest.java b/src/androidTest/java/de/dennisguse/opentracks/ui/customRecordingLayout/EspressoCustomLayoutTest.java index 162c9867c..45b32c4a4 100644 --- a/src/androidTest/java/de/dennisguse/opentracks/ui/customRecordingLayout/EspressoCustomLayoutTest.java +++ b/src/androidTest/java/de/dennisguse/opentracks/ui/customRecordingLayout/EspressoCustomLayoutTest.java @@ -3,10 +3,10 @@ package de.dennisguse.opentracks.ui.customRecordingLayout; import static androidx.test.espresso.Espresso.onView; import static androidx.test.espresso.action.ViewActions.click; +import static androidx.test.espresso.action.ViewActions.longClick; import static androidx.test.espresso.matcher.ViewMatchers.assertThat; import static androidx.test.espresso.matcher.ViewMatchers.withId; import static org.hamcrest.CoreMatchers.is; -import static de.dennisguse.opentracks.util.EspressoUtils.veryLongTouch; import android.view.View; @@ -51,7 +51,7 @@ public class EspressoCustomLayoutTest { // stop recording ViewInteraction trackControllerStopButton = onView(withId(R.id.track_recording_fab_action)); - trackControllerStopButton.perform(veryLongTouch(1600)); + trackControllerStopButton.perform(longClick()); } private static class RecyclerViewItemCountAssertion implements ViewAssertion { diff --git a/src/androidTest/java/de/dennisguse/opentracks/util/EspressoUtils.java b/src/androidTest/java/de/dennisguse/opentracks/util/EspressoUtils.java index bf618fb95..3b282de89 100644 --- a/src/androidTest/java/de/dennisguse/opentracks/util/EspressoUtils.java +++ b/src/androidTest/java/de/dennisguse/opentracks/util/EspressoUtils.java @@ -1,21 +1,14 @@ package de.dennisguse.opentracks.util; import static androidx.test.espresso.matcher.ViewMatchers.isDisplayed; -import static androidx.test.espresso.matcher.ViewMatchers.isRoot; -import static androidx.test.espresso.matcher.ViewMatchers.withId; -import static androidx.test.espresso.util.TreeIterables.breadthFirstViewTraversal; -import android.view.MotionEvent; import android.view.View; import android.view.ViewGroup; import android.view.ViewParent; import android.widget.ListView; -import androidx.test.espresso.PerformException; import androidx.test.espresso.UiController; import androidx.test.espresso.ViewAction; -import androidx.test.espresso.action.MotionEvents; -import androidx.test.espresso.util.HumanReadables; import com.google.android.material.tabs.TabLayout; @@ -23,8 +16,6 @@ import org.hamcrest.Description; import org.hamcrest.Matcher; import org.hamcrest.TypeSafeMatcher; -import java.util.concurrent.TimeoutException; - public class EspressoUtils { public static Matcher childAtPosition( @@ -80,76 +71,6 @@ public class EspressoUtils { }; } - public static ViewAction veryLongTouch(final int duration_ms) { - return new ViewAction() { - @Override - public String getDescription() { - return "Perform long touch."; - } - - @Override - public Matcher getConstraints() { - return isDisplayed(); - } - - @Override - public void perform(UiController uiController, final View view) { - // Get view absolute position - int[] location = new int[2]; - view.getLocationOnScreen(location); - - // Offset coordinates by view position - float[] coordinates = new float[]{location[0] + 1, location[1] + 1}; - - // Send down event, pause, and send up - MotionEvent down = MotionEvents.sendDown(uiController, coordinates, new float[]{1f, 1f}).down; - uiController.loopMainThreadForAtLeast(duration_ms); - MotionEvents.sendUp(uiController, down, coordinates); - } - }; - } - - public static ViewAction waitId(final int viewId, final long millis) { - return new ViewAction() { - @Override - public Matcher getConstraints() { - return isRoot(); - } - - @Override - public String getDescription() { - return "wait for a specific view with id <" + viewId + "> during " + millis + " millis."; - } - - @Override - public void perform(final UiController uiController, final View view) { - uiController.loopMainThreadUntilIdle(); - final long startTime = System.currentTimeMillis(); - final long endTime = startTime + millis; - final Matcher viewMatcher = withId(viewId); - - do { - for (View child : breadthFirstViewTraversal(view)) { - // found view with required ID - if (viewMatcher.matches(child)) { - return; - } - } - - uiController.loopMainThreadForAtLeast(50); - } - while (System.currentTimeMillis() < endTime); - - // timeout happens - throw new PerformException.Builder() - .withActionDescription(this.getDescription()) - .withViewDescription(HumanReadables.describe(view)) - .withCause(new TimeoutException()) - .build(); - } - }; - } - public static ViewAction selectTabAtIndex(final int index) { return new ViewAction() { @Override