Merge "Add some gesture-move tests"

main
Jean Chalard 2014-10-28 06:22:17 +00:00 committed by Android (Google) Code Review
commit 450c8e8935
1 changed files with 32 additions and 2 deletions

View File

@ -674,10 +674,15 @@ public class InputLogicTests extends InputTestsBase {
mEditText.getText().toString()); mEditText.getText().toString());
} }
private void typeWordAndPutCursorInside(final String word, final int startPos) { private void typeOrGestureWordAndPutCursorInside(final boolean gesture, final String word,
final int startPos) {
final int END_OF_WORD = startPos + word.length(); final int END_OF_WORD = startPos + word.length();
final int NEW_CURSOR_POSITION = startPos + word.length() / 2; final int NEW_CURSOR_POSITION = startPos + word.length() / 2;
if (gesture) {
gesture(word);
} else {
type(word); type(word);
}
sendUpdateForCursorMoveTo(END_OF_WORD); sendUpdateForCursorMoveTo(END_OF_WORD);
runMessages(); runMessages();
sendUpdateForCursorMoveTo(NEW_CURSOR_POSITION); sendUpdateForCursorMoveTo(NEW_CURSOR_POSITION);
@ -687,6 +692,14 @@ public class InputLogicTests extends InputTestsBase {
startPos, END_OF_WORD); startPos, END_OF_WORD);
} }
private void typeWordAndPutCursorInside(final String word, final int startPos) {
typeOrGestureWordAndPutCursorInside(false /* gesture */, word, startPos);
}
private void gestureWordAndPutCursorInside(final String word, final int startPos) {
typeOrGestureWordAndPutCursorInside(true /* gesture */, word, startPos);
}
private void ensureComposingSpanPos(final String message, final int from, final int to) { private void ensureComposingSpanPos(final String message, final int from, final int to) {
assertEquals(message, from, BaseInputConnection.getComposingSpanStart(mEditText.getText())); assertEquals(message, from, BaseInputConnection.getComposingSpanStart(mEditText.getText()));
assertEquals(message, to, BaseInputConnection.getComposingSpanEnd(mEditText.getText())); assertEquals(message, to, BaseInputConnection.getComposingSpanEnd(mEditText.getText()));
@ -703,6 +716,23 @@ public class InputLogicTests extends InputTestsBase {
int cursorPos = sendUpdateForCursorMoveToEndOfLine(); int cursorPos = sendUpdateForCursorMoveToEndOfLine();
runMessages(); runMessages();
type(" "); type(" ");
assertEquals("mbo", "some thing ", mEditText.getText().toString());
typeWordAndPutCursorInside(WORD_TO_TYPE, cursorPos + 1 /* startPos */);
type(Constants.CODE_DELETE);
ensureComposingSpanPos("space while in the middle of a word cancels composition", -1, -1);
}
public void testTypeWithinGestureComposing() {
final String WORD_TO_TYPE = "something";
final String EXPECTED_RESULT = "some thing";
gestureWordAndPutCursorInside(WORD_TO_TYPE, 0 /* startPos */);
type(" ");
ensureComposingSpanPos("space while in the middle of a word cancels composition", -1, -1);
assertEquals("space in the middle of a composing word", EXPECTED_RESULT,
mEditText.getText().toString());
int cursorPos = sendUpdateForCursorMoveToEndOfLine();
runMessages();
type(" ");
typeWordAndPutCursorInside(WORD_TO_TYPE, cursorPos + 1 /* startPos */); typeWordAndPutCursorInside(WORD_TO_TYPE, cursorPos + 1 /* startPos */);
type(Constants.CODE_DELETE); type(Constants.CODE_DELETE);
ensureComposingSpanPos("space while in the middle of a word cancels composition", -1, -1); ensureComposingSpanPos("space while in the middle of a word cancels composition", -1, -1);