| Index: content/public/android/javatests/src/org/chromium/content/browser/input/ImeTest.java
|
| diff --git a/content/public/android/javatests/src/org/chromium/content/browser/input/ImeTest.java b/content/public/android/javatests/src/org/chromium/content/browser/input/ImeTest.java
|
| index 40fc9c5c7dc4cd2440b382fa74f858688ff1ab70..826d629f54cf8c56814afc81412cb953028728ef 100644
|
| --- a/content/public/android/javatests/src/org/chromium/content/browser/input/ImeTest.java
|
| +++ b/content/public/android/javatests/src/org/chromium/content/browser/input/ImeTest.java
|
| @@ -1433,29 +1433,31 @@ public class ImeTest extends ContentShellTestBase {
|
| }));
|
| }
|
|
|
| - // Tests that the method call order is kept.
|
| - // See crbug.com/601707 for details.
|
| + // Tests that the method call order is kept and get updates correctly.
|
| + // crbug.com/601707, crbug.com/643473
|
| @MediumTest
|
| @Feature({"TextInput"})
|
| @RetryOnFailure
|
| - public void testSetSelectionCommitTextOrder() throws Exception {
|
| + public void testAsynchronousSequence() throws Exception {
|
| final ChromiumBaseInputConnection connection = mConnection;
|
| runBlockingOnImeThread(new Callable<Void>() {
|
| @Override
|
| public Void call() {
|
| + connection.commitText("hi ", 1);
|
| connection.beginBatchEdit();
|
| connection.commitText("hello world", 1);
|
| - connection.setSelection(6, 6);
|
| - connection.deleteSurroundingText(0, 5);
|
| + connection.setSelection(9, 9);
|
| + connection.deleteSurroundingText(3, 8);
|
| connection.commitText("'", 1);
|
| connection.commitText("world", 1);
|
| - connection.setSelection(7, 7);
|
| + connection.setSelection(10, 10);
|
| connection.setComposingText("", 1);
|
| connection.endBatchEdit();
|
| return null;
|
| }
|
| });
|
| - waitAndVerifyUpdateSelection(0, 7, 7, -1, -1);
|
| + waitAndVerifyUpdateSelection(0, 3, 3, -1, -1);
|
| + waitAndVerifyUpdateSelection(1, 10, 10, -1, -1);
|
| }
|
|
|
| // crbug.com/643477
|
| @@ -1467,11 +1469,14 @@ public class ImeTest extends ContentShellTestBase {
|
| ThreadUtils.runOnUiThreadBlocking(new Runnable() {
|
| @Override
|
| public void run() {
|
| - // We allow UI thread access for most functions, except for
|
| - // beginBatchEdit(), endBatchEdit(), and get* methods().
|
| assertTrue(connection.commitText("a", 1));
|
| + assertTrue(connection.beginBatchEdit());
|
| assertTrue(connection.setComposingText("b", 1));
|
| + // Note that the result of this function may not be up-to-date.
|
| + connection.getTextBeforeCursor(10, 0);
|
| +
|
| assertTrue(connection.setComposingText("bc", 1));
|
| + assertFalse(connection.endBatchEdit()); // returns false if no more batch edit.
|
| assertTrue(connection.finishComposingText());
|
| }
|
| });
|
|
|