Merge "Fix bookmarkWebSiteInBrowser test."
diff --git a/system_image_uitests/app/src/androidTest/java/com/android/devtools/systemimage/uitest/smoke/AppTest.java b/system_image_uitests/app/src/androidTest/java/com/android/devtools/systemimage/uitest/smoke/AppTest.java
index 386a393..b432050 100644
--- a/system_image_uitests/app/src/androidTest/java/com/android/devtools/systemimage/uitest/smoke/AppTest.java
+++ b/system_image_uitests/app/src/androidTest/java/com/android/devtools/systemimage/uitest/smoke/AppTest.java
@@ -49,7 +49,7 @@
     public final SystemImageTestFramework testFramework = new SystemImageTestFramework();
 
     @Rule
-    public Timeout globalTimeout = Timeout.seconds(90);
+    public Timeout globalTimeout = Timeout.seconds(120);
 
     /**
      * Verifies an app runs on the emulator.
@@ -116,32 +116,44 @@
             AppLauncher.launch(instrumentation, "Chrome");
 
             // If this is the first launch, dismiss the "Welcome to Chrome" screen.
-            UiObject acceptButton = device.findObject(
-                    new UiSelector().resourceId(Res.CHROME_TERMS_ACCEPT_BUTTON_RES));
-            if (device.hasObject(By.res(Res.CHROME_WELCOME_TITLE_RES)) && acceptButton.exists()) {
-                acceptButton.clickAndWaitForNewWindow();
+            UiObject welcomeScreen = device.findObject(
+                    new UiSelector().text("Welcome to Chrome"));
+            if (welcomeScreen.waitForExists(TimeUnit.SECONDS.toMillis(3))) {
+                device.findObject(
+                        new UiSelector().resourceId(Res.CHROME_TERMS_ACCEPT_BUTTON_RES))
+                            .clickAndWaitForNewWindow();
             }
 
             // Dismiss the "Sign in to Chrome" screen if it's there.
-            if (device.hasObject(By.res(Res.CHROME_SIGN_IN_TITLE_RES))) {
-                device.findObject(new UiSelector().resourceId(
-                        Res.CHROME_NEGATIVE_BUTTON_RES)).clickAndWaitForNewWindow();
+            UiObject signInScreen = device.findObject(
+                    new UiSelector().resourceId(Res.CHROME_SIGN_IN_TITLE_RES));
+            if (signInScreen.waitForExists(TimeUnit.SECONDS.toMillis(3))) {
+                device.findObject(
+                        new UiSelector().resourceId(Res.CHROME_NEGATIVE_BUTTON_RES))
+                            .clickAndWaitForNewWindow();
             }
 
             // Dismiss the "Browse more for less" screen if it's there.
             UiObject noThanksButton = device.findObject(
                     new UiSelector().resourceId(Res.CHROME_NO_THANKS_BUTTON));
-            if (noThanksButton.exists()) {
+            if (noThanksButton.waitForExists(TimeUnit.SECONDS.toMillis(3))) {
                 noThanksButton.clickAndWaitForNewWindow();
             }
 
             // Click the search box if it's there.
             UiObject searchBox = device.findObject(new UiSelector().resourceId(
                     Res.CHROME_SEARCH_BOX_RES));
-            if (searchBox.exists()) {
+            if (searchBox.waitForExists(TimeUnit.SECONDS.toMillis(3))) {
                 searchBox.clickAndWaitForNewWindow();
             }
 
+            // Click the search box if it's there.
+            UiObject syncBookmarks = device.findObject(
+                    new UiSelector().text("Sync your bookmarks"));
+            if (syncBookmarks.waitForExists(TimeUnit.SECONDS.toMillis(3))) {
+                device.findObject(new UiSelector().text("NO THANKS")).clickAndWaitForNewWindow();
+            }
+
             UiObject textField = device.findObject(
                     new UiSelector().resourceId(Res.CHROME_URL_BAR_RES));
 
@@ -165,7 +177,7 @@
                     device.findObject(new UiSelector().text("Bookmarks")).exists() &&
                             device.findObject(new UiSelector().textContains(
                                     "httpbin").resourceId(
-                                    Res.CHROME_BOOKMARKS_LABEL_RES)).exists());
+                                    Res.CHROME_TITLE_RES)).exists());
             device.findObject(new UiSelector().resourceId(
                     Res.CHROME_CLOSE_MENU_BUTTON_RES)).clickAndWaitForNewWindow();
             // Delete the bookmark.
diff --git a/system_image_uitests/app/src/main/java/com/android/devtools/systemimage/uitest/common/Res.java b/system_image_uitests/app/src/main/java/com/android/devtools/systemimage/uitest/common/Res.java
index 872a934..adc13b5 100644
--- a/system_image_uitests/app/src/main/java/com/android/devtools/systemimage/uitest/common/Res.java
+++ b/system_image_uitests/app/src/main/java/com/android/devtools/systemimage/uitest/common/Res.java
@@ -28,14 +28,13 @@
     public static final String BROWSER_SEARCH_ICON_RES = "com.android.browser:/id/progress";
     public static final String BROWSER_URL_TEXT_FIELD_RES = "com.android.browser:id/url";
 
-    public static final String CHROME_WELCOME_TITLE_RES = "com.android.chrome:id/title";
     public static final String CHROME_TERMS_ACCEPT_BUTTON_RES = "com.android.chrome:id/terms_accept";
     public static final String CHROME_SIGN_IN_TITLE_RES = "com.android.chrome:id/signin_title";
     public static final String CHROME_NEGATIVE_BUTTON_RES = "com.android.chrome:id/negative_button";
     public static final String CHROME_SEARCH_BOX_RES = "com.android.chrome:id/search_box_text";
     public static final String CHROME_URL_BAR_RES = "com.android.chrome:id/url_bar";
     public static final String CHROME_CLOSE_MENU_BUTTON_RES = "com.android.chrome:id/close_menu_id";
-    public static final String CHROME_BOOKMARKS_LABEL_RES = "com.android.chrome:id/title";
+    public static final String CHROME_TITLE_RES = "com.android.chrome:id/title";
     public static final String CHROME_NO_THANKS_BUTTON = "com.android.chrome:id/no_thanks_button";
     public static final String CHROME_PROGRESS_BAR_RES = "com.android.chrome:id/progress";