Index: chrome/android/javatests/src/org/chromium/chrome/browser/widget/ToolbarProgressBarTest.java |
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/widget/ClipDrawableProgressBarTest.java b/chrome/android/javatests/src/org/chromium/chrome/browser/widget/ToolbarProgressBarTest.java |
similarity index 54% |
rename from chrome/android/javatests/src/org/chromium/chrome/browser/widget/ClipDrawableProgressBarTest.java |
rename to chrome/android/javatests/src/org/chromium/chrome/browser/widget/ToolbarProgressBarTest.java |
index 4a204de8701bf6c0ddf103312d35024b54df8c92..7878259524915ecc66b021fff315a5c251077a7a 100644 |
--- a/chrome/android/javatests/src/org/chromium/chrome/browser/widget/ClipDrawableProgressBarTest.java |
+++ b/chrome/android/javatests/src/org/chromium/chrome/browser/widget/ToolbarProgressBarTest.java |
@@ -4,10 +4,13 @@ |
package org.chromium.chrome.browser.widget; |
+import static org.chromium.base.test.util.Restriction.RESTRICTION_TYPE_PHONE; |
+ |
import android.test.suitebuilder.annotation.MediumTest; |
import org.chromium.base.ThreadUtils; |
import org.chromium.base.test.util.Feature; |
+import org.chromium.base.test.util.Restriction; |
import org.chromium.chrome.shell.ChromeShellTestBase; |
import org.chromium.chrome.shell.R; |
import org.chromium.content.browser.test.util.Criteria; |
@@ -18,7 +21,7 @@ import java.util.concurrent.atomic.AtomicReference; |
/** |
* Tests related to the ToolbarProgressBar. |
*/ |
-public class ClipDrawableProgressBarTest extends ChromeShellTestBase { |
+public class ToolbarProgressBarTest extends ChromeShellTestBase { |
/** |
* Test that calling progressBar.setProgress(# > 0) followed by progressBar.setProgress(0) |
* results in a hidden progress bar (the secondary progress needs to be 0). |
@@ -26,33 +29,54 @@ public class ClipDrawableProgressBarTest extends ChromeShellTestBase { |
*/ |
@Feature({"Android-Toolbar"}) |
@MediumTest |
+ @Restriction(RESTRICTION_TYPE_PHONE) |
public void testProgressBarDisappearsAfterFastShowHide() throws InterruptedException { |
launchChromeShellWithUrl("about:blank"); |
waitForActiveShellToBeDoneLoading(); |
- final AtomicReference<ClipDrawableProgressBar> progressBar = |
- new AtomicReference<ClipDrawableProgressBar>(); |
+ final AtomicReference<ToolbarProgressBar> progressBar = |
+ new AtomicReference<ToolbarProgressBar>(); |
ThreadUtils.runOnUiThread(new Runnable() { |
@Override |
public void run() { |
- progressBar.set( |
- (ClipDrawableProgressBar) getActivity().findViewById(R.id.progress)); |
+ progressBar.set((ToolbarProgressBar) getActivity().findViewById(R.id.progress)); |
} |
}); |
- // Make sure that there is some progress. |
+ // Wait for the progress bar to be reset. |
CriteriaHelper.pollForUIThreadCriteria(new Criteria() { |
@Override |
public boolean isSatisfied() { |
- return progressBar.get().getProgress() > 0; |
+ return progressBar.get().getProgress() == 0; |
} |
}); |
- // Wait for the progress bar to be reset. |
+ 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); |
+ } |
+ }); |
+ |
+ // Wait for the progress bar to finish any and all animations. |
CriteriaHelper.pollForUIThreadCriteria(new Criteria() { |
@Override |
public boolean isSatisfied() { |
- return progressBar.get().getProgress() == 0; |
+ return !progressBar.get().isAnimatingForShowOrHide(); |
+ } |
+ }); |
+ |
+ ThreadUtils.runOnUiThread(new Runnable() { |
+ @Override |
+ public void run() { |
+ // The secondary progress should be gone. |
+ assertEquals("Progress bar background still visible.", 0, |
+ progressBar.get().getSecondaryProgress()); |
} |
}); |
} |