Commit e0b81e3b authored by Ted Choc's avatar Ted Choc Committed by Commit Bot

Migrate FindTest to Batched test execution mode.

After (ms) - 14238
Before (ms) - 59160

BUG=989569

Change-Id: Idc6372fcab314f13cbfd63b471ac916b932a16d7
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2504634
Commit-Queue: Ted Choc <tedchoc@chromium.org>
Reviewed-by: default avatarBrandon Wylie <wylieb@chromium.org>
Reviewed-by: default avatarMichael Thiessen <mthiesse@chromium.org>
Cr-Commit-Position: refs/heads/master@{#821795}
parent 34fdcd5d
...@@ -2,12 +2,6 @@ ...@@ -2,12 +2,6 @@
// Use of this source code is governed by a BSD-style license that can be // Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file. // found in the LICENSE file.
/**
* This is a simple framework for a test of an Application. See
* {@link android.test.ApplicationTestCase ApplicationTestCase} for more
* information on how to write and extend Application tests.
*/
package org.chromium.chrome.browser.findinpage; package org.chromium.chrome.browser.findinpage;
import android.content.ClipData; import android.content.ClipData;
...@@ -29,10 +23,12 @@ import org.hamcrest.Matchers; ...@@ -29,10 +23,12 @@ import org.hamcrest.Matchers;
import org.junit.After; import org.junit.After;
import org.junit.Assert; import org.junit.Assert;
import org.junit.Before; import org.junit.Before;
import org.junit.ClassRule;
import org.junit.Rule; import org.junit.Rule;
import org.junit.Test; import org.junit.Test;
import org.junit.runner.RunWith; import org.junit.runner.RunWith;
import org.chromium.base.test.util.Batch;
import org.chromium.base.test.util.CloseableOnMainThread; import org.chromium.base.test.util.CloseableOnMainThread;
import org.chromium.base.test.util.CommandLineFlags; import org.chromium.base.test.util.CommandLineFlags;
import org.chromium.base.test.util.Feature; import org.chromium.base.test.util.Feature;
...@@ -41,6 +37,7 @@ import org.chromium.chrome.browser.flags.ChromeSwitches; ...@@ -41,6 +37,7 @@ import org.chromium.chrome.browser.flags.ChromeSwitches;
import org.chromium.chrome.browser.tab.Tab; import org.chromium.chrome.browser.tab.Tab;
import org.chromium.chrome.test.ChromeJUnit4ClassRunner; import org.chromium.chrome.test.ChromeJUnit4ClassRunner;
import org.chromium.chrome.test.ChromeTabbedActivityTestRule; import org.chromium.chrome.test.ChromeTabbedActivityTestRule;
import org.chromium.chrome.test.batch.BlankCTATabInitialStateRule;
import org.chromium.chrome.test.util.FullscreenTestUtils; import org.chromium.chrome.test.util.FullscreenTestUtils;
import org.chromium.chrome.test.util.MenuUtils; import org.chromium.chrome.test.util.MenuUtils;
import org.chromium.content_public.browser.test.util.Criteria; import org.chromium.content_public.browser.test.util.Criteria;
...@@ -49,30 +46,36 @@ import org.chromium.content_public.browser.test.util.KeyUtils; ...@@ -49,30 +46,36 @@ import org.chromium.content_public.browser.test.util.KeyUtils;
import org.chromium.content_public.browser.test.util.TestThreadUtils; import org.chromium.content_public.browser.test.util.TestThreadUtils;
import org.chromium.content_public.browser.test.util.TouchCommon; import org.chromium.content_public.browser.test.util.TouchCommon;
import org.chromium.content_public.browser.test.util.UiUtils; import org.chromium.content_public.browser.test.util.UiUtils;
import org.chromium.net.test.EmbeddedTestServer;
/** /**
* Find in page tests. * Find in page tests.
*/ */
@RunWith(ChromeJUnit4ClassRunner.class) @RunWith(ChromeJUnit4ClassRunner.class)
@CommandLineFlags.Add({ChromeSwitches.DISABLE_FIRST_RUN_EXPERIENCE}) @CommandLineFlags.Add({ChromeSwitches.DISABLE_FIRST_RUN_EXPERIENCE})
@Batch(Batch.PER_CLASS)
public class FindTest { public class FindTest {
@Rule @ClassRule
public ChromeTabbedActivityTestRule mActivityTestRule = new ChromeTabbedActivityTestRule(); public static final ChromeTabbedActivityTestRule sActivityTestRule =
new ChromeTabbedActivityTestRule();
private static final String FILEPATH = "/chrome/test/data/android/find/test.html"; private static final String FILEPATH = "/chrome/test/data/android/find/test.html";
private EmbeddedTestServer mTestServer; @Rule
public final BlankCTATabInitialStateRule mInitialStateRule =
new BlankCTATabInitialStateRule(sActivityTestRule, false);
@Before @Before
public void setUp() throws Exception { public void setUp() throws Exception {
mActivityTestRule.startMainActivityOnBlankPage(); sActivityTestRule.waitForActivityNativeInitializationComplete();
mTestServer = EmbeddedTestServer.createAndStartServer(InstrumentationRegistry.getContext());
waitForFindInPageVisibility(false);
} }
@After @After
public void tearDown() { public void tearDown() {
if (mTestServer != null) mTestServer.stopAndDestroyServer(); TestThreadUtils.runOnUiThreadBlocking(() -> {
sActivityTestRule.getActivity().getTabModelSelector().getModel(true).closeAllTabs();
});
} }
/** /**
...@@ -80,7 +83,7 @@ public class FindTest { ...@@ -80,7 +83,7 @@ public class FindTest {
*/ */
private String waitForFindResults(String expectedResult) { private String waitForFindResults(String expectedResult) {
final TextView findResults = final TextView findResults =
(TextView) mActivityTestRule.getActivity().findViewById(R.id.find_status); (TextView) sActivityTestRule.getActivity().findViewById(R.id.find_status);
Assert.assertNotNull(expectedResult); Assert.assertNotNull(expectedResult);
Assert.assertNotNull(findResults); Assert.assertNotNull(findResults);
CriteriaHelper.pollUiThread( CriteriaHelper.pollUiThread(
...@@ -90,11 +93,13 @@ public class FindTest { ...@@ -90,11 +93,13 @@ public class FindTest {
/** /**
* Find in page by invoking the 'find in page' menu item. * Find in page by invoking the 'find in page' menu item.
*
*/ */
private void findInPageFromMenu() { private void findInPageFromMenu() {
CriteriaHelper.pollUiThread(
sActivityTestRule.getActivity().findViewById(R.id.menu_button_wrapper)::isShown);
MenuUtils.invokeCustomMenuActionSync(InstrumentationRegistry.getInstrumentation(), MenuUtils.invokeCustomMenuActionSync(InstrumentationRegistry.getInstrumentation(),
mActivityTestRule.getActivity(), R.id.find_in_page_id); sActivityTestRule.getActivity(), R.id.find_in_page_id);
waitForFindInPageVisibility(true); waitForFindInPageVisibility(true);
} }
...@@ -102,7 +107,7 @@ public class FindTest { ...@@ -102,7 +107,7 @@ public class FindTest {
private void waitForFindInPageVisibility(final boolean visible) { private void waitForFindInPageVisibility(final boolean visible) {
CriteriaHelper.pollUiThread(() -> { CriteriaHelper.pollUiThread(() -> {
FindToolbar findToolbar = FindToolbar findToolbar =
(FindToolbar) mActivityTestRule.getActivity().findViewById(R.id.find_toolbar); (FindToolbar) sActivityTestRule.getActivity().findViewById(R.id.find_toolbar);
if (visible) { if (visible) {
Criteria.checkThat(findToolbar, Matchers.notNullValue()); Criteria.checkThat(findToolbar, Matchers.notNullValue());
Criteria.checkThat(findToolbar.isShown(), Matchers.is(true)); Criteria.checkThat(findToolbar.isShown(), Matchers.is(true));
...@@ -135,23 +140,23 @@ public class FindTest { ...@@ -135,23 +140,23 @@ public class FindTest {
} }
private void loadTestAndVerifyFindInPage(String query, String expectedResult) { private void loadTestAndVerifyFindInPage(String query, String expectedResult) {
mActivityTestRule.loadUrl(mTestServer.getURL(FILEPATH)); sActivityTestRule.loadUrl(sActivityTestRule.getTestServer().getURL(FILEPATH));
String findResults = findStringInPage(query, expectedResult); String findResults = findStringInPage(query, expectedResult);
Assert.assertTrue("Expected: " + expectedResult + " Got: " + findResults Assert.assertTrue("Expected: " + expectedResult + " Got: " + findResults
+ " for: " + mTestServer.getURL(FILEPATH), + " for: " + sActivityTestRule.getTestServer().getURL(FILEPATH),
findResults.contains(expectedResult)); findResults.contains(expectedResult));
} }
private FindToolbar getFindToolbar() { private FindToolbar getFindToolbar() {
final FindToolbar findToolbar = final FindToolbar findToolbar =
(FindToolbar) mActivityTestRule.getActivity().findViewById(R.id.find_toolbar); (FindToolbar) sActivityTestRule.getActivity().findViewById(R.id.find_toolbar);
Assert.assertNotNull("FindToolbar not found", findToolbar); Assert.assertNotNull("FindToolbar not found", findToolbar);
return findToolbar; return findToolbar;
} }
private EditText getFindQueryText() { private EditText getFindQueryText() {
final EditText findQueryText = final EditText findQueryText =
(EditText) mActivityTestRule.getActivity().findViewById(R.id.find_query); (EditText) sActivityTestRule.getActivity().findViewById(R.id.find_query);
Assert.assertNotNull("FindQueryText not found", findQueryText); Assert.assertNotNull("FindQueryText not found", findQueryText);
return findQueryText; return findQueryText;
} }
...@@ -212,11 +217,11 @@ public class FindTest { ...@@ -212,11 +217,11 @@ public class FindTest {
loadTestAndVerifyFindInPage(query, "1/7"); loadTestAndVerifyFindInPage(query, "1/7");
// TODO(jaydeepmehta): Verify number of results and match against boxes drawn. // TODO(jaydeepmehta): Verify number of results and match against boxes drawn.
TouchCommon.singleClickView( TouchCommon.singleClickView(
mActivityTestRule.getActivity().findViewById(R.id.find_next_button)); sActivityTestRule.getActivity().findViewById(R.id.find_next_button));
waitForFindResults("2/7"); waitForFindResults("2/7");
for (int i = 2; i <= 7; i++) { for (int i = 2; i <= 7; i++) {
TouchCommon.singleClickView( TouchCommon.singleClickView(
mActivityTestRule.getActivity().findViewById(R.id.find_next_button)); sActivityTestRule.getActivity().findViewById(R.id.find_next_button));
} }
waitForFindResults("1/7"); waitForFindResults("1/7");
} }
...@@ -232,10 +237,10 @@ public class FindTest { ...@@ -232,10 +237,10 @@ public class FindTest {
loadTestAndVerifyFindInPage(query, "1/7"); loadTestAndVerifyFindInPage(query, "1/7");
// TODO(jaydeepmehta): Verify number of results and match against boxes drawn. // TODO(jaydeepmehta): Verify number of results and match against boxes drawn.
TouchCommon.singleClickView( TouchCommon.singleClickView(
mActivityTestRule.getActivity().findViewById(R.id.find_next_button)); sActivityTestRule.getActivity().findViewById(R.id.find_next_button));
waitForFindResults("2/7"); waitForFindResults("2/7");
TouchCommon.singleClickView( TouchCommon.singleClickView(
mActivityTestRule.getActivity().findViewById(R.id.find_prev_button)); sActivityTestRule.getActivity().findViewById(R.id.find_prev_button));
waitForFindResults("1/7"); waitForFindResults("1/7");
} }
...@@ -248,13 +253,13 @@ public class FindTest { ...@@ -248,13 +253,13 @@ public class FindTest {
public void testFullscreen() { public void testFullscreen() {
loadTestAndVerifyFindInPage("pitts", "1/7"); loadTestAndVerifyFindInPage("pitts", "1/7");
Tab tab = mActivityTestRule.getActivity().getActivityTab(); Tab tab = sActivityTestRule.getActivity().getActivityTab();
FullscreenTestUtils.togglePersistentFullscreenAndAssert( FullscreenTestUtils.togglePersistentFullscreenAndAssert(
tab, true, mActivityTestRule.getActivity()); tab, true, sActivityTestRule.getActivity());
waitForFindInPageVisibility(false); waitForFindInPageVisibility(false);
FullscreenTestUtils.togglePersistentFullscreenAndAssert( FullscreenTestUtils.togglePersistentFullscreenAndAssert(
tab, false, mActivityTestRule.getActivity()); tab, false, sActivityTestRule.getActivity());
waitForFindInPageVisibility(false); waitForFindInPageVisibility(false);
} }
...@@ -262,7 +267,7 @@ public class FindTest { ...@@ -262,7 +267,7 @@ public class FindTest {
@MediumTest @MediumTest
@Feature({"FindInPage"}) @Feature({"FindInPage"})
public void testResultsBarInitiallyVisible() { public void testResultsBarInitiallyVisible() {
mActivityTestRule.loadUrl(mTestServer.getURL(FILEPATH)); sActivityTestRule.loadUrl(sActivityTestRule.getTestServer().getURL(FILEPATH));
findInPageFromMenu(); findInPageFromMenu();
final FindToolbar findToolbar = getFindToolbar(); final FindToolbar findToolbar = getFindToolbar();
final View resultBar = findToolbar.getFindResultBar(); final View resultBar = findToolbar.getFindResultBar();
...@@ -274,7 +279,7 @@ public class FindTest { ...@@ -274,7 +279,7 @@ public class FindTest {
@MediumTest @MediumTest
@Feature({"FindInPage"}) @Feature({"FindInPage"})
public void testResultsBarVisibleAfterTypingText() { public void testResultsBarVisibleAfterTypingText() {
mActivityTestRule.loadUrl(mTestServer.getURL(FILEPATH)); sActivityTestRule.loadUrl(sActivityTestRule.getTestServer().getURL(FILEPATH));
findInPageFromMenu(); findInPageFromMenu();
final FindToolbar findToolbar = getFindToolbar(); final FindToolbar findToolbar = getFindToolbar();
final View resultBar = findToolbar.getFindResultBar(); final View resultBar = findToolbar.getFindResultBar();
...@@ -297,7 +302,7 @@ public class FindTest { ...@@ -297,7 +302,7 @@ public class FindTest {
@MediumTest @MediumTest
@Feature({"FindInPage"}) @Feature({"FindInPage"})
public void testFindDismissOnEmptyString() { public void testFindDismissOnEmptyString() {
mActivityTestRule.loadUrl(mTestServer.getURL(FILEPATH)); sActivityTestRule.loadUrl(sActivityTestRule.getTestServer().getURL(FILEPATH));
findInPageFromMenu(); findInPageFromMenu();
final FindToolbar findToolbar = getFindToolbar(); final FindToolbar findToolbar = getFindToolbar();
...@@ -324,14 +329,14 @@ public class FindTest { ...@@ -324,14 +329,14 @@ public class FindTest {
@Feature({"FindInPage"}) @Feature({"FindInPage"})
public void testFindNextPreviousIncognitoTab() { public void testFindNextPreviousIncognitoTab() {
String query = "pitts"; String query = "pitts";
mActivityTestRule.newIncognitoTabFromMenu(); sActivityTestRule.newIncognitoTabFromMenu();
loadTestAndVerifyFindInPage(query, "1/7"); loadTestAndVerifyFindInPage(query, "1/7");
// TODO(jaydeepmehta): Verify number of results and match against boxes drawn. // TODO(jaydeepmehta): Verify number of results and match against boxes drawn.
TouchCommon.singleClickView( TouchCommon.singleClickView(
mActivityTestRule.getActivity().findViewById(R.id.find_next_button)); sActivityTestRule.getActivity().findViewById(R.id.find_next_button));
waitForFindResults("2/7"); waitForFindResults("2/7");
TouchCommon.singleClickView( TouchCommon.singleClickView(
mActivityTestRule.getActivity().findViewById(R.id.find_prev_button)); sActivityTestRule.getActivity().findViewById(R.id.find_prev_button));
waitForFindResults("1/7"); waitForFindResults("1/7");
} }
...@@ -342,10 +347,10 @@ public class FindTest { ...@@ -342,10 +347,10 @@ public class FindTest {
@MediumTest @MediumTest
@Feature({"FindInPage"}) @Feature({"FindInPage"})
public void testFipTextNotRestoredIncognitoTab() throws InterruptedException { public void testFipTextNotRestoredIncognitoTab() throws InterruptedException {
mActivityTestRule.newIncognitoTabFromMenu(); sActivityTestRule.newIncognitoTabFromMenu();
loadTestAndVerifyFindInPage("pitts", "1/7"); loadTestAndVerifyFindInPage("pitts", "1/7");
// close the fip // close the fip
final View v = mActivityTestRule.getActivity().findViewById(R.id.close_find_button); final View v = sActivityTestRule.getActivity().findViewById(R.id.close_find_button);
TouchCommon.singleClickView(v); TouchCommon.singleClickView(v);
waitForFindInPageVisibility(false); waitForFindInPageVisibility(false);
...@@ -365,7 +370,7 @@ public class FindTest { ...@@ -365,7 +370,7 @@ public class FindTest {
@SmallTest @SmallTest
@Feature({"FindInPage"}) @Feature({"FindInPage"})
public void testPastedTextStylingRemoved() throws Throwable { public void testPastedTextStylingRemoved() throws Throwable {
mActivityTestRule.loadUrl(mTestServer.getURL(FILEPATH)); sActivityTestRule.loadUrl(sActivityTestRule.getTestServer().getURL(FILEPATH));
findInPageFromMenu(); findInPageFromMenu();
final FindToolbar findToolbar = getFindToolbar(); final FindToolbar findToolbar = getFindToolbar();
...@@ -405,7 +410,7 @@ public class FindTest { ...@@ -405,7 +410,7 @@ public class FindTest {
@MediumTest @MediumTest
@Feature({"FindInPage"}) @Feature({"FindInPage"})
public void testBackKeyDoesNotDismissFindWhenImeIsPresent() { public void testBackKeyDoesNotDismissFindWhenImeIsPresent() {
mActivityTestRule.loadUrl(mTestServer.getURL(FILEPATH)); sActivityTestRule.loadUrl(sActivityTestRule.getTestServer().getURL(FILEPATH));
findInPageFromMenu(); findInPageFromMenu();
final TextView findQueryText = getFindQueryText(); final TextView findQueryText = getFindQueryText();
KeyUtils.singleKeyEventView( KeyUtils.singleKeyEventView(
...@@ -431,7 +436,7 @@ public class FindTest { ...@@ -431,7 +436,7 @@ public class FindTest {
waitForIME(true); waitForIME(true);
// Hide IME by clicking next button from find tool bar. // Hide IME by clicking next button from find tool bar.
TouchCommon.singleClickView( TouchCommon.singleClickView(
mActivityTestRule.getActivity().findViewById(R.id.find_next_button)); sActivityTestRule.getActivity().findViewById(R.id.find_next_button));
waitForIME(false); waitForIME(false);
InstrumentationRegistry.getInstrumentation().sendKeyDownUpSync(KeyEvent.KEYCODE_BACK); InstrumentationRegistry.getInstrumentation().sendKeyDownUpSync(KeyEvent.KEYCODE_BACK);
waitForFindInPageVisibility(false); waitForFindInPageVisibility(false);
...@@ -440,8 +445,8 @@ public class FindTest { ...@@ -440,8 +445,8 @@ public class FindTest {
private void waitForIME(final boolean imePresent) { private void waitForIME(final boolean imePresent) {
// Wait for IME to appear. // Wait for IME to appear.
CriteriaHelper.pollUiThread(() -> { CriteriaHelper.pollUiThread(() -> {
Criteria.checkThat(mActivityTestRule.getKeyboardDelegate().isKeyboardShowing( Criteria.checkThat(sActivityTestRule.getKeyboardDelegate().isKeyboardShowing(
mActivityTestRule.getActivity(), getFindQueryText()), sActivityTestRule.getActivity(), getFindQueryText()),
Matchers.is(imePresent)); Matchers.is(imePresent));
}); });
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment