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

Commit 5a911013 authored by Tetiana Meronyk's avatar Tetiana Meronyk Committed by Android (Google) Code Review
Browse files

Merge "Allow admins to remove their user as long as they are not the main user" into main

parents 7cd65a14 e3540b51
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -472,7 +472,7 @@ public class UserSettings extends SettingsPreferenceFragment
    @Override
    public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
        int pos = 0;
        if (!isCurrentUserAdmin() && (canSwitchUserNow() || Flags.newMultiuserSettingsUx())
        if (!mUserCaps.mIsMain && (canSwitchUserNow() || Flags.newMultiuserSettingsUx())
                && !isCurrentUserGuest() && !mUserManager.isProfile()) {
            String nickname = mUserManager.getUserName();
            MenuItem removeThisUser = menu.add(0, MENU_REMOVE_USER, pos++,
+30 −0
Original line number Diff line number Diff line
@@ -365,6 +365,36 @@ public class UserSettingsTest {
        verify(menuItem).setTitle(AdditionalMatchers.not(eq(defaultTitle)));
    }

    @Test
    public void withCurrentUserAdmin_ShouldAddRemoveUserAction() {
        doReturn(SWITCHABILITY_STATUS_OK).when(mUserManager).getUserSwitchability();
        mUserCapabilities.mIsMain = false;
        mUserCapabilities.mIsAdmin = true;

        Menu menu = mock(Menu.class);
        MenuItem menuItem = mock(MenuItem.class);
        final String title = "title";

        doReturn(title).when(menuItem).getTitle();
        doReturn(menuItem).when(menu).add(
                anyInt(), eq(Menu.FIRST), anyInt(), any(CharSequence.class));

        mFragment.onCreateOptionsMenu(menu, mock(MenuInflater.class));

        verify(menu).add(eq(0), anyInt(), anyInt(), any(CharSequence.class));
    }

    @Test
    public void withCurrentUserMain_ShouldNotAddRemoveUserAction() {
        mUserCapabilities.mIsMain = true;
        doReturn(SWITCHABILITY_STATUS_OK).when(mUserManager).getUserSwitchability();
        Menu menu = mock(Menu.class);

        mFragment.onCreateOptionsMenu(menu, mock(MenuInflater.class));

        verify(menu, never()).add(anyInt(), anyInt(), anyInt(), any(CharSequence.class));
    }

    @Test
    public void withoutDisallowRemoveUser_ShouldNotDisableRemoveUser() {
        // Arrange