|
|
|
|
@@ -21,6 +21,8 @@ import static org.junit.Assert.assertNotNull;
|
|
|
|
|
import static org.junit.Assert.assertTrue;
|
|
|
|
|
import static org.junit.Assume.assumeTrue;
|
|
|
|
|
|
|
|
|
|
import android.view.View;
|
|
|
|
|
|
|
|
|
|
import androidx.test.filters.LargeTest;
|
|
|
|
|
import androidx.test.runner.AndroidJUnit4;
|
|
|
|
|
|
|
|
|
|
@@ -55,11 +57,15 @@ public class TwoPanelWorkspaceTest extends AbstractLauncherUiTest {
|
|
|
|
|
|
|
|
|
|
assumeTrue(mLauncher.isTwoPanels());
|
|
|
|
|
|
|
|
|
|
// Removing the Gmail widget so there are space in the right panel to run the test.
|
|
|
|
|
Workspace workspace = mLauncher.getWorkspace();
|
|
|
|
|
workspace.deleteWidget(workspace.tryGetWidget("Gmail", DEFAULT_UI_TIMEOUT));
|
|
|
|
|
|
|
|
|
|
// Pre verifying the screens
|
|
|
|
|
executeOnLauncher(launcher -> {
|
|
|
|
|
assertPagesExist(launcher, 0, 1);
|
|
|
|
|
assertItemsOnPage(launcher, 0, "Play Store", "Maps");
|
|
|
|
|
assertPageEmpty(launcher, 1);
|
|
|
|
|
assertItemsOnPage(launcher, 0, "Play Store", "Gmail", "Photos", "YouTube");
|
|
|
|
|
assertItemsOnPage(launcher, 1, "Weather");
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@@ -72,8 +78,8 @@ public class TwoPanelWorkspaceTest extends AbstractLauncherUiTest {
|
|
|
|
|
|
|
|
|
|
executeOnLauncher(launcher -> {
|
|
|
|
|
assertPagesExist(launcher, 0, 1);
|
|
|
|
|
assertItemsOnPage(launcher, 0, "Maps", "Play Store");
|
|
|
|
|
assertItemsOnPage(launcher, 1, "Chrome");
|
|
|
|
|
assertItemsOnPage(launcher, 0, "Play Store", "Gmail", "Photos", "YouTube");
|
|
|
|
|
assertItemsOnPage(launcher, 1, "Weather", "Chrome");
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@@ -86,39 +92,39 @@ public class TwoPanelWorkspaceTest extends AbstractLauncherUiTest {
|
|
|
|
|
|
|
|
|
|
workspace.flingBackward();
|
|
|
|
|
|
|
|
|
|
workspace.dragIcon(workspace.getWorkspaceAppIcon("Maps"), 3);
|
|
|
|
|
workspace.dragIcon(workspace.getWorkspaceAppIcon("Photos"), 3);
|
|
|
|
|
|
|
|
|
|
executeOnLauncher(launcher -> {
|
|
|
|
|
assertPagesExist(launcher, 0, 1, 2, 3);
|
|
|
|
|
assertItemsOnPage(launcher, 0, "Play Store");
|
|
|
|
|
assertPageEmpty(launcher, 1);
|
|
|
|
|
assertItemsOnPage(launcher, 0, "Play Store", "Gmail", "YouTube");
|
|
|
|
|
assertItemsOnPage(launcher, 1, "Weather");
|
|
|
|
|
assertItemsOnPage(launcher, 2, "Chrome");
|
|
|
|
|
assertItemsOnPage(launcher, 3, "Maps");
|
|
|
|
|
assertItemsOnPage(launcher, 3, "Photos");
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
workspace.dragIcon(workspace.getWorkspaceAppIcon("Maps"), 3);
|
|
|
|
|
workspace.dragIcon(workspace.getWorkspaceAppIcon("Photos"), 3);
|
|
|
|
|
|
|
|
|
|
executeOnLauncher(launcher -> {
|
|
|
|
|
assertPagesExist(launcher, 0, 1, 2, 3, 4, 5);
|
|
|
|
|
assertItemsOnPage(launcher, 0, "Play Store");
|
|
|
|
|
assertPageEmpty(launcher, 1);
|
|
|
|
|
assertItemsOnPage(launcher, 0, "Play Store", "Gmail", "YouTube");
|
|
|
|
|
assertItemsOnPage(launcher, 1, "Weather");
|
|
|
|
|
assertItemsOnPage(launcher, 2, "Chrome");
|
|
|
|
|
assertPageEmpty(launcher, 3);
|
|
|
|
|
assertPageEmpty(launcher, 4);
|
|
|
|
|
assertItemsOnPage(launcher, 5, "Maps");
|
|
|
|
|
assertItemsOnPage(launcher, 5, "Photos");
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
workspace.dragIcon(workspace.getWorkspaceAppIcon("Maps"), -1);
|
|
|
|
|
workspace.dragIcon(workspace.getWorkspaceAppIcon("Photos"), -1);
|
|
|
|
|
|
|
|
|
|
executeOnLauncher(launcher -> {
|
|
|
|
|
assertPagesExist(launcher, 0, 1, 2, 3);
|
|
|
|
|
assertItemsOnPage(launcher, 0, "Play Store");
|
|
|
|
|
assertPageEmpty(launcher, 1);
|
|
|
|
|
assertItemsOnPage(launcher, 0, "Play Store", "Gmail", "YouTube");
|
|
|
|
|
assertItemsOnPage(launcher, 1, "Weather");
|
|
|
|
|
assertItemsOnPage(launcher, 2, "Chrome");
|
|
|
|
|
assertItemsOnPage(launcher, 3, "Maps");
|
|
|
|
|
assertItemsOnPage(launcher, 3, "Photos");
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
workspace.dragIcon(workspace.getWorkspaceAppIcon("Maps"), -1);
|
|
|
|
|
workspace.dragIcon(workspace.getWorkspaceAppIcon("Photos"), -1);
|
|
|
|
|
|
|
|
|
|
workspace.flingForward();
|
|
|
|
|
|
|
|
|
|
@@ -126,8 +132,8 @@ public class TwoPanelWorkspaceTest extends AbstractLauncherUiTest {
|
|
|
|
|
|
|
|
|
|
executeOnLauncher(launcher -> {
|
|
|
|
|
assertPagesExist(launcher, 0, 1);
|
|
|
|
|
assertItemsOnPage(launcher, 0, "Chrome", "Play Store");
|
|
|
|
|
assertItemsOnPage(launcher, 1, "Maps");
|
|
|
|
|
assertItemsOnPage(launcher, 0, "Chrome", "Play Store", "Gmail", "YouTube");
|
|
|
|
|
assertItemsOnPage(launcher, 1, "Weather", "Photos");
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@@ -136,13 +142,13 @@ public class TwoPanelWorkspaceTest extends AbstractLauncherUiTest {
|
|
|
|
|
public void testDragIconToPage2() {
|
|
|
|
|
Workspace workspace = mLauncher.getWorkspace();
|
|
|
|
|
|
|
|
|
|
workspace.dragIcon(workspace.getWorkspaceAppIcon("Maps"), 2);
|
|
|
|
|
workspace.dragIcon(workspace.getWorkspaceAppIcon("Photos"), 2);
|
|
|
|
|
|
|
|
|
|
executeOnLauncher(launcher -> {
|
|
|
|
|
assertPagesExist(launcher, 0, 1, 2, 3);
|
|
|
|
|
assertItemsOnPage(launcher, 0, "Play Store");
|
|
|
|
|
assertPageEmpty(launcher, 1);
|
|
|
|
|
assertItemsOnPage(launcher, 2, "Maps");
|
|
|
|
|
assertItemsOnPage(launcher, 0, "Play Store", "Gmail", "YouTube");
|
|
|
|
|
assertItemsOnPage(launcher, 1, "Weather");
|
|
|
|
|
assertItemsOnPage(launcher, 2, "Photos");
|
|
|
|
|
assertPageEmpty(launcher, 3);
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
@@ -156,8 +162,8 @@ public class TwoPanelWorkspaceTest extends AbstractLauncherUiTest {
|
|
|
|
|
|
|
|
|
|
executeOnLauncher(launcher -> {
|
|
|
|
|
assertPagesExist(launcher, 0, 1, 2, 3);
|
|
|
|
|
assertItemsOnPage(launcher, 0, "Play Store", "Maps");
|
|
|
|
|
assertPageEmpty(launcher, 1);
|
|
|
|
|
assertItemsOnPage(launcher, 0, "Play Store", "Gmail", "Photos", "YouTube");
|
|
|
|
|
assertItemsOnPage(launcher, 1, "Weather");
|
|
|
|
|
assertPageEmpty(launcher, 2);
|
|
|
|
|
assertItemsOnPage(launcher, 3, "Phone");
|
|
|
|
|
});
|
|
|
|
|
@@ -172,16 +178,16 @@ public class TwoPanelWorkspaceTest extends AbstractLauncherUiTest {
|
|
|
|
|
|
|
|
|
|
workspace.flingBackward();
|
|
|
|
|
|
|
|
|
|
workspace.dragIcon(workspace.getWorkspaceAppIcon("Maps"), 5);
|
|
|
|
|
workspace.dragIcon(workspace.getWorkspaceAppIcon("Photos"), 5);
|
|
|
|
|
|
|
|
|
|
executeOnLauncher(launcher -> {
|
|
|
|
|
assertPagesExist(launcher, 0, 1, 2, 3, 4, 5);
|
|
|
|
|
assertItemsOnPage(launcher, 0, "Play Store");
|
|
|
|
|
assertPageEmpty(launcher, 1);
|
|
|
|
|
assertItemsOnPage(launcher, 0, "Play Store", "Gmail", "YouTube");
|
|
|
|
|
assertItemsOnPage(launcher, 1, "Weather");
|
|
|
|
|
assertItemsOnPage(launcher, 2, "Messages");
|
|
|
|
|
assertPageEmpty(launcher, 3);
|
|
|
|
|
assertPageEmpty(launcher, 4);
|
|
|
|
|
assertItemsOnPage(launcher, 5, "Maps");
|
|
|
|
|
assertItemsOnPage(launcher, 5, "Photos");
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
workspace.flingBackward();
|
|
|
|
|
@@ -190,10 +196,10 @@ public class TwoPanelWorkspaceTest extends AbstractLauncherUiTest {
|
|
|
|
|
|
|
|
|
|
executeOnLauncher(launcher -> {
|
|
|
|
|
assertPagesExist(launcher, 0, 1, 4, 5, 6, 7);
|
|
|
|
|
assertItemsOnPage(launcher, 0, "Play Store");
|
|
|
|
|
assertPageEmpty(launcher, 1);
|
|
|
|
|
assertItemsOnPage(launcher, 0, "Play Store", "Gmail", "YouTube");
|
|
|
|
|
assertItemsOnPage(launcher, 1, "Weather");
|
|
|
|
|
assertPageEmpty(launcher, 4);
|
|
|
|
|
assertItemsOnPage(launcher, 5, "Maps");
|
|
|
|
|
assertItemsOnPage(launcher, 5, "Photos");
|
|
|
|
|
assertItemsOnPage(launcher, 6, "Messages");
|
|
|
|
|
assertPageEmpty(launcher, 7);
|
|
|
|
|
});
|
|
|
|
|
@@ -202,10 +208,10 @@ public class TwoPanelWorkspaceTest extends AbstractLauncherUiTest {
|
|
|
|
|
|
|
|
|
|
executeOnLauncher(launcher -> {
|
|
|
|
|
assertPagesExist(launcher, 0, 1, 4, 5);
|
|
|
|
|
assertItemsOnPage(launcher, 0, "Play Store");
|
|
|
|
|
assertItemsOnPage(launcher, 1, "Messages");
|
|
|
|
|
assertItemsOnPage(launcher, 0, "Play Store", "Gmail", "YouTube");
|
|
|
|
|
assertItemsOnPage(launcher, 1, "Weather", "Messages");
|
|
|
|
|
assertPageEmpty(launcher, 4);
|
|
|
|
|
assertItemsOnPage(launcher, 5, "Maps");
|
|
|
|
|
assertItemsOnPage(launcher, 5, "Photos");
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@@ -214,23 +220,23 @@ public class TwoPanelWorkspaceTest extends AbstractLauncherUiTest {
|
|
|
|
|
public void testEmptyPageDoesNotGetRemovedIfPagePairIsNotEmpty() {
|
|
|
|
|
Workspace workspace = mLauncher.getWorkspace();
|
|
|
|
|
|
|
|
|
|
workspace.dragIcon(workspace.getWorkspaceAppIcon("Maps"), 3);
|
|
|
|
|
workspace.dragIcon(workspace.getWorkspaceAppIcon("Photos"), 3);
|
|
|
|
|
workspace.dragIcon(workspace.getHotseatAppIcon("Chrome"), 0);
|
|
|
|
|
|
|
|
|
|
executeOnLauncher(launcher -> {
|
|
|
|
|
assertPagesExist(launcher, 0, 1, 2, 3);
|
|
|
|
|
assertItemsOnPage(launcher, 0, "Play Store");
|
|
|
|
|
assertPageEmpty(launcher, 1);
|
|
|
|
|
assertItemsOnPage(launcher, 0, "Play Store", "Gmail", "YouTube");
|
|
|
|
|
assertItemsOnPage(launcher, 1, "Weather");
|
|
|
|
|
assertItemsOnPage(launcher, 2, "Chrome");
|
|
|
|
|
assertItemsOnPage(launcher, 3, "Maps");
|
|
|
|
|
assertItemsOnPage(launcher, 3, "Photos");
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
workspace.dragIcon(workspace.getWorkspaceAppIcon("Maps"), -1);
|
|
|
|
|
workspace.dragIcon(workspace.getWorkspaceAppIcon("Photos"), -1);
|
|
|
|
|
|
|
|
|
|
executeOnLauncher(launcher -> {
|
|
|
|
|
assertPagesExist(launcher, 0, 1, 2, 3);
|
|
|
|
|
assertItemsOnPage(launcher, 0, "Play Store");
|
|
|
|
|
assertItemsOnPage(launcher, 1, "Maps");
|
|
|
|
|
assertItemsOnPage(launcher, 0, "Play Store", "Gmail", "YouTube");
|
|
|
|
|
assertItemsOnPage(launcher, 1, "Weather", "Photos");
|
|
|
|
|
assertItemsOnPage(launcher, 2, "Chrome");
|
|
|
|
|
assertPageEmpty(launcher, 3);
|
|
|
|
|
});
|
|
|
|
|
@@ -242,8 +248,8 @@ public class TwoPanelWorkspaceTest extends AbstractLauncherUiTest {
|
|
|
|
|
|
|
|
|
|
executeOnLauncher(launcher -> {
|
|
|
|
|
assertPagesExist(launcher, 0, 1, 2, 3);
|
|
|
|
|
assertItemsOnPage(launcher, 0, "Play Store");
|
|
|
|
|
assertItemsOnPage(launcher, 1, "Maps");
|
|
|
|
|
assertItemsOnPage(launcher, 0, "Play Store", "Gmail", "YouTube");
|
|
|
|
|
assertItemsOnPage(launcher, 1, "Weather", "Photos");
|
|
|
|
|
assertPageEmpty(launcher, 2);
|
|
|
|
|
assertItemsOnPage(launcher, 3, "Chrome");
|
|
|
|
|
});
|
|
|
|
|
@@ -259,8 +265,8 @@ public class TwoPanelWorkspaceTest extends AbstractLauncherUiTest {
|
|
|
|
|
|
|
|
|
|
executeOnLauncher(launcher -> {
|
|
|
|
|
assertPagesExist(launcher, 0, 1, 2, 3);
|
|
|
|
|
assertItemsOnPage(launcher, 0, "Maps");
|
|
|
|
|
assertPageEmpty(launcher, 1);
|
|
|
|
|
assertItemsOnPage(launcher, 0, "Gmail", "Photos", "YouTube");
|
|
|
|
|
assertItemsOnPage(launcher, 1, "Weather");
|
|
|
|
|
assertItemsOnPage(launcher, 2, "Play Store");
|
|
|
|
|
assertItemsOnPage(launcher, 3, "Chrome");
|
|
|
|
|
});
|
|
|
|
|
@@ -271,8 +277,8 @@ public class TwoPanelWorkspaceTest extends AbstractLauncherUiTest {
|
|
|
|
|
|
|
|
|
|
executeOnLauncher(launcher -> {
|
|
|
|
|
assertPagesExist(launcher, 0, 1);
|
|
|
|
|
assertItemsOnPage(launcher, 0, "Play Store", "Maps");
|
|
|
|
|
assertItemsOnPage(launcher, 1, "Chrome");
|
|
|
|
|
assertItemsOnPage(launcher, 0, "Play Store", "Gmail", "Photos", "YouTube");
|
|
|
|
|
assertItemsOnPage(launcher, 1, "Weather", "Chrome");
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@@ -281,27 +287,27 @@ public class TwoPanelWorkspaceTest extends AbstractLauncherUiTest {
|
|
|
|
|
public void testMiddleEmptyPagesGetRemoved() {
|
|
|
|
|
Workspace workspace = mLauncher.getWorkspace();
|
|
|
|
|
|
|
|
|
|
workspace.dragIcon(workspace.getWorkspaceAppIcon("Maps"), 2);
|
|
|
|
|
workspace.dragIcon(workspace.getWorkspaceAppIcon("Photos"), 2);
|
|
|
|
|
workspace.dragIcon(workspace.getHotseatAppIcon("Messages"), 3);
|
|
|
|
|
|
|
|
|
|
executeOnLauncher(launcher -> {
|
|
|
|
|
assertPagesExist(launcher, 0, 1, 2, 3, 4, 5);
|
|
|
|
|
assertItemsOnPage(launcher, 0, "Play Store");
|
|
|
|
|
assertPageEmpty(launcher, 1);
|
|
|
|
|
assertItemsOnPage(launcher, 2, "Maps");
|
|
|
|
|
assertItemsOnPage(launcher, 0, "Play Store", "Gmail", "YouTube");
|
|
|
|
|
assertItemsOnPage(launcher, 1, "Weather");
|
|
|
|
|
assertItemsOnPage(launcher, 2, "Photos");
|
|
|
|
|
assertPageEmpty(launcher, 3);
|
|
|
|
|
assertPageEmpty(launcher, 4);
|
|
|
|
|
assertItemsOnPage(launcher, 5, "Messages");
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
workspace.flingBackward();
|
|
|
|
|
workspace.dragIcon(workspace.getWorkspaceAppIcon("Maps"), 2);
|
|
|
|
|
workspace.dragIcon(workspace.getWorkspaceAppIcon("Photos"), 2);
|
|
|
|
|
|
|
|
|
|
executeOnLauncher(launcher -> {
|
|
|
|
|
assertPagesExist(launcher, 0, 1, 4, 5);
|
|
|
|
|
assertItemsOnPage(launcher, 0, "Play Store");
|
|
|
|
|
assertPageEmpty(launcher, 1);
|
|
|
|
|
assertItemsOnPage(launcher, 4, "Maps");
|
|
|
|
|
assertItemsOnPage(launcher, 0, "Play Store", "Gmail", "YouTube");
|
|
|
|
|
assertItemsOnPage(launcher, 1, "Weather");
|
|
|
|
|
assertItemsOnPage(launcher, 4, "Photos");
|
|
|
|
|
assertItemsOnPage(launcher, 5, "Messages");
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
@@ -329,14 +335,21 @@ public class TwoPanelWorkspaceTest extends AbstractLauncherUiTest {
|
|
|
|
|
CellLayout page = launcher.getWorkspace().getScreenWithId(pageId);
|
|
|
|
|
int itemCount = page.getShortcutsAndWidgets().getChildCount();
|
|
|
|
|
for (int i = 0; i < itemCount; i++) {
|
|
|
|
|
ItemInfo itemInfo = (ItemInfo) page.getShortcutsAndWidgets().getChildAt(i).getTag();
|
|
|
|
|
CharSequence title = null;
|
|
|
|
|
View child = page.getShortcutsAndWidgets().getChildAt(i);
|
|
|
|
|
ItemInfo itemInfo = (ItemInfo) child.getTag();
|
|
|
|
|
if (itemInfo != null) {
|
|
|
|
|
assertTrue("There was an extra item on page " + pageId + ": " + itemInfo.title,
|
|
|
|
|
itemTitleSet.remove(itemInfo.title));
|
|
|
|
|
title = itemInfo.title;
|
|
|
|
|
}
|
|
|
|
|
if (title == null) {
|
|
|
|
|
title = child.getContentDescription();
|
|
|
|
|
}
|
|
|
|
|
if (title != null) {
|
|
|
|
|
assertTrue("There was an extra item on page " + pageId + ": " + title,
|
|
|
|
|
itemTitleSet.remove(title));
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
assertTrue("Could NOT find some of the items on page " + pageId + ": "
|
|
|
|
|
+ itemTitleSet.stream().collect(Collectors.joining(",")),
|
|
|
|
|
itemTitleSet.isEmpty());
|
|
|
|
|
+ String.join(",", itemTitleSet), itemTitleSet.isEmpty());
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|