1 package com.android.launcher3.ui; 2 3 import android.support.test.uiautomator.By; 4 import android.support.test.uiautomator.UiObject2; 5 import android.support.test.uiautomator.Until; 6 import android.test.suitebuilder.annotation.LargeTest; 7 8 import com.android.launcher3.compat.LauncherActivityInfoCompat; 9 import com.android.launcher3.compat.LauncherAppsCompat; 10 import com.android.launcher3.compat.UserHandleCompat; 11 import com.android.launcher3.util.Condition; 12 import com.android.launcher3.util.Wait; 13 14 /** 15 * Test for dragging an icon from all-apps to homescreen. 16 */ 17 @LargeTest 18 public class AllAppsIconToHomeTest extends LauncherInstrumentationTestCase { 19 20 private LauncherActivityInfoCompat mSettingsApp; 21 22 @Override setUp()23 protected void setUp() throws Exception { 24 super.setUp(); 25 26 mSettingsApp = LauncherAppsCompat.getInstance(mTargetContext) 27 .getActivityList("com.android.settings", UserHandleCompat.myUserHandle()).get(0); 28 } 29 testDragIcon_portrait()30 public void testDragIcon_portrait() throws Throwable { 31 lockRotation(true); 32 performTest(); 33 } 34 testDragIcon_landscape()35 public void testDragIcon_landscape() throws Throwable { 36 lockRotation(false); 37 performTest(); 38 } 39 performTest()40 private void performTest() throws Throwable { 41 clearHomescreen(); 42 startLauncher(); 43 44 // Open all apps and wait for load complete. 45 final UiObject2 appsContainer = openAllApps(); 46 assertTrue(Wait.atMost(Condition.minChildCount(appsContainer, 2), DEFAULT_UI_TIMEOUT)); 47 48 // Drag icon to homescreen. 49 UiObject2 icon = scrollAndFind(appsContainer, By.text(mSettingsApp.getLabel().toString())); 50 dragToWorkspace(icon); 51 52 // Verify that the icon works on homescreen. 53 mDevice.findObject(By.text(mSettingsApp.getLabel().toString())).click(); 54 assertTrue(mDevice.wait(Until.hasObject(By.pkg( 55 mSettingsApp.getComponentName().getPackageName()).depth(0)), DEFAULT_UI_TIMEOUT)); 56 } 57 } 58