Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 721a4e15 authored by Yasin Kilicdere's avatar Yasin Kilicdere
Browse files

Don't show "Save guest activity?" dialog after "Reset guest" is chosen

Bug: 339171511
Test: atest UserSwitcherInteractorTest#removeGuestUser_shouldNotShowExitGuestDialog
Test: atest UserSwitcherInteractorTest#resetGuestUser_shouldNotShowExitGuestDialog
Test: After turning of "Settings -> System -> Users -> Delete guest
      activity", manually switch to a guest user second time and
      select "Reset guest" from the notification. And observe
      "Save guest activity?" dialog is not shown anymore.
Flag: None
Change-Id: Ic7c0ea75715421f8923a538f482d20aa52549635
parent b2b0c3af
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -533,7 +533,7 @@ constructor(
                targetUserId = targetUserId,
                ::showDialog,
                ::dismissDialog,
                ::selectUser,
                ::switchUser
            )
        }
    }
+40 −0
Original line number Diff line number Diff line
@@ -886,6 +886,46 @@ class UserSwitcherInteractorTest : SysuiTestCase() {
        }
    }

    @Test
    fun removeGuestUser_shouldNotShowExitGuestDialog() {
        createUserInteractor()
        testScope.runTest {
            val (userInfo, guestUserInfo) = createUserInfos(count = 2, includeGuest = true)
            userRepository.setUserInfos(listOf(userInfo, guestUserInfo))
            userRepository.setSelectedUserInfo(guestUserInfo)

            whenever(manager.markGuestForDeletion(guestUserInfo.id)).thenReturn(true)
            underTest.removeGuestUser(guestUserInfo.id, userInfo.id)
            runCurrent()

            verify(manager).markGuestForDeletion(guestUserInfo.id)
            verify(activityManager).switchUser(userInfo.id)
            assertThat(collectLastValue(underTest.dialogShowRequests)()).isNull()
        }
    }

    @Test
    fun resetGuestUser_shouldNotShowExitGuestDialog() {
        createUserInteractor()
        testScope.runTest {
            val (userInfo, guestUserInfo) = createUserInfos(count = 2, includeGuest = true)
            val otherGuestUserInfo = createUserInfos(count = 1, includeGuest = true)[0]
            userRepository.setUserInfos(listOf(userInfo, guestUserInfo))
            userRepository.setSelectedUserInfo(guestUserInfo)

            whenever(manager.markGuestForDeletion(guestUserInfo.id)).thenReturn(true)
            whenever(manager.createGuest(any())).thenReturn(otherGuestUserInfo)
            underTest.removeGuestUser(guestUserInfo.id, UserHandle.USER_NULL)
            runCurrent()

            verify(manager).markGuestForDeletion(guestUserInfo.id)
            verify(manager).createGuest(any())
            verify(activityManager).switchUser(otherGuestUserInfo.id)
            assertThat(collectLastValue(underTest.dialogShowRequests)())
                .isEqualTo(ShowDialogRequestModel.ShowUserCreationDialog(isGuest = true))
        }
    }

    @Test
    fun showUserSwitcher_fullScreenDisabled_showsDialogSwitcher() {
        createUserInteractor()