Loading services/core/java/com/android/server/pm/HsumBootUserInitializer.java +4 −17 Original line number Original line Diff line number Diff line Loading @@ -76,9 +76,6 @@ public final class HsumBootUserInitializer { /** Whether it should create an initial user, but without setting it as the main user. */ /** Whether it should create an initial user, but without setting it as the main user. */ private final boolean mShouldCreateInitialUser; private final boolean mShouldCreateInitialUser; /** The boot strategy. */ private final int mBootStrategy; /** Static factory method for creating a {@link HsumBootUserInitializer} instance. */ /** Static factory method for creating a {@link HsumBootUserInitializer} instance. */ public static @Nullable HsumBootUserInitializer createInstance(UserManagerService ums, public static @Nullable HsumBootUserInitializer createInstance(UserManagerService ums, ActivityManagerService ams, PackageManagerService pms, ContentResolver contentResolver, ActivityManagerService ams, PackageManagerService pms, ContentResolver contentResolver, Loading @@ -88,21 +85,19 @@ public final class HsumBootUserInitializer { return null; return null; } } return new HsumBootUserInitializer(ums, ams, pms, contentResolver, return new HsumBootUserInitializer(ums, ams, pms, contentResolver, designateMainUserOnBoot(context), createInitialUserOnBoot(context), designateMainUserOnBoot(context), createInitialUserOnBoot(context)); getBootStrategy(context)); } } @VisibleForTesting @VisibleForTesting HsumBootUserInitializer(UserManagerService ums, ActivityManagerService ams, HsumBootUserInitializer(UserManagerService ums, ActivityManagerService ams, PackageManagerService pms, ContentResolver contentResolver, PackageManagerService pms, ContentResolver contentResolver, boolean shouldDesignateMainUser, boolean shouldCreateInitialUser, int bootStrategy) { boolean shouldDesignateMainUser, boolean shouldCreateInitialUser) { mUms = ums; mUms = ums; mAms = ams; mAms = ams; mPms = pms; mPms = pms; mContentResolver = contentResolver; mContentResolver = contentResolver; mShouldDesignateMainUser = shouldDesignateMainUser; mShouldDesignateMainUser = shouldDesignateMainUser; mShouldCreateInitialUser = shouldCreateInitialUser; mShouldCreateInitialUser = shouldCreateInitialUser; mBootStrategy = bootStrategy; mDeviceProvisionedObserver = (Flags.hsuDeviceProvisioner() mDeviceProvisionedObserver = (Flags.hsuDeviceProvisioner() ? new HsuDeviceProvisioner(new Handler(Looper.getMainLooper()), contentResolver) ? new HsuDeviceProvisioner(new Handler(Looper.getMainLooper()), contentResolver) : new ContentObserver(new Handler(Looper.getMainLooper())) { : new ContentObserver(new Handler(Looper.getMainLooper())) { Loading Loading @@ -200,10 +195,7 @@ public final class HsumBootUserInitializer { int mainUserId = mUms.getMainUserId(); int mainUserId = mUms.getMainUserId(); t.traceEnd(); t.traceEnd(); final boolean isHsumBootStrategyOnProvisionedDevice = if (mShouldDesignateMainUser) { (mBootStrategy == UserManagerService.BOOT_STRATEGY_TO_HSU_FOR_PROVISIONED_DEVICE && isDeviceProvisioned()); if (mShouldDesignateMainUser && !isHsumBootStrategyOnProvisionedDevice) { designateMainUserIfNeeded(t, mainUserId); designateMainUserIfNeeded(t, mainUserId); return; return; } } Loading @@ -212,7 +204,7 @@ public final class HsumBootUserInitializer { demoteMainUserIfNeeded(t, mainUserId); demoteMainUserIfNeeded(t, mainUserId); t.traceEnd(); t.traceEnd(); if (mShouldCreateInitialUser && !isHsumBootStrategyOnProvisionedDevice) { if (mShouldCreateInitialUser) { createAdminUserIfNeeded(t); createAdminUserIfNeeded(t); return; return; } } Loading Loading @@ -479,9 +471,4 @@ public final class HsumBootUserInitializer { static boolean createInitialUserOnBoot(Context context) { static boolean createInitialUserOnBoot(Context context) { return context.getResources().getBoolean(R.bool.config_createInitialUser); return context.getResources().getBoolean(R.bool.config_createInitialUser); } } @VisibleForTesting static int getBootStrategy(Context context) { return context.getResources().getInteger(R.integer.config_hsumBootStrategy); } } } services/tests/mockingservicestests/src/com/android/server/pm/HsumBootUserInitializerInitMethodTest.java +33 −136 Original line number Original line Diff line number Diff line Loading @@ -89,11 +89,6 @@ public final class HsumBootUserInitializerInitMethodTest { @UserIdInt @UserIdInt private static final int REGULAR_USER_ID = 16; private static final int REGULAR_USER_ID = 16; private static final int DESKTOP_BOOT_STRATEGY = UserManagerService.BOOT_STRATEGY_TO_HSU_FOR_PROVISIONED_DEVICE; private static final int MOBILE_BOOT_STRATEGY = UserManagerService.BOOT_STRATEGY_DO_NOT_OVERRIDE; // Pre-defined users. NOTE: only setting basic flags and not setting UserType. // Pre-defined users. NOTE: only setting basic flags and not setting UserType. private final UserInfo mHeadlessSystemUser = private final UserInfo mHeadlessSystemUser = createUser(USER_SYSTEM, FLAG_SYSTEM | FLAG_ADMIN); createUser(USER_SYSTEM, FLAG_SYSTEM | FLAG_ADMIN); Loading Loading @@ -131,143 +126,46 @@ public final class HsumBootUserInitializerInitMethodTest { private final boolean mShouldAlwaysHaveMainUser; private final boolean mShouldAlwaysHaveMainUser; private final boolean mShouldCreateInitialUser; private final boolean mShouldCreateInitialUser; private final int mBootStrategy; private final InitialUsers mInitialUsers; private final InitialUsers mInitialUsers; private final ExpectedResult mExpectedResult; private final ExpectedResult mExpectedResult; /** Useless javadoc to make checkstyle happy... */ /** Useless javadoc to make checkstyle happy... */ @Parameters( @Parameters(name = "{index}: hasMain={0},createInitial={1},initial={2},result={3}") name = "{index}: hasMain={0},createInitial={1},initial={2},bootStrategy={3},result={4}") public static Collection<Object[]> junitParametersPassedToConstructor() { public static Collection<Object[]> junitParametersPassedToConstructor() { return Arrays.asList( return Arrays.asList(new Object[][] { new Object[][] { // shouldAlwaysHaveMainUser false, shouldCreateInitialUser false // shouldAlwaysHaveMainUser false, shouldCreateInitialUser false, { false, false, SYSTEM_ONLY, NO_USER_CREATED }, // bootStrategy MOBILE_BOOT_STRATEGY { false, false, SYSTEM_AND_MAIN, MAIN_USER_DEMOTED }, {false, false, SYSTEM_ONLY, MOBILE_BOOT_STRATEGY, NO_USER_CREATED}, { false, false, SYSTEM_AND_ADMINS, NO_USER_CREATED }, {false, false, SYSTEM_AND_MAIN, MOBILE_BOOT_STRATEGY, MAIN_USER_DEMOTED}, { false, false, SYSTEM_AND_ADMINS_FIRST_ADMIN_UNPROMOTABLE, NO_USER_CREATED }, {false, false, SYSTEM_AND_ADMINS, MOBILE_BOOT_STRATEGY, NO_USER_CREATED}, { false, false, SYSTEM_AND_REGULAR, NO_USER_CREATED }, { // shouldAlwaysHaveMainUser false, shouldCreateInitialUser true false, { false, true, SYSTEM_ONLY, ADMIN_USER_CREATED}, false, { false, true, SYSTEM_AND_MAIN, MAIN_USER_DEMOTED }, SYSTEM_AND_ADMINS_FIRST_ADMIN_UNPROMOTABLE, { false, true, SYSTEM_AND_ADMINS, NO_USER_CREATED }, MOBILE_BOOT_STRATEGY, { false, true, SYSTEM_AND_ADMINS_FIRST_ADMIN_UNPROMOTABLE, NO_USER_CREATED }, NO_USER_CREATED { false, true, SYSTEM_AND_REGULAR, NO_USER_CREATED }, }, // shouldAlwaysHaveMainUser true, shouldCreateInitialUser false {false, false, SYSTEM_AND_REGULAR, MOBILE_BOOT_STRATEGY, NO_USER_CREATED}, { true, false, SYSTEM_ONLY, MAIN_USER_CREATED }, // shouldAlwaysHaveMainUser false, shouldCreateInitialUser true, { true, false, SYSTEM_AND_MAIN, NO_USER_CREATED }, // bootStrategy MOBILE_BOOT_STRATEGY { true, false, SYSTEM_AND_ADMINS, FIRST_ADMIN_USER_PROMOTED_TO_MAIN }, // true { true, false, SYSTEM_AND_ADMINS_FIRST_ADMIN_UNPROMOTABLE, {false, true, SYSTEM_ONLY, MOBILE_BOOT_STRATEGY, ADMIN_USER_CREATED}, SECOND_ADMIN_USER_PROMOTED_TO_MAIN }, {false, true, SYSTEM_AND_MAIN, MOBILE_BOOT_STRATEGY, MAIN_USER_DEMOTED}, { true, false, SYSTEM_AND_REGULAR, MAIN_USER_CREATED }, {false, true, SYSTEM_AND_ADMINS, MOBILE_BOOT_STRATEGY, NO_USER_CREATED}, // shouldAlwaysHaveMainUser true, shouldCreateInitialUser true { { true, true, SYSTEM_ONLY, MAIN_USER_CREATED }, false, { true, true, SYSTEM_AND_MAIN, NO_USER_CREATED }, true, { true, true, SYSTEM_AND_ADMINS_FIRST_ADMIN_UNPROMOTABLE, SYSTEM_AND_ADMINS_FIRST_ADMIN_UNPROMOTABLE, SECOND_ADMIN_USER_PROMOTED_TO_MAIN }, MOBILE_BOOT_STRATEGY, { true, true, SYSTEM_AND_REGULAR, MAIN_USER_CREATED } NO_USER_CREATED }, {false, true, SYSTEM_AND_REGULAR, MOBILE_BOOT_STRATEGY, NO_USER_CREATED}, // shouldAlwaysHaveMainUser true, shouldCreateInitialUser false, // bootStrategy MOBILE_BOOT_STRATEGY {true, false, SYSTEM_ONLY, MOBILE_BOOT_STRATEGY, MAIN_USER_CREATED}, {true, false, SYSTEM_AND_MAIN, MOBILE_BOOT_STRATEGY, NO_USER_CREATED}, { true, false, SYSTEM_AND_ADMINS, MOBILE_BOOT_STRATEGY, FIRST_ADMIN_USER_PROMOTED_TO_MAIN }, { true, false, SYSTEM_AND_ADMINS_FIRST_ADMIN_UNPROMOTABLE, MOBILE_BOOT_STRATEGY, SECOND_ADMIN_USER_PROMOTED_TO_MAIN }, {true, false, SYSTEM_AND_REGULAR, MOBILE_BOOT_STRATEGY, MAIN_USER_CREATED}, // shouldAlwaysHaveMainUser true, shouldCreateInitialUser true, // bootStrategy MOBILE_BOOT_STRATEGY {true, true, SYSTEM_ONLY, MOBILE_BOOT_STRATEGY, MAIN_USER_CREATED}, {true, true, SYSTEM_AND_MAIN, MOBILE_BOOT_STRATEGY, NO_USER_CREATED}, { true, true, SYSTEM_AND_ADMINS_FIRST_ADMIN_UNPROMOTABLE, MOBILE_BOOT_STRATEGY, SECOND_ADMIN_USER_PROMOTED_TO_MAIN }, {true, true, SYSTEM_AND_REGULAR, MOBILE_BOOT_STRATEGY, MAIN_USER_CREATED}, // bootStrategy DESKTOP_BOOT_STRATEGY {true, true, SYSTEM_AND_MAIN, DESKTOP_BOOT_STRATEGY, NO_USER_CREATED}, {true, false, SYSTEM_AND_MAIN, DESKTOP_BOOT_STRATEGY, NO_USER_CREATED}, {false, true, SYSTEM_AND_MAIN, DESKTOP_BOOT_STRATEGY, MAIN_USER_DEMOTED}, {false, false, SYSTEM_AND_MAIN, DESKTOP_BOOT_STRATEGY, MAIN_USER_DEMOTED}, {true, true, SYSTEM_ONLY, DESKTOP_BOOT_STRATEGY, MAIN_USER_CREATED}, { true, true, SYSTEM_AND_ADMINS, DESKTOP_BOOT_STRATEGY, FIRST_ADMIN_USER_PROMOTED_TO_MAIN }, { true, true, SYSTEM_AND_ADMINS_FIRST_ADMIN_UNPROMOTABLE, DESKTOP_BOOT_STRATEGY, SECOND_ADMIN_USER_PROMOTED_TO_MAIN }, {true, true, SYSTEM_AND_REGULAR, DESKTOP_BOOT_STRATEGY, MAIN_USER_CREATED}, // hasMain=true, createInitial=false {true, false, SYSTEM_ONLY, DESKTOP_BOOT_STRATEGY, MAIN_USER_CREATED}, { true, false, SYSTEM_AND_ADMINS, DESKTOP_BOOT_STRATEGY, FIRST_ADMIN_USER_PROMOTED_TO_MAIN }, { true, false, SYSTEM_AND_ADMINS_FIRST_ADMIN_UNPROMOTABLE, DESKTOP_BOOT_STRATEGY, SECOND_ADMIN_USER_PROMOTED_TO_MAIN }, {true, false, SYSTEM_AND_REGULAR, DESKTOP_BOOT_STRATEGY, MAIN_USER_CREATED}, // hasMain=false, createInitial=true {false, true, SYSTEM_ONLY, DESKTOP_BOOT_STRATEGY, ADMIN_USER_CREATED}, {false, true, SYSTEM_AND_ADMINS, DESKTOP_BOOT_STRATEGY, NO_USER_CREATED}, { false, true, SYSTEM_AND_ADMINS_FIRST_ADMIN_UNPROMOTABLE, DESKTOP_BOOT_STRATEGY, NO_USER_CREATED }, {false, true, SYSTEM_AND_REGULAR, DESKTOP_BOOT_STRATEGY, NO_USER_CREATED}, // hasMain=false, createInitial=false {false, false, SYSTEM_ONLY, DESKTOP_BOOT_STRATEGY, NO_USER_CREATED}, {false, false, SYSTEM_AND_ADMINS, DESKTOP_BOOT_STRATEGY, NO_USER_CREATED}, { false, false, SYSTEM_AND_ADMINS_FIRST_ADMIN_UNPROMOTABLE, DESKTOP_BOOT_STRATEGY, NO_USER_CREATED }, {false, false, SYSTEM_AND_REGULAR, DESKTOP_BOOT_STRATEGY, NO_USER_CREATED} }); }); } } public HsumBootUserInitializerInitMethodTest(boolean shouldAlwaysHaveMainUser, public HsumBootUserInitializerInitMethodTest(boolean shouldAlwaysHaveMainUser, boolean shouldCreateInitialUser, InitialUsers initialUsers, int bootStrategy, boolean shouldCreateInitialUser, InitialUsers initialUsers, ExpectedResult expectedResult) { ExpectedResult expectedResult) { mShouldAlwaysHaveMainUser = shouldAlwaysHaveMainUser; mShouldAlwaysHaveMainUser = shouldAlwaysHaveMainUser; mShouldCreateInitialUser = shouldCreateInitialUser; mShouldCreateInitialUser = shouldCreateInitialUser; mBootStrategy = bootStrategy; mInitialUsers = initialUsers; mInitialUsers = initialUsers; mExpectedResult = expectedResult; mExpectedResult = expectedResult; Log.i(TAG, "Constructor: shouldAlwaysHaveMainUser=" + shouldAlwaysHaveMainUser Log.i(TAG, "Constructor: shouldAlwaysHaveMainUser=" + shouldAlwaysHaveMainUser Loading Loading @@ -337,7 +235,7 @@ public final class HsumBootUserInitializerInitMethodTest { @EnableFlags(FLAG_CREATE_INITIAL_USER) @EnableFlags(FLAG_CREATE_INITIAL_USER) public void testFlagEnabled() { public void testFlagEnabled() { var initializer = createHsumBootUserInitializer(mShouldAlwaysHaveMainUser, var initializer = createHsumBootUserInitializer(mShouldAlwaysHaveMainUser, mShouldCreateInitialUser, mBootStrategy); mShouldCreateInitialUser); initializer.init(mTracer); initializer.init(mTracer); Loading Loading @@ -383,8 +281,7 @@ public final class HsumBootUserInitializerInitMethodTest { @DisableFlags(FLAG_CREATE_INITIAL_USER) @DisableFlags(FLAG_CREATE_INITIAL_USER) public void testFlagDisabled() { public void testFlagDisabled() { var initializer = var initializer = createHsumBootUserInitializer( createHsumBootUserInitializer(mShouldAlwaysHaveMainUser, mShouldCreateInitialUser); mShouldAlwaysHaveMainUser, mShouldCreateInitialUser, mBootStrategy); initializer.init(mTracer); initializer.init(mTracer); Loading @@ -403,10 +300,10 @@ public final class HsumBootUserInitializerInitMethodTest { } } private HsumBootUserInitializer createHsumBootUserInitializer( private HsumBootUserInitializer createHsumBootUserInitializer( boolean shouldAlwaysHaveMainUser, boolean shouldCreateInitialUser, int bootStrategy) { boolean shouldAlwaysHaveMainUser, boolean shouldCreateInitialUser) { mTracer = new TimingsTraceAndSlog(TAG); mTracer = new TimingsTraceAndSlog(TAG); return new HsumBootUserInitializer(mMockUms, mMockAms, mMockPms, mMockContentResolver, return new HsumBootUserInitializer(mMockUms, mMockAms, mMockPms, mMockContentResolver, shouldAlwaysHaveMainUser, shouldCreateInitialUser, bootStrategy); shouldAlwaysHaveMainUser, shouldCreateInitialUser); } } private void expectMainUserCreated() { private void expectMainUserCreated() { Loading services/tests/mockingservicestests/src/com/android/server/pm/HsumBootUserInitializerTest.java +1 −6 Original line number Original line Diff line number Diff line Loading @@ -54,9 +54,6 @@ public final class HsumBootUserInitializerTest { private static final String TAG = HsumBootUserInitializerTest.class.getSimpleName(); private static final String TAG = HsumBootUserInitializerTest.class.getSimpleName(); private static final int MOBILE_BOOT_STRATEGY = UserManagerService.BOOT_STRATEGY_TO_HSU_FOR_PROVISIONED_DEVICE; @Rule @Rule public final Expect expect = Expect.create(); public final Expect expect = Expect.create(); @Rule @Rule Loading Loading @@ -86,9 +83,7 @@ public final class HsumBootUserInitializerTest { public void setFixtures() { public void setFixtures() { mFixture = new HsumBootUserInitializer(mMockUms, mMockAms, mMockPms, mMockContentResolver, mFixture = new HsumBootUserInitializer(mMockUms, mMockAms, mMockPms, mMockContentResolver, // value of args below don't matter // value of args below don't matter /* shouldDesignateMainUser= */ false, /* shouldDesignateMainUser= */ false, /* shouldCreateInitialUser= */ false); /* shouldCreateInitialUser= */ false, /* bootStrategy= */ MOBILE_BOOT_STRATEGY); } } @Test @Test Loading Loading
services/core/java/com/android/server/pm/HsumBootUserInitializer.java +4 −17 Original line number Original line Diff line number Diff line Loading @@ -76,9 +76,6 @@ public final class HsumBootUserInitializer { /** Whether it should create an initial user, but without setting it as the main user. */ /** Whether it should create an initial user, but without setting it as the main user. */ private final boolean mShouldCreateInitialUser; private final boolean mShouldCreateInitialUser; /** The boot strategy. */ private final int mBootStrategy; /** Static factory method for creating a {@link HsumBootUserInitializer} instance. */ /** Static factory method for creating a {@link HsumBootUserInitializer} instance. */ public static @Nullable HsumBootUserInitializer createInstance(UserManagerService ums, public static @Nullable HsumBootUserInitializer createInstance(UserManagerService ums, ActivityManagerService ams, PackageManagerService pms, ContentResolver contentResolver, ActivityManagerService ams, PackageManagerService pms, ContentResolver contentResolver, Loading @@ -88,21 +85,19 @@ public final class HsumBootUserInitializer { return null; return null; } } return new HsumBootUserInitializer(ums, ams, pms, contentResolver, return new HsumBootUserInitializer(ums, ams, pms, contentResolver, designateMainUserOnBoot(context), createInitialUserOnBoot(context), designateMainUserOnBoot(context), createInitialUserOnBoot(context)); getBootStrategy(context)); } } @VisibleForTesting @VisibleForTesting HsumBootUserInitializer(UserManagerService ums, ActivityManagerService ams, HsumBootUserInitializer(UserManagerService ums, ActivityManagerService ams, PackageManagerService pms, ContentResolver contentResolver, PackageManagerService pms, ContentResolver contentResolver, boolean shouldDesignateMainUser, boolean shouldCreateInitialUser, int bootStrategy) { boolean shouldDesignateMainUser, boolean shouldCreateInitialUser) { mUms = ums; mUms = ums; mAms = ams; mAms = ams; mPms = pms; mPms = pms; mContentResolver = contentResolver; mContentResolver = contentResolver; mShouldDesignateMainUser = shouldDesignateMainUser; mShouldDesignateMainUser = shouldDesignateMainUser; mShouldCreateInitialUser = shouldCreateInitialUser; mShouldCreateInitialUser = shouldCreateInitialUser; mBootStrategy = bootStrategy; mDeviceProvisionedObserver = (Flags.hsuDeviceProvisioner() mDeviceProvisionedObserver = (Flags.hsuDeviceProvisioner() ? new HsuDeviceProvisioner(new Handler(Looper.getMainLooper()), contentResolver) ? new HsuDeviceProvisioner(new Handler(Looper.getMainLooper()), contentResolver) : new ContentObserver(new Handler(Looper.getMainLooper())) { : new ContentObserver(new Handler(Looper.getMainLooper())) { Loading Loading @@ -200,10 +195,7 @@ public final class HsumBootUserInitializer { int mainUserId = mUms.getMainUserId(); int mainUserId = mUms.getMainUserId(); t.traceEnd(); t.traceEnd(); final boolean isHsumBootStrategyOnProvisionedDevice = if (mShouldDesignateMainUser) { (mBootStrategy == UserManagerService.BOOT_STRATEGY_TO_HSU_FOR_PROVISIONED_DEVICE && isDeviceProvisioned()); if (mShouldDesignateMainUser && !isHsumBootStrategyOnProvisionedDevice) { designateMainUserIfNeeded(t, mainUserId); designateMainUserIfNeeded(t, mainUserId); return; return; } } Loading @@ -212,7 +204,7 @@ public final class HsumBootUserInitializer { demoteMainUserIfNeeded(t, mainUserId); demoteMainUserIfNeeded(t, mainUserId); t.traceEnd(); t.traceEnd(); if (mShouldCreateInitialUser && !isHsumBootStrategyOnProvisionedDevice) { if (mShouldCreateInitialUser) { createAdminUserIfNeeded(t); createAdminUserIfNeeded(t); return; return; } } Loading Loading @@ -479,9 +471,4 @@ public final class HsumBootUserInitializer { static boolean createInitialUserOnBoot(Context context) { static boolean createInitialUserOnBoot(Context context) { return context.getResources().getBoolean(R.bool.config_createInitialUser); return context.getResources().getBoolean(R.bool.config_createInitialUser); } } @VisibleForTesting static int getBootStrategy(Context context) { return context.getResources().getInteger(R.integer.config_hsumBootStrategy); } } }
services/tests/mockingservicestests/src/com/android/server/pm/HsumBootUserInitializerInitMethodTest.java +33 −136 Original line number Original line Diff line number Diff line Loading @@ -89,11 +89,6 @@ public final class HsumBootUserInitializerInitMethodTest { @UserIdInt @UserIdInt private static final int REGULAR_USER_ID = 16; private static final int REGULAR_USER_ID = 16; private static final int DESKTOP_BOOT_STRATEGY = UserManagerService.BOOT_STRATEGY_TO_HSU_FOR_PROVISIONED_DEVICE; private static final int MOBILE_BOOT_STRATEGY = UserManagerService.BOOT_STRATEGY_DO_NOT_OVERRIDE; // Pre-defined users. NOTE: only setting basic flags and not setting UserType. // Pre-defined users. NOTE: only setting basic flags and not setting UserType. private final UserInfo mHeadlessSystemUser = private final UserInfo mHeadlessSystemUser = createUser(USER_SYSTEM, FLAG_SYSTEM | FLAG_ADMIN); createUser(USER_SYSTEM, FLAG_SYSTEM | FLAG_ADMIN); Loading Loading @@ -131,143 +126,46 @@ public final class HsumBootUserInitializerInitMethodTest { private final boolean mShouldAlwaysHaveMainUser; private final boolean mShouldAlwaysHaveMainUser; private final boolean mShouldCreateInitialUser; private final boolean mShouldCreateInitialUser; private final int mBootStrategy; private final InitialUsers mInitialUsers; private final InitialUsers mInitialUsers; private final ExpectedResult mExpectedResult; private final ExpectedResult mExpectedResult; /** Useless javadoc to make checkstyle happy... */ /** Useless javadoc to make checkstyle happy... */ @Parameters( @Parameters(name = "{index}: hasMain={0},createInitial={1},initial={2},result={3}") name = "{index}: hasMain={0},createInitial={1},initial={2},bootStrategy={3},result={4}") public static Collection<Object[]> junitParametersPassedToConstructor() { public static Collection<Object[]> junitParametersPassedToConstructor() { return Arrays.asList( return Arrays.asList(new Object[][] { new Object[][] { // shouldAlwaysHaveMainUser false, shouldCreateInitialUser false // shouldAlwaysHaveMainUser false, shouldCreateInitialUser false, { false, false, SYSTEM_ONLY, NO_USER_CREATED }, // bootStrategy MOBILE_BOOT_STRATEGY { false, false, SYSTEM_AND_MAIN, MAIN_USER_DEMOTED }, {false, false, SYSTEM_ONLY, MOBILE_BOOT_STRATEGY, NO_USER_CREATED}, { false, false, SYSTEM_AND_ADMINS, NO_USER_CREATED }, {false, false, SYSTEM_AND_MAIN, MOBILE_BOOT_STRATEGY, MAIN_USER_DEMOTED}, { false, false, SYSTEM_AND_ADMINS_FIRST_ADMIN_UNPROMOTABLE, NO_USER_CREATED }, {false, false, SYSTEM_AND_ADMINS, MOBILE_BOOT_STRATEGY, NO_USER_CREATED}, { false, false, SYSTEM_AND_REGULAR, NO_USER_CREATED }, { // shouldAlwaysHaveMainUser false, shouldCreateInitialUser true false, { false, true, SYSTEM_ONLY, ADMIN_USER_CREATED}, false, { false, true, SYSTEM_AND_MAIN, MAIN_USER_DEMOTED }, SYSTEM_AND_ADMINS_FIRST_ADMIN_UNPROMOTABLE, { false, true, SYSTEM_AND_ADMINS, NO_USER_CREATED }, MOBILE_BOOT_STRATEGY, { false, true, SYSTEM_AND_ADMINS_FIRST_ADMIN_UNPROMOTABLE, NO_USER_CREATED }, NO_USER_CREATED { false, true, SYSTEM_AND_REGULAR, NO_USER_CREATED }, }, // shouldAlwaysHaveMainUser true, shouldCreateInitialUser false {false, false, SYSTEM_AND_REGULAR, MOBILE_BOOT_STRATEGY, NO_USER_CREATED}, { true, false, SYSTEM_ONLY, MAIN_USER_CREATED }, // shouldAlwaysHaveMainUser false, shouldCreateInitialUser true, { true, false, SYSTEM_AND_MAIN, NO_USER_CREATED }, // bootStrategy MOBILE_BOOT_STRATEGY { true, false, SYSTEM_AND_ADMINS, FIRST_ADMIN_USER_PROMOTED_TO_MAIN }, // true { true, false, SYSTEM_AND_ADMINS_FIRST_ADMIN_UNPROMOTABLE, {false, true, SYSTEM_ONLY, MOBILE_BOOT_STRATEGY, ADMIN_USER_CREATED}, SECOND_ADMIN_USER_PROMOTED_TO_MAIN }, {false, true, SYSTEM_AND_MAIN, MOBILE_BOOT_STRATEGY, MAIN_USER_DEMOTED}, { true, false, SYSTEM_AND_REGULAR, MAIN_USER_CREATED }, {false, true, SYSTEM_AND_ADMINS, MOBILE_BOOT_STRATEGY, NO_USER_CREATED}, // shouldAlwaysHaveMainUser true, shouldCreateInitialUser true { { true, true, SYSTEM_ONLY, MAIN_USER_CREATED }, false, { true, true, SYSTEM_AND_MAIN, NO_USER_CREATED }, true, { true, true, SYSTEM_AND_ADMINS_FIRST_ADMIN_UNPROMOTABLE, SYSTEM_AND_ADMINS_FIRST_ADMIN_UNPROMOTABLE, SECOND_ADMIN_USER_PROMOTED_TO_MAIN }, MOBILE_BOOT_STRATEGY, { true, true, SYSTEM_AND_REGULAR, MAIN_USER_CREATED } NO_USER_CREATED }, {false, true, SYSTEM_AND_REGULAR, MOBILE_BOOT_STRATEGY, NO_USER_CREATED}, // shouldAlwaysHaveMainUser true, shouldCreateInitialUser false, // bootStrategy MOBILE_BOOT_STRATEGY {true, false, SYSTEM_ONLY, MOBILE_BOOT_STRATEGY, MAIN_USER_CREATED}, {true, false, SYSTEM_AND_MAIN, MOBILE_BOOT_STRATEGY, NO_USER_CREATED}, { true, false, SYSTEM_AND_ADMINS, MOBILE_BOOT_STRATEGY, FIRST_ADMIN_USER_PROMOTED_TO_MAIN }, { true, false, SYSTEM_AND_ADMINS_FIRST_ADMIN_UNPROMOTABLE, MOBILE_BOOT_STRATEGY, SECOND_ADMIN_USER_PROMOTED_TO_MAIN }, {true, false, SYSTEM_AND_REGULAR, MOBILE_BOOT_STRATEGY, MAIN_USER_CREATED}, // shouldAlwaysHaveMainUser true, shouldCreateInitialUser true, // bootStrategy MOBILE_BOOT_STRATEGY {true, true, SYSTEM_ONLY, MOBILE_BOOT_STRATEGY, MAIN_USER_CREATED}, {true, true, SYSTEM_AND_MAIN, MOBILE_BOOT_STRATEGY, NO_USER_CREATED}, { true, true, SYSTEM_AND_ADMINS_FIRST_ADMIN_UNPROMOTABLE, MOBILE_BOOT_STRATEGY, SECOND_ADMIN_USER_PROMOTED_TO_MAIN }, {true, true, SYSTEM_AND_REGULAR, MOBILE_BOOT_STRATEGY, MAIN_USER_CREATED}, // bootStrategy DESKTOP_BOOT_STRATEGY {true, true, SYSTEM_AND_MAIN, DESKTOP_BOOT_STRATEGY, NO_USER_CREATED}, {true, false, SYSTEM_AND_MAIN, DESKTOP_BOOT_STRATEGY, NO_USER_CREATED}, {false, true, SYSTEM_AND_MAIN, DESKTOP_BOOT_STRATEGY, MAIN_USER_DEMOTED}, {false, false, SYSTEM_AND_MAIN, DESKTOP_BOOT_STRATEGY, MAIN_USER_DEMOTED}, {true, true, SYSTEM_ONLY, DESKTOP_BOOT_STRATEGY, MAIN_USER_CREATED}, { true, true, SYSTEM_AND_ADMINS, DESKTOP_BOOT_STRATEGY, FIRST_ADMIN_USER_PROMOTED_TO_MAIN }, { true, true, SYSTEM_AND_ADMINS_FIRST_ADMIN_UNPROMOTABLE, DESKTOP_BOOT_STRATEGY, SECOND_ADMIN_USER_PROMOTED_TO_MAIN }, {true, true, SYSTEM_AND_REGULAR, DESKTOP_BOOT_STRATEGY, MAIN_USER_CREATED}, // hasMain=true, createInitial=false {true, false, SYSTEM_ONLY, DESKTOP_BOOT_STRATEGY, MAIN_USER_CREATED}, { true, false, SYSTEM_AND_ADMINS, DESKTOP_BOOT_STRATEGY, FIRST_ADMIN_USER_PROMOTED_TO_MAIN }, { true, false, SYSTEM_AND_ADMINS_FIRST_ADMIN_UNPROMOTABLE, DESKTOP_BOOT_STRATEGY, SECOND_ADMIN_USER_PROMOTED_TO_MAIN }, {true, false, SYSTEM_AND_REGULAR, DESKTOP_BOOT_STRATEGY, MAIN_USER_CREATED}, // hasMain=false, createInitial=true {false, true, SYSTEM_ONLY, DESKTOP_BOOT_STRATEGY, ADMIN_USER_CREATED}, {false, true, SYSTEM_AND_ADMINS, DESKTOP_BOOT_STRATEGY, NO_USER_CREATED}, { false, true, SYSTEM_AND_ADMINS_FIRST_ADMIN_UNPROMOTABLE, DESKTOP_BOOT_STRATEGY, NO_USER_CREATED }, {false, true, SYSTEM_AND_REGULAR, DESKTOP_BOOT_STRATEGY, NO_USER_CREATED}, // hasMain=false, createInitial=false {false, false, SYSTEM_ONLY, DESKTOP_BOOT_STRATEGY, NO_USER_CREATED}, {false, false, SYSTEM_AND_ADMINS, DESKTOP_BOOT_STRATEGY, NO_USER_CREATED}, { false, false, SYSTEM_AND_ADMINS_FIRST_ADMIN_UNPROMOTABLE, DESKTOP_BOOT_STRATEGY, NO_USER_CREATED }, {false, false, SYSTEM_AND_REGULAR, DESKTOP_BOOT_STRATEGY, NO_USER_CREATED} }); }); } } public HsumBootUserInitializerInitMethodTest(boolean shouldAlwaysHaveMainUser, public HsumBootUserInitializerInitMethodTest(boolean shouldAlwaysHaveMainUser, boolean shouldCreateInitialUser, InitialUsers initialUsers, int bootStrategy, boolean shouldCreateInitialUser, InitialUsers initialUsers, ExpectedResult expectedResult) { ExpectedResult expectedResult) { mShouldAlwaysHaveMainUser = shouldAlwaysHaveMainUser; mShouldAlwaysHaveMainUser = shouldAlwaysHaveMainUser; mShouldCreateInitialUser = shouldCreateInitialUser; mShouldCreateInitialUser = shouldCreateInitialUser; mBootStrategy = bootStrategy; mInitialUsers = initialUsers; mInitialUsers = initialUsers; mExpectedResult = expectedResult; mExpectedResult = expectedResult; Log.i(TAG, "Constructor: shouldAlwaysHaveMainUser=" + shouldAlwaysHaveMainUser Log.i(TAG, "Constructor: shouldAlwaysHaveMainUser=" + shouldAlwaysHaveMainUser Loading Loading @@ -337,7 +235,7 @@ public final class HsumBootUserInitializerInitMethodTest { @EnableFlags(FLAG_CREATE_INITIAL_USER) @EnableFlags(FLAG_CREATE_INITIAL_USER) public void testFlagEnabled() { public void testFlagEnabled() { var initializer = createHsumBootUserInitializer(mShouldAlwaysHaveMainUser, var initializer = createHsumBootUserInitializer(mShouldAlwaysHaveMainUser, mShouldCreateInitialUser, mBootStrategy); mShouldCreateInitialUser); initializer.init(mTracer); initializer.init(mTracer); Loading Loading @@ -383,8 +281,7 @@ public final class HsumBootUserInitializerInitMethodTest { @DisableFlags(FLAG_CREATE_INITIAL_USER) @DisableFlags(FLAG_CREATE_INITIAL_USER) public void testFlagDisabled() { public void testFlagDisabled() { var initializer = var initializer = createHsumBootUserInitializer( createHsumBootUserInitializer(mShouldAlwaysHaveMainUser, mShouldCreateInitialUser); mShouldAlwaysHaveMainUser, mShouldCreateInitialUser, mBootStrategy); initializer.init(mTracer); initializer.init(mTracer); Loading @@ -403,10 +300,10 @@ public final class HsumBootUserInitializerInitMethodTest { } } private HsumBootUserInitializer createHsumBootUserInitializer( private HsumBootUserInitializer createHsumBootUserInitializer( boolean shouldAlwaysHaveMainUser, boolean shouldCreateInitialUser, int bootStrategy) { boolean shouldAlwaysHaveMainUser, boolean shouldCreateInitialUser) { mTracer = new TimingsTraceAndSlog(TAG); mTracer = new TimingsTraceAndSlog(TAG); return new HsumBootUserInitializer(mMockUms, mMockAms, mMockPms, mMockContentResolver, return new HsumBootUserInitializer(mMockUms, mMockAms, mMockPms, mMockContentResolver, shouldAlwaysHaveMainUser, shouldCreateInitialUser, bootStrategy); shouldAlwaysHaveMainUser, shouldCreateInitialUser); } } private void expectMainUserCreated() { private void expectMainUserCreated() { Loading
services/tests/mockingservicestests/src/com/android/server/pm/HsumBootUserInitializerTest.java +1 −6 Original line number Original line Diff line number Diff line Loading @@ -54,9 +54,6 @@ public final class HsumBootUserInitializerTest { private static final String TAG = HsumBootUserInitializerTest.class.getSimpleName(); private static final String TAG = HsumBootUserInitializerTest.class.getSimpleName(); private static final int MOBILE_BOOT_STRATEGY = UserManagerService.BOOT_STRATEGY_TO_HSU_FOR_PROVISIONED_DEVICE; @Rule @Rule public final Expect expect = Expect.create(); public final Expect expect = Expect.create(); @Rule @Rule Loading Loading @@ -86,9 +83,7 @@ public final class HsumBootUserInitializerTest { public void setFixtures() { public void setFixtures() { mFixture = new HsumBootUserInitializer(mMockUms, mMockAms, mMockPms, mMockContentResolver, mFixture = new HsumBootUserInitializer(mMockUms, mMockAms, mMockPms, mMockContentResolver, // value of args below don't matter // value of args below don't matter /* shouldDesignateMainUser= */ false, /* shouldDesignateMainUser= */ false, /* shouldCreateInitialUser= */ false); /* shouldCreateInitialUser= */ false, /* bootStrategy= */ MOBILE_BOOT_STRATEGY); } } @Test @Test Loading