summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authortobrun <tobrun.van.nuland@gmail.com>2019-03-05 12:03:56 +0100
committertobrun <tobrun.van.nuland@gmail.com>2019-03-05 12:03:56 +0100
commitba1d5b8b41cc7082cde60d5f3fa4b4d36427ff2a (patch)
tree2e8101435b36c249629feabf98db8fddb6babc8d
parent05026b704adcbe97c923989b3e2e46feb4fdc7ee (diff)
downloadqtlocation-mapboxgl-upstream/tvn-dialog-framgent-fix.tar.gz
[android] - fix dialog fragment setup, add regression testupstream/tvn-dialog-framgent-fix
-rw-r--r--platform/android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/testapp/fragment/MapDialogFragmentTest.kt33
-rw-r--r--platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/maplayout/MapInDialogActivity.java28
2 files changed, 52 insertions, 9 deletions
diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/testapp/fragment/MapDialogFragmentTest.kt b/platform/android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/testapp/fragment/MapDialogFragmentTest.kt
new file mode 100644
index 0000000000..418191e91a
--- /dev/null
+++ b/platform/android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/testapp/fragment/MapDialogFragmentTest.kt
@@ -0,0 +1,33 @@
+package com.mapbox.mapboxsdk.testapp.fragment
+
+import android.support.test.espresso.Espresso
+import android.support.test.espresso.Espresso.onView
+import android.support.test.espresso.action.ViewActions.click
+import android.support.test.espresso.matcher.ViewMatchers.withId
+import android.support.test.filters.LargeTest
+import android.support.test.rule.ActivityTestRule
+import android.support.test.runner.AndroidJUnit4
+import com.mapbox.mapboxsdk.testapp.R
+import com.mapbox.mapboxsdk.testapp.action.WaitAction
+import com.mapbox.mapboxsdk.testapp.activity.maplayout.MapInDialogActivity
+import org.junit.Rule
+import org.junit.Test
+import org.junit.runner.RunWith
+
+/**
+ * Regression test that validates that a map inside a DialogFragment can be opened and closed.
+ */
+@RunWith(AndroidJUnit4::class)
+@LargeTest
+class MapDialogFragmentTest {
+
+ @get:Rule
+ var activityRule: ActivityTestRule<MapInDialogActivity> = ActivityTestRule(MapInDialogActivity::class.java)
+
+ @Test
+ fun openCloseDialog() {
+ onView(withId(R.id.button_open_dialog)).perform(click())
+ onView(withId(R.id.mapView)).perform(WaitAction(2500))
+ Espresso.pressBack()
+ }
+} \ No newline at end of file
diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/maplayout/MapInDialogActivity.java b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/maplayout/MapInDialogActivity.java
index 509b223d5f..c9a9377885 100644
--- a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/maplayout/MapInDialogActivity.java
+++ b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/maplayout/MapInDialogActivity.java
@@ -52,14 +52,13 @@ public class MapInDialogActivity extends AppCompatActivity {
}
@Override
- public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
+ public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
return inflater.inflate(R.layout.fragment_dialog_map, container);
}
@Override
- public void onViewCreated(View view, @Nullable Bundle savedInstanceState) {
+ public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
-
mapView = view.findViewById(R.id.mapView);
mapView.onCreate(savedInstanceState);
mapView.getMapAsync(mapboxMap -> mapboxMap.setStyle(Style.OUTDOORS));
@@ -75,6 +74,7 @@ public class MapInDialogActivity extends AppCompatActivity {
mapView.onPause();
mapView.onStop();
mapView.onDestroy();
+ mapView = null;
}
super.dismiss();
}
@@ -96,31 +96,41 @@ public class MapInDialogActivity extends AppCompatActivity {
@Override
public void onPause() {
super.onPause();
- mapView.onPause();
+ if (mapView != null) {
+ mapView.onPause();
+ }
}
@Override
public void onStop() {
super.onStop();
- mapView.onStop();
+ if (mapView != null) {
+ mapView.onStop();
+ }
}
@Override
public void onDestroyView() {
super.onDestroyView();
- mapView.onDestroy();
+ if (mapView != null) {
+ mapView.onDestroy();
+ }
}
@Override
public void onLowMemory() {
super.onLowMemory();
- mapView.onLowMemory();
+ if (mapView != null) {
+ mapView.onLowMemory();
+ }
}
@Override
public void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
- mapView.onSaveInstanceState(outState);
+ if (mapView != null) {
+ mapView.onSaveInstanceState(outState);
+ }
}
}
-}
+} \ No newline at end of file