From b2569c1576fe90a99aff5535d097850dae937583 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tom=C3=A1=C5=A1=20Mlynari=C4=8D?= Date: Fri, 24 Jun 2022 15:42:32 +0200 Subject: [PATCH] Add testTag to access composables from UiAutomator Change-Id: I5125cae0778151b11868b72f74f74f979774625c --- .../google/samples/apps/nowinandroid/ui/NiaApp.kt | 13 +++++++++++-- .../nowinandroid/feature/foryou/AuthorsCarousel.kt | 3 ++- .../nowinandroid/feature/foryou/ForYouScreen.kt | 8 ++++++-- 3 files changed, 19 insertions(+), 5 deletions(-) diff --git a/app/src/main/java/com/google/samples/apps/nowinandroid/ui/NiaApp.kt b/app/src/main/java/com/google/samples/apps/nowinandroid/ui/NiaApp.kt index 02196574e..d5ca8bf5e 100644 --- a/app/src/main/java/com/google/samples/apps/nowinandroid/ui/NiaApp.kt +++ b/app/src/main/java/com/google/samples/apps/nowinandroid/ui/NiaApp.kt @@ -39,10 +39,13 @@ import androidx.compose.material3.windowsizeclass.WindowWidthSizeClass import androidx.compose.runtime.Composable import androidx.compose.runtime.getValue import androidx.compose.runtime.remember +import androidx.compose.ui.ExperimentalComposeUiApi import androidx.compose.ui.Modifier import androidx.compose.ui.graphics.Color import androidx.compose.ui.res.painterResource import androidx.compose.ui.res.stringResource +import androidx.compose.ui.semantics.semantics +import androidx.compose.ui.semantics.testTagsAsResourceId import androidx.navigation.NavDestination import androidx.navigation.NavDestination.Companion.hierarchy import androidx.navigation.compose.currentBackStackEntryAsState @@ -60,7 +63,11 @@ import com.google.samples.apps.nowinandroid.navigation.NiaTopLevelNavigation import com.google.samples.apps.nowinandroid.navigation.TOP_LEVEL_DESTINATIONS import com.google.samples.apps.nowinandroid.navigation.TopLevelDestination -@OptIn(ExperimentalMaterial3Api::class, ExperimentalLayoutApi::class) +@OptIn( + ExperimentalMaterial3Api::class, + ExperimentalLayoutApi::class, + ExperimentalComposeUiApi::class +) @Composable fun NiaApp(windowSizeClass: WindowSizeClass) { NiaTheme { @@ -74,7 +81,9 @@ fun NiaApp(windowSizeClass: WindowSizeClass) { NiaBackground { Scaffold( - modifier = Modifier, + modifier = Modifier.semantics { + testTagsAsResourceId = true + }, containerColor = Color.Transparent, contentColor = MaterialTheme.colorScheme.onBackground, bottomBar = { diff --git a/feature-foryou/src/main/java/com/google/samples/apps/nowinandroid/feature/foryou/AuthorsCarousel.kt b/feature-foryou/src/main/java/com/google/samples/apps/nowinandroid/feature/foryou/AuthorsCarousel.kt index f36b09f57..d744db7cd 100644 --- a/feature-foryou/src/main/java/com/google/samples/apps/nowinandroid/feature/foryou/AuthorsCarousel.kt +++ b/feature-foryou/src/main/java/com/google/samples/apps/nowinandroid/feature/foryou/AuthorsCarousel.kt @@ -43,6 +43,7 @@ import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.draw.clip import androidx.compose.ui.layout.ContentScale +import androidx.compose.ui.platform.testTag import androidx.compose.ui.res.stringResource import androidx.compose.ui.semantics.Role import androidx.compose.ui.semantics.semantics @@ -65,7 +66,7 @@ fun AuthorsCarousel( modifier: Modifier = Modifier ) { LazyRow( - modifier = modifier, + modifier = modifier.testTag("forYou:authors"), contentPadding = PaddingValues(24.dp), horizontalArrangement = Arrangement.spacedBy(24.dp) ) { diff --git a/feature-foryou/src/main/java/com/google/samples/apps/nowinandroid/feature/foryou/ForYouScreen.kt b/feature-foryou/src/main/java/com/google/samples/apps/nowinandroid/feature/foryou/ForYouScreen.kt index 5acf0daa0..5c3f4962f 100644 --- a/feature-foryou/src/main/java/com/google/samples/apps/nowinandroid/feature/foryou/ForYouScreen.kt +++ b/feature-foryou/src/main/java/com/google/samples/apps/nowinandroid/feature/foryou/ForYouScreen.kt @@ -65,6 +65,7 @@ import androidx.compose.ui.Modifier import androidx.compose.ui.graphics.Color import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.platform.LocalDensity +import androidx.compose.ui.platform.testTag import androidx.compose.ui.res.painterResource import androidx.compose.ui.res.stringResource import androidx.compose.ui.text.style.TextAlign @@ -161,7 +162,9 @@ fun ForYouScreen( } LazyColumn( - modifier = Modifier.fillMaxSize(), + modifier = Modifier + .fillMaxSize() + .testTag("forYou:feed"), ) { InterestsSelection( interestsSelectionState = interestsSelectionState, @@ -218,7 +221,8 @@ private fun LazyListScope.InterestsSelection( NiaLoadingWheel( modifier = Modifier .fillMaxWidth() - .wrapContentSize(), + .wrapContentSize() + .testTag("forYou:loading"), contentDesc = stringResource(id = R.string.for_you_loading), ) }