diff options
Diffstat (limited to 'tests/src/com/android/inputmethod/latin/StringUtilsTests.java')
-rw-r--r-- | tests/src/com/android/inputmethod/latin/StringUtilsTests.java | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/tests/src/com/android/inputmethod/latin/StringUtilsTests.java b/tests/src/com/android/inputmethod/latin/StringUtilsTests.java index 5db06ef51..0cef28c74 100644 --- a/tests/src/com/android/inputmethod/latin/StringUtilsTests.java +++ b/tests/src/com/android/inputmethod/latin/StringUtilsTests.java @@ -17,6 +17,7 @@ package com.android.inputmethod.latin; import android.test.AndroidTestCase; +import android.text.TextUtils; public class StringUtilsTests extends AndroidTestCase { public void testContainsInArray() { @@ -99,4 +100,44 @@ public class StringUtilsTests extends AndroidTestCase { assertFalse("lower-case string", StringUtils.hasUpperCase("string")); assertFalse("lower-case string with non-letters", StringUtils.hasUpperCase("he's")); } + + private void onePathForCaps(final CharSequence cs, final int expectedResult, final int mask) { + int oneTimeResult = expectedResult & mask; + assertEquals("After >" + cs + "<", oneTimeResult, StringUtils.getCapsMode(cs, mask)); + } + + private void allPathsForCaps(final CharSequence cs, final int expectedResult) { + final int c = TextUtils.CAP_MODE_CHARACTERS; + final int w = TextUtils.CAP_MODE_WORDS; + final int s = TextUtils.CAP_MODE_SENTENCES; + onePathForCaps(cs, expectedResult, c | w | s); + onePathForCaps(cs, expectedResult, w | s); + onePathForCaps(cs, expectedResult, c | s); + onePathForCaps(cs, expectedResult, c | w); + onePathForCaps(cs, expectedResult, c); + onePathForCaps(cs, expectedResult, w); + onePathForCaps(cs, expectedResult, s); + } + + public void testGetCapsMode() { + final int c = TextUtils.CAP_MODE_CHARACTERS; + final int w = TextUtils.CAP_MODE_WORDS; + final int s = TextUtils.CAP_MODE_SENTENCES; + allPathsForCaps("", c | w | s); + allPathsForCaps("Word", c); + allPathsForCaps("Word.", c); + allPathsForCaps("Word ", c | w); + allPathsForCaps("Word. ", c | w | s); + allPathsForCaps("Word..", c); + allPathsForCaps("Word.. ", c | w | s); + allPathsForCaps("Word... ", c | w | s); + allPathsForCaps("Word ... ", c | w | s); + allPathsForCaps("Word . ", c | w); + allPathsForCaps("In the U.S ", c | w); + allPathsForCaps("In the U.S. ", c | w); + allPathsForCaps("Some stuff (e.g. ", c | w); + allPathsForCaps("In the U.S.. ", c | w | s); + allPathsForCaps("\"Word.\" ", c | w | s); + allPathsForCaps("\"Word\" ", c | w); + } } |