| Index: chrome/android/javatests/src/org/chromium/chrome/browser/snackbar/SnackbarTest.java
|
| diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/snackbar/SnackbarTest.java b/chrome/android/javatests/src/org/chromium/chrome/browser/snackbar/SnackbarTest.java
|
| index 414eee82b1236586c37294d0dc1d2c94497a084a..c5032e7d17086654409ee8a335202bc5d9543451 100644
|
| --- a/chrome/android/javatests/src/org/chromium/chrome/browser/snackbar/SnackbarTest.java
|
| +++ b/chrome/android/javatests/src/org/chromium/chrome/browser/snackbar/SnackbarTest.java
|
| @@ -18,8 +18,8 @@ import org.chromium.content.browser.test.util.CriteriaHelper;
|
| * Tests for {@link SnackbarManager}.
|
| */
|
| public class SnackbarTest extends ChromeTabbedActivityTestBase {
|
| - SnackbarManager mManager;
|
| - SnackbarController mDefaultController = new SnackbarController() {
|
| + private SnackbarManager mManager;
|
| + private SnackbarController mDefaultController = new SnackbarController() {
|
| @Override
|
| public void onDismissNoAction(Object actionData) {
|
| }
|
| @@ -29,6 +29,18 @@ public class SnackbarTest extends ChromeTabbedActivityTestBase {
|
| }
|
| };
|
|
|
| + private SnackbarController mDismissController = new SnackbarController() {
|
| + @Override
|
| + public void onDismissNoAction(Object actionData) {
|
| + mDismissed = true;
|
| + }
|
| +
|
| + @Override
|
| + public void onAction(Object actionData) { }
|
| + };
|
| +
|
| + private boolean mDismissed;
|
| +
|
| @Override
|
| public void startMainActivity() throws InterruptedException {
|
| SnackbarManager.setDurationForTesting(1000);
|
| @@ -118,4 +130,37 @@ public class SnackbarTest extends ChromeTabbedActivityTestBase {
|
| }
|
| });
|
| }
|
| +
|
| + @SmallTest
|
| + public void testDismissSnackbar() throws InterruptedException {
|
| + final Snackbar snackbar = Snackbar.make("stack", mDismissController,
|
| + Snackbar.TYPE_ACTION, Snackbar.UMA_TEST_SNACKBAR);
|
| + mDismissed = false;
|
| + ThreadUtils.runOnUiThread(new Runnable() {
|
| + @Override
|
| + public void run() {
|
| + mManager.showSnackbar(snackbar);
|
| + }
|
| + });
|
| + CriteriaHelper.pollUiThread(
|
| + new Criteria("Snackbar on queue was not cleared by snackbar stack.") {
|
| + @Override
|
| + public boolean isSatisfied() {
|
| + return mManager.isShowing()
|
| + && mManager.getCurrentSnackbarForTesting() == snackbar;
|
| + }
|
| + });
|
| + ThreadUtils.runOnUiThread(new Runnable() {
|
| + @Override
|
| + public void run() {
|
| + mManager.dismissSnackbars(mDismissController);
|
| + }
|
| + });
|
| + CriteriaHelper.pollUiThread(new Criteria("Snackbar did not time out") {
|
| + @Override
|
| + public boolean isSatisfied() {
|
| + return !mManager.isShowing() && mDismissed;
|
| + }
|
| + });
|
| + }
|
| }
|
|
|