Index: chrome/android/javatests/src/org/chromium/chrome/browser/widget/ToolbarProgressBarTest.java |
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/widget/ToolbarProgressBarTest.java b/chrome/android/javatests/src/org/chromium/chrome/browser/widget/ToolbarProgressBarTest.java |
index 669124f913a858b43f727352ed8d741dbe746322..a765a50d7b04683dbff0f5c9c11c34231152feaa 100644 |
--- a/chrome/android/javatests/src/org/chromium/chrome/browser/widget/ToolbarProgressBarTest.java |
+++ b/chrome/android/javatests/src/org/chromium/chrome/browser/widget/ToolbarProgressBarTest.java |
@@ -7,6 +7,7 @@ package org.chromium.chrome.browser.widget; |
import static org.chromium.base.test.util.Restriction.RESTRICTION_TYPE_PHONE; |
import android.test.suitebuilder.annotation.MediumTest; |
+import android.view.View; |
import org.chromium.base.ThreadUtils; |
import org.chromium.base.test.util.Feature; |
@@ -35,7 +36,7 @@ public class ToolbarProgressBarTest extends ChromeActivityTestCaseBase<ChromeAct |
/** |
* Test that calling progressBar.setProgress(# > 0) followed by progressBar.setProgress(0) |
- * results in a hidden progress bar (the secondary progress needs to be 0). |
+ * results in a hidden progress bar. |
* @throws InterruptedException |
*/ |
@Feature({"Android-Toolbar"}) |
@@ -59,33 +60,63 @@ public class ToolbarProgressBarTest extends ChromeActivityTestCaseBase<ChromeAct |
} |
}); |
+ // Confirm that the progress bar is hidden. |
+ CriteriaHelper.pollForUIThreadCriteria(new Criteria() { |
+ @Override |
+ public boolean isSatisfied() { |
+ if (progressBar.get().isAnimatingForShowOrHide()) return false; |
+ |
+ assertEquals(0.0f, progressBar.get().getAlpha()); |
+ assertNotSame(View.VISIBLE, progressBar.get().getVisibility()); |
+ return true; |
+ } |
+ }, |
+ CriteriaHelper.DEFAULT_MAX_TIME_TO_POLL + ToolbarProgressBar.HIDING_DURATION_MS, |
+ CriteriaHelper.DEFAULT_POLLING_INTERVAL); |
+ |
+ // Progress |
ThreadUtils.runOnUiThread(new Runnable() { |
@Override |
public void run() { |
- assertEquals("Progress bar should be hidden to start.", 0, |
- progressBar.get().getProgress()); |
- progressBar.get().setProgress(10); |
- assertTrue("Progress bar did not start animating", |
- progressBar.get().isAnimatingForShowOrHide()); |
- progressBar.get().setProgress(0); |
+ progressBar.get().start(); |
+ progressBar.get().setProgress(0.5f); |
} |
}); |
- // Wait for the progress bar to finish any and all animations. |
+ // Confirm that the progress bar is fully visible. |
CriteriaHelper.pollForUIThreadCriteria(new Criteria() { |
@Override |
public boolean isSatisfied() { |
- return !progressBar.get().isAnimatingForShowOrHide(); |
+ if (progressBar.get().isAnimatingForShowOrHide()) return false; |
+ |
+ assertEquals(1.0f, progressBar.get().getAlpha()); |
+ assertEquals(View.VISIBLE, progressBar.get().getVisibility()); |
+ return true; |
} |
- }); |
+ }, |
+ CriteriaHelper.DEFAULT_MAX_TIME_TO_POLL + ToolbarProgressBar.SHOWING_DURATION_MS, |
+ CriteriaHelper.DEFAULT_POLLING_INTERVAL); |
+ // Clear progress |
ThreadUtils.runOnUiThread(new Runnable() { |
@Override |
public void run() { |
- // The secondary progress should be gone. |
- assertEquals("Progress bar background still visible.", 0, |
- progressBar.get().getSecondaryProgress()); |
+ progressBar.get().finish(); |
} |
}); |
+ |
+ // Confirm that the progress bar is hidden. |
+ CriteriaHelper.pollForUIThreadCriteria(new Criteria() { |
+ @Override |
+ public boolean isSatisfied() { |
+ if (progressBar.get().isAnimatingForShowOrHide()) return false; |
+ |
+ assertEquals(0.0f, progressBar.get().getAlpha()); |
+ assertNotSame(View.VISIBLE, progressBar.get().getVisibility()); |
+ return true; |
+ } |
+ }, |
+ CriteriaHelper.DEFAULT_MAX_TIME_TO_POLL + ToolbarProgressBar.HIDING_DURATION_MS, |
+ CriteriaHelper.DEFAULT_POLLING_INTERVAL); |
} |
} |