@@ -20,10 +20,15 @@ package com.vrem.wifianalyzer
2020import androidx.appcompat.app.AppCompatDelegate
2121import androidx.test.espresso.Espresso.onView
2222import androidx.test.espresso.action.ViewActions.click
23+ import androidx.test.espresso.assertion.ViewAssertions.doesNotExist
2324import androidx.test.espresso.assertion.ViewAssertions.matches
2425import androidx.test.espresso.matcher.ViewMatchers.isDisplayed
2526import androidx.test.espresso.matcher.ViewMatchers.withText
26- import org.junit.Assert.assertEquals
27+ import org.assertj.core.api.Assertions.assertThat
28+
29+ private const val SETTINGS = " Settings"
30+
31+ private const val THEME = " Theme"
2732
2833internal class ThemeInstrumentedTest : Runnable {
2934 override fun run () {
@@ -41,17 +46,41 @@ internal class ThemeInstrumentedTest : Runnable {
4146 themeName : String ,
4247 expectedNightMode : Int ,
4348 ) {
44- selectMenuItem( R .id.nav_drawer_settings, " Settings " )
45- scrollToAndVerify( " Theme " )
46- onView(withText( " Theme " )).perform(click() )
49+ navigateToTheme( )
50+ verifyThemeNotSelected(themeName )
51+ selectTheme(themeName )
4752 pauseShort()
53+ navigateToTheme()
54+ verifyThemeSelected(themeName)
55+ verifyNightMode(themeName, expectedNightMode)
56+ }
57+
58+ private fun verifyThemeNotSelected (themeName : String ) {
59+ onView(withText(themeName)).check(doesNotExist())
60+ }
61+
62+ private fun selectTheme (themeName : String ) {
63+ onView(withText(THEME )).perform(click())
4864 onView(withText(themeName)).check(matches(isDisplayed()))
4965 onView(withText(themeName)).perform(click())
50- pauseShort()
51- assertEquals(
52- " Theme $themeName should set night mode to $expectedNightMode " ,
53- expectedNightMode,
54- AppCompatDelegate .getDefaultNightMode(),
55- )
66+ }
67+
68+ private fun verifyThemeSelected (themeName : String ) {
69+ onView(withText(themeName)).check(matches(isDisplayed()))
70+ }
71+
72+ private fun verifyNightMode (
73+ themeName : String ,
74+ expectedNightMode : Int ,
75+ ) {
76+ assertThat(AppCompatDelegate .getDefaultNightMode())
77+ .withFailMessage(" Theme %s should set night mode to %s" , themeName, expectedNightMode)
78+ .isEqualTo(expectedNightMode)
79+ }
80+
81+ private fun navigateToTheme () {
82+ selectMenuItem(R .id.nav_drawer_settings, SETTINGS )
83+ scrollToAndVerify(THEME )
84+ onView(withText(THEME )).check(matches(isDisplayed()))
5685 }
5786}
0 commit comments