aboutsummaryrefslogtreecommitdiffstats
path: root/tests/src
diff options
context:
space:
mode:
Diffstat (limited to 'tests/src')
-rw-r--r--tests/src/com/android/inputmethod/latin/BlueUnderlineTests.java102
-rw-r--r--tests/src/com/android/inputmethod/latin/InputLogicFrenchTests.java59
-rw-r--r--tests/src/com/android/inputmethod/latin/InputLogicTests.java246
-rw-r--r--tests/src/com/android/inputmethod/latin/PunctuationTests.java151
4 files changed, 312 insertions, 246 deletions
diff --git a/tests/src/com/android/inputmethod/latin/BlueUnderlineTests.java b/tests/src/com/android/inputmethod/latin/BlueUnderlineTests.java
new file mode 100644
index 000000000..81f744da9
--- /dev/null
+++ b/tests/src/com/android/inputmethod/latin/BlueUnderlineTests.java
@@ -0,0 +1,102 @@
+/*
+ * Copyright (C) 2012 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not
+ * use this file except in compliance with the License. You may obtain a copy of
+ * the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+ * License for the specific language governing permissions and limitations under
+ * the License.
+ */
+
+package com.android.inputmethod.latin;
+
+import com.android.inputmethod.keyboard.Keyboard;
+
+public class BlueUnderlineTests extends InputTestsBase {
+
+ public void testBlueUnderline() {
+ final String STRING_TO_TYPE = "tgis";
+ final int EXPECTED_SPAN_START = 0;
+ final int EXPECTED_SPAN_END = 4;
+ type(STRING_TO_TYPE);
+ sleep(DELAY_TO_WAIT_FOR_UNDERLINE);
+ runMessages();
+ final Span span = new Span(mTextView.getText());
+ assertEquals("show blue underline, span start", EXPECTED_SPAN_START, span.mStart);
+ assertEquals("show blue underline, span end", EXPECTED_SPAN_END, span.mEnd);
+ assertEquals("show blue underline, span color", true, span.isAutoCorrectionIndicator());
+ }
+
+ public void testBlueUnderlineDisappears() {
+ final String STRING_1_TO_TYPE = "tgis";
+ final String STRING_2_TO_TYPE = "q";
+ final int EXPECTED_SPAN_START = 0;
+ final int EXPECTED_SPAN_END = 5;
+ type(STRING_1_TO_TYPE);
+ sleep(DELAY_TO_WAIT_FOR_UNDERLINE);
+ runMessages();
+ type(STRING_2_TO_TYPE);
+ // We haven't have time to look into the dictionary yet, so the line should still be
+ // blue to avoid any flicker.
+ final Span spanBefore = new Span(mTextView.getText());
+ assertEquals("extend blue underline, span start", EXPECTED_SPAN_START, spanBefore.mStart);
+ assertEquals("extend blue underline, span end", EXPECTED_SPAN_END, spanBefore.mEnd);
+ assertEquals("extend blue underline, span color", true,
+ spanBefore.isAutoCorrectionIndicator());
+ sleep(DELAY_TO_WAIT_FOR_UNDERLINE);
+ runMessages();
+ // Now we have been able to re-evaluate the word, there shouldn't be an auto-correction span
+ final Span spanAfter = new Span(mTextView.getText());
+ assertNull("hide blue underline", spanAfter.mSpan);
+ }
+
+ public void testBlueUnderlineOnBackspace() {
+ final String STRING_TO_TYPE = "tgis";
+ final int EXPECTED_SPAN_START = 0;
+ final int EXPECTED_SPAN_END = 4;
+ type(STRING_TO_TYPE);
+ sleep(DELAY_TO_WAIT_FOR_UNDERLINE);
+ runMessages();
+ type(Keyboard.CODE_SPACE);
+ sleep(DELAY_TO_WAIT_FOR_UNDERLINE);
+ runMessages();
+ type(Keyboard.CODE_DELETE);
+ sleep(DELAY_TO_WAIT_FOR_UNDERLINE);
+ runMessages();
+ type(Keyboard.CODE_DELETE);
+ sleep(DELAY_TO_WAIT_FOR_UNDERLINE);
+ runMessages();
+ final Span span = new Span(mTextView.getText());
+ assertEquals("show blue underline after backspace, span start",
+ EXPECTED_SPAN_START, span.mStart);
+ assertEquals("show blue underline after backspace, span end",
+ EXPECTED_SPAN_END, span.mEnd);
+ assertEquals("show blue underline after backspace, span color", true,
+ span.isAutoCorrectionIndicator());
+ }
+
+ public void testBlueUnderlineDisappearsWhenCursorMoved() {
+ final String STRING_TO_TYPE = "tgis";
+ final int NEW_CURSOR_POSITION = 0;
+ type(STRING_TO_TYPE);
+ sleep(DELAY_TO_WAIT_FOR_UNDERLINE);
+ // Simulate the onUpdateSelection() event
+ mLatinIME.onUpdateSelection(0, 0, STRING_TO_TYPE.length(), STRING_TO_TYPE.length(), -1, -1);
+ runMessages();
+ // Here the blue underline has been set. testBlueUnderline() is testing for this already,
+ // so let's not test it here again.
+ // Now simulate the user moving the cursor.
+ mInputConnection.setSelection(NEW_CURSOR_POSITION, NEW_CURSOR_POSITION);
+ mLatinIME.onUpdateSelection(0, 0, NEW_CURSOR_POSITION, NEW_CURSOR_POSITION, -1, -1);
+ sleep(DELAY_TO_WAIT_FOR_UNDERLINE);
+ runMessages();
+ final Span span = new Span(mTextView.getText());
+ assertNull("blue underline removed when cursor is moved", span.mSpan);
+ }
+}
diff --git a/tests/src/com/android/inputmethod/latin/InputLogicFrenchTests.java b/tests/src/com/android/inputmethod/latin/InputLogicFrenchTests.java
new file mode 100644
index 000000000..5db120d82
--- /dev/null
+++ b/tests/src/com/android/inputmethod/latin/InputLogicFrenchTests.java
@@ -0,0 +1,59 @@
+/*
+ * Copyright (C) 2012 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not
+ * use this file except in compliance with the License. You may obtain a copy of
+ * the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+ * License for the specific language governing permissions and limitations under
+ * the License.
+ */
+
+package com.android.inputmethod.latin;
+
+import com.android.inputmethod.keyboard.Keyboard;
+
+public class InputLogicFrenchTests extends InputTestsBase {
+
+ public void testAutoCorrectForFrench() {
+ final String STRING_TO_TYPE = "irq ";
+ final String EXPECTED_RESULT = "ira ";
+ changeLanguage("fr");
+ type(STRING_TO_TYPE);
+ assertEquals("simple auto-correct for French", EXPECTED_RESULT,
+ mTextView.getText().toString());
+ }
+
+ public void testManualPickThenSeparatorForFrench() {
+ final String WORD1_TO_TYPE = "test";
+ final String WORD2_TO_TYPE = "!";
+ final String EXPECTED_RESULT = "test !";
+ changeLanguage("fr");
+ type(WORD1_TO_TYPE);
+ mLatinIME.pickSuggestionManually(0, WORD1_TO_TYPE);
+ type(WORD2_TO_TYPE);
+ assertEquals("manual pick then separator for French", EXPECTED_RESULT,
+ mTextView.getText().toString());
+ }
+
+ public void testWordThenSpaceThenPunctuationFromStripTwiceForFrench() {
+ final String WORD_TO_TYPE = "test ";
+ final String PUNCTUATION_FROM_STRIP = "!";
+ final String EXPECTED_RESULT = "test !!";
+ changeLanguage("fr");
+ type(WORD_TO_TYPE);
+ sleep(DELAY_TO_WAIT_FOR_UNDERLINE);
+ runMessages();
+ assertTrue("type word then type space should display punctuation strip",
+ mLatinIME.isShowingPunctuationList());
+ mLatinIME.pickSuggestionManually(0, PUNCTUATION_FROM_STRIP);
+ mLatinIME.pickSuggestionManually(0, PUNCTUATION_FROM_STRIP);
+ assertEquals("type word then type space then punctuation from strip twice for French",
+ EXPECTED_RESULT, mTextView.getText().toString());
+ }
+}
diff --git a/tests/src/com/android/inputmethod/latin/InputLogicTests.java b/tests/src/com/android/inputmethod/latin/InputLogicTests.java
index cbfe8b212..11eb6ab19 100644
--- a/tests/src/com/android/inputmethod/latin/InputLogicTests.java
+++ b/tests/src/com/android/inputmethod/latin/InputLogicTests.java
@@ -109,15 +109,6 @@ public class InputLogicTests extends InputTestsBase {
assertEquals("simple auto-correct", EXPECTED_RESULT, mTextView.getText().toString());
}
- public void testAutoCorrectForFrench() {
- final String STRING_TO_TYPE = "irq ";
- final String EXPECTED_RESULT = "ira ";
- changeLanguage("fr");
- type(STRING_TO_TYPE);
- assertEquals("simple auto-correct for French", EXPECTED_RESULT,
- mTextView.getText().toString());
- }
-
public void testAutoCorrectWithPeriod() {
final String STRING_TO_TYPE = "tgis.";
final String EXPECTED_RESULT = "this.";
@@ -205,71 +196,6 @@ public class InputLogicTests extends InputTestsBase {
assertEquals("manual pick then separator", EXPECTED_RESULT, mTextView.getText().toString());
}
- public void testWordThenSpaceThenPunctuationFromStripTwice() {
- final String WORD_TO_TYPE = "this ";
- final String PUNCTUATION_FROM_STRIP = "!";
- final String EXPECTED_RESULT = "this!! ";
- type(WORD_TO_TYPE);
- sleep(DELAY_TO_WAIT_FOR_UNDERLINE);
- runMessages();
- assertTrue("type word then type space should display punctuation strip",
- mLatinIME.isShowingPunctuationList());
- mLatinIME.pickSuggestionManually(0, PUNCTUATION_FROM_STRIP);
- mLatinIME.pickSuggestionManually(0, PUNCTUATION_FROM_STRIP);
- assertEquals("type word then type space then punctuation from strip twice", EXPECTED_RESULT,
- mTextView.getText().toString());
- }
-
- public void testManualPickThenSeparatorForFrench() {
- final String WORD1_TO_TYPE = "test";
- final String WORD2_TO_TYPE = "!";
- final String EXPECTED_RESULT = "test !";
- changeLanguage("fr");
- type(WORD1_TO_TYPE);
- mLatinIME.pickSuggestionManually(0, WORD1_TO_TYPE);
- type(WORD2_TO_TYPE);
- assertEquals("manual pick then separator for French", EXPECTED_RESULT,
- mTextView.getText().toString());
- }
-
- public void testWordThenSpaceThenPunctuationFromStripTwiceForFrench() {
- final String WORD_TO_TYPE = "test ";
- final String PUNCTUATION_FROM_STRIP = "!";
- final String EXPECTED_RESULT = "test !!";
- changeLanguage("fr");
- type(WORD_TO_TYPE);
- sleep(DELAY_TO_WAIT_FOR_UNDERLINE);
- runMessages();
- assertTrue("type word then type space should display punctuation strip",
- mLatinIME.isShowingPunctuationList());
- mLatinIME.pickSuggestionManually(0, PUNCTUATION_FROM_STRIP);
- mLatinIME.pickSuggestionManually(0, PUNCTUATION_FROM_STRIP);
- assertEquals("type word then type space then punctuation from strip twice for French",
- EXPECTED_RESULT, mTextView.getText().toString());
- }
-
- public void testWordThenSpaceThenPunctuationFromKeyboardTwice() {
- final String WORD_TO_TYPE = "this !!";
- final String EXPECTED_RESULT = "this !!";
- type(WORD_TO_TYPE);
- assertEquals("manual pick then space then punctuation from keyboard twice", EXPECTED_RESULT,
- mTextView.getText().toString());
- }
-
- public void testManualPickThenPunctuationFromStripTwiceThenType() {
- final String WORD1_TO_TYPE = "this";
- final String WORD2_TO_TYPE = "is";
- final String PUNCTUATION_FROM_STRIP = "!";
- final String EXPECTED_RESULT = "this!! is";
- type(WORD1_TO_TYPE);
- mLatinIME.pickSuggestionManually(0, WORD1_TO_TYPE);
- mLatinIME.pickSuggestionManually(0, PUNCTUATION_FROM_STRIP);
- mLatinIME.pickSuggestionManually(0, PUNCTUATION_FROM_STRIP);
- type(WORD2_TO_TYPE);
- assertEquals("pick word then pick punctuation twice then type", EXPECTED_RESULT,
- mTextView.getText().toString());
- }
-
public void testManualPickThenSpaceThenType() {
final String WORD1_TO_TYPE = "this";
final String WORD2_TO_TYPE = " is";
@@ -295,17 +221,6 @@ public class InputLogicTests extends InputTestsBase {
mTextView.getText().toString());
}
- public void testManualPickThenManualPickWithPunctAtStart() {
- final String WORD1_TO_TYPE = "this";
- final String WORD2_TO_PICK = "!is";
- final String EXPECTED_RESULT = "this!is";
- type(WORD1_TO_TYPE);
- mLatinIME.pickSuggestionManually(0, WORD1_TO_TYPE);
- mLatinIME.pickSuggestionManually(1, WORD2_TO_PICK);
- assertEquals("manual pick then manual pick a word with punct at start", EXPECTED_RESULT,
- mTextView.getText().toString());
- }
-
public void testDeleteWholeComposingWord() {
final String WORD_TO_TYPE = "this";
type(WORD_TO_TYPE);
@@ -314,166 +229,5 @@ public class InputLogicTests extends InputTestsBase {
}
assertEquals("delete whole composing word", "", mTextView.getText().toString());
}
-
- public void testManuallyPickedWordThenColon() {
- final String WORD_TO_TYPE = "this";
- final String PUNCTUATION = ":";
- final String EXPECTED_RESULT = "this:";
- type(WORD_TO_TYPE);
- mLatinIME.pickSuggestionManually(0, WORD_TO_TYPE);
- type(PUNCTUATION);
- assertEquals("manually pick word then colon",
- EXPECTED_RESULT, mTextView.getText().toString());
- }
-
- public void testManuallyPickedWordThenOpenParen() {
- final String WORD_TO_TYPE = "this";
- final String PUNCTUATION = "(";
- final String EXPECTED_RESULT = "this (";
- type(WORD_TO_TYPE);
- mLatinIME.pickSuggestionManually(0, WORD_TO_TYPE);
- type(PUNCTUATION);
- assertEquals("manually pick word then open paren",
- EXPECTED_RESULT, mTextView.getText().toString());
- }
-
- public void testManuallyPickedWordThenCloseParen() {
- final String WORD_TO_TYPE = "this";
- final String PUNCTUATION = ")";
- final String EXPECTED_RESULT = "this)";
- type(WORD_TO_TYPE);
- mLatinIME.pickSuggestionManually(0, WORD_TO_TYPE);
- type(PUNCTUATION);
- assertEquals("manually pick word then close paren",
- EXPECTED_RESULT, mTextView.getText().toString());
- }
-
- public void testManuallyPickedWordThenSmiley() {
- final String WORD_TO_TYPE = "this";
- final String SPECIAL_KEY = ":-)";
- final String EXPECTED_RESULT = "this :-)";
- type(WORD_TO_TYPE);
- mLatinIME.pickSuggestionManually(0, WORD_TO_TYPE);
- mLatinIME.onTextInput(SPECIAL_KEY);
- assertEquals("manually pick word then press the smiley key",
- EXPECTED_RESULT, mTextView.getText().toString());
- }
-
- public void testManuallyPickedWordThenDotCom() {
- final String WORD_TO_TYPE = "this";
- final String SPECIAL_KEY = ".com";
- final String EXPECTED_RESULT = "this.com";
- type(WORD_TO_TYPE);
- mLatinIME.pickSuggestionManually(0, WORD_TO_TYPE);
- mLatinIME.onTextInput(SPECIAL_KEY);
- assertEquals("manually pick word then press the .com key",
- EXPECTED_RESULT, mTextView.getText().toString());
- }
-
- public void testTypeWordTypeDotThenPressDotCom() {
- final String WORD_TO_TYPE = "this.";
- final String SPECIAL_KEY = ".com";
- final String EXPECTED_RESULT = "this.com";
- type(WORD_TO_TYPE);
- mLatinIME.onTextInput(SPECIAL_KEY);
- assertEquals("type word type dot then press the .com key",
- EXPECTED_RESULT, mTextView.getText().toString());
- }
-
- public void testAutoCorrectionWithSingleQuoteInside() {
- final String WORD_TO_TYPE = "you'f ";
- final String EXPECTED_RESULT = "you'd ";
- type(WORD_TO_TYPE);
- assertEquals("auto-correction with single quote inside",
- EXPECTED_RESULT, mTextView.getText().toString());
- }
-
- public void testAutoCorrectionWithSingleQuotesAround() {
- final String WORD_TO_TYPE = "'tgis' ";
- final String EXPECTED_RESULT = "'this' ";
- type(WORD_TO_TYPE);
- assertEquals("auto-correction with single quotes around",
- EXPECTED_RESULT, mTextView.getText().toString());
- }
-
- public void testBlueUnderline() {
- final String STRING_TO_TYPE = "tgis";
- final int EXPECTED_SPAN_START = 0;
- final int EXPECTED_SPAN_END = 4;
- type(STRING_TO_TYPE);
- sleep(DELAY_TO_WAIT_FOR_UNDERLINE);
- runMessages();
- final Span span = new Span(mTextView.getText());
- assertEquals("show blue underline, span start", EXPECTED_SPAN_START, span.mStart);
- assertEquals("show blue underline, span end", EXPECTED_SPAN_END, span.mEnd);
- assertEquals("show blue underline, span color", true, span.isAutoCorrectionIndicator());
- }
-
- public void testBlueUnderlineDisappears() {
- final String STRING_1_TO_TYPE = "tgis";
- final String STRING_2_TO_TYPE = "q";
- final int EXPECTED_SPAN_START = 0;
- final int EXPECTED_SPAN_END = 5;
- type(STRING_1_TO_TYPE);
- sleep(DELAY_TO_WAIT_FOR_UNDERLINE);
- runMessages();
- type(STRING_2_TO_TYPE);
- // We haven't have time to look into the dictionary yet, so the line should still be
- // blue to avoid any flicker.
- final Span spanBefore = new Span(mTextView.getText());
- assertEquals("extend blue underline, span start", EXPECTED_SPAN_START, spanBefore.mStart);
- assertEquals("extend blue underline, span end", EXPECTED_SPAN_END, spanBefore.mEnd);
- assertEquals("extend blue underline, span color", true,
- spanBefore.isAutoCorrectionIndicator());
- sleep(DELAY_TO_WAIT_FOR_UNDERLINE);
- runMessages();
- // Now we have been able to re-evaluate the word, there shouldn't be an auto-correction span
- final Span spanAfter = new Span(mTextView.getText());
- assertNull("hide blue underline", spanAfter.mSpan);
- }
-
- public void testBlueUnderlineOnBackspace() {
- final String STRING_TO_TYPE = "tgis";
- final int EXPECTED_SPAN_START = 0;
- final int EXPECTED_SPAN_END = 4;
- type(STRING_TO_TYPE);
- sleep(DELAY_TO_WAIT_FOR_UNDERLINE);
- runMessages();
- type(Keyboard.CODE_SPACE);
- sleep(DELAY_TO_WAIT_FOR_UNDERLINE);
- runMessages();
- type(Keyboard.CODE_DELETE);
- sleep(DELAY_TO_WAIT_FOR_UNDERLINE);
- runMessages();
- type(Keyboard.CODE_DELETE);
- sleep(DELAY_TO_WAIT_FOR_UNDERLINE);
- runMessages();
- final Span span = new Span(mTextView.getText());
- assertEquals("show blue underline after backspace, span start",
- EXPECTED_SPAN_START, span.mStart);
- assertEquals("show blue underline after backspace, span end",
- EXPECTED_SPAN_END, span.mEnd);
- assertEquals("show blue underline after backspace, span color", true,
- span.isAutoCorrectionIndicator());
- }
-
- public void testBlueUnderlineDisappearsWhenCursorMoved() {
- final String STRING_TO_TYPE = "tgis";
- final int NEW_CURSOR_POSITION = 0;
- type(STRING_TO_TYPE);
- sleep(DELAY_TO_WAIT_FOR_UNDERLINE);
- // Simulate the onUpdateSelection() event
- mLatinIME.onUpdateSelection(0, 0, STRING_TO_TYPE.length(), STRING_TO_TYPE.length(), -1, -1);
- runMessages();
- // Here the blue underline has been set. testBlueUnderline() is testing for this already,
- // so let's not test it here again.
- // Now simulate the user moving the cursor.
- mInputConnection.setSelection(NEW_CURSOR_POSITION, NEW_CURSOR_POSITION);
- mLatinIME.onUpdateSelection(0, 0, NEW_CURSOR_POSITION, NEW_CURSOR_POSITION, -1, -1);
- sleep(DELAY_TO_WAIT_FOR_UNDERLINE);
- runMessages();
- final Span span = new Span(mTextView.getText());
- assertNull("blue underline removed when cursor is moved", span.mSpan);
- }
// TODO: Add some tests for non-BMP characters
}
diff --git a/tests/src/com/android/inputmethod/latin/PunctuationTests.java b/tests/src/com/android/inputmethod/latin/PunctuationTests.java
new file mode 100644
index 000000000..cc549bceb
--- /dev/null
+++ b/tests/src/com/android/inputmethod/latin/PunctuationTests.java
@@ -0,0 +1,151 @@
+/*
+ * Copyright (C) 2012 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not
+ * use this file except in compliance with the License. You may obtain a copy of
+ * the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+ * License for the specific language governing permissions and limitations under
+ * the License.
+ */
+
+package com.android.inputmethod.latin;
+
+import com.android.inputmethod.keyboard.Keyboard;
+
+public class PunctuationTests extends InputTestsBase {
+
+ public void testWordThenSpaceThenPunctuationFromStripTwice() {
+ final String WORD_TO_TYPE = "this ";
+ final String PUNCTUATION_FROM_STRIP = "!";
+ final String EXPECTED_RESULT = "this!! ";
+ type(WORD_TO_TYPE);
+ sleep(DELAY_TO_WAIT_FOR_UNDERLINE);
+ runMessages();
+ assertTrue("type word then type space should display punctuation strip",
+ mLatinIME.isShowingPunctuationList());
+ mLatinIME.pickSuggestionManually(0, PUNCTUATION_FROM_STRIP);
+ mLatinIME.pickSuggestionManually(0, PUNCTUATION_FROM_STRIP);
+ assertEquals("type word then type space then punctuation from strip twice", EXPECTED_RESULT,
+ mTextView.getText().toString());
+ }
+
+ public void testWordThenSpaceThenPunctuationFromKeyboardTwice() {
+ final String WORD_TO_TYPE = "this !!";
+ final String EXPECTED_RESULT = "this !!";
+ type(WORD_TO_TYPE);
+ assertEquals("manual pick then space then punctuation from keyboard twice", EXPECTED_RESULT,
+ mTextView.getText().toString());
+ }
+
+ public void testManualPickThenPunctuationFromStripTwiceThenType() {
+ final String WORD1_TO_TYPE = "this";
+ final String WORD2_TO_TYPE = "is";
+ final String PUNCTUATION_FROM_STRIP = "!";
+ final String EXPECTED_RESULT = "this!! is";
+ type(WORD1_TO_TYPE);
+ mLatinIME.pickSuggestionManually(0, WORD1_TO_TYPE);
+ mLatinIME.pickSuggestionManually(0, PUNCTUATION_FROM_STRIP);
+ mLatinIME.pickSuggestionManually(0, PUNCTUATION_FROM_STRIP);
+ type(WORD2_TO_TYPE);
+ assertEquals("pick word then pick punctuation twice then type", EXPECTED_RESULT,
+ mTextView.getText().toString());
+ }
+
+ public void testManualPickThenManualPickWithPunctAtStart() {
+ final String WORD1_TO_TYPE = "this";
+ final String WORD2_TO_PICK = "!is";
+ final String EXPECTED_RESULT = "this!is";
+ type(WORD1_TO_TYPE);
+ mLatinIME.pickSuggestionManually(0, WORD1_TO_TYPE);
+ mLatinIME.pickSuggestionManually(1, WORD2_TO_PICK);
+ assertEquals("manual pick then manual pick a word with punct at start", EXPECTED_RESULT,
+ mTextView.getText().toString());
+ }
+
+ public void testManuallyPickedWordThenColon() {
+ final String WORD_TO_TYPE = "this";
+ final String PUNCTUATION = ":";
+ final String EXPECTED_RESULT = "this:";
+ type(WORD_TO_TYPE);
+ mLatinIME.pickSuggestionManually(0, WORD_TO_TYPE);
+ type(PUNCTUATION);
+ assertEquals("manually pick word then colon",
+ EXPECTED_RESULT, mTextView.getText().toString());
+ }
+
+ public void testManuallyPickedWordThenOpenParen() {
+ final String WORD_TO_TYPE = "this";
+ final String PUNCTUATION = "(";
+ final String EXPECTED_RESULT = "this (";
+ type(WORD_TO_TYPE);
+ mLatinIME.pickSuggestionManually(0, WORD_TO_TYPE);
+ type(PUNCTUATION);
+ assertEquals("manually pick word then open paren",
+ EXPECTED_RESULT, mTextView.getText().toString());
+ }
+
+ public void testManuallyPickedWordThenCloseParen() {
+ final String WORD_TO_TYPE = "this";
+ final String PUNCTUATION = ")";
+ final String EXPECTED_RESULT = "this)";
+ type(WORD_TO_TYPE);
+ mLatinIME.pickSuggestionManually(0, WORD_TO_TYPE);
+ type(PUNCTUATION);
+ assertEquals("manually pick word then close paren",
+ EXPECTED_RESULT, mTextView.getText().toString());
+ }
+
+ public void testManuallyPickedWordThenSmiley() {
+ final String WORD_TO_TYPE = "this";
+ final String SPECIAL_KEY = ":-)";
+ final String EXPECTED_RESULT = "this :-)";
+ type(WORD_TO_TYPE);
+ mLatinIME.pickSuggestionManually(0, WORD_TO_TYPE);
+ mLatinIME.onTextInput(SPECIAL_KEY);
+ assertEquals("manually pick word then press the smiley key",
+ EXPECTED_RESULT, mTextView.getText().toString());
+ }
+
+ public void testManuallyPickedWordThenDotCom() {
+ final String WORD_TO_TYPE = "this";
+ final String SPECIAL_KEY = ".com";
+ final String EXPECTED_RESULT = "this.com";
+ type(WORD_TO_TYPE);
+ mLatinIME.pickSuggestionManually(0, WORD_TO_TYPE);
+ mLatinIME.onTextInput(SPECIAL_KEY);
+ assertEquals("manually pick word then press the .com key",
+ EXPECTED_RESULT, mTextView.getText().toString());
+ }
+
+ public void testTypeWordTypeDotThenPressDotCom() {
+ final String WORD_TO_TYPE = "this.";
+ final String SPECIAL_KEY = ".com";
+ final String EXPECTED_RESULT = "this.com";
+ type(WORD_TO_TYPE);
+ mLatinIME.onTextInput(SPECIAL_KEY);
+ assertEquals("type word type dot then press the .com key",
+ EXPECTED_RESULT, mTextView.getText().toString());
+ }
+
+ public void testAutoCorrectionWithSingleQuoteInside() {
+ final String WORD_TO_TYPE = "you'f ";
+ final String EXPECTED_RESULT = "you'd ";
+ type(WORD_TO_TYPE);
+ assertEquals("auto-correction with single quote inside",
+ EXPECTED_RESULT, mTextView.getText().toString());
+ }
+
+ public void testAutoCorrectionWithSingleQuotesAround() {
+ final String WORD_TO_TYPE = "'tgis' ";
+ final String EXPECTED_RESULT = "'this' ";
+ type(WORD_TO_TYPE);
+ assertEquals("auto-correction with single quotes around",
+ EXPECTED_RESULT, mTextView.getText().toString());
+ }
+}