Commit 34ddd8e3 authored by ajith.v's avatar ajith.v Committed by Commit bot

Adding Text Selection Action Bar Unit Test cases.

Currently there is not enough unit test cases available to cover
the functionality of Text Selection Action Bar. In this patch covering
essentail unit test cases for the same.

BUG=

Review URL: https://codereview.chromium.org/521583003

Cr-Commit-Position: refs/heads/master@{#292971}
parent 01bc0b71
// Copyright 2014 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.content.browser;
import android.test.suitebuilder.annotation.SmallTest;
import org.chromium.base.test.util.Feature;
import org.chromium.base.test.util.UrlUtils;
import org.chromium.content.browser.test.util.Criteria;
import org.chromium.content.browser.test.util.CriteriaHelper;
import org.chromium.content.browser.test.util.DOMUtils;
import org.chromium.content_shell_apk.ContentShellTestBase;
/**
* Integration tests for text selection-related behavior.
*/
public class ContentViewCoreSelectionTest extends ContentShellTestBase {
private static final String DATA_URL = UrlUtils.encodeHtmlDataUri(
"<html><head><meta name=\"viewport\"" +
"content=\"width=device-width, initial-scale=1.1, maximum-scale=1.5\" /></head>" +
"<body><form action=\"about:blank\">" +
"<input id=\"empty_input_text\" type=\"text\" />" +
"<br/><p><span id=\"plain_text_1\">This is Plain Text One</span></p>" +
"<br/><p><span id=\"plain_text_2\">This is Plain Text Two</span></p>" +
"<br/><input id=\"empty_input_text\" type=\"text\" />" +
"<br/><input id=\"input_text\" type=\"text\" value=\"Sample Text\" />" +
"<br/><textarea id=\"empty_textarea\" rows=\"2\" cols=\"20\"></textarea>" +
"<br/><textarea id=\"textarea\" rows=\"2\" cols=\"20\">Sample Text</textarea>" +
"</form></body></html>");
private ContentViewCore mContentViewCore;
@Override
public void setUp() throws Exception {
super.setUp();
launchContentShellWithUrl(DATA_URL);
assertTrue("Page failed to load", waitForActiveShellToBeDoneLoading());
mContentViewCore = getContentViewCore();
assertWaitForPageScaleFactorMatch(1.1f);
assertWaitForSelectActionBarStatus(false);
}
@SmallTest
@Feature({"TextSelection"})
public void testSelectActionBarShownOnLongPressingPlainText() throws Exception {
DOMUtils.longPressNode(this, mContentViewCore, "plain_text_1");
assertWaitForSelectActionBarStatus(true);
DOMUtils.longPressNode(this, mContentViewCore, "empty_input_text");
assertWaitForSelectActionBarStatus(false);
}
@SmallTest
@Feature({"TextSelection"})
public void testSelectActionBarClearedOnTappingOutsideSelection() throws Exception {
DOMUtils.longPressNode(this, mContentViewCore, "plain_text_1");
assertWaitForSelectActionBarStatus(true);
DOMUtils.clickNode(this, mContentViewCore, "plain_text_2");
assertWaitForSelectActionBarStatus(false);
}
@SmallTest
@Feature({"TextSelection"})
public void testSelectActionBarStaysOnLongPressingDifferentPlainTexts() throws Exception {
DOMUtils.longPressNode(this, mContentViewCore, "plain_text_1");
assertWaitForSelectActionBarStatus(true);
DOMUtils.longPressNode(this, mContentViewCore, "plain_text_2");
assertWaitForSelectActionBarStatus(true);
}
@SmallTest
@Feature({"TextSelection"})
public void testSelectActionBarStaysOnLongPressingDifferentNonEmptyInputs() throws Exception {
DOMUtils.longPressNode(this, mContentViewCore, "textarea");
assertWaitForSelectActionBarStatus(true);
DOMUtils.longPressNode(this, mContentViewCore, "input_text");
assertWaitForSelectActionBarStatus(true);
}
@SmallTest
@Feature({"TextSelection"})
public void testSelectActionBarNotShownOnLongPressingDifferentEmptyInputs() throws Exception {
DOMUtils.longPressNode(this, mContentViewCore, "plain_text_1");
assertWaitForSelectActionBarStatus(true);
DOMUtils.longPressNode(this, mContentViewCore, "empty_input_text");
assertWaitForSelectActionBarStatus(false);
DOMUtils.longPressNode(this, mContentViewCore, "plain_text_2");
assertWaitForSelectActionBarStatus(true);
DOMUtils.longPressNode(this, mContentViewCore, "empty_textarea");
assertWaitForSelectActionBarStatus(false);
}
private void assertWaitForSelectActionBarStatus(
final boolean show) throws InterruptedException {
assertTrue(CriteriaHelper.pollForCriteria(new Criteria() {
@Override
public boolean isSatisfied() {
return show == mContentViewCore.isSelectActionBarShowing();
}
}));
}
}
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