Loading tests/unit/src/com/android/settings/users/UserSettingsTest.java +71 −15 Original line number Diff line number Diff line Loading @@ -15,34 +15,47 @@ */ package com.android.settings.users; import static com.google.common.truth.Truth.assertThat; import android.content.Context; import android.content.Intent; import android.support.test.InstrumentationRegistry; import android.support.test.filters.SmallTest; import android.support.test.runner.AndroidJUnit4; import android.support.test.uiautomator.UiDevice; import android.support.test.uiautomator.UiObject; import android.support.test.uiautomator.UiSelector; import android.support.test.uiautomator.UiScrollable; import android.test.InstrumentationTestCase; import android.support.test.uiautomator.UiObjectNotFoundException; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; @RunWith(AndroidJUnit4.class) @SmallTest public class UserSettingsTest extends InstrumentationTestCase { public class UserSettingsTest { private static final String USER_AND_ACCOUNTS = "Users & accounts"; private static final String USERS = "Users"; private static final String SYSTEM = "System"; private static final String ADVANCED = "Advanced"; private static final String USERS = "Multiple users"; private static final String EMERGNENCY_INFO = "Emergency information"; private static final String ADD_USERS_WHEN_LOCKED = "Add users"; private static final String SWITCH_USER_BUTTON = "com.android.systemui:id/multi_user_switch"; private static final String SETTINGS_BUTTON = "com.android.systemui:id/settings_button"; private static final String PRIMARY_USER = "Owner"; private static final String GUEST_USER = "Guest"; private static final String ADD_GUEST = "Add guest"; private static final String CONTINUE = "Yes, continue"; private UiDevice mDevice; private Context mContext; private String mTargetPackage; @Override protected void setUp() throws Exception { super.setUp(); mDevice = UiDevice.getInstance(getInstrumentation()); mContext = getInstrumentation().getTargetContext(); @Before public void setUp() { mDevice = UiDevice.getInstance(InstrumentationRegistry.getInstrumentation()); mContext = InstrumentationRegistry.getTargetContext(); mTargetPackage = mContext.getPackageName(); } Loading @@ -51,7 +64,8 @@ public class UserSettingsTest extends InstrumentationTestCase { launchUserSettings(); UiObject emergencyInfoPreference = mDevice.findObject(new UiSelector().text(EMERGNENCY_INFO)); assertFalse(emergencyInfoPreference.exists()); assertThat(emergencyInfoPreference.exists()).isFalse(); } @Test Loading @@ -59,7 +73,32 @@ public class UserSettingsTest extends InstrumentationTestCase { launchUserSettings(); UiObject addUsersPreference = mDevice.findObject(new UiSelector().text(ADD_USERS_WHEN_LOCKED)); assertFalse(addUsersPreference.exists()); assertThat(addUsersPreference.exists()).isFalse(); } @Test public void testUsersExistsOnSecondaryUser() throws Exception { // switch to guest user switchToOrCreateGuest(); // launch settings (launch from intent doesn't work, hence launch from quick settings) mDevice.openQuickSettings(); mDevice.findObject(new UiSelector().resourceId(SETTINGS_BUTTON)).click(); // launch system settings and expand whole screen final UiScrollable settings = new UiScrollable( new UiSelector().packageName(mTargetPackage).scrollable(true)); final String titleSystem = SYSTEM; settings.scrollTextIntoView(titleSystem); mDevice.findObject(new UiSelector().text(titleSystem)).click(); mDevice.findObject(new UiSelector().text(ADVANCED)).click(); final boolean hasUsersSettings = mDevice.findObject(new UiSelector().text(USERS)).exists(); // switch back to primary user mDevice.openQuickSettings(); mDevice.findObject(new UiSelector().resourceId(SWITCH_USER_BUTTON)).click(); mDevice.findObject(new UiSelector().text(PRIMARY_USER)).click(); assertThat(hasUsersSettings).isTrue(); } private void launchSettings() { Loading @@ -67,17 +106,34 @@ public class UserSettingsTest extends InstrumentationTestCase { .addCategory(Intent.CATEGORY_LAUNCHER) .setPackage(mTargetPackage) .addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); getInstrumentation().getContext().startActivity(settingsIntent); mContext.startActivity(settingsIntent); } private void launchUserSettings() throws Exception { launchSettings(); final UiScrollable settings = new UiScrollable( new UiSelector().packageName(mTargetPackage).scrollable(true)); final String titleUsersAndAccounts = USER_AND_ACCOUNTS; settings.scrollTextIntoView(titleUsersAndAccounts); mDevice.findObject(new UiSelector().text(titleUsersAndAccounts)).click(); final String titleSystem = SYSTEM; settings.scrollTextIntoView(titleSystem); mDevice.findObject(new UiSelector().text(titleSystem)).click(); mDevice.findObject(new UiSelector().text(ADVANCED)).click(); mDevice.findObject(new UiSelector().text(USERS)).click(); } private void switchToOrCreateGuest() throws UiObjectNotFoundException { mDevice.openQuickSettings(); mDevice.findObject(new UiSelector().resourceId(SWITCH_USER_BUTTON)).click(); // if no existing guest user, select "Add guest", otherwise select "Guest" final UiObject addGuest = mDevice.findObject(new UiSelector().text(ADD_GUEST)); if (addGuest.exists()) { addGuest.click(); mDevice.waitForIdle(); mDevice.pressBack(); } else { mDevice.findObject(new UiSelector().text(GUEST_USER)).click(); mDevice.waitForIdle(); mDevice.findObject(new UiSelector().text(CONTINUE)).click(); mDevice.waitForIdle(); } } } Loading
tests/unit/src/com/android/settings/users/UserSettingsTest.java +71 −15 Original line number Diff line number Diff line Loading @@ -15,34 +15,47 @@ */ package com.android.settings.users; import static com.google.common.truth.Truth.assertThat; import android.content.Context; import android.content.Intent; import android.support.test.InstrumentationRegistry; import android.support.test.filters.SmallTest; import android.support.test.runner.AndroidJUnit4; import android.support.test.uiautomator.UiDevice; import android.support.test.uiautomator.UiObject; import android.support.test.uiautomator.UiSelector; import android.support.test.uiautomator.UiScrollable; import android.test.InstrumentationTestCase; import android.support.test.uiautomator.UiObjectNotFoundException; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; @RunWith(AndroidJUnit4.class) @SmallTest public class UserSettingsTest extends InstrumentationTestCase { public class UserSettingsTest { private static final String USER_AND_ACCOUNTS = "Users & accounts"; private static final String USERS = "Users"; private static final String SYSTEM = "System"; private static final String ADVANCED = "Advanced"; private static final String USERS = "Multiple users"; private static final String EMERGNENCY_INFO = "Emergency information"; private static final String ADD_USERS_WHEN_LOCKED = "Add users"; private static final String SWITCH_USER_BUTTON = "com.android.systemui:id/multi_user_switch"; private static final String SETTINGS_BUTTON = "com.android.systemui:id/settings_button"; private static final String PRIMARY_USER = "Owner"; private static final String GUEST_USER = "Guest"; private static final String ADD_GUEST = "Add guest"; private static final String CONTINUE = "Yes, continue"; private UiDevice mDevice; private Context mContext; private String mTargetPackage; @Override protected void setUp() throws Exception { super.setUp(); mDevice = UiDevice.getInstance(getInstrumentation()); mContext = getInstrumentation().getTargetContext(); @Before public void setUp() { mDevice = UiDevice.getInstance(InstrumentationRegistry.getInstrumentation()); mContext = InstrumentationRegistry.getTargetContext(); mTargetPackage = mContext.getPackageName(); } Loading @@ -51,7 +64,8 @@ public class UserSettingsTest extends InstrumentationTestCase { launchUserSettings(); UiObject emergencyInfoPreference = mDevice.findObject(new UiSelector().text(EMERGNENCY_INFO)); assertFalse(emergencyInfoPreference.exists()); assertThat(emergencyInfoPreference.exists()).isFalse(); } @Test Loading @@ -59,7 +73,32 @@ public class UserSettingsTest extends InstrumentationTestCase { launchUserSettings(); UiObject addUsersPreference = mDevice.findObject(new UiSelector().text(ADD_USERS_WHEN_LOCKED)); assertFalse(addUsersPreference.exists()); assertThat(addUsersPreference.exists()).isFalse(); } @Test public void testUsersExistsOnSecondaryUser() throws Exception { // switch to guest user switchToOrCreateGuest(); // launch settings (launch from intent doesn't work, hence launch from quick settings) mDevice.openQuickSettings(); mDevice.findObject(new UiSelector().resourceId(SETTINGS_BUTTON)).click(); // launch system settings and expand whole screen final UiScrollable settings = new UiScrollable( new UiSelector().packageName(mTargetPackage).scrollable(true)); final String titleSystem = SYSTEM; settings.scrollTextIntoView(titleSystem); mDevice.findObject(new UiSelector().text(titleSystem)).click(); mDevice.findObject(new UiSelector().text(ADVANCED)).click(); final boolean hasUsersSettings = mDevice.findObject(new UiSelector().text(USERS)).exists(); // switch back to primary user mDevice.openQuickSettings(); mDevice.findObject(new UiSelector().resourceId(SWITCH_USER_BUTTON)).click(); mDevice.findObject(new UiSelector().text(PRIMARY_USER)).click(); assertThat(hasUsersSettings).isTrue(); } private void launchSettings() { Loading @@ -67,17 +106,34 @@ public class UserSettingsTest extends InstrumentationTestCase { .addCategory(Intent.CATEGORY_LAUNCHER) .setPackage(mTargetPackage) .addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); getInstrumentation().getContext().startActivity(settingsIntent); mContext.startActivity(settingsIntent); } private void launchUserSettings() throws Exception { launchSettings(); final UiScrollable settings = new UiScrollable( new UiSelector().packageName(mTargetPackage).scrollable(true)); final String titleUsersAndAccounts = USER_AND_ACCOUNTS; settings.scrollTextIntoView(titleUsersAndAccounts); mDevice.findObject(new UiSelector().text(titleUsersAndAccounts)).click(); final String titleSystem = SYSTEM; settings.scrollTextIntoView(titleSystem); mDevice.findObject(new UiSelector().text(titleSystem)).click(); mDevice.findObject(new UiSelector().text(ADVANCED)).click(); mDevice.findObject(new UiSelector().text(USERS)).click(); } private void switchToOrCreateGuest() throws UiObjectNotFoundException { mDevice.openQuickSettings(); mDevice.findObject(new UiSelector().resourceId(SWITCH_USER_BUTTON)).click(); // if no existing guest user, select "Add guest", otherwise select "Guest" final UiObject addGuest = mDevice.findObject(new UiSelector().text(ADD_GUEST)); if (addGuest.exists()) { addGuest.click(); mDevice.waitForIdle(); mDevice.pressBack(); } else { mDevice.findObject(new UiSelector().text(GUEST_USER)).click(); mDevice.waitForIdle(); mDevice.findObject(new UiSelector().text(CONTINUE)).click(); mDevice.waitForIdle(); } } }