Commit 43f3c339 authored by Richard Coles's avatar Richard Coles Committed by Commit Bot

Revert "[Autofill Assistant] Add integration test for input actions"

This reverts commit cb51eef7.

Reason for revert: Newly added test consistently failing on several bots, crbug/1139935

Original change's description:
> [Autofill Assistant] Add integration test for input actions
>
> This adds integration tests for our current input actions.
> Once we start experimenting, these should ensure that we
> are not breaking currently working behaviour.
>
> Bug: b/168107066
> Bug: b/169924567
> Change-Id: I141f4033e0080e8c99e0b1280e8521d2bc45e837
> Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2484422
> Commit-Queue: Sandro Maggi <sandromaggi@google.com>
> Reviewed-by: Luca Hunkeler <hluca@google.com>
> Cr-Commit-Position: refs/heads/master@{#818409}

TBR=hluca@google.com,sandromaggi@google.com

Change-Id: I56bae34b0768c43cdb4809b234abf3ff7bd7957a
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: b/168107066
Bug: b/169924567
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2485293
Commit-Queue: Richard Coles <torne@chromium.org>
Reviewed-by: default avatarRichard Coles <torne@chromium.org>
Cr-Commit-Position: refs/heads/master@{#818485}
parent b8ec43bd
...@@ -270,7 +270,6 @@ android_library("test_java") { ...@@ -270,7 +270,6 @@ android_library("test_java") {
"javatests/src/org/chromium/chrome/browser/autofill_assistant/AutofillAssistantGenericUiTest.java", "javatests/src/org/chromium/chrome/browser/autofill_assistant/AutofillAssistantGenericUiTest.java",
"javatests/src/org/chromium/chrome/browser/autofill_assistant/AutofillAssistantHeaderUiTest.java", "javatests/src/org/chromium/chrome/browser/autofill_assistant/AutofillAssistantHeaderUiTest.java",
"javatests/src/org/chromium/chrome/browser/autofill_assistant/AutofillAssistantInfoBoxUiTest.java", "javatests/src/org/chromium/chrome/browser/autofill_assistant/AutofillAssistantInfoBoxUiTest.java",
"javatests/src/org/chromium/chrome/browser/autofill_assistant/AutofillAssistantInputActionIntegrationTest.java",
"javatests/src/org/chromium/chrome/browser/autofill_assistant/AutofillAssistantKeyboardIntegrationTest.java", "javatests/src/org/chromium/chrome/browser/autofill_assistant/AutofillAssistantKeyboardIntegrationTest.java",
"javatests/src/org/chromium/chrome/browser/autofill_assistant/AutofillAssistantNavigationIntegrationTest.java", "javatests/src/org/chromium/chrome/browser/autofill_assistant/AutofillAssistantNavigationIntegrationTest.java",
"javatests/src/org/chromium/chrome/browser/autofill_assistant/AutofillAssistantOverlayIntegrationTest.java", "javatests/src/org/chromium/chrome/browser/autofill_assistant/AutofillAssistantOverlayIntegrationTest.java",
......
// Copyright 2020 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.autofill_assistant;
import static androidx.test.espresso.Espresso.onView;
import static androidx.test.espresso.action.ViewActions.click;
import static androidx.test.espresso.matcher.ViewMatchers.isCompletelyDisplayed;
import static androidx.test.espresso.matcher.ViewMatchers.withText;
import static org.hamcrest.MatcherAssert.assertThat;
import static org.hamcrest.Matchers.is;
import static org.chromium.chrome.browser.autofill_assistant.AutofillAssistantUiTestUtil.checkElementExists;
import static org.chromium.chrome.browser.autofill_assistant.AutofillAssistantUiTestUtil.getElementValue;
import static org.chromium.chrome.browser.autofill_assistant.AutofillAssistantUiTestUtil.startAutofillAssistant;
import static org.chromium.chrome.browser.autofill_assistant.AutofillAssistantUiTestUtil.waitUntil;
import static org.chromium.chrome.browser.autofill_assistant.AutofillAssistantUiTestUtil.waitUntilViewMatchesCondition;
import android.support.test.InstrumentationRegistry;
import androidx.test.filters.MediumTest;
import org.junit.Before;
import org.junit.Rule;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.chromium.base.test.util.CommandLineFlags;
import org.chromium.chrome.browser.autofill_assistant.proto.ActionProto;
import org.chromium.chrome.browser.autofill_assistant.proto.ChipProto;
import org.chromium.chrome.browser.autofill_assistant.proto.ChipType;
import org.chromium.chrome.browser.autofill_assistant.proto.ClickProto;
import org.chromium.chrome.browser.autofill_assistant.proto.ClickType;
import org.chromium.chrome.browser.autofill_assistant.proto.DropdownSelectStrategy;
import org.chromium.chrome.browser.autofill_assistant.proto.KeyboardValueFillStrategy;
import org.chromium.chrome.browser.autofill_assistant.proto.PromptProto;
import org.chromium.chrome.browser.autofill_assistant.proto.PromptProto.Choice;
import org.chromium.chrome.browser.autofill_assistant.proto.SelectOptionProto;
import org.chromium.chrome.browser.autofill_assistant.proto.SelectorProto;
import org.chromium.chrome.browser.autofill_assistant.proto.SelectorProto.Filter;
import org.chromium.chrome.browser.autofill_assistant.proto.SetFormFieldValueProto;
import org.chromium.chrome.browser.autofill_assistant.proto.SetFormFieldValueProto.KeyPress;
import org.chromium.chrome.browser.autofill_assistant.proto.SupportedScriptProto;
import org.chromium.chrome.browser.autofill_assistant.proto.SupportedScriptProto.PresentationProto;
import org.chromium.chrome.browser.customtabs.CustomTabActivityTestRule;
import org.chromium.chrome.browser.customtabs.CustomTabsTestUtils;
import org.chromium.chrome.browser.flags.ChromeSwitches;
import org.chromium.chrome.test.ChromeJUnit4ClassRunner;
import java.util.ArrayList;
import java.util.Collections;
/**
* Tests autofill assistant's input actions such as keyboard and clicking.
*/
@CommandLineFlags.Add({ChromeSwitches.DISABLE_FIRST_RUN_EXPERIENCE})
@RunWith(ChromeJUnit4ClassRunner.class)
public class AutofillAssistantInputActionIntegrationTest {
@Rule
public CustomTabActivityTestRule mTestRule = new CustomTabActivityTestRule();
private static final String TEST_PAGE = "/components/test/data/autofill_assistant/html/"
+ "autofill_assistant_target_website.html";
@Before
public void setUp() throws Exception {
AutofillAssistantPreferencesUtil.setInitialPreferences(true);
mTestRule.startCustomTabActivityWithIntent(CustomTabsTestUtils.createMinimalCustomTabIntent(
InstrumentationRegistry.getTargetContext(),
mTestRule.getTestServer().getURL(TEST_PAGE)));
}
@Test
@MediumTest
public void fillFormFieldWithText() throws Exception {
ArrayList<ActionProto> list = new ArrayList<>();
SelectorProto element_set_value =
(SelectorProto) SelectorProto.newBuilder()
.addFilters(Filter.newBuilder().setCssSelector("#input1"))
.build();
list.add((ActionProto) ActionProto.newBuilder()
.setSetFormValue(
SetFormFieldValueProto.newBuilder()
.setElement(element_set_value)
.addValue(KeyPress.newBuilder().setText("Set Value"))
.setFillStrategy(KeyboardValueFillStrategy.SET_VALUE))
.build());
SelectorProto element_keystrokes =
(SelectorProto) SelectorProto.newBuilder()
.addFilters(Filter.newBuilder().setCssSelector("#input2"))
.build();
list.add((ActionProto) ActionProto.newBuilder()
.setSetFormValue(
SetFormFieldValueProto.newBuilder()
.setElement(element_keystrokes)
.addValue(KeyPress.newBuilder().setText("Keystrokes"))
.setFillStrategy(
KeyboardValueFillStrategy.SIMULATE_KEY_PRESSES))
.build());
SelectorProto element_keystrokes_select =
(SelectorProto) SelectorProto.newBuilder()
.addFilters(Filter.newBuilder().setCssSelector("#input3"))
.build();
list.add((ActionProto) ActionProto.newBuilder()
.setSetFormValue(
SetFormFieldValueProto.newBuilder()
.setElement(element_keystrokes_select)
.addValue(
KeyPress.newBuilder().setText("Keystrokes Select"))
.setFillStrategy(
KeyboardValueFillStrategy
.SIMULATE_KEY_PRESSES_SELECT_VALUE))
.build());
list.add((ActionProto) ActionProto.newBuilder()
.setPrompt(PromptProto.newBuilder()
.setMessage("Finished")
.addChoices(Choice.newBuilder()))
.build());
AutofillAssistantTestScript script = new AutofillAssistantTestScript(
(SupportedScriptProto) SupportedScriptProto.newBuilder()
.setPath(TEST_PAGE)
.setPresentation(PresentationProto.newBuilder().setAutostart(true).setChip(
ChipProto.newBuilder().setText("Done")))
.build(),
list);
runScript(script);
waitUntilViewMatchesCondition(withText("Finished"), isCompletelyDisplayed());
assertThat(getElementValue(mTestRule.getWebContents(), "input1"), is("Set Value"));
assertThat(getElementValue(mTestRule.getWebContents(), "input2"), is("Keystrokes"));
assertThat(getElementValue(mTestRule.getWebContents(), "input3"), is("Keystrokes Select"));
}
@Test
@MediumTest
public void clearFormFieldFromText() throws Exception {
ArrayList<ActionProto> list = new ArrayList<>();
SelectorProto element_set_value =
(SelectorProto) SelectorProto.newBuilder()
.addFilters(Filter.newBuilder().setCssSelector("#input1"))
.build();
list.add((ActionProto) ActionProto.newBuilder()
.setSetFormValue(
SetFormFieldValueProto.newBuilder()
.setElement(element_set_value)
.addValue(KeyPress.newBuilder().setText(""))
.setFillStrategy(KeyboardValueFillStrategy.SET_VALUE))
.build());
SelectorProto element_keystrokes =
(SelectorProto) SelectorProto.newBuilder()
.addFilters(Filter.newBuilder().setCssSelector("#input2"))
.build();
list.add((ActionProto) ActionProto.newBuilder()
.setSetFormValue(
SetFormFieldValueProto.newBuilder()
.setElement(element_keystrokes)
.addValue(KeyPress.newBuilder().setText(""))
.setFillStrategy(
KeyboardValueFillStrategy.SIMULATE_KEY_PRESSES))
.build());
SelectorProto element_keystrokes_select =
(SelectorProto) SelectorProto.newBuilder()
.addFilters(Filter.newBuilder().setCssSelector("#input3"))
.build();
list.add((ActionProto) ActionProto.newBuilder()
.setSetFormValue(
SetFormFieldValueProto.newBuilder()
.setElement(element_keystrokes_select)
.addValue(KeyPress.newBuilder().setText(""))
.setFillStrategy(
KeyboardValueFillStrategy
.SIMULATE_KEY_PRESSES_SELECT_VALUE))
.build());
list.add((ActionProto) ActionProto.newBuilder()
.setPrompt(PromptProto.newBuilder()
.setMessage("Finished")
.addChoices(Choice.newBuilder()))
.build());
AutofillAssistantTestScript script = new AutofillAssistantTestScript(
(SupportedScriptProto) SupportedScriptProto.newBuilder()
.setPath(TEST_PAGE)
.setPresentation(PresentationProto.newBuilder().setAutostart(true).setChip(
ChipProto.newBuilder().setText("Done")))
.build(),
list);
assertThat(getElementValue(mTestRule.getWebContents(), "input1"), is("helloworld1"));
assertThat(getElementValue(mTestRule.getWebContents(), "input2"), is("helloworld2"));
assertThat(getElementValue(mTestRule.getWebContents(), "input3"), is("helloworld3"));
runScript(script);
waitUntilViewMatchesCondition(withText("Finished"), isCompletelyDisplayed());
assertThat(getElementValue(mTestRule.getWebContents(), "input1"), is(""));
assertThat(getElementValue(mTestRule.getWebContents(), "input2"), is(""));
assertThat(getElementValue(mTestRule.getWebContents(), "input3"), is(""));
}
@Test
@MediumTest
public void selectOptionFromDropdown() throws Exception {
ArrayList<ActionProto> list = new ArrayList<>();
SelectorProto element = (SelectorProto) SelectorProto.newBuilder()
.addFilters(Filter.newBuilder().setCssSelector("#select"))
.build();
list.add((ActionProto) ActionProto.newBuilder()
.setSelectOption(
SelectOptionProto.newBuilder()
.setElement(element)
.setSelectedOption("one")
.setSelectStrategy(DropdownSelectStrategy.VALUE_MATCH))
.build());
list.add((ActionProto) ActionProto.newBuilder()
.setPrompt(PromptProto.newBuilder()
.setMessage("Value Match")
.addChoices(Choice.newBuilder().setChip(
ChipProto.newBuilder()
.setType(ChipType.HIGHLIGHTED_ACTION)
.setText("Continue"))))
.build());
list.add((ActionProto) ActionProto.newBuilder()
.setSelectOption(
SelectOptionProto.newBuilder()
.setElement(element)
.setSelectedOption("Three")
.setSelectStrategy(DropdownSelectStrategy.LABEL_MATCH))
.build());
list.add((ActionProto) ActionProto.newBuilder()
.setPrompt(PromptProto.newBuilder()
.setMessage("Label Match")
.addChoices(Choice.newBuilder().setChip(
ChipProto.newBuilder()
.setType(ChipType.HIGHLIGHTED_ACTION)
.setText("Continue"))))
.build());
list.add((ActionProto) ActionProto.newBuilder()
.setSelectOption(SelectOptionProto.newBuilder()
.setElement(element)
.setSelectedOption("Zürich")
.setSelectStrategy(
DropdownSelectStrategy.LABEL_STARTS_WITH))
.build());
list.add((ActionProto) ActionProto.newBuilder()
.setPrompt(PromptProto.newBuilder()
.setMessage("Label Starts With")
.addChoices(Choice.newBuilder()))
.build());
AutofillAssistantTestScript script = new AutofillAssistantTestScript(
(SupportedScriptProto) SupportedScriptProto.newBuilder()
.setPath(TEST_PAGE)
.setPresentation(PresentationProto.newBuilder().setAutostart(true).setChip(
ChipProto.newBuilder().setText("Done")))
.build(),
list);
runScript(script);
waitUntilViewMatchesCondition(withText("Value Match"), isCompletelyDisplayed());
assertThat(getElementValue(mTestRule.getWebContents(), "select"), is("one"));
onView(withText("Continue")).perform(click());
waitUntilViewMatchesCondition(withText("Label Match"), isCompletelyDisplayed());
assertThat(getElementValue(mTestRule.getWebContents(), "select"), is("three"));
onView(withText("Continue")).perform(click());
waitUntilViewMatchesCondition(withText("Label Starts With"), isCompletelyDisplayed());
assertThat(getElementValue(mTestRule.getWebContents(), "select"), is("two"));
}
@Test
@MediumTest
public void clickingOnElementToHide() {
ArrayList<ActionProto> list = new ArrayList<>();
SelectorProto element_click =
(SelectorProto) SelectorProto.newBuilder()
.addFilters(Filter.newBuilder().setCssSelector("#touch_area_one"))
.build();
list.add((ActionProto) ActionProto.newBuilder()
.setClick(ClickProto.newBuilder()
.setElementToClick(element_click)
.setClickType(ClickType.CLICK))
.build());
SelectorProto element_tap =
(SelectorProto) SelectorProto.newBuilder()
.addFilters(Filter.newBuilder().setCssSelector("#touch_area_five"))
.build();
list.add((ActionProto) ActionProto.newBuilder()
.setClick(ClickProto.newBuilder()
.setElementToClick(element_tap)
.setClickType(ClickType.TAP))
.build());
SelectorProto element_js =
(SelectorProto) SelectorProto.newBuilder()
.addFilters(Filter.newBuilder().setCssSelector("#touch_area_six"))
.build();
list.add((ActionProto) ActionProto.newBuilder()
.setClick(ClickProto.newBuilder()
.setElementToClick(element_js)
.setClickType(ClickType.JAVASCRIPT))
.build());
list.add((ActionProto) ActionProto.newBuilder()
.setPrompt(PromptProto.newBuilder()
.setMessage("Finished")
.addChoices(Choice.newBuilder()))
.build());
AutofillAssistantTestScript script = new AutofillAssistantTestScript(
(SupportedScriptProto) SupportedScriptProto.newBuilder()
.setPath(TEST_PAGE)
.setPresentation(PresentationProto.newBuilder().setAutostart(true).setChip(
ChipProto.newBuilder().setText("Done")))
.build(),
list);
runScript(script);
waitUntilViewMatchesCondition(withText("Finished"), isCompletelyDisplayed());
waitUntil(() -> !checkElementExists(mTestRule.getWebContents(), "touch_area_one"));
waitUntil(() -> !checkElementExists(mTestRule.getWebContents(), "touch_area_five"));
waitUntil(() -> !checkElementExists(mTestRule.getWebContents(), "touch_area_six"));
}
private void runScript(AutofillAssistantTestScript script) {
AutofillAssistantTestService testService =
new AutofillAssistantTestService(Collections.singletonList(script));
startAutofillAssistant(mTestRule.getActivity(), testService);
}
}
\ No newline at end of file
...@@ -137,7 +137,7 @@ found in the LICENSE file. ...@@ -137,7 +137,7 @@ found in the LICENSE file.
<body onload="moveTouchAreaTwoAndThree()"> <body onload="moveTouchAreaTwoAndThree()">
<!-- Touch areas can be accessed without needing scroll. --> <!-- Touch areas can be accessed without needing scroll. -->
<div> <div>
<p id="touch_area_one" ontouchend="removeTouchArea('touch_area_one')" onmouseup="removeTouchArea('touch_area_one')"> <p id="touch_area_one" ontouchend="removeTouchArea('touch_area_one')">
Touchable Area One</p> Touchable Area One</p>
<br> <br>
</div> </div>
...@@ -175,7 +175,7 @@ found in the LICENSE file. ...@@ -175,7 +175,7 @@ found in the LICENSE file.
<br> <br>
</div> </div>
<div> <div>
<p id="touch_area_six" ontouchend="removeTouchArea('touch_area_six')" onclick="removeTouchArea('touch_area_six')"> <p id="touch_area_six" ontouchend="removeTouchArea('touch_area_six')">
Touchable Area Six</p> Touchable Area Six</p>
<br> <br>
</div> </div>
......
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