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()); assertTrue("(Spanish) Auto caps after inverted bang", isCapsModeAutoShifted());
} }
public void DISABLED_testOtherSentenceSeparators() { public void testOtherSentenceSeparators() {
// We only run this test on Kitkat+ because previous versions of Android don't changeLanguage("hy_AM");
// have an Armenian locale. For some reason I don't know, when the requested assertTrue("(Armenian) Auto caps at start", isCapsModeAutoShifted());
// locale is not present as a device locale, then the application under test can't type("Hey. ");
// access the resources in that locale -- though it works when the app is actually assertFalse("(Armenian) No auto-caps after latin period", isCapsModeAutoShifted());
// running on the device and not under test. If we ever figure out what's going type("Hey\u0589");
// on, remove this test. assertFalse("(Armenian) No auto-caps directly after armenian period",
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) { isCapsModeAutoShifted());
changeLanguage("hy-AM"); type(" ");
assertTrue("(Armenian) Auto caps at start", isCapsModeAutoShifted()); assertTrue("(Armenian) Auto-caps after armenian period-whitespace",
type("Hey. "); isCapsModeAutoShifted());
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 android.text.TextUtils;
import com.android.inputmethod.latin.settings.SpacingAndPunctuations; import com.android.inputmethod.latin.settings.SpacingAndPunctuations;
import com.android.inputmethod.latin.utils.LocaleUtils;
import java.util.Locale; 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); 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);
} }
} }