Merge "Check whether the user is a sub profile before starting Settings homepage" into main
This commit is contained in:
@@ -40,7 +40,9 @@ import android.content.Intent;
|
||||
import android.content.pm.PackageManager;
|
||||
import android.net.Uri;
|
||||
import android.os.Build;
|
||||
import android.os.UserHandle;
|
||||
import android.provider.Settings;
|
||||
import android.util.ArraySet;
|
||||
import android.view.View;
|
||||
import android.view.Window;
|
||||
import android.view.WindowManager;
|
||||
@@ -74,6 +76,8 @@ import org.robolectric.shadow.api.Shadow;
|
||||
import org.robolectric.shadows.ShadowActivityManager;
|
||||
import org.robolectric.util.ReflectionHelpers;
|
||||
|
||||
import java.util.Set;
|
||||
|
||||
@RunWith(RobolectricTestRunner.class)
|
||||
@Config(shadows = {
|
||||
ShadowUserManager.class,
|
||||
@@ -249,7 +253,7 @@ public class SettingsHomepageActivityTest {
|
||||
spy(Robolectric.buildActivity(SettingsHomepageActivity.class).get());
|
||||
doReturn(true).when(activity).isTaskRoot();
|
||||
|
||||
activity.onCreate(/* savedInstanceState */ null);
|
||||
activity.onCreate(/* savedInstanceState= */ null);
|
||||
|
||||
verify(activity, never()).finish();
|
||||
}
|
||||
@@ -260,7 +264,7 @@ public class SettingsHomepageActivityTest {
|
||||
spy(Robolectric.buildActivity(SettingsHomepageActivity.class).get());
|
||||
doReturn(false).when(activity).isTaskRoot();
|
||||
|
||||
activity.onCreate(/* savedInstanceState */ null);
|
||||
activity.onCreate(/* savedInstanceState= */ null);
|
||||
|
||||
verify(activity).finish();
|
||||
verify(activity).startActivity(any(Intent.class));
|
||||
@@ -269,26 +273,75 @@ public class SettingsHomepageActivityTest {
|
||||
@Test
|
||||
public void onCreate_notTaskRoot_flagNewTask_shouldOnlyFinish() {
|
||||
SettingsHomepageActivity activity =
|
||||
spy(Robolectric.buildActivity(SettingsHomepageActivity.class).get());
|
||||
spy(Robolectric.buildActivity(SettingsHomepageActivity.class,
|
||||
new Intent().addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)).get());
|
||||
doReturn(false).when(activity).isTaskRoot();
|
||||
activity.setIntent(new Intent().addFlags(Intent.FLAG_ACTIVITY_NEW_TASK));
|
||||
|
||||
activity.onCreate(/* savedInstanceState */ null);
|
||||
activity.onCreate(/* savedInstanceState= */ null);
|
||||
|
||||
verify(activity).finish();
|
||||
verify(activity, never()).startActivity(any(Intent.class));
|
||||
}
|
||||
|
||||
@Test
|
||||
@Config(shadows = ShadowActivityEmbeddingUtils.class)
|
||||
public void onCreate_eligibleProfile_shouldNotRestartActivity() {
|
||||
ShadowActivityEmbeddingUtils.setIsEmbeddingActivityEnabled(true);
|
||||
SettingsHomepageActivity activity =
|
||||
spy(Robolectric.buildActivity(SettingsHomepageActivity.class).get());
|
||||
doReturn(0).when(activity).getUserId();
|
||||
doReturn(true).when(activity).isTaskRoot();
|
||||
|
||||
activity.onCreate(/* savedInstanceState= */ null);
|
||||
|
||||
verify(activity, never()).finish();
|
||||
verify(activity, never()).startActivityAsUser(any(Intent.class), any(UserHandle.class));
|
||||
}
|
||||
|
||||
@Test
|
||||
@Config(shadows = ShadowActivityEmbeddingUtils.class)
|
||||
public void onCreate_managedProfile_shouldRestartActivity() {
|
||||
ShadowActivityEmbeddingUtils.setIsEmbeddingActivityEnabled(true);
|
||||
SettingsHomepageActivity activity =
|
||||
spy(Robolectric.buildActivity(SettingsHomepageActivity.class).get());
|
||||
final Set<Integer> profileIds = new ArraySet<>();
|
||||
profileIds.add(10);
|
||||
ShadowUserManager.getShadow().setManagedProfiles(profileIds);
|
||||
doReturn(10).when(activity).getUserId();
|
||||
doReturn(true).when(activity).isTaskRoot();
|
||||
|
||||
activity.onCreate(/* savedInstanceState= */ null);
|
||||
|
||||
verify(activity).finish();
|
||||
verify(activity).startActivityAsUser(any(Intent.class), any(UserHandle.class));
|
||||
}
|
||||
|
||||
@Test
|
||||
@Config(shadows = ShadowActivityEmbeddingUtils.class)
|
||||
public void onCreate_privateProfile_shouldRestartActivity() {
|
||||
ShadowActivityEmbeddingUtils.setIsEmbeddingActivityEnabled(true);
|
||||
SettingsHomepageActivity activity =
|
||||
spy(Robolectric.buildActivity(SettingsHomepageActivity.class).get());
|
||||
ShadowUserManager.getShadow().setPrivateProfile(11, "private", 0);
|
||||
doReturn(11).when(activity).getUserId();
|
||||
doReturn(true).when(activity).isTaskRoot();
|
||||
|
||||
activity.onCreate(/* savedInstanceState= */ null);
|
||||
|
||||
verify(activity).finish();
|
||||
verify(activity).startActivityAsUser(any(Intent.class), any(UserHandle.class));
|
||||
}
|
||||
|
||||
/** This test is for large screen devices Activity embedding. */
|
||||
@Test
|
||||
@Config(shadows = ShadowActivityEmbeddingUtils.class)
|
||||
public void onCreate_flagClearTop_shouldInitRules() {
|
||||
ShadowActivityEmbeddingUtils.setIsEmbeddingActivityEnabled(true);
|
||||
SettingsHomepageActivity activity =
|
||||
spy(Robolectric.buildActivity(SettingsHomepageActivity.class).get());
|
||||
doReturn(new Intent().setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP)).when(activity).getIntent();
|
||||
spy(Robolectric.buildActivity(SettingsHomepageActivity.class,
|
||||
new Intent().setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP)).get());
|
||||
|
||||
activity.onCreate(/* savedInstanceState */ null);
|
||||
activity.onCreate(/* savedInstanceState= */ null);
|
||||
|
||||
verify(activity).initSplitPairRules();
|
||||
}
|
||||
@@ -315,12 +368,12 @@ public class SettingsHomepageActivityTest {
|
||||
|
||||
@Test
|
||||
public void getInitialReferrer_hasReferrerExtra_returnGivenReferrer() {
|
||||
SettingsHomepageActivity activity =
|
||||
spy(Robolectric.buildActivity(SettingsHomepageActivity.class).get());
|
||||
doReturn(activity.getPackageName()).when(activity).getCurrentReferrer();
|
||||
String referrer = "com.abc";
|
||||
activity.setIntent(new Intent().putExtra(SettingsHomepageActivity.EXTRA_INITIAL_REFERRER,
|
||||
referrer));
|
||||
SettingsHomepageActivity activity =
|
||||
spy(Robolectric.buildActivity(SettingsHomepageActivity.class,
|
||||
new Intent().putExtra(SettingsHomepageActivity.EXTRA_INITIAL_REFERRER,
|
||||
referrer)).get());
|
||||
doReturn(activity.getPackageName()).when(activity).getCurrentReferrer();
|
||||
|
||||
assertEquals(activity.getInitialReferrer(), referrer);
|
||||
}
|
||||
@@ -330,8 +383,8 @@ public class SettingsHomepageActivityTest {
|
||||
String referrer = "com.abc";
|
||||
Uri uri = new Uri.Builder().scheme("android-app").authority(referrer).build();
|
||||
SettingsHomepageActivity activity =
|
||||
spy(Robolectric.buildActivity(SettingsHomepageActivity.class).get());
|
||||
activity.setIntent(new Intent().putExtra(Intent.EXTRA_REFERRER, uri));
|
||||
spy(Robolectric.buildActivity(SettingsHomepageActivity.class,
|
||||
new Intent().putExtra(Intent.EXTRA_REFERRER, uri)).get());
|
||||
|
||||
assertNotEquals(activity.getCurrentReferrer(), referrer);
|
||||
}
|
||||
@@ -340,8 +393,8 @@ public class SettingsHomepageActivityTest {
|
||||
public void getCurrentReferrer_hasReferrerNameExtra_shouldNotEqual() {
|
||||
String referrer = "com.abc";
|
||||
SettingsHomepageActivity activity =
|
||||
spy(Robolectric.buildActivity(SettingsHomepageActivity.class).get());
|
||||
activity.setIntent(new Intent().putExtra(Intent.EXTRA_REFERRER_NAME, referrer));
|
||||
spy(Robolectric.buildActivity(SettingsHomepageActivity.class,
|
||||
new Intent().putExtra(Intent.EXTRA_REFERRER_NAME, referrer)).get());
|
||||
|
||||
assertNotEquals(activity.getCurrentReferrer(), referrer);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user