@@ -2,6 +2,7 @@ package com.github.se.travelpouch.ui.dashboard.map
2
2
3
3
import android.Manifest
4
4
import android.content.pm.PackageManager
5
+ import androidx.compose.ui.test.assert
5
6
import androidx.compose.ui.test.assertTextEquals
6
7
import androidx.compose.ui.test.junit4.createComposeRule
7
8
import androidx.compose.ui.test.onNodeWithTag
@@ -182,7 +183,13 @@ class ActivitiesMapScreenTest {
182
183
183
184
@Test
184
185
fun testActivityDetailsContentDisplaysCorrectDetails () {
185
- composeTestRule.setContent { ActivityDetailsContent (activity = listOfActivities[0 ]) }
186
+ composeTestRule.setContent {
187
+ ActivityDetailsContent (
188
+ activity = listOfActivities[0 ], // Pass the first activity
189
+ isGPSAvailable = true , // Mock GPS availability
190
+ onShowPathGPS = {} // Provide a no-op lambda for the callback
191
+ )
192
+ }
186
193
187
194
// Verify title
188
195
composeTestRule.onNodeWithTag(" ActivityTitle" ).assertExists().assertTextEquals(" Team Meeting" )
@@ -218,17 +225,19 @@ class ActivitiesMapScreenTest {
218
225
listOf (
219
226
listOf (
220
227
LatLng (48.8566 , 2.3522 ),
221
- LatLng (48.8570 , 2.3530 )) // Mock GPS to activity route
222
- )),
223
- selectedActivity = listOfActivities[0 ] // Mock selected activity
228
+ LatLng (48.8570 , 2.3530 ) // Mock GPS to activity route
229
+ ))),
230
+ selectedActivity = listOfActivities[0 ], // Mock selected activity
231
+ travelMode = " walking" , // Mock travel mode
232
+ onTravelModeSelected = {} // No-op lambda for testing
224
233
)
225
234
}
226
235
227
236
// Verify title
228
237
composeTestRule
229
238
.onNodeWithTag(" RouteDetailsTitle_Gps" )
230
239
.assertExists()
231
- .assertTextEquals(" Your current Location" )
240
+ .assertTextEquals(" Your Current Location" )
232
241
233
242
// Verify distance
234
243
composeTestRule
@@ -265,8 +274,10 @@ class ActivitiesMapScreenTest {
265
274
listOf (LatLng (48.8566 , 2.3522 ), LatLng (48.8570 , 2.3530 )), // Mock leg 1
266
275
listOf (LatLng (48.8570 , 2.3530 ), LatLng (49.8566 , 2.3522 )) // Mock leg 2
267
276
)),
268
- legIndex = 0 ,
269
- activities = listOfActivities)
277
+ legIndex = 0 , // Testing the first leg
278
+ activities = listOfActivities,
279
+ travelMode = " walking" // Mock travel mode
280
+ )
270
281
}
271
282
272
283
// Verify title (start activity)
@@ -293,6 +304,77 @@ class ActivitiesMapScreenTest {
293
304
.assertExists()
294
305
.assertTextEquals(" Client Presentation" )
295
306
}
307
+
308
+ @Test
309
+ fun testTravelModeButtonActivities () {
310
+ var showPathsState = false
311
+ var selectedTravelMode = " walking"
312
+
313
+ composeTestRule.setContent {
314
+ TravelModeButtonActivities (
315
+ showPaths = showPathsState,
316
+ onTogglePaths = { showPathsState = ! showPathsState },
317
+ travelMode = selectedTravelMode,
318
+ onTravelModeChange = { mode -> selectedTravelMode = mode })
319
+ }
320
+
321
+ // Verify initial state of toggle button
322
+ composeTestRule.onNodeWithTag(" ToggleModeButtonActivities" ).assertExists()
323
+
324
+ // Click the toggle button to enable paths
325
+ composeTestRule.onNodeWithTag(" ToggleModeButtonActivities" ).performClick()
326
+ assert (showPathsState) // Verify state is updated
327
+
328
+ // Verify "Walking Mode" button exists
329
+ composeTestRule.onNodeWithTag(" WalkingModeButtonActivities" ).assertExists()
330
+
331
+ // Switch to "Driving Mode"
332
+ composeTestRule.onNodeWithTag(" WalkingModeButtonActivities" ).performClick()
333
+ assert (selectedTravelMode == " walking" ) // Verify state is updated
334
+
335
+ // Verify "Driving Mode" button exists
336
+ composeTestRule.onNodeWithTag(" DrivingModeButtonActivities" ).assertExists()
337
+
338
+ // Switch to "Driving Mode"
339
+ composeTestRule.onNodeWithTag(" DrivingModeButtonActivities" ).performClick()
340
+ assert (selectedTravelMode == " driving" ) // Verify state is updated
341
+
342
+ // Verify "Bicycling Mode" button exists
343
+ composeTestRule.onNodeWithTag(" BicyclingModeButtonActivities" ).assertExists()
344
+
345
+ // Switch to "Bicycling Mode"
346
+ composeTestRule.onNodeWithTag(" BicyclingModeButtonActivities" ).performClick()
347
+ assert (selectedTravelMode == " bicycling" ) // Verify state is updated
348
+ }
349
+
350
+ @Test
351
+ fun testTravelModesGPS () {
352
+ var selectedMode = " walking"
353
+
354
+ composeTestRule.setContent {
355
+ TravelModesGPS (selectedMode = selectedMode, onModeSelected = { mode -> selectedMode = mode })
356
+ }
357
+
358
+ // Switch to "walking" mode
359
+ composeTestRule.onNodeWithTag(" WalkingModeButtonGPS" ).assertExists()
360
+ composeTestRule.onNodeWithTag(" WalkingModeButtonGPS" ).performClick()
361
+ assert (selectedMode == " walking" ) // Verify initial mode
362
+
363
+ // Switch to "Car" mode
364
+ composeTestRule.onNodeWithTag(" DrivingModeButtonGPS" ).assertExists()
365
+ composeTestRule.onNodeWithTag(" DrivingModeButtonGPS" ).performClick()
366
+ assert (selectedMode == " driving" ) // Verify mode is updated
367
+
368
+ // Switch to "Bicycle" mode
369
+ composeTestRule.onNodeWithTag(" BicyclingModeButtonGPS" ).assertExists()
370
+ composeTestRule.onNodeWithTag(" BicyclingModeButtonGPS" ).performClick()
371
+ assert (selectedMode == " bicycling" ) // Verify mode is updated
372
+
373
+ // Switch to "None" mode
374
+ composeTestRule.onNodeWithTag(" NoneModeButtonGPS" ).assertExists()
375
+ composeTestRule.onNodeWithTag(" NoneModeButtonGPS" ).performClick()
376
+ assert (selectedMode == " None" ) // Verify mode is updated
377
+ }
296
378
}
297
379
298
380
fun createTimestamp (dateString : String , format : String = "dd/MM /yyyy HH : mm"): Timestamp {
0 commit comments