|
|
|
|
@@ -16,13 +16,12 @@
|
|
|
|
|
|
|
|
|
|
package android.widget;
|
|
|
|
|
|
|
|
|
|
import static com.android.internal.widget.floatingtoolbar.FloatingToolbar.FLOATING_TOOLBAR_TAG;
|
|
|
|
|
|
|
|
|
|
import static com.google.common.truth.Truth.assertThat;
|
|
|
|
|
import static com.google.common.truth.Truth.assertWithMessage;
|
|
|
|
|
|
|
|
|
|
import android.content.res.Resources;
|
|
|
|
|
import android.support.test.uiautomator.By;
|
|
|
|
|
import android.support.test.uiautomator.BySelector;
|
|
|
|
|
import android.support.test.uiautomator.UiDevice;
|
|
|
|
|
import android.support.test.uiautomator.Until;
|
|
|
|
|
|
|
|
|
|
@@ -33,25 +32,27 @@ import com.android.internal.R;
|
|
|
|
|
final class FloatingToolbarUtils {
|
|
|
|
|
|
|
|
|
|
private final UiDevice mDevice;
|
|
|
|
|
private static final BySelector TOOLBAR_CONTAINER_SELECTOR =
|
|
|
|
|
By.res("android", "floating_popup_container");
|
|
|
|
|
|
|
|
|
|
FloatingToolbarUtils() {
|
|
|
|
|
mDevice = UiDevice.getInstance(InstrumentationRegistry.getInstrumentation());
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void waitForFloatingToolbarPopup() {
|
|
|
|
|
mDevice.wait(Until.findObject(By.desc(FLOATING_TOOLBAR_TAG)), 500);
|
|
|
|
|
mDevice.wait(Until.findObject(TOOLBAR_CONTAINER_SELECTOR), 500);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void assertFloatingToolbarIsDisplayed() {
|
|
|
|
|
waitForFloatingToolbarPopup();
|
|
|
|
|
assertThat(mDevice.hasObject(By.desc(FLOATING_TOOLBAR_TAG))).isTrue();
|
|
|
|
|
assertThat(mDevice.hasObject(TOOLBAR_CONTAINER_SELECTOR)).isTrue();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void assertFloatingToolbarContainsItem(String itemLabel) {
|
|
|
|
|
waitForFloatingToolbarPopup();
|
|
|
|
|
assertWithMessage("Expected to find item labelled [" + itemLabel + "]")
|
|
|
|
|
.that(mDevice.hasObject(
|
|
|
|
|
By.desc(FLOATING_TOOLBAR_TAG).hasDescendant(By.text(itemLabel))))
|
|
|
|
|
TOOLBAR_CONTAINER_SELECTOR.hasDescendant(By.text(itemLabel))))
|
|
|
|
|
.isTrue();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@@ -59,14 +60,14 @@ final class FloatingToolbarUtils {
|
|
|
|
|
waitForFloatingToolbarPopup();
|
|
|
|
|
assertWithMessage("Expected to not find item labelled [" + itemLabel + "]")
|
|
|
|
|
.that(mDevice.hasObject(
|
|
|
|
|
By.desc(FLOATING_TOOLBAR_TAG).hasDescendant(By.text(itemLabel))))
|
|
|
|
|
TOOLBAR_CONTAINER_SELECTOR.hasDescendant(By.text(itemLabel))))
|
|
|
|
|
.isFalse();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void assertFloatingToolbarContainsItemAtIndex(String itemLabel, int index) {
|
|
|
|
|
waitForFloatingToolbarPopup();
|
|
|
|
|
assertWithMessage("Expected to find item labelled [" + itemLabel + "] at index " + index)
|
|
|
|
|
.that(mDevice.findObject(By.desc(FLOATING_TOOLBAR_TAG))
|
|
|
|
|
.that(mDevice.findObject(TOOLBAR_CONTAINER_SELECTOR)
|
|
|
|
|
.findObjects(By.clickable(true))
|
|
|
|
|
.get(index)
|
|
|
|
|
.getChildren()
|
|
|
|
|
@@ -77,7 +78,7 @@ final class FloatingToolbarUtils {
|
|
|
|
|
|
|
|
|
|
void clickFloatingToolbarItem(String label) {
|
|
|
|
|
waitForFloatingToolbarPopup();
|
|
|
|
|
mDevice.findObject(By.desc(FLOATING_TOOLBAR_TAG))
|
|
|
|
|
mDevice.findObject(TOOLBAR_CONTAINER_SELECTOR)
|
|
|
|
|
.findObject(By.text(label))
|
|
|
|
|
.click();
|
|
|
|
|
}
|
|
|
|
|
@@ -85,13 +86,13 @@ final class FloatingToolbarUtils {
|
|
|
|
|
void clickFloatingToolbarOverflowItem(String label) {
|
|
|
|
|
// TODO: There might be a benefit to combining this with "clickFloatingToolbarItem" method.
|
|
|
|
|
waitForFloatingToolbarPopup();
|
|
|
|
|
mDevice.findObject(By.desc(FLOATING_TOOLBAR_TAG))
|
|
|
|
|
mDevice.findObject(TOOLBAR_CONTAINER_SELECTOR)
|
|
|
|
|
.findObject(By.desc(str(R.string.floating_toolbar_open_overflow_description)))
|
|
|
|
|
.click();
|
|
|
|
|
mDevice.wait(
|
|
|
|
|
Until.findObject(By.desc(FLOATING_TOOLBAR_TAG).hasDescendant(By.text(label))),
|
|
|
|
|
Until.findObject(TOOLBAR_CONTAINER_SELECTOR.hasDescendant(By.text(label))),
|
|
|
|
|
1000);
|
|
|
|
|
mDevice.findObject(By.desc(FLOATING_TOOLBAR_TAG))
|
|
|
|
|
mDevice.findObject(TOOLBAR_CONTAINER_SELECTOR)
|
|
|
|
|
.findObject(By.text(label))
|
|
|
|
|
.click();
|
|
|
|
|
}
|
|
|
|
|
|