|
|
|
@ -69,7 +69,10 @@ class DefaultPermissionsPresenterTest {
@@ -69,7 +69,10 @@ class DefaultPermissionsPresenterTest {
|
|
|
|
|
|
|
|
|
|
@Test |
|
|
|
|
fun `present - user closes dialog`() = runTest { |
|
|
|
|
val permissionsStore = InMemoryPermissionsStore() |
|
|
|
|
val permissionsStore = InMemoryPermissionsStore( |
|
|
|
|
permissionDenied = true, |
|
|
|
|
permissionAsked = true |
|
|
|
|
) |
|
|
|
|
val permissionState = FakePermissionState( |
|
|
|
|
A_PERMISSION, |
|
|
|
|
PermissionStatus.Denied(shouldShowRationale = false) |
|
|
|
@ -86,9 +89,12 @@ class DefaultPermissionsPresenterTest {
@@ -86,9 +89,12 @@ class DefaultPermissionsPresenterTest {
|
|
|
|
|
moleculeFlow(RecompositionMode.Immediate) { |
|
|
|
|
presenter.present() |
|
|
|
|
}.test { |
|
|
|
|
skipItems(1) |
|
|
|
|
val initialState = awaitItem() |
|
|
|
|
assertThat(initialState.showDialog).isTrue() |
|
|
|
|
initialState.eventSink.invoke(PermissionsEvents.CloseDialog) |
|
|
|
|
initialState.eventSink.invoke(PermissionsEvents.OpenSystemDialog) |
|
|
|
|
val withDialogState = awaitItem() |
|
|
|
|
assertThat(withDialogState.showDialog).isTrue() |
|
|
|
|
withDialogState.eventSink.invoke(PermissionsEvents.CloseDialog) |
|
|
|
|
assertThat(awaitItem().showDialog).isFalse() |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
@ -113,10 +119,9 @@ class DefaultPermissionsPresenterTest {
@@ -113,10 +119,9 @@ class DefaultPermissionsPresenterTest {
|
|
|
|
|
presenter.present() |
|
|
|
|
}.test { |
|
|
|
|
val initialState = awaitItem() |
|
|
|
|
assertThat(initialState.showDialog).isTrue() |
|
|
|
|
assertThat(initialState.showDialog).isFalse() |
|
|
|
|
initialState.eventSink.invoke(PermissionsEvents.OpenSystemDialog) |
|
|
|
|
assertThat(permissionState.launchPermissionRequestCalled).isTrue() |
|
|
|
|
assertThat(awaitItem().showDialog).isFalse() |
|
|
|
|
// User does not grant permission |
|
|
|
|
permissionStateProvider.userGiveAnswer(answer = false, firstTime = true) |
|
|
|
|
skipItems(1) |
|
|
|
@ -148,10 +153,9 @@ class DefaultPermissionsPresenterTest {
@@ -148,10 +153,9 @@ class DefaultPermissionsPresenterTest {
|
|
|
|
|
presenter.present() |
|
|
|
|
}.test { |
|
|
|
|
val initialState = awaitItem() |
|
|
|
|
assertThat(initialState.showDialog).isTrue() |
|
|
|
|
assertThat(initialState.showDialog).isFalse() |
|
|
|
|
initialState.eventSink.invoke(PermissionsEvents.OpenSystemDialog) |
|
|
|
|
assertThat(permissionState.launchPermissionRequestCalled).isTrue() |
|
|
|
|
assertThat(awaitItem().showDialog).isFalse() |
|
|
|
|
// User does not grant permission |
|
|
|
|
permissionStateProvider.userGiveAnswer(answer = false, firstTime = false) |
|
|
|
|
skipItems(2) |
|
|
|
@ -188,10 +192,12 @@ class DefaultPermissionsPresenterTest {
@@ -188,10 +192,12 @@ class DefaultPermissionsPresenterTest {
|
|
|
|
|
}.test { |
|
|
|
|
skipItems(1) |
|
|
|
|
val initialState = awaitItem() |
|
|
|
|
assertThat(initialState.showDialog).isTrue() |
|
|
|
|
assertThat(initialState.permissionGranted).isFalse() |
|
|
|
|
assertThat(initialState.permissionAlreadyDenied).isTrue() |
|
|
|
|
assertThat(initialState.permissionAlreadyAsked).isTrue() |
|
|
|
|
initialState.eventSink.invoke(PermissionsEvents.OpenSystemDialog) |
|
|
|
|
val withDialogState = awaitItem() |
|
|
|
|
assertThat(withDialogState.showDialog).isTrue() |
|
|
|
|
assertThat(withDialogState.permissionGranted).isFalse() |
|
|
|
|
assertThat(withDialogState.permissionAlreadyDenied).isTrue() |
|
|
|
|
assertThat(withDialogState.permissionAlreadyAsked).isTrue() |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
@ -215,10 +221,9 @@ class DefaultPermissionsPresenterTest {
@@ -215,10 +221,9 @@ class DefaultPermissionsPresenterTest {
|
|
|
|
|
presenter.present() |
|
|
|
|
}.test { |
|
|
|
|
val initialState = awaitItem() |
|
|
|
|
assertThat(initialState.showDialog).isTrue() |
|
|
|
|
assertThat(initialState.showDialog).isFalse() |
|
|
|
|
initialState.eventSink.invoke(PermissionsEvents.OpenSystemDialog) |
|
|
|
|
assertThat(permissionState.launchPermissionRequestCalled).isTrue() |
|
|
|
|
assertThat(awaitItem().showDialog).isFalse() |
|
|
|
|
// User grants permission |
|
|
|
|
permissionStateProvider.userGiveAnswer(answer = true, firstTime = true) |
|
|
|
|
skipItems(1) |
|
|
|
|