@@ -24,7 +24,15 @@ import com.google.android.play.core.install.model.ActivityResult
2424import com.google.android.play.core.install.model.AppUpdateType.FLEXIBLE
2525import com.google.android.play.core.install.model.InstallStatus
2626import com.google.android.play.core.install.model.UpdateAvailability
27- import com.nhaarman.mockitokotlin2.*
27+ import com.nhaarman.mockitokotlin2.any
28+ import com.nhaarman.mockitokotlin2.argumentCaptor
29+ import com.nhaarman.mockitokotlin2.check
30+ import com.nhaarman.mockitokotlin2.doReturn
31+ import com.nhaarman.mockitokotlin2.mock
32+ import com.nhaarman.mockitokotlin2.never
33+ import com.nhaarman.mockitokotlin2.times
34+ import com.nhaarman.mockitokotlin2.verify
35+ import com.nhaarman.mockitokotlin2.whenever
2836import org.junit.Test
2937import org.junit.runner.RunWith
3038import org.robolectric.Shadows.shadowOf
@@ -261,6 +269,27 @@ internal class FlexibleUpdateStateTest: BaseAppUpdateStateTest() {
261269 shadowOf(getMainLooper()).idle()
262270 }
263271
272+ @Test
273+ @LooperMode(LooperMode .Mode .PAUSED )
274+ fun downloadingStateWillUpdateProgress () {
275+ updateManager.setUpdateAvailable(100500 )
276+ updateManager.withInfo {
277+ startUpdateFlowForResult(it, FLEXIBLE , activity, 100 )
278+ assertTrue(isConfirmationDialogVisible)
279+ userAcceptsUpdate()
280+ downloadStarts()
281+ setTotalBytesToDownload(100 )
282+
283+ val state = FlexibleUpdateState .Downloading ().init ()
284+ state.onResume()
285+ shadowOf(getMainLooper()).idle()
286+
287+ setBytesDownloaded(50 )
288+ verify(view).updateDownloadProgress(50 , 100 )
289+ }
290+ shadowOf(getMainLooper()).idle()
291+ }
292+
264293 @Test
265294 @LooperMode(LooperMode .Mode .PAUSED )
266295 fun downloadingStateWillSetInstallConsentWhenDownloaded () {
0 commit comments