Lock Private space at the end of PS setup.

This change is to call UserManager requestQuietModeEnabled() API at the
end of PS setup to enable quitemode for private space.

Bug: 313652502
Test: atest PrivateSpaceMaintainerTest
Verify Private space is locked state after private space setup completion.

Change-Id: I1d863f6d51ffa4bb58318696603905d35c3109b6
This commit is contained in:
josephpv
2023-11-29 22:48:52 +00:00
committed by Joseph Vincent
parent 9a0db2d6e5
commit 242ae4fbcc
3 changed files with 84 additions and 0 deletions

View File

@@ -21,8 +21,11 @@ import static com.android.settings.privatespace.PrivateSpaceMaintainer.HIDE_PRIV
import static com.google.common.truth.Truth.assertThat;
import android.app.ActivityManager;
import android.app.IActivityManager;
import android.content.ContentResolver;
import android.content.Context;
import android.os.RemoteException;
import android.provider.Settings;
import androidx.test.core.app.ApplicationProvider;
@@ -30,6 +33,8 @@ import androidx.test.ext.junit.runners.AndroidJUnit4;
import com.android.settings.privatespace.PrivateSpaceMaintainer.ErrorDeletingPrivateSpace;
import org.junit.After;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
@@ -37,6 +42,7 @@ import org.mockito.MockitoAnnotations;
@RunWith(AndroidJUnit4.class)
public class PrivateSpaceMaintainerTest {
private static final String TAG = "PSMaintainerTest";
private Context mContext;
private ContentResolver mContentResolver;
@@ -48,6 +54,13 @@ public class PrivateSpaceMaintainerTest {
mContentResolver = mContext.getContentResolver();
}
@After
public void tearDown() {
PrivateSpaceMaintainer privateSpaceMaintainer =
PrivateSpaceMaintainer.getInstance(mContext);
privateSpaceMaintainer.deletePrivateSpace();
}
/** Tests that {@link PrivateSpaceMaintainer#deletePrivateSpace()} deletes PS when PS exists. */
@Test
public void deletePrivateSpace_psExists_deletesPS() {
@@ -137,4 +150,52 @@ public class PrivateSpaceMaintainerTest {
assertThat(privateSpaceMaintainer.getHidePrivateSpaceEntryPointSetting())
.isEqualTo(HIDE_PRIVATE_SPACE_ENTRY_POINT_ENABLED_VAL);
}
/**
* Tests that {@link PrivateSpaceMaintainer#lockPrivateSpace()} when PS exists and is running
* locks the private profile.
*/
@Test
public void lockPrivateSpace_psExistsAndPrivateProfileRunning_locksCreatedPrivateSpace() {
PrivateSpaceMaintainer privateSpaceMaintainer =
PrivateSpaceMaintainer.getInstance(mContext);
privateSpaceMaintainer.createPrivateSpace();
assertThat(privateSpaceMaintainer.doesPrivateSpaceExist()).isTrue();
assertThat(privateSpaceMaintainer.isPrivateProfileRunning()).isTrue();
assertThat(privateSpaceMaintainer.isPrivateSpaceLocked()).isFalse();
assertThat(privateSpaceMaintainer.lockPrivateSpace()).isTrue();
assertThat(privateSpaceMaintainer.isPrivateSpaceLocked()).isTrue();
}
/**
* Tests that {@link PrivateSpaceMaintainer#lockPrivateSpace()} when PS exist and private
* profile not running returns false.
*/
@Test
public void lockPrivateSpace_psExistsAndPrivateProfileNotRunning_returnsFalse() {
PrivateSpaceMaintainer privateSpaceMaintainer =
PrivateSpaceMaintainer.getInstance(mContext);
privateSpaceMaintainer.createPrivateSpace();
assertThat(privateSpaceMaintainer.doesPrivateSpaceExist()).isTrue();
assertThat(privateSpaceMaintainer.isPrivateProfileRunning()).isTrue();
IActivityManager am = ActivityManager.getService();
try {
am.stopProfile(privateSpaceMaintainer.getPrivateProfileHandle().getIdentifier());
} catch (RemoteException e) {
Assert.fail("Stop profile failed with exception " + e.getMessage());
}
assertThat(privateSpaceMaintainer.isPrivateProfileRunning()).isFalse();
assertThat(privateSpaceMaintainer.lockPrivateSpace()).isFalse();
}
/**
* Tests that {@link PrivateSpaceMaintainer#lockPrivateSpace()} when no PS exists returns false.
*/
@Test
public void lockPrivateSpace_psDoesNotExist_returnsFalse() {
PrivateSpaceMaintainer privateSpaceMaintainer =
PrivateSpaceMaintainer.getInstance(mContext);
assertThat(privateSpaceMaintainer.doesPrivateSpaceExist()).isFalse();
assertThat(privateSpaceMaintainer.lockPrivateSpace()).isFalse();
}
}