1717package com.google.samples.apps.nowinandroid.feature.foryou
1818
1919import androidx.activity.ComponentActivity
20+ import androidx.compose.runtime.Composable
2021import androidx.compose.ui.test.junit4.createAndroidComposeRule
22+ import com.google.samples.apps.nowinandroid.core.designsystem.component.NiaBackground
2123import com.google.samples.apps.nowinandroid.core.designsystem.theme.NiaTheme
24+ import com.google.samples.apps.nowinandroid.core.testing.util.DefaultTestDevices
25+ import com.google.samples.apps.nowinandroid.core.testing.util.captureForDevice
2226import com.google.samples.apps.nowinandroid.core.testing.util.captureMultiDevice
2327import com.google.samples.apps.nowinandroid.core.ui.NewsFeedUiState
2428import com.google.samples.apps.nowinandroid.core.ui.NewsFeedUiState.Success
2529import com.google.samples.apps.nowinandroid.core.ui.UserNewsResourcePreviewParameterProvider
2630import com.google.samples.apps.nowinandroid.feature.foryou.OnboardingUiState.Loading
2731import com.google.samples.apps.nowinandroid.feature.foryou.OnboardingUiState.NotShown
32+ import com.google.samples.apps.nowinandroid.feature.foryou.OnboardingUiState.Shown
2833import dagger.hilt.android.testing.HiltTestApplication
2934import org.junit.Before
3035import org.junit.Rule
@@ -60,7 +65,7 @@ class ForYouScreenScreenshotTests {
6065 }
6166
6267 @Test
63- fun testForYouScreenPopulatedFeed () {
68+ fun forYouScreenPopulatedFeed () {
6469 composeTestRule.captureMultiDevice(" ForYouScreenPopulatedFeed" ) {
6570 NiaTheme {
6671 ForYouScreen (
@@ -82,7 +87,7 @@ class ForYouScreenScreenshotTests {
8287 }
8388
8489 @Test
85- fun testForYouScreenLoading () {
90+ fun forYouScreenLoading () {
8691 composeTestRule.captureMultiDevice(" ForYouScreenLoading" ) {
8792 NiaTheme {
8893 ForYouScreen (
@@ -102,16 +107,54 @@ class ForYouScreenScreenshotTests {
102107 }
103108
104109 @Test
105- fun testForYouScreenTopicSelection () {
110+ fun forYouScreenTopicSelection () {
106111 composeTestRule.captureMultiDevice(" ForYouScreenTopicSelection" ) {
107- NiaTheme {
112+ ForYouScreenTopicSelection ()
113+ }
114+ }
115+
116+ @Test
117+ fun forYouScreenTopicSelection_dark () {
118+ composeTestRule.captureForDevice(
119+ deviceName = " phone_dark" ,
120+ deviceSpec = DefaultTestDevices .PHONE .spec,
121+ screenshotName = " ForYouScreenTopicSelection" ,
122+ darkMode = true ,
123+ ) {
124+ ForYouScreenTopicSelection ()
125+ }
126+ }
127+
128+ @Test
129+ fun forYouScreenPopulatedAndLoading () {
130+ composeTestRule.captureMultiDevice(" ForYouScreenPopulatedAndLoading" ) {
131+ ForYouScreenPopulatedAndLoading ()
132+ }
133+ }
134+
135+ @Test
136+ fun forYouScreenPopulatedAndLoading_dark () {
137+ composeTestRule.captureForDevice(
138+ deviceName = " phone_dark" ,
139+ deviceSpec = DefaultTestDevices .PHONE .spec,
140+ screenshotName = " ForYouScreenPopulatedAndLoading" ,
141+ darkMode = true ,
142+ ) {
143+ ForYouScreenPopulatedAndLoading ()
144+ }
145+ }
146+
147+ @Composable
148+ private fun ForYouScreenTopicSelection () {
149+ NiaTheme {
150+ NiaBackground {
108151 ForYouScreen (
109152 isSyncing = false ,
110- onboardingUiState = OnboardingUiState . Shown (
153+ onboardingUiState = Shown (
111154 topics = userNewsResources.flatMap { news -> news.followableTopics }
112155 .distinctBy { it.topic.id },
113156 ),
114- feedState = NewsFeedUiState . Success (
157+ feedState = Success (
115158 feed = userNewsResources,
116159 ),
117160 onTopicCheckedChanged = { _, _ -> },
@@ -126,24 +169,26 @@ class ForYouScreenScreenshotTests {
126169 }
127170 }
128171
129- @Test
130- fun testForYouScreenPopulatedAndLoading () {
131- composeTestRule.captureMultiDevice(" ForYouScreenPopulatedAndLoading" ) {
132- NiaTheme {
133- ForYouScreen (
134- isSyncing = true ,
135- onboardingUiState = OnboardingUiState .Loading ,
136- feedState = NewsFeedUiState .Success (
137- feed = userNewsResources,
138- ),
139- onTopicCheckedChanged = { _, _ -> },
140- saveFollowedTopics = {},
141- onNewsResourcesCheckedChanged = { _, _ -> },
142- onNewsResourceViewed = {},
143- onTopicClick = {},
144- deepLinkedUserNewsResource = null ,
145- onDeepLinkOpened = {},
146- )
172+ @Composable
173+ private fun ForYouScreenPopulatedAndLoading () {
174+ NiaTheme {
175+ NiaBackground {
176+ NiaTheme {
177+ ForYouScreen (
178+ isSyncing = true ,
179+ onboardingUiState = Loading ,
180+ feedState = Success (
181+ feed = userNewsResources,
182+ ),
183+ onTopicCheckedChanged = { _, _ -> },
184+ saveFollowedTopics = {},
185+ onNewsResourcesCheckedChanged = { _, _ -> },
186+ onNewsResourceViewed = {},
187+ onTopicClick = {},
188+ deepLinkedUserNewsResource = null ,
189+ onDeepLinkOpened = {},
190+ )
191+ }
147192 }
148193 }
149194 }
0 commit comments