ground-android
ground-android copied to clipboard
Complete test in OfflineAreSelectorFragmentTest
https://github.com/google/ground-android/blob/b05b83235266365cc69584699bf25d3da2aca696/app/src/test/java/com/google/android/ground/ui/offlineareas/selector/OfflineAreaSelectorFragmentTest.kt#L90-L91
matches(hasDescendant(withText(fragment.getString(R.string.offline_area_selector_title))))
)
}
// TODO: Complete below test
// Issue URL: https://github.com/google/ground-android/issues/3032
@Test
fun `stopDownloading cancels active download and updates UI state`() = runWithTestDispatcher {
composeTestRule.setContent { DownloadProgressDialog(viewModel.downloadProgress.value!!, {}) }
val progressFlow = MutableSharedFlow<Pair<Int, Int>>()
whenever(offlineAreaRepository.downloadTiles(any())).thenReturn(progressFlow)
val downloadProgressValues = mutableListOf<Float>()
val observer = Observer<Float> { downloadProgressValues.add(it) }
viewModel.downloadProgress.observeForever(observer)
viewModel.onDownloadClick()
advanceUntilIdle()
progressFlow.emit(Pair(50, 100))
advanceUntilIdle()
composeTestRule
.onNodeWithText(composeTestRule.activity.getString(R.string.cancel))
.isDisplayed()
composeTestRule
.onNodeWithText(composeTestRule.activity.getString(R.string.cancel))
.performClick()
progressFlow.emit(Pair(75, 100))
composeTestRule
.onNodeWithText(composeTestRule.activity.getString(R.string.cancel))
.isNotDisplayed()
assertFalse(viewModel.isDownloadProgressVisible.value!!)
assertNull(viewModel.downloadJob)
viewModel.downloadProgress.removeObserver(observer)
}
}