Skip to content

Commit 553f55f

Browse files
authored
Merge pull request #679 from SimonMarquis/patch-3
Simplify String resource loading in `NavigationTest.kt`
2 parents 647b6f8 + 3a810f0 commit 553f55f

File tree

1 file changed

+15
-29
lines changed

1 file changed

+15
-29
lines changed

app/src/androidTest/java/com/google/samples/apps/nowinandroid/ui/NavigationTest.kt

Lines changed: 15 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -16,12 +16,14 @@
1616

1717
package com.google.samples.apps.nowinandroid.ui
1818

19+
import androidx.annotation.StringRes
1920
import androidx.compose.ui.test.assertCountEquals
2021
import androidx.compose.ui.test.assertIsOn
2122
import androidx.compose.ui.test.assertIsSelected
2223
import androidx.compose.ui.test.hasAnyAncestor
2324
import androidx.compose.ui.test.hasTestTag
2425
import androidx.compose.ui.test.hasText
26+
import androidx.compose.ui.test.junit4.AndroidComposeTestRule
2527
import androidx.compose.ui.test.junit4.createAndroidComposeRule
2628
import androidx.compose.ui.test.onAllNodesWithText
2729
import androidx.compose.ui.test.onNodeWithContentDescription
@@ -34,10 +36,10 @@ import com.google.samples.apps.nowinandroid.R
3436
import dagger.hilt.android.testing.BindValue
3537
import dagger.hilt.android.testing.HiltAndroidRule
3638
import dagger.hilt.android.testing.HiltAndroidTest
37-
import org.junit.Before
3839
import org.junit.Rule
3940
import org.junit.Test
4041
import org.junit.rules.TemporaryFolder
42+
import kotlin.properties.ReadOnlyProperty
4143
import com.google.samples.apps.nowinandroid.feature.bookmarks.R as BookmarksR
4244
import com.google.samples.apps.nowinandroid.feature.foryou.R as FeatureForyouR
4345
import 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

Comments
 (0)