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