11package com.mapcode.map
22
33import android.Manifest
4+ import androidx.compose.ui.semantics.SemanticsProperties
45import androidx.compose.ui.semantics.SemanticsPropertyKey
56import androidx.compose.ui.test.*
67import androidx.compose.ui.test.junit4.createComposeRule
8+ import androidx.compose.ui.text.TextRange
79import androidx.test.rule.GrantPermissionRule
810import assertk.assertThat
911import assertk.assertions.isEqualTo
@@ -50,7 +52,7 @@ class MapScreenTest {
5052
5153 composeTestRule.onNodeWithText(" Mapcode" ).performClick()
5254
53- assertThat(useCase.clipboard).isEqualTo(" AAA AB.XY" )
55+ assertThat(useCase.clipboard).isEqualTo(" AB.XY" )
5456 }
5557
5658 @Test
@@ -64,9 +66,9 @@ class MapScreenTest {
6466 setMapScreenAsContent()
6567 viewModel.onCameraMoved(0.0 , 0.0 , 0f )
6668
67- composeTestRule.onNodeWithText(" AAA AB.XY" ).performClick()
69+ composeTestRule.onNodeWithText(" AB.XY" ).performClick()
6870
69- assertThat(useCase.clipboard).isEqualTo(" AAA AB.XY" )
71+ assertThat(useCase.clipboard).isEqualTo(" AB.XY" )
7072 }
7173
7274 @Test
@@ -81,7 +83,7 @@ class MapScreenTest {
8183
8284 setMapScreenAsContent()
8385
84- composeTestRule.onNodeWithText(" AAA AB.XY" ).performClick()
86+ composeTestRule.onNodeWithText(" AB.XY" ).performClick()
8587
8688 composeTestRule.waitForIdle()
8789
@@ -388,7 +390,7 @@ class MapScreenTest {
388390
389391 composeTestRule.onNodeWithContentDescription(" Share mapcode" ).performClick()
390392
391- assertThat(useCase.sharedText).isEqualTo(" AAA AB.XY" )
393+ assertThat(useCase.sharedText).isEqualTo(" AB.XY" )
392394 }
393395
394396 @Test
@@ -569,6 +571,34 @@ class MapScreenTest {
569571 composeTestRule.onNodeWithText(" Enter address or mapcode" ).assertIsNotFocused()
570572 }
571573
574+ @Test
575+ fun select_latitude_text_when_focussing () {
576+ useCase.knownLocations.add(
577+ FakeLocation (0.0 , 0.0 , emptyList(), mapcodes = emptyList())
578+ )
579+ setMapScreenAsContent()
580+ viewModel.onCameraMoved(0.0 , 0.0 , 1f )
581+
582+ composeTestRule.onNodeWithText(" Latitude (Y)" ).apply {
583+ performClick()
584+ assert (SemanticsMatcher .expectValue(SemanticsProperties .TextSelectionRange , TextRange (0 , 9 )))
585+ }
586+ }
587+
588+ @Test
589+ fun select_longitude_text_when_focussing () {
590+ useCase.knownLocations.add(
591+ FakeLocation (0.0 , 0.0 , emptyList(), mapcodes = emptyList())
592+ )
593+ setMapScreenAsContent()
594+ viewModel.onCameraMoved(0.0 , 0.0 , 1f )
595+
596+ composeTestRule.onNodeWithText(" Longitude (X)" ).apply {
597+ performClick()
598+ assert (SemanticsMatcher .expectValue(SemanticsProperties .TextSelectionRange , TextRange (0 , 9 )))
599+ }
600+ }
601+
572602 private fun setMapScreenAsContent () {
573603 composeTestRule.setContent {
574604 MapScreen (viewModel = viewModel, renderGoogleMaps = false )
0 commit comments