1616
1717package com.google.samples.apps.nowinandroid.ui
1818
19+ import androidx.annotation.StringRes
1920import androidx.compose.ui.test.assertCountEquals
2021import androidx.compose.ui.test.assertIsOn
2122import androidx.compose.ui.test.assertIsSelected
2223import androidx.compose.ui.test.hasAnyAncestor
2324import androidx.compose.ui.test.hasTestTag
2425import androidx.compose.ui.test.hasText
26+ import androidx.compose.ui.test.junit4.AndroidComposeTestRule
2527import androidx.compose.ui.test.junit4.createAndroidComposeRule
2628import androidx.compose.ui.test.onAllNodesWithText
2729import androidx.compose.ui.test.onNodeWithContentDescription
@@ -34,10 +36,10 @@ import com.google.samples.apps.nowinandroid.R
3436import dagger.hilt.android.testing.BindValue
3537import dagger.hilt.android.testing.HiltAndroidRule
3638import dagger.hilt.android.testing.HiltAndroidTest
37- import org.junit.Before
3839import org.junit.Rule
3940import org.junit.Test
4041import org.junit.rules.TemporaryFolder
42+ import kotlin.properties.ReadOnlyProperty
4143import com.google.samples.apps.nowinandroid.feature.bookmarks.R as BookmarksR
4244import com.google.samples.apps.nowinandroid.feature.foryou.R as FeatureForyouR
4345import com.google.samples.apps.nowinandroid.feature.interests.R as FeatureInterestsR
@@ -69,35 +71,19 @@ class NavigationTest {
6971 @get:Rule(order = 2 )
7072 val composeTestRule = createAndroidComposeRule<MainActivity >()
7173
72- // The strings used for matching in these tests
73- private lateinit var done: String
74- private lateinit var navigateUp: String
75- private lateinit var forYouLoading: String
76- private lateinit var forYou: String
77- private lateinit var interests: String
78- private lateinit var sampleTopic: String
79- private lateinit var appName: String
80- private lateinit var saved: String
81- private lateinit var settings: String
82- private lateinit var brand: String
83- private lateinit var ok: String
74+ private fun AndroidComposeTestRule <* , * >.stringResource (@StringRes resId : Int ) =
75+ ReadOnlyProperty <Any ?, String > { _, _ -> activity.getString(resId) }
8476
85- @Before
86- fun setup () {
87- composeTestRule.activity.apply {
88- done = getString(FeatureForyouR .string.done)
89- navigateUp = getString(FeatureForyouR .string.navigate_up)
90- forYouLoading = getString(FeatureForyouR .string.for_you_loading)
91- forYou = getString(FeatureForyouR .string.for_you)
92- interests = getString(FeatureInterestsR .string.interests)
93- sampleTopic = " Headlines"
94- appName = getString(R .string.app_name)
95- saved = getString(BookmarksR .string.saved)
96- settings = getString(SettingsR .string.top_app_bar_action_icon_description)
97- brand = getString(SettingsR .string.brand_android)
98- ok = getString(SettingsR .string.dismiss_dialog_button_text)
99- }
100- }
77+ // The strings used for matching in these tests
78+ private val navigateUp by composeTestRule.stringResource(FeatureForyouR .string.navigate_up)
79+ private val forYou by composeTestRule.stringResource(FeatureForyouR .string.for_you)
80+ private val interests by composeTestRule.stringResource(FeatureInterestsR .string.interests)
81+ private val sampleTopic = " Headlines"
82+ private val appName by composeTestRule.stringResource(R .string.app_name)
83+ private val saved by composeTestRule.stringResource(BookmarksR .string.saved)
84+ private val settings by composeTestRule.stringResource(SettingsR .string.top_app_bar_action_icon_description)
85+ private val brand by composeTestRule.stringResource(SettingsR .string.brand_android)
86+ private val ok by composeTestRule.stringResource(SettingsR .string.dismiss_dialog_button_text)
10187
10288 @Test
10389 fun firstScreen_isForYou () {
0 commit comments