Add a test for Armenian periods.

Bug: 11463389
Change-Id: Ic1a612bd6b2693369a1688e6a2273cff26fbe6d1
main
Jean Chalard 2014-02-17 14:15:57 +09:00
parent 4c45fff240
commit bfea7dec1a
2 changed files with 26 additions and 19 deletions

View File

@ -111,24 +111,16 @@ public class ShiftModeTests extends InputTestsBase {
assertTrue("(Spanish) Auto caps after inverted bang", isCapsModeAutoShifted());
}
public void DISABLED_testOtherSentenceSeparators() {
// We only run this test on Kitkat+ because previous versions of Android don't
// have an Armenian locale. For some reason I don't know, when the requested
// locale is not present as a device locale, then the application under test can't
// access the resources in that locale -- though it works when the app is actually
// running on the device and not under test. If we ever figure out what's going
// on, remove this test.
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
changeLanguage("hy-AM");
assertTrue("(Armenian) Auto caps at start", isCapsModeAutoShifted());
type("Hey. ");
assertFalse("(Armenian) No auto-caps after latin period", isCapsModeAutoShifted());
type("Hey\u0589");
assertFalse("(Armenian) No auto-caps directly after armenian period",
isCapsModeAutoShifted());
type(" ");
assertTrue("(Armenian) Auto-caps after armenian period-whitespace",
isCapsModeAutoShifted());
}
public void testOtherSentenceSeparators() {
changeLanguage("hy_AM");
assertTrue("(Armenian) Auto caps at start", isCapsModeAutoShifted());
type("Hey. ");
assertFalse("(Armenian) No auto-caps after latin period", isCapsModeAutoShifted());
type("Hey\u0589");
assertFalse("(Armenian) No auto-caps directly after armenian period",
isCapsModeAutoShifted());
type(" ");
assertTrue("(Armenian) Auto-caps after armenian period-whitespace",
isCapsModeAutoShifted());
}
}

View File

@ -22,6 +22,7 @@ import android.test.suitebuilder.annotation.SmallTest;
import android.text.TextUtils;
import com.android.inputmethod.latin.settings.SpacingAndPunctuations;
import com.android.inputmethod.latin.utils.LocaleUtils;
import java.util.Locale;
@ -109,5 +110,19 @@ public class CapsModeUtilsTests extends AndroidTestCase {
allPathsForCaps("Liebe Sara, \n ", c | w | s, sp, false);
allPathsForCaps("Liebe Sara \n ", c | w | s, sp, false);
allPathsForCaps("Liebe Sara.\n ", c | w | s, sp, false);
// Test armenian period
sp = job.runInLocale(res, LocaleUtils.constructLocaleFromString("hy_AM"));
assertTrue("Period is not sentence separator in Armenian",
!sp.isSentenceSeparator('.'));
assertTrue("Sentence separator is Armenian period in Armenian",
sp.isSentenceSeparator(0x589));
// No space : capitalize only if MODE_CHARACTERS
allPathsForCaps("Word", c, sp, false);
allPathsForCaps("Word.", c, sp, false);
// Space, but no armenian period : capitalize if MODE_WORDS but not SENTENCES
allPathsForCaps("Word. ", c | w, sp, false);
// Armenian period : capitalize if MODE_SENTENCES
allPathsForCaps("Word\u0589 ", c | w | s, sp, false);
}
}