Skip to content

Commit 6ba1839

Browse files
committed
added one more scenario
1 parent bfbadd0 commit 6ba1839

File tree

1 file changed

+47
-13
lines changed
  • instrumentation-tests/src/androidTest/java/com/mapbox/navigation/instrumentation_tests/core

1 file changed

+47
-13
lines changed

instrumentation-tests/src/androidTest/java/com/mapbox/navigation/instrumentation_tests/core/RoutesPreivewTest.kt renamed to instrumentation-tests/src/androidTest/java/com/mapbox/navigation/instrumentation_tests/core/RoutesPreviewTest.kt

Lines changed: 47 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,46 +1,36 @@
11
package com.mapbox.navigation.instrumentation_tests.core
22

33
import android.location.Location
4-
import com.mapbox.api.directions.v5.DirectionsCriteria
5-
import com.mapbox.api.directions.v5.models.RouteOptions
64
import com.mapbox.navigation.base.ExperimentalPreviewMapboxNavigationAPI
75
import com.mapbox.navigation.base.options.NavigationOptions
86
import com.mapbox.navigation.base.route.NavigationRoute
9-
import com.mapbox.navigation.base.route.RouterOrigin
7+
import com.mapbox.navigation.base.trip.model.RouteProgressState
108
import com.mapbox.navigation.core.MapboxNavigation
119
import com.mapbox.navigation.core.MapboxNavigationProvider
12-
import com.mapbox.navigation.core.RoutesSetError
1310
import com.mapbox.navigation.core.directions.session.RoutesExtra
1411
import com.mapbox.navigation.core.directions.session.RoutesUpdatedResult
1512
import com.mapbox.navigation.core.preview.RoutesPreviewUpdate
1613
import com.mapbox.navigation.core.preview.RoutesPreviewUpdateReasons
1714
import com.mapbox.navigation.instrumentation_tests.activity.EmptyTestActivity
1815
import com.mapbox.navigation.instrumentation_tests.utils.MapboxNavigationRule
16+
import com.mapbox.navigation.instrumentation_tests.utils.coroutines.routeProgressUpdates
1917
import com.mapbox.navigation.instrumentation_tests.utils.coroutines.routesPreviewUpdates
2018
import com.mapbox.navigation.instrumentation_tests.utils.coroutines.routesUpdates
2119
import com.mapbox.navigation.instrumentation_tests.utils.coroutines.sdkTest
22-
import com.mapbox.navigation.instrumentation_tests.utils.coroutines.setNavigationRoutesAsync
2320
import com.mapbox.navigation.instrumentation_tests.utils.routes.RoutesProvider
2421
import com.mapbox.navigation.instrumentation_tests.utils.routes.RoutesProvider.toNavigationRoutes
2522
import com.mapbox.navigation.testing.ui.BaseTest
2623
import com.mapbox.navigation.testing.ui.utils.getMapboxAccessTokenFromResources
2724
import com.mapbox.navigation.testing.ui.utils.runOnMainSync
28-
import kotlinx.coroutines.delay
2925
import kotlinx.coroutines.flow.first
30-
import org.junit.Assert
3126
import org.junit.Assert.assertEquals
32-
import org.junit.Assert.assertNotNull
3327
import org.junit.Assert.assertNull
34-
import org.junit.Assert.assertTrue
3528
import org.junit.Before
3629
import org.junit.Rule
3730
import org.junit.Test
38-
import java.util.concurrent.TimeUnit
39-
import kotlin.coroutines.resume
40-
import kotlin.coroutines.suspendCoroutine
4131

4232
@OptIn(ExperimentalPreviewMapboxNavigationAPI::class)
43-
class RoutesPreivewTest : BaseTest<EmptyTestActivity>(EmptyTestActivity::class.java) {
33+
class RoutesPreviewTest : BaseTest<EmptyTestActivity>(EmptyTestActivity::class.java) {
4434

4535
override fun setupMockLocation(): Location = mockLocationUpdatesRule.generateLocationUpdate {
4636
latitude = 38.894721
@@ -89,6 +79,8 @@ class RoutesPreivewTest : BaseTest<EmptyTestActivity>(EmptyTestActivity::class.j
8979
mapboxNavigation.setRoutesPreview(emptyList())
9080
mapboxNavigation.routesUpdates()
9181
.first { it.reason == RoutesExtra.ROUTES_UPDATE_REASON_NEW }
82+
mapboxNavigation.routeProgressUpdates().
83+
first { it.currentState == RouteProgressState.TRACKING }
9284
assertEquals(RoutesPreviewUpdateReasons.PREVIEW_CLEAN_UP, currentRoutesPreview?.reason)
9385
assertNull(currentRoutesPreview!!.routesPreview)
9486
assertEquals(RoutesExtra.ROUTES_UPDATE_REASON_NEW, currentRoutes!!.reason)
@@ -102,4 +94,46 @@ class RoutesPreivewTest : BaseTest<EmptyTestActivity>(EmptyTestActivity::class.j
10294
assertEquals(RoutesExtra.ROUTES_UPDATE_REASON_CLEAN_UP, currentRoutes!!.reason)
10395
assertEquals(emptyList<NavigationRoute>(), currentRoutes!!.navigationRoutes)
10496
}
97+
98+
@Test
99+
fun route_preview_in_parallel_to_active_guidance() = sdkTest {
100+
var currentRoutesPreview: RoutesPreviewUpdate? = null
101+
mapboxNavigation.registerRoutesPreviewObserver { update ->
102+
currentRoutesPreview = update
103+
}
104+
var currentRoutes: RoutesUpdatedResult? = null
105+
mapboxNavigation.registerRoutesObserver { update ->
106+
currentRoutes = update
107+
}
108+
// initial free drive
109+
mapboxNavigation.startTripSession()
110+
assertNull(currentRoutesPreview)
111+
assertNull(currentRoutes)
112+
// set routes preview
113+
val initialRoutes = RoutesProvider.dc_very_short(activity).toNavigationRoutes()
114+
mapboxNavigation.setRoutesPreview(initialRoutes)
115+
mapboxNavigation.routesPreviewUpdates()
116+
.first { it.reason == RoutesPreviewUpdateReasons.PREVIEW_NEW }
117+
// start active guidance
118+
mapboxNavigation.setNavigationRoutes(currentRoutesPreview!!.routesPreview!!.routesList)
119+
mapboxNavigation.setRoutesPreview(emptyList())
120+
mapboxNavigation.routeProgressUpdates()
121+
.first { it.currentState == RouteProgressState.TRACKING }
122+
// preview a different route not leaving action guidance
123+
val updatedRoutes = RoutesProvider.dc_very_short_two_legs(activity).toNavigationRoutes()
124+
mapboxNavigation.setRoutesPreview(updatedRoutes)
125+
mapboxNavigation.routesPreviewUpdates()
126+
.first { it.routesPreview?.routesList == updatedRoutes }
127+
assertEquals(
128+
"active guidance should track initial routes",
129+
initialRoutes,
130+
currentRoutes?.navigationRoutes
131+
)
132+
// user decided to switch to previewed routes
133+
mapboxNavigation.setNavigationRoutes(currentRoutesPreview!!.routesPreview!!.routesList)
134+
mapboxNavigation.setRoutesPreview(emptyList())
135+
mapboxNavigation.routeProgressUpdates().first {
136+
it.navigationRoute == updatedRoutes[0]
137+
}
138+
}
105139
}

0 commit comments

Comments
 (0)