Index: chrome/android/javatests/src/org/chromium/chrome/browser/webapps/WebappSplashScreenThemeColorTest.java |
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/webapps/WebappSplashScreenThemeColorTest.java b/chrome/android/javatests/src/org/chromium/chrome/browser/webapps/WebappSplashScreenThemeColorTest.java |
index 120785d8ea6592c8464b8f2f7044e9848a3951dd..1516b94446cbbc0cd0ebdd2225ed44a3ac36505a 100644 |
--- a/chrome/android/javatests/src/org/chromium/chrome/browser/webapps/WebappSplashScreenThemeColorTest.java |
+++ b/chrome/android/javatests/src/org/chromium/chrome/browser/webapps/WebappSplashScreenThemeColorTest.java |
@@ -10,9 +10,14 @@ import android.graphics.Color; |
import android.os.Build; |
import android.test.suitebuilder.annotation.SmallTest; |
+import org.chromium.base.ObserverList.RewindableIterator; |
+import org.chromium.base.ThreadUtils; |
import org.chromium.base.test.util.Feature; |
import org.chromium.chrome.browser.ShortcutHelper; |
+import org.chromium.chrome.browser.tab.TabObserver; |
import org.chromium.chrome.browser.util.ColorUtils; |
+import org.chromium.content.browser.test.util.Criteria; |
+import org.chromium.content.browser.test.util.CriteriaHelper; |
/** |
* Tests for splashscreen. |
@@ -22,6 +27,7 @@ public class WebappSplashScreenThemeColorTest extends WebappActivityTestBase { |
@Override |
protected Intent createIntent() { |
Intent intent = super.createIntent(); |
+ intent.putExtra(ShortcutHelper.EXTRA_URL, "http://localhost"); |
intent.putExtra(ShortcutHelper.EXTRA_THEME_COLOR, (long) Color.MAGENTA); |
return intent; |
} |
@@ -29,10 +35,38 @@ public class WebappSplashScreenThemeColorTest extends WebappActivityTestBase { |
@SmallTest |
@Feature({"Webapps"}) |
@TargetApi(Build.VERSION_CODES.LOLLIPOP) |
- public void testSplashscreenThemeColorWhenSpecified() { |
+ public void testThemeColorWhenSpecified() { |
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.LOLLIPOP) return; |
assertEquals(ColorUtils.getDarkenedColorForStatusBar(Color.MAGENTA), |
getActivity().getWindow().getStatusBarColor()); |
} |
+ |
+ @SmallTest |
+ @Feature({"Webapps"}) |
+ @TargetApi(Build.VERSION_CODES.LOLLIPOP) |
+ public void testThemeColorNotUsedIfPagesHasOne() throws InterruptedException { |
+ if (Build.VERSION.SDK_INT < Build.VERSION_CODES.LOLLIPOP) return; |
+ |
+ ThreadUtils.runOnUiThread(new Runnable() { |
+ @Override |
+ public void run() { |
+ RewindableIterator<TabObserver> observers = |
+ getActivity().getActivityTab().getTabObservers(); |
+ while (observers.hasNext()) { |
+ observers.next().onDidChangeThemeColor( |
+ getActivity().getActivityTab(), Color.GREEN); |
+ } |
+ } |
+ }); |
+ |
+ // Waits for theme-color to change so the test doesn't rely on system timing. |
+ assertTrue(CriteriaHelper.pollForCriteria(new Criteria() { |
+ @Override |
+ public boolean isSatisfied() { |
+ return getActivity().getWindow().getStatusBarColor() |
+ == ColorUtils.getDarkenedColorForStatusBar(Color.GREEN); |
+ } |
+ })); |
+ } |
} |