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

Unified Diff: chrome/android/javatests/src/org/chromium/chrome/browser/ChromeActivityTest.java

Issue 1141283003: Upstream oodles of Chrome for Android code into Chromium. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: final patch? Created 5 years, 7 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
Index: chrome/android/javatests/src/org/chromium/chrome/browser/ChromeActivityTest.java
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/ChromeActivityTest.java b/chrome/android/javatests/src/org/chromium/chrome/browser/ChromeActivityTest.java
new file mode 100644
index 0000000000000000000000000000000000000000..186af7ecc6c753cc529400126c5bc755e4de59a5
--- /dev/null
+++ b/chrome/android/javatests/src/org/chromium/chrome/browser/ChromeActivityTest.java
@@ -0,0 +1,91 @@
+// Copyright 2015 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+package org.chromium.chrome.browser;
+
+import android.test.suitebuilder.annotation.MediumTest;
+
+import org.chromium.base.ThreadUtils;
+import org.chromium.chrome.browser.tabmodel.ChromeTabCreator;
+import org.chromium.chrome.browser.tabmodel.TabModel.TabLaunchType;
+import org.chromium.chrome.test.ChromeTabbedActivityTestBase;
+import org.chromium.chrome.test.util.TestHttpServerClient;
+import org.chromium.content_public.browser.LoadUrlParams;
+
+/**
+ * Instrumentation tests for ChromeActivity.
+ */
+public class ChromeActivityTest extends ChromeTabbedActivityTestBase {
+ private static final String FILE_PATH = "chrome/test/data/android/test.html";
+
+ /**
+ * Verifies that the front tab receives the hide() call when the activity is stopped (hidden);
+ * and that it receives the show() call when the activity is started again. This is a regression
+ * test for http://crbug.com/319804 .
+ */
+ @MediumTest
+ public void testTabVisibility() {
+ // Create two tabs - tab[0] in the foreground and tab[1] in the background.
+ final Tab[] tabs = new Tab[2];
+ ThreadUtils.runOnUiThreadBlocking(new Runnable() {
+ @Override
+ public void run() {
+ // Foreground tab.
+ ChromeTabCreator tabCreator = getActivity().getCurrentTabCreator();
+ tabs[0] = tabCreator.createNewTab(
+ new LoadUrlParams(TestHttpServerClient.getUrl(FILE_PATH)),
+ TabLaunchType.FROM_KEYBOARD, null);
+ // Background tab.
+ tabs[1] = tabCreator.createNewTab(
+ new LoadUrlParams(TestHttpServerClient.getUrl(FILE_PATH)),
+ TabLaunchType.FROM_LONGPRESS_BACKGROUND, null);
+ }
+ });
+
+ // Verify that the front tab is in the 'visible' state.
+ assertFalse(tabs[0].isHidden());
+ assertTrue(tabs[1].isHidden());
+
+ // Fake sending the activity to background.
+ ThreadUtils.runOnUiThreadBlocking(new Runnable() {
+ @Override
+ public void run() {
+ getActivity().onPause();
+ }
+ });
+ ThreadUtils.runOnUiThreadBlocking(new Runnable() {
+ @Override
+ public void run() {
+ getActivity().onStop();
+ }
+ });
+ // TODO(jdduke): Ensure the Tab's WebContents is hidden despite the
+ // Tab itself remaining visible. This prevents visual artifacts during
+ // activity transitions.
+ assertFalse(tabs[0].isHidden());
+ assertTrue(tabs[1].isHidden());
+
+ // Fake bringing the activity back to foreground.
+ ThreadUtils.runOnUiThreadBlocking(new Runnable() {
+ @Override
+ public void run() {
+ getActivity().onStart();
+ }
+ });
+ ThreadUtils.runOnUiThreadBlocking(new Runnable() {
+ @Override
+ public void run() {
+ getActivity().onResume();
+ }
+ });
+ // Verify that the front tab is in the 'visible' state.
+ assertFalse(tabs[0].isHidden());
+ assertTrue(tabs[1].isHidden());
+ }
+
+ @Override
+ public void startMainActivity() throws InterruptedException {
+ startMainActivityOnBlankPage();
+ }
+}

Powered by Google App Engine
This is Rietveld 408576698