diff options
author | tobrun <tobrun.van.nuland@gmail.com> | 2018-01-02 12:15:18 +0100 |
---|---|---|
committer | tobrun <tobrun.van.nuland@gmail.com> | 2018-01-02 12:29:36 +0100 |
commit | faa34d6383c0448455d775deea0831d4fcba1875 (patch) | |
tree | 7bceafea8524a760e55ea10bfc68474dc798e944 | |
parent | 4709bf0529f3ff68702bbb3435fd87837a7f380b (diff) | |
download | qtlocation-mapboxgl-upstream/tvn-orientation-test.tar.gz |
[android] - add orientation change regression testupstream/tvn-orientation-test
3 files changed, 107 insertions, 1 deletions
diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/maps/OrientationTest.java b/platform/android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/maps/OrientationTest.java new file mode 100644 index 0000000000..d4279b4908 --- /dev/null +++ b/platform/android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/maps/OrientationTest.java @@ -0,0 +1,36 @@ +package com.mapbox.mapboxsdk.maps; + +import com.mapbox.mapboxsdk.testapp.activity.BaseActivityTest; +import com.mapbox.mapboxsdk.testapp.activity.camera.CameraAnimationTypeActivity; +import org.junit.Test; + +import static android.support.test.espresso.Espresso.onView; +import static android.support.test.espresso.matcher.ViewMatchers.isRoot; +import static com.mapbox.mapboxsdk.testapp.action.OrientationChangeAction.orientationLandscape; +import static com.mapbox.mapboxsdk.testapp.action.OrientationChangeAction.orientationPortrait; + +public class OrientationTest extends BaseActivityTest { + + @Test + public void testChangeDeviceOrientation() { + onView(isRoot()).perform(orientationLandscape()); + waitLoop(2200); + onView(isRoot()).perform(orientationPortrait()); + waitLoop(2200); + onView(isRoot()).perform(orientationLandscape()); + onView(isRoot()).perform(orientationPortrait()); + onView(isRoot()).perform(orientationLandscape()); + onView(isRoot()).perform(orientationPortrait()); + onView(isRoot()).perform(orientationLandscape()); + onView(isRoot()).perform(orientationPortrait()); + onView(isRoot()).perform(orientationLandscape()); + onView(isRoot()).perform(orientationPortrait()); + onView(isRoot()).perform(orientationLandscape()); + } + + @Override + protected Class getActivityClass() { + return CameraAnimationTypeActivity.class; + } + +} diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/testapp/action/OrientationChangeAction.java b/platform/android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/testapp/action/OrientationChangeAction.java new file mode 100644 index 0000000000..5a53fdf1c2 --- /dev/null +++ b/platform/android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/testapp/action/OrientationChangeAction.java @@ -0,0 +1,66 @@ +package com.mapbox.mapboxsdk.testapp.action; + + +import android.app.Activity; +import android.content.Context; +import android.content.ContextWrapper; +import android.content.pm.ActivityInfo; +import android.support.test.espresso.UiController; +import android.support.test.espresso.ViewAction; +import android.view.View; +import android.view.ViewGroup; +import org.hamcrest.Matcher; + +import static android.support.test.espresso.matcher.ViewMatchers.isRoot; + +public class OrientationChangeAction implements ViewAction { + + private final int orientation; + + private OrientationChangeAction(int orientation) { + this.orientation = orientation; + } + + public static ViewAction orientationLandscape() { + return new OrientationChangeAction(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE); + } + + public static ViewAction orientationPortrait() { + return new OrientationChangeAction(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT); + } + + @Override + public Matcher<View> getConstraints() { + return isRoot(); + } + + @Override + public String getDescription() { + return "change orientation to " + orientation; + } + + @Override + public void perform(UiController uiController, View view) { + uiController.loopMainThreadUntilIdle(); + Activity activity = getActivity(view.getContext()); + if (activity == null && view instanceof ViewGroup) { + ViewGroup v = (ViewGroup) view; + int c = v.getChildCount(); + for (int i = 0; i < c && activity == null; ++i) { + activity = getActivity(v.getChildAt(i).getContext()); + } + } + activity.setRequestedOrientation(orientation); + } + + private Activity getActivity(Context context) { + while (context instanceof ContextWrapper) { + if (context instanceof Activity) { + return (Activity) context; + } + context = ((ContextWrapper) context).getBaseContext(); + } + return null; + } + +} diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/testapp/activity/BaseActivityTest.java b/platform/android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/testapp/activity/BaseActivityTest.java index 61bff1f113..36dffbfb3a 100644 --- a/platform/android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/testapp/activity/BaseActivityTest.java +++ b/platform/android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/testapp/activity/BaseActivityTest.java @@ -72,7 +72,11 @@ public abstract class BaseActivityTest { } protected void waitLoop() { - onView(withId(R.id.mapView)).perform(new LoopAction(500)); + waitLoop(500); + } + + protected void waitLoop(long waitTime){ + onView(withId(R.id.mapView)).perform(new LoopAction(waitTime)); } static boolean isConnected(Context context) { |