aboutsummaryrefslogtreecommitdiffstats
path: root/tests/src/com/android/inputmethod/latin/InputLogicTests.java
diff options
context:
space:
mode:
authorJean Chalard <jchalard@google.com>2013-01-09 18:37:10 +0900
committerJean Chalard <jchalard@google.com>2013-01-09 18:37:10 +0900
commit516b63db2866f144a00ec7e1e6c29cb0865f5ff3 (patch)
tree758425ca166f3a4562e83f0eed32cc6b987468a4 /tests/src/com/android/inputmethod/latin/InputLogicTests.java
parent8315e8168b135599237f5493f72e667f39503006 (diff)
downloadlatinime-516b63db2866f144a00ec7e1e6c29cb0865f5ff3.tar.gz
latinime-516b63db2866f144a00ec7e1e6c29cb0865f5ff3.tar.xz
latinime-516b63db2866f144a00ec7e1e6c29cb0865f5ff3.zip
Fix a race condition with backspaces
And add a test to make sure it stays not-broken. Bug: 7946604 Change-Id: I996da3d5507d591ec25a13fb57434f39843f1df5
Diffstat (limited to 'tests/src/com/android/inputmethod/latin/InputLogicTests.java')
-rw-r--r--tests/src/com/android/inputmethod/latin/InputLogicTests.java21
1 files changed, 21 insertions, 0 deletions
diff --git a/tests/src/com/android/inputmethod/latin/InputLogicTests.java b/tests/src/com/android/inputmethod/latin/InputLogicTests.java
index 38f5305de..6412a9db5 100644
--- a/tests/src/com/android/inputmethod/latin/InputLogicTests.java
+++ b/tests/src/com/android/inputmethod/latin/InputLogicTests.java
@@ -102,6 +102,27 @@ public class InputLogicTests extends InputTestsBase {
assertEquals("delete selection", EXPECTED_RESULT, mTextView.getText().toString());
}
+ public void testDeleteSelectionTwice() {
+ final String STRING_TO_TYPE = "some text delete me some text";
+ final int typedLength = STRING_TO_TYPE.length();
+ final int SELECTION_START = 10;
+ final int SELECTION_END = 19;
+ final String EXPECTED_RESULT = "some text some text";
+ type(STRING_TO_TYPE);
+ // There is no IMF to call onUpdateSelection for us so we must do it by hand.
+ // Send once to simulate the cursor actually responding to the move caused by typing.
+ // This is necessary because LatinIME is bookkeeping to avoid confusing a real cursor
+ // move with a move triggered by LatinIME inputting stuff.
+ mLatinIME.onUpdateSelection(0, 0, typedLength, typedLength, -1, -1);
+ mInputConnection.setSelection(SELECTION_START, SELECTION_END);
+ // And now we simulate the user actually selecting some text.
+ mLatinIME.onUpdateSelection(typedLength, typedLength,
+ SELECTION_START, SELECTION_END, -1, -1);
+ type(Constants.CODE_DELETE);
+ type(Constants.CODE_DELETE);
+ assertEquals("delete selection twice", EXPECTED_RESULT, mTextView.getText().toString());
+ }
+
public void testAutoCorrect() {
final String STRING_TO_TYPE = "tgis ";
final String EXPECTED_RESULT = "this ";