@@ -21,10 +21,11 @@ import org.ole.planet.myplanet.utils.ThemeMode
2121import org.robolectric.Robolectric
2222import org.robolectric.RobolectricTestRunner
2323import org.robolectric.android.controller.ActivityController
24- import org.robolectric.shadows.ShadowDialog
2524import org.robolectric.shadows.ShadowAlertDialog
2625import org.robolectric.annotation.Config
2726import org.robolectric.annotation.LooperMode
27+ import org.robolectric.Shadows
28+ import android.os.Looper
2829import androidx.appcompat.app.AlertDialog
2930
3031@RunWith(RobolectricTestRunner ::class )
@@ -91,15 +92,17 @@ class ThemeManagerTest {
9192
9293 ThemeManager .showThemeDialog(activity)
9394
94- val dialog = ShadowDialog .getLatestDialog() as AlertDialog
95+ Shadows .shadowOf(Looper .getMainLooper()).idle()
96+
97+ val dialog = ShadowAlertDialog .getLatestDialog() as AlertDialog
9598 assertNotNull(dialog)
9699 assertTrue(dialog.isShowing)
97100
98101 val listView = dialog.listView
99102 assertNotNull(listView)
100103 assertEquals(3 , listView.count)
101104
102- // Simulate clicking 'Dark' mode using position and ID explicitly without relying on child view layout
105+ // Simulate clicking 'Dark' mode using explicitly position and ID without relying on null view layout
103106 listView.performItemClick(null , 1 , listView.getItemIdAtPosition(1 ))
104107
105108 verify { mockSpm.setRawString(" theme_mode" , ThemeMode .DARK ) }
0 commit comments