From: Tony Wickham Date: Mon, 14 Nov 2016 22:14:19 +0000 (-0800) Subject: Fix drag and drop test by moving a bit if there are shortcuts. X-Git-Url: http://git.osdn.net/view?a=commitdiff_plain;h=05b20b0712015da9436ab638cf7cdb68b54958ff;p=android-x86%2Fpackages-apps-Launcher3.git Fix drag and drop test by moving a bit if there are shortcuts. Change-Id: Icd023f5d095610b6d1aadbf455d068ce7d700768 --- diff --git a/tests/src/com/android/launcher3/ui/AddWidgetTest.java b/tests/src/com/android/launcher3/ui/AddWidgetTest.java index a0ca60c29..d536af27e 100644 --- a/tests/src/com/android/launcher3/ui/AddWidgetTest.java +++ b/tests/src/com/android/launcher3/ui/AddWidgetTest.java @@ -5,7 +5,6 @@ import android.support.test.uiautomator.UiObject2; import android.test.suitebuilder.annotation.LargeTest; import android.view.View; -import com.android.launcher3.CellLayout; import com.android.launcher3.ItemInfo; import com.android.launcher3.Launcher; import com.android.launcher3.LauncherAppWidgetInfo; @@ -51,7 +50,7 @@ public class AddWidgetTest extends LauncherInstrumentationTestCase { // Drag widget to homescreen UiObject2 widget = scrollAndFind(widgetContainer, By.clazz(WidgetCell.class) .hasDescendant(By.text(widgetInfo.getLabel(mTargetContext.getPackageManager())))); - dragToWorkspace(widget); + dragToWorkspace(widget, false); assertNotNull(launcher.getWorkspace().getFirstMatch(new ItemOperator() { @Override diff --git a/tests/src/com/android/launcher3/ui/AllAppsIconToHomeTest.java b/tests/src/com/android/launcher3/ui/AllAppsIconToHomeTest.java index 56fc90ab1..f45710c67 100644 --- a/tests/src/com/android/launcher3/ui/AllAppsIconToHomeTest.java +++ b/tests/src/com/android/launcher3/ui/AllAppsIconToHomeTest.java @@ -47,7 +47,7 @@ public class AllAppsIconToHomeTest extends LauncherInstrumentationTestCase { // Drag icon to homescreen. UiObject2 icon = scrollAndFind(appsContainer, By.text(mSettingsApp.getLabel().toString())); - dragToWorkspace(icon); + dragToWorkspace(icon, true); // Verify that the icon works on homescreen. mDevice.findObject(By.text(mSettingsApp.getLabel().toString())).click(); diff --git a/tests/src/com/android/launcher3/ui/LauncherInstrumentationTestCase.java b/tests/src/com/android/launcher3/ui/LauncherInstrumentationTestCase.java index e94fca6ff..f592c57c0 100644 --- a/tests/src/com/android/launcher3/ui/LauncherInstrumentationTestCase.java +++ b/tests/src/com/android/launcher3/ui/LauncherInstrumentationTestCase.java @@ -140,29 +140,52 @@ public class LauncherInstrumentationTestCase extends InstrumentationTestCase { /** * Drags an icon to the center of homescreen. */ - protected void dragToWorkspace(UiObject2 icon) { + protected void dragToWorkspace(UiObject2 icon, boolean expectedToShowShortcuts) { Point center = icon.getVisibleCenter(); // Action Down sendPointer(MotionEvent.ACTION_DOWN, center); - // Wait until "Remove/Delete target is visible + UiObject2 dragLayer = findViewById(R.id.drag_layer); + + if (expectedToShowShortcuts) { + // Make sure shortcuts show up, and then move a bit to hide them. + assertNotNull(findViewById(R.id.deep_shortcuts_container)); + + Point moveLocation = new Point(center); + int distanceToMove = mTargetContext.getResources().getDimensionPixelSize( + R.dimen.deep_shortcuts_start_drag_threshold) + 50; + if (moveLocation.y - distanceToMove >= dragLayer.getVisibleBounds().top) { + moveLocation.y -= distanceToMove; + } else { + moveLocation.y += distanceToMove; + } + movePointer(center, moveLocation); + + assertNull(findViewById(R.id.deep_shortcuts_container)); + } + + // Wait until Remove/Delete target is visible assertNotNull(findViewById(R.id.delete_target_text)); - Point moveLocation = findViewById(R.id.drag_layer).getVisibleCenter(); + Point moveLocation = dragLayer.getVisibleCenter(); // Move to center - while(!moveLocation.equals(center)) { - center.x = getNextMoveValue(moveLocation.x, center.x); - center.y = getNextMoveValue(moveLocation.y, center.y); - sendPointer(MotionEvent.ACTION_MOVE, center); - } + movePointer(center, moveLocation); sendPointer(MotionEvent.ACTION_UP, center); // Wait until remove target is gone. mDevice.wait(Until.gone(getSelectorForId(R.id.delete_target_text)), DEFAULT_UI_TIMEOUT); } + private void movePointer(Point from, Point to) { + while(!from.equals(to)) { + from.x = getNextMoveValue(to.x, from.x); + from.y = getNextMoveValue(to.y, from.y); + sendPointer(MotionEvent.ACTION_MOVE, from); + } + } + private int getNextMoveValue(int targetValue, int oldValue) { if (targetValue - oldValue > 10) { return oldValue + 10;