Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1757)

Unified Diff: chrome/android/testshell/javatests/src/org/chromium/chrome/testshell/ChromiumTestShellUrlTest.java

Issue 11823063: Add test to ensure Chrome welcome page loads on Android. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Addressed comments Created 7 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/android/testshell/javatests/src/org/chromium/chrome/testshell/ChromiumTestShellUrlTest.java
diff --git a/chrome/android/testshell/javatests/src/org/chromium/chrome/testshell/ChromiumTestShellUrlTest.java b/chrome/android/testshell/javatests/src/org/chromium/chrome/testshell/ChromiumTestShellUrlTest.java
index 2a61f6b8972f91c6d5f6990f6ba2b39c777312dc..937b0f2450371d5a7908bb12479863068e53c291 100644
--- a/chrome/android/testshell/javatests/src/org/chromium/chrome/testshell/ChromiumTestShellUrlTest.java
+++ b/chrome/android/testshell/javatests/src/org/chromium/chrome/testshell/ChromiumTestShellUrlTest.java
@@ -6,16 +6,22 @@ package org.chromium.chrome.testshell;
import android.test.suitebuilder.annotation.SmallTest;
+import org.chromium.base.ThreadUtils;
import org.chromium.base.test.util.Feature;
+import org.chromium.content.browser.ContentView;
+import org.chromium.content.browser.ContentViewCore;
import org.chromium.content.browser.ContentViewRenderView;
+import java.util.concurrent.atomic.AtomicBoolean;
+import java.util.concurrent.atomic.AtomicReference;
+
public class ChromiumTestShellUrlTest extends ChromiumTestShellTestBase {
// URL used for base tests.
private static final String URL = "data:text";
@SmallTest
@Feature({"Main"})
- public void testBaseStartup() throws Exception {
+ public void testBaseStartup() throws InterruptedException {
ChromiumTestShellActivity activity = launchChromiumTestShellWithUrl(URL);
waitForActiveShellToBeDoneLoading();
@@ -23,13 +29,64 @@ public class ChromiumTestShellUrlTest extends ChromiumTestShellTestBase {
assertNotNull(activity);
}
+ @SmallTest
+ @Feature({"Main"})
+ public void testChromeWelcomePageLoads() throws InterruptedException {
+ String welcomeUrl = "chrome://welcome/";
+ final ChromiumTestShellActivity activity = launchChromiumTestShellWithUrl(welcomeUrl);
+ waitForActiveShellToBeDoneLoading();
+
+ // Make sure the activity was created as expected.
+ assertNotNull(activity);
+
+ // Ensure we have a ContentView and ContentViewCore.
+ final AtomicReference<ContentView> contentView = new AtomicReference<ContentView>();
+ final AtomicReference<ContentViewCore> contentViewCore =
+ new AtomicReference<ContentViewCore>();
+ ThreadUtils.runOnUiThreadBlocking(new Runnable() {
+ @Override
+ public void run() {
+ ContentView activeContentView = activity.getActiveContentView();
+ contentView.set(activeContentView);
+ if (activeContentView != null) {
+ contentViewCore.set(activeContentView.getContentViewCore());
+ }
+ }
+ });
+ assertNotNull(contentView.get());
+ assertNotNull(contentViewCore.get());
+
+ // Ensure the correct page has been loaded, ie. not interstitial, and title/url should
+ // be sane. Note, a typical correct title is: "Welcome to Chromium", whereas a wrong one
+ // would be on the form "chrome://welcome/ is not available".
+ final AtomicBoolean isShowingInterstitialPage = new AtomicBoolean();
+ final AtomicReference<String> url = new AtomicReference<String>();
+ final AtomicReference<String> title = new AtomicReference<String>();
+ ThreadUtils.runOnUiThreadBlocking(new Runnable() {
+ @Override
+ public void run() {
+ isShowingInterstitialPage.set(contentViewCore.get().isShowingInterstitialPage());
+ url.set(contentViewCore.get().getUrl());
+ title.set(contentViewCore.get().getTitle());
+ }
+ });
+ assertFalse("Showed interstitial page instead of welcome page",
+ isShowingInterstitialPage.get());
+ assertNotNull("URL was null", url.get());
+ assertTrue("URL did not contain: " + welcomeUrl + ". Was: " + url.get(),
+ url.get().contains(welcomeUrl));
+ assertNotNull("Title was null", title.get());
+ assertFalse("Title should not contain: " + welcomeUrl + ". Was: " + title.get(),
+ title.get().toLowerCase().contains(welcomeUrl));
+ }
+
/**
* Tests that creating an extra ContentViewRenderView does not cause an assert because we would
* initialize the compositor twice http://crbug.com/162312
*/
@SmallTest
@Feature({"Main"})
- public void testCompositorInit() throws Exception {
+ public void testCompositorInit() throws InterruptedException {
// Start the ChromiumTestShell, this loads the native library and create an instance of
// ContentViewRenderView.
final ChromiumTestShellActivity activity = launchChromiumTestShellWithUrl(URL);
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698