11package com.mapbox.navigation.instrumentation_tests.core
22
33import android.location.Location
4- import com.mapbox.api.directions.v5.DirectionsCriteria
5- import com.mapbox.api.directions.v5.models.RouteOptions
64import com.mapbox.navigation.base.options.NavigationOptions
7- import com.mapbox.navigation.base.route.NavigationRoute
8- import com.mapbox.navigation.base.route.RouterOrigin
95import com.mapbox.navigation.core.MapboxNavigation
106import com.mapbox.navigation.core.MapboxNavigationProvider
11- import com.mapbox.navigation.core.RoutesSetError
127import com.mapbox.navigation.core.directions.session.RoutesExtra
138import com.mapbox.navigation.instrumentation_tests.activity.EmptyTestActivity
149import com.mapbox.navigation.instrumentation_tests.utils.MapboxNavigationRule
1510import com.mapbox.navigation.instrumentation_tests.utils.coroutines.sdkTest
16- import com.mapbox.navigation.instrumentation_tests.utils.coroutines.setNavigationRoutesAsync
17- import com.mapbox.navigation.instrumentation_tests.utils.coroutines.waitForNewRoute
1811import com.mapbox.navigation.instrumentation_tests.utils.coroutines.waitForPreviewRoute
19- import com.mapbox.navigation.instrumentation_tests.utils.coroutines.withLogOnTimeout
2012import com.mapbox.navigation.instrumentation_tests.utils.routes.RoutesProvider
2113import com.mapbox.navigation.instrumentation_tests.utils.routes.RoutesProvider.toNavigationRoutes
2214import com.mapbox.navigation.testing.ui.BaseTest
2315import com.mapbox.navigation.testing.ui.utils.getMapboxAccessTokenFromResources
2416import com.mapbox.navigation.testing.ui.utils.runOnMainSync
2517import kotlinx.coroutines.async
26- import kotlinx.coroutines.delay
27- import org.junit.Assert
2818import org.junit.Assert.assertEquals
2919import org.junit.Assert.assertNotNull
30- import org.junit.Assert.assertTrue
3120import org.junit.Before
3221import org.junit.Rule
3322import org.junit.Test
34- import java.util.concurrent.TimeUnit
35- import kotlin.coroutines.resume
36- import kotlin.coroutines.suspendCoroutine
3723
3824class PreviewRoutesTest : BaseTest <EmptyTestActivity >(EmptyTestActivity : :class.java) {
3925
@@ -58,20 +44,23 @@ class PreviewRoutesTest : BaseTest<EmptyTestActivity>(EmptyTestActivity::class.j
5844 }
5945
6046 @Test
61- fun preview_routes () = sdkTest {
62- val routes = RoutesProvider .dc_very_short (activity).toNavigationRoutes()
63- mapboxNavigation.startTripSession()
64- val routeObserverDeffer = async {
47+ fun preview_routes () = sdkTest(timeout = Long . MAX_VALUE ) {
48+ val routes = RoutesProvider .dc_short_with_alternative (activity).toNavigationRoutes()
49+ // mapboxNavigation.startTripSession() <- this breaks tests because of resetting the route
50+ val previewedRouteDeffer = async {
6551 mapboxNavigation.waitForPreviewRoute()
6652 }
6753
6854 mapboxNavigation.previewNavigationRoutes(routes)
6955
70- val currentRoutes = mapboxNavigation.getNavigationRoutes()
71- val routeFromCallback = routeObserverDeffer.await()
72- assertEquals(routes, currentRoutes)
73- assertEquals(routes, routeFromCallback.navigationRoutes)
74- assertEquals(RoutesExtra .ROUTES_UPDATE_REASON_PREVIEW , routeFromCallback.reason)
56+ val previewRouteUpdate = previewedRouteDeffer.await()
57+ assertEquals(routes, previewRouteUpdate.navigationRoutes)
58+ assertEquals(RoutesExtra .ROUTES_UPDATE_REASON_PREVIEW , previewRouteUpdate.reason)
59+
60+ val previewedRouteMetadata = mapboxNavigation.getAlternativeMetadataFor(
61+ previewRouteUpdate.navigationRoutes[1 ]
62+ )
63+ assertNotNull(previewedRouteMetadata)
7564 }
7665
7766}
0 commit comments