diff options
Diffstat (limited to 'platform/android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/testapp/activity/BaseActivityTest.java')
-rw-r--r-- | platform/android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/testapp/activity/BaseActivityTest.java | 65 |
1 files changed, 54 insertions, 11 deletions
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 2f51140cd1..c029bc09c4 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 @@ -1,21 +1,29 @@ package com.mapbox.mapboxsdk.testapp.activity; import android.app.Activity; +import android.content.Context; +import android.net.ConnectivityManager; +import android.net.NetworkInfo; import android.support.test.espresso.Espresso; import android.support.test.espresso.IdlingResourceTimeoutException; +import android.support.test.espresso.UiController; +import android.support.test.espresso.ViewAction; import android.support.test.rule.ActivityTestRule; - -import timber.log.Timber; +import android.view.View; import com.mapbox.mapboxsdk.maps.MapboxMap; import com.mapbox.mapboxsdk.testapp.R; import com.mapbox.mapboxsdk.testapp.utils.OnMapReadyIdlingResource; -import com.mapbox.mapboxsdk.testapp.utils.ScreenshotUtil; +import junit.framework.Assert; + +import org.hamcrest.Matcher; import org.junit.After; import org.junit.Before; import org.junit.Rule; +import timber.log.Timber; + import static android.support.test.espresso.Espresso.onView; import static android.support.test.espresso.assertion.ViewAssertions.matches; import static android.support.test.espresso.matcher.ViewMatchers.isDisplayed; @@ -46,6 +54,16 @@ public abstract class BaseActivityTest { } } + protected void validateTestSetup() { + Assert.assertTrue("Device is not connected to the Internet.", isConnected(rule.getActivity())); + checkViewIsDisplayed(R.id.mapView); + Assert.assertNotNull(mapboxMap); + } + + protected MapboxMap getMapboxMap() { + return mapboxMap; + } + protected abstract Class getActivityClass(); protected void checkViewIsDisplayed(int id) { @@ -53,14 +71,15 @@ public abstract class BaseActivityTest { .check(matches(isDisplayed())); } - protected void takeScreenshot(final String name) { - final Activity activity = rule.getActivity(); - activity.runOnUiThread(new Runnable() { - @Override - public void run() { - ScreenshotUtil.take(activity, name); - } - }); + protected void waitLoop() { + onView(withId(R.id.mapView)).perform(new LoopAction(500)); + } + + static boolean isConnected(Context context) { + ConnectivityManager connectivityManager + = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE); + NetworkInfo activeNetworkInfo = connectivityManager.getActiveNetworkInfo(); + return activeNetworkInfo != null && activeNetworkInfo.isConnected(); } @After @@ -68,5 +87,29 @@ public abstract class BaseActivityTest { Timber.e("@After test: unregister idle resource"); Espresso.unregisterIdlingResources(idlingResource); } + + private class LoopAction implements ViewAction { + + private long loopTime; + + public LoopAction(long loopTime) { + this.loopTime = loopTime; + } + + @Override + public Matcher<View> getConstraints() { + return isDisplayed(); + } + + @Override + public String getDescription() { + return getClass().getSimpleName(); + } + + @Override + public void perform(UiController uiController, View view) { + uiController.loopMainThreadForAtLeast(loopTime); + } + } } |