aboutsummaryrefslogtreecommitdiffstats
path: root/tests/src
diff options
context:
space:
mode:
Diffstat (limited to 'tests/src')
-rw-r--r--tests/src/com/android/inputmethod/compat/TextInfoCompatUtilsTests.java86
-rw-r--r--tests/src/com/android/inputmethod/keyboard/KeyboardLayoutSetSubtypesCountTests.java2
-rw-r--r--tests/src/com/android/inputmethod/keyboard/KeyboardThemeTests.java53
-rw-r--r--tests/src/com/android/inputmethod/keyboard/layout/Bengali.java15
-rw-r--r--tests/src/com/android/inputmethod/keyboard/layout/Kannada.java197
-rw-r--r--tests/src/com/android/inputmethod/keyboard/layout/Malayalam.java188
-rw-r--r--tests/src/com/android/inputmethod/keyboard/layout/Myanmar.java44
-rw-r--r--tests/src/com/android/inputmethod/keyboard/layout/Tamil.java150
-rw-r--r--tests/src/com/android/inputmethod/keyboard/layout/Telugu.java189
-rw-r--r--tests/src/com/android/inputmethod/keyboard/layout/tests/TestsKannadaIN.java37
-rw-r--r--tests/src/com/android/inputmethod/keyboard/layout/tests/TestsMalayalamIN.java37
-rw-r--r--tests/src/com/android/inputmethod/keyboard/layout/tests/TestsTamilIN.java37
-rw-r--r--tests/src/com/android/inputmethod/keyboard/layout/tests/TestsTeluguIN.java37
13 files changed, 1038 insertions, 34 deletions
diff --git a/tests/src/com/android/inputmethod/compat/TextInfoCompatUtilsTests.java b/tests/src/com/android/inputmethod/compat/TextInfoCompatUtilsTests.java
new file mode 100644
index 000000000..c399cced6
--- /dev/null
+++ b/tests/src/com/android/inputmethod/compat/TextInfoCompatUtilsTests.java
@@ -0,0 +1,86 @@
+/*
+ * Copyright (C) 2014 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.compat;
+
+import android.graphics.Typeface;
+import android.os.Parcel;
+import android.test.AndroidTestCase;
+import android.test.suitebuilder.annotation.SmallTest;
+import android.text.SpannableString;
+import android.text.Spanned;
+import android.text.TextUtils;
+import android.text.style.StyleSpan;
+import android.text.style.URLSpan;
+import android.view.textservice.TextInfo;
+
+import java.util.Arrays;
+
+@SmallTest
+public class TextInfoCompatUtilsTests extends AndroidTestCase {
+ final private static String TEST_TEXT = "0123456789";
+ final private static int TEST_COOKIE = 0x1234;
+ final private static int TEST_SEQUENCE_NUMBER = 0x4321;
+ final private static int TEST_CHAR_SEQUENCE_START = 1;
+ final private static int TEST_CHAR_SEQUENCE_END = 6;
+ final private static StyleSpan TEST_STYLE_SPAN = new StyleSpan(Typeface.BOLD);
+ final private static int TEST_STYLE_SPAN_START = 4;
+ final private static int TEST_STYLE_SPAN_END = 5;
+ final private static int TEST_STYLE_SPAN_FLAGS = Spanned.SPAN_EXCLUSIVE_INCLUSIVE;
+ final private static URLSpan TEST_URL_SPAN_URL = new URLSpan("http://example.com");
+ final private static int TEST_URL_SPAN_START = 3;
+ final private static int TEST_URL_SPAN_END = 7;
+ final private static int TEST_URL_SPAN_FLAGS = Spanned.SPAN_EXCLUSIVE_EXCLUSIVE;
+
+ public void testGetCharSequence() {
+ final SpannableString text = new SpannableString(TEST_TEXT);
+ text.setSpan(TEST_STYLE_SPAN, TEST_STYLE_SPAN_START, TEST_STYLE_SPAN_END,
+ TEST_STYLE_SPAN_FLAGS);
+ text.setSpan(TEST_URL_SPAN_URL, TEST_URL_SPAN_START, TEST_URL_SPAN_END,
+ TEST_URL_SPAN_FLAGS);
+
+ final TextInfo textInfo = TextInfoCompatUtils.newInstance(text,
+ TEST_CHAR_SEQUENCE_START, TEST_CHAR_SEQUENCE_END, TEST_COOKIE,
+ TEST_SEQUENCE_NUMBER);
+ final Spanned expectedSpanned = (Spanned) text.subSequence(TEST_CHAR_SEQUENCE_START,
+ TEST_CHAR_SEQUENCE_END);
+ final CharSequence actualCharSequence =
+ TextInfoCompatUtils.getCharSequenceOrString(textInfo);
+
+ // This should be valid even if TextInfo#getCharSequence is not supported.
+ assertTrue(TextUtils.equals(expectedSpanned, actualCharSequence));
+
+ if (TextInfoCompatUtils.isCharSequenceSupported()) {
+ // This is valid only if TextInfo#getCharSequence is supported.
+ assertTrue("should be Spanned", actualCharSequence instanceof Spanned);
+ assertTrue(Arrays.equals(marshall(expectedSpanned), marshall(actualCharSequence)));
+ }
+ }
+
+ private static byte[] marshall(final CharSequence cahrSequence) {
+ Parcel parcel = null;
+ try {
+ parcel = Parcel.obtain();
+ TextUtils.writeToParcel(cahrSequence, parcel, 0);
+ return parcel.marshall();
+ } finally {
+ if (parcel != null) {
+ parcel.recycle();
+ parcel = null;
+ }
+ }
+ }
+}
diff --git a/tests/src/com/android/inputmethod/keyboard/KeyboardLayoutSetSubtypesCountTests.java b/tests/src/com/android/inputmethod/keyboard/KeyboardLayoutSetSubtypesCountTests.java
index 6ee6adbba..eb67bc134 100644
--- a/tests/src/com/android/inputmethod/keyboard/KeyboardLayoutSetSubtypesCountTests.java
+++ b/tests/src/com/android/inputmethod/keyboard/KeyboardLayoutSetSubtypesCountTests.java
@@ -25,7 +25,7 @@ import java.util.ArrayList;
@SmallTest
public class KeyboardLayoutSetSubtypesCountTests extends KeyboardLayoutSetTestsBase {
- private static final int NUMBER_OF_SUBTYPES = 73;
+ private static final int NUMBER_OF_SUBTYPES = 77;
private static final int NUMBER_OF_ASCII_CAPABLE_SUBTYPES = 45;
private static final int NUMBER_OF_PREDEFINED_ADDITIONAL_SUBTYPES = 2;
diff --git a/tests/src/com/android/inputmethod/keyboard/KeyboardThemeTests.java b/tests/src/com/android/inputmethod/keyboard/KeyboardThemeTests.java
index f9d98afa2..0c7e4000e 100644
--- a/tests/src/com/android/inputmethod/keyboard/KeyboardThemeTests.java
+++ b/tests/src/com/android/inputmethod/keyboard/KeyboardThemeTests.java
@@ -16,6 +16,11 @@
package com.android.inputmethod.keyboard;
+import static com.android.inputmethod.keyboard.KeyboardTheme.THEME_ID_ICS;
+import static com.android.inputmethod.keyboard.KeyboardTheme.THEME_ID_KLP;
+import static com.android.inputmethod.keyboard.KeyboardTheme.THEME_ID_LXX_DARK;
+import static com.android.inputmethod.keyboard.KeyboardTheme.THEME_ID_LXX_LIGHT;
+
import android.content.SharedPreferences;
import android.os.Build.VERSION_CODES;
import android.preference.PreferenceManager;
@@ -33,9 +38,6 @@ public class KeyboardThemeTests extends AndroidTestCase {
private static final int THEME_ID_UNKNOWN = -2;
private static final int THEME_ID_ILLEGAL = -3;
private static final String ILLEGAL_THEME_ID_STRING = "ThisCausesNumberFormatExecption";
- private static final int THEME_ID_ICS = KeyboardTheme.THEME_ID_ICS;
- private static final int THEME_ID_KLP = KeyboardTheme.THEME_ID_KLP;
- private static final int THEME_ID_LXX_DARK = KeyboardTheme.THEME_ID_LXX_DARK;
@Override
protected void setUp() throws Exception {
@@ -51,6 +53,7 @@ public class KeyboardThemeTests extends AndroidTestCase {
switch (themeId) {
case THEME_ID_ICS:
case THEME_ID_KLP:
+ case THEME_ID_LXX_LIGHT:
case THEME_ID_LXX_DARK:
return true;
default:
@@ -99,6 +102,7 @@ public class KeyboardThemeTests extends AndroidTestCase {
assertKeyboardThemePreference(sdkVersion, THEME_ID_NULL, defaultThemeId);
assertKeyboardThemePreference(sdkVersion, THEME_ID_ICS, THEME_ID_ICS);
assertKeyboardThemePreference(sdkVersion, THEME_ID_KLP, THEME_ID_KLP);
+ assertKeyboardThemePreference(sdkVersion, THEME_ID_LXX_LIGHT, THEME_ID_LXX_LIGHT);
assertKeyboardThemePreference(sdkVersion, THEME_ID_LXX_DARK, THEME_ID_LXX_DARK);
assertKeyboardThemePreference(sdkVersion, THEME_ID_UNKNOWN, defaultThemeId);
assertKeyboardThemePreference(sdkVersion, THEME_ID_ILLEGAL, defaultThemeId);
@@ -114,10 +118,11 @@ public class KeyboardThemeTests extends AndroidTestCase {
}
private void assertKeyboardThemePreferenceOnLxx(final int sdkVersion) {
- final int defaultThemeId = THEME_ID_LXX_DARK;
+ final int defaultThemeId = THEME_ID_LXX_LIGHT;
assertKeyboardThemePreference(sdkVersion, THEME_ID_NULL, defaultThemeId);
assertKeyboardThemePreference(sdkVersion, THEME_ID_ICS, THEME_ID_ICS);
assertKeyboardThemePreference(sdkVersion, THEME_ID_KLP, THEME_ID_KLP);
+ assertKeyboardThemePreference(sdkVersion, THEME_ID_LXX_LIGHT, THEME_ID_LXX_LIGHT);
assertKeyboardThemePreference(sdkVersion, THEME_ID_LXX_DARK, THEME_ID_LXX_DARK);
assertKeyboardThemePreference(sdkVersion, THEME_ID_UNKNOWN, defaultThemeId);
assertKeyboardThemePreference(sdkVersion, THEME_ID_ILLEGAL, defaultThemeId);
@@ -169,11 +174,11 @@ public class KeyboardThemeTests extends AndroidTestCase {
private void assertDefaultKeyboardThemeOnLxx(final int sdkVersion) {
// Forced to switch to LXX theme.
- assertDefaultKeyboardTheme(sdkVersion, THEME_ID_NULL, THEME_ID_LXX_DARK);
- assertDefaultKeyboardTheme(sdkVersion, THEME_ID_ICS, THEME_ID_LXX_DARK);
- assertDefaultKeyboardTheme(sdkVersion, THEME_ID_KLP, THEME_ID_LXX_DARK);
- assertDefaultKeyboardTheme(sdkVersion, THEME_ID_UNKNOWN, THEME_ID_LXX_DARK);
- assertDefaultKeyboardTheme(sdkVersion, THEME_ID_ILLEGAL, THEME_ID_LXX_DARK);
+ assertDefaultKeyboardTheme(sdkVersion, THEME_ID_NULL, THEME_ID_LXX_LIGHT);
+ assertDefaultKeyboardTheme(sdkVersion, THEME_ID_ICS, THEME_ID_LXX_LIGHT);
+ assertDefaultKeyboardTheme(sdkVersion, THEME_ID_KLP, THEME_ID_LXX_LIGHT);
+ assertDefaultKeyboardTheme(sdkVersion, THEME_ID_UNKNOWN, THEME_ID_LXX_LIGHT);
+ assertDefaultKeyboardTheme(sdkVersion, THEME_ID_ILLEGAL, THEME_ID_LXX_LIGHT);
}
public void testDefaultKeyboardThemeOnLxx() {
@@ -234,11 +239,11 @@ public class KeyboardThemeTests extends AndroidTestCase {
private void assertUpgradeKeyboardToLxxOnLxx(final int sdkVersion) {
// Forced to switch to LXX theme.
- assertUpgradeKeyboardToLxxOn(sdkVersion, THEME_ID_NULL, THEME_ID_LXX_DARK);
- assertUpgradeKeyboardToLxxOn(sdkVersion, THEME_ID_ICS, THEME_ID_LXX_DARK);
- assertUpgradeKeyboardToLxxOn(sdkVersion, THEME_ID_KLP, THEME_ID_LXX_DARK);
- assertUpgradeKeyboardToLxxOn(sdkVersion, THEME_ID_UNKNOWN, THEME_ID_LXX_DARK);
- assertUpgradeKeyboardToLxxOn(sdkVersion, THEME_ID_ILLEGAL, THEME_ID_LXX_DARK);
+ assertUpgradeKeyboardToLxxOn(sdkVersion, THEME_ID_NULL, THEME_ID_LXX_LIGHT);
+ assertUpgradeKeyboardToLxxOn(sdkVersion, THEME_ID_ICS, THEME_ID_LXX_LIGHT);
+ assertUpgradeKeyboardToLxxOn(sdkVersion, THEME_ID_KLP, THEME_ID_LXX_LIGHT);
+ assertUpgradeKeyboardToLxxOn(sdkVersion, THEME_ID_UNKNOWN, THEME_ID_LXX_LIGHT);
+ assertUpgradeKeyboardToLxxOn(sdkVersion, THEME_ID_ILLEGAL, THEME_ID_LXX_LIGHT);
}
// Upgrading keyboard on L.
@@ -298,15 +303,15 @@ public class KeyboardThemeTests extends AndroidTestCase {
// Forced to switch to LXX theme.
final int newSdkVersion = VERSION_CODES_LXX;
assertUpgradePlatformFromTo(
- oldSdkVersion, newSdkVersion, THEME_ID_NULL, THEME_ID_LXX_DARK);
+ oldSdkVersion, newSdkVersion, THEME_ID_NULL, THEME_ID_LXX_LIGHT);
assertUpgradePlatformFromTo(
- oldSdkVersion, newSdkVersion, THEME_ID_ICS, THEME_ID_LXX_DARK);
+ oldSdkVersion, newSdkVersion, THEME_ID_ICS, THEME_ID_LXX_LIGHT);
assertUpgradePlatformFromTo(
- oldSdkVersion, newSdkVersion, THEME_ID_KLP, THEME_ID_LXX_DARK);
+ oldSdkVersion, newSdkVersion, THEME_ID_KLP, THEME_ID_LXX_LIGHT);
assertUpgradePlatformFromTo(
- oldSdkVersion, newSdkVersion, THEME_ID_UNKNOWN, THEME_ID_LXX_DARK);
+ oldSdkVersion, newSdkVersion, THEME_ID_UNKNOWN, THEME_ID_LXX_LIGHT);
assertUpgradePlatformFromTo(
- oldSdkVersion, newSdkVersion, THEME_ID_ILLEGAL, THEME_ID_LXX_DARK);
+ oldSdkVersion, newSdkVersion, THEME_ID_ILLEGAL, THEME_ID_LXX_LIGHT);
}
// Update platform from I,J, and K to L
@@ -324,14 +329,18 @@ public class KeyboardThemeTests extends AndroidTestCase {
final int oldSdkVersion = VERSION_CODES_LXX;
final int newSdkVersion = VERSION_CODES_LXX;
assertUpgradePlatformFromTo(
- oldSdkVersion, newSdkVersion, THEME_ID_NULL, THEME_ID_LXX_DARK);
+ oldSdkVersion, newSdkVersion, THEME_ID_NULL, THEME_ID_LXX_LIGHT);
assertUpgradePlatformFromTo(
oldSdkVersion, newSdkVersion, THEME_ID_ICS, THEME_ID_ICS);
assertUpgradePlatformFromTo(
oldSdkVersion, newSdkVersion, THEME_ID_KLP, THEME_ID_KLP);
assertUpgradePlatformFromTo(
- oldSdkVersion, newSdkVersion, THEME_ID_UNKNOWN, THEME_ID_LXX_DARK);
+ oldSdkVersion, newSdkVersion, THEME_ID_LXX_LIGHT, THEME_ID_LXX_LIGHT);
+ assertUpgradePlatformFromTo(
+ oldSdkVersion, newSdkVersion, THEME_ID_LXX_DARK, THEME_ID_LXX_DARK);
+ assertUpgradePlatformFromTo(
+ oldSdkVersion, newSdkVersion, THEME_ID_UNKNOWN, THEME_ID_LXX_LIGHT);
assertUpgradePlatformFromTo(
- oldSdkVersion, newSdkVersion, THEME_ID_ILLEGAL, THEME_ID_LXX_DARK);
+ oldSdkVersion, newSdkVersion, THEME_ID_ILLEGAL, THEME_ID_LXX_LIGHT);
}
}
diff --git a/tests/src/com/android/inputmethod/keyboard/layout/Bengali.java b/tests/src/com/android/inputmethod/keyboard/layout/Bengali.java
index 79c7d08cc..2101ddf33 100644
--- a/tests/src/com/android/inputmethod/keyboard/layout/Bengali.java
+++ b/tests/src/com/android/inputmethod/keyboard/layout/Bengali.java
@@ -72,20 +72,25 @@ public final class Bengali extends LayoutBase {
private static final ExpectedKey[][] ALPHABET_COMMON = new ExpectedKeyboardBuilder()
.setKeysOfRow(1,
// U+0994: "ঔ" BENGALI LETTER AU
+ // U+09CC: "ৌ" BENGALI VOWEL SIGN AU
// U+09E7: "১" BENGALI DIGIT ONE
- key("\u0994", joinMoreKeys("\u09E7", "1")),
+ key("\u0994", joinMoreKeys("\u09CC", "\u09E7", "1")),
// U+0990: "ঐ" BENGALI LETTER AI
+ // U+09C8: "ৈ" BENGALI VOWEL SIGN AI
// U+09E8: "২" BENGALI DIGIT TWO
- key("\u0990", joinMoreKeys("\u09E8", "2")),
+ key("\u0990", joinMoreKeys("\u09C8", "\u09E8", "2")),
// U+0986: "আ" BENGALI LETTER AA
+ // U+09BE: "া" BENGALI VOWEL SIGN AA
// U+09E9: "৩" BENGALI DIGIT THREE
- key("\u0986", joinMoreKeys("\u09E9", "3")),
+ key("\u0986", joinMoreKeys("\u09BE", "\u09E9", "3")),
// U+0988: "ঈ" BENGALI LETTER II
+ // U+09C0: "ী" BENGALI VOWEL SIGN II
// U+09EA: "৪" BENGALI DIGIT FOUR
- key("\u0988", joinMoreKeys("\u09EA", "4")),
+ key("\u0988", joinMoreKeys("\u09C0", "\u09EA", "4")),
// U+098A: "ঊ" BENGALI LETTER UU
+ // U+09C2: "ূ" BENGALI VOWEL SIGN UU
// U+09EB: "৫" BENGALI DIGIT FIVE
- key("\u098A", joinMoreKeys("\u09EB", "5")),
+ key("\u098A", joinMoreKeys("\u09C2", "\u09EB", "5")),
// U+09AC: "ব" BENGALI LETTER BA
// U+09AD: "ভ" BENGALI LETTER BHA
// U+09EC: "৬" BENGALI DIGIT SIX
diff --git a/tests/src/com/android/inputmethod/keyboard/layout/Kannada.java b/tests/src/com/android/inputmethod/keyboard/layout/Kannada.java
new file mode 100644
index 000000000..5ce7f4d9c
--- /dev/null
+++ b/tests/src/com/android/inputmethod/keyboard/layout/Kannada.java
@@ -0,0 +1,197 @@
+/*
+ * Copyright (C) 2014 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.keyboard.layout;
+
+import com.android.inputmethod.keyboard.layout.expected.ExpectedKey;
+import com.android.inputmethod.keyboard.layout.expected.ExpectedKeyboardBuilder;
+import com.android.inputmethod.latin.Constants;
+
+import java.util.Locale;
+
+/**
+ * The Kannada keyboard.
+ */
+public final class Kannada extends LayoutBase {
+ private static final String LAYOUT_NAME = "kannada";
+
+ public Kannada(final LayoutCustomizer customizer) {
+ super(customizer, Symbols.class, SymbolsShifted.class);
+ }
+
+ @Override
+ public String getName() { return LAYOUT_NAME; }
+
+ public static class KannadaCustomizer extends LayoutCustomizer {
+ public KannadaCustomizer(final Locale locale) { super(locale); }
+
+ @Override
+ public ExpectedKey getAlphabetKey() { return KANNADA_ALPHABET_KEY; }
+
+ @Override
+ public ExpectedKey getCurrencyKey() { return CURRENCY_RUPEE; }
+
+ @Override
+ public ExpectedKey[] getOtherCurrencyKeys() {
+ return SymbolsShifted.CURRENCIES_OTHER_GENERIC;
+ }
+
+ @Override
+ public ExpectedKey[] getLeftShiftKeys(final boolean isPhone) {
+ return EMPTY_KEYS;
+ }
+
+ @Override
+ public ExpectedKey[] getRightShiftKeys(final boolean isPhone) {
+ return isPhone ? EMPTY_KEYS : EXCLAMATION_AND_QUESTION_MARKS;
+ }
+
+ @Override
+ public ExpectedKey[] getSpaceKeys(final boolean isPhone) {
+ return joinKeys(LANGUAGE_SWITCH_KEY, SPACE_KEY, key(ZWNJ_KEY, ZWJ_KEY));
+ }
+
+ // U+0C85: "ಅ" KANNADA LETTER A
+ // U+0C86: "ಆ" KANNADA LETTER AA
+ // U+0C87: "ಇ" KANNADA LETTER I
+ private static final ExpectedKey KANNADA_ALPHABET_KEY = key(
+ "\u0C85\u0C86\u0C87", Constants.CODE_SWITCH_ALPHA_SYMBOL);
+
+ // U+20B9: "₹" INDIAN RUPEE SIGN
+ private static final ExpectedKey CURRENCY_RUPEE = key("\u20B9",
+ Symbols.CURRENCY_GENERIC_MORE_KEYS);
+ }
+
+ @Override
+ ExpectedKey[][] getCommonAlphabetLayout(boolean isPhone) { return ALPHABET_COMMON; }
+
+ @Override
+ ExpectedKey[][] getCommonAlphabetShiftLayout(boolean isPhone, final int elementId) {
+ return null;
+ }
+
+ private static final ExpectedKey[][] ALPHABET_COMMON = new ExpectedKeyboardBuilder()
+ .setKeysOfRow(1,
+ // U+0CCC: "ೌ" KANNADA VOWEL SIGN AU
+ // U+0C94: "ಔ" KANNADA LETTER AU
+ // U+0CE7: "೧" KANNADA DIGIT ONE
+ key("\u0CCC", joinMoreKeys("\u0C94", "\u0CE7", "1")),
+ // U+0CC8: "ೈ" KANNADA VOWEL SIGN AI
+ // U+0C90: "ಐ" KANNADA LETTER AI
+ // U+0CE8: "೨" KANNADA DIGIT TWO
+ key("\u0CC8", joinMoreKeys("\u0C90", "\u0CE8", "2")),
+ // U+0CBE: "ಾ" KANNADA VOWEL SIGN AA
+ // U+0C86: "ಆ" KANNADA LETTER AA
+ // U+0CE9: "೩" KANNADA DIGIT THREE
+ key("\u0CBE", joinMoreKeys("\u0C86", "\u0CE9", "3")),
+ // U+0CC0: "ೀ" KANNADA VOWEL SIGN II
+ // U+0C88: "ಈ" KANNADA LETTER II
+ // U+0CEA: "೪" KANNADA DIGIT FOUR
+ key("\u0CC0", joinMoreKeys("\u0C88", "\u0CEA", "4")),
+ // U+0CC2: "ೂ" KANNADA VOWEL SIGN UU
+ // U+0C8A: "ಊ" KANNADA LETTER UU
+ // U+0CEB: "೫" KANNADA DIGIT FIVE
+ key("\u0CC2", joinMoreKeys("\u0C8A", "\u0CEB", "5")),
+ // U+0CAC: "ಬ" KANNADA LETTER BA
+ // U+0CAD: "ಭ" KANNADA LETTER BHA
+ // U+0CEC: "೬" KANNADA DIGIT SIX
+ key("\u0CAC", joinMoreKeys("\u0CAD", "\u0CEC", "6")),
+ // U+0CB9: "ಹ" KANNADA LETTER HA
+ // U+0C99: "ಙ" KANNADA LETTER NGA
+ // U+0CED: "೭" KANNADA DIGIT SEVEN
+ key("\u0CB9", joinMoreKeys("\u0C99", "\u0CED", "7")),
+ // U+0C97: "ಗ" KANNADA LETTER GA
+ // U+0C98: "ಘ" KANNADA LETTER GHA
+ // U+0CEE: "೮" KANNADA DIGIT EIGHT
+ key("\u0C97", joinMoreKeys("\u0C98", "\u0CEE", "8")),
+ // U+0CA6: "ದ" KANNADA LETTER DA
+ // U+0CA7: "ಧ" KANNADA LETTER DHA
+ // U+0CEF: "೯" KANNADA DIGIT NINE
+ key("\u0CA6", joinMoreKeys("\u0CA7", "\u0CEF", "9")),
+ // U+0C9C: "ಜ" KANNADA LETTER JA
+ // U+0C9D: "ಝ" KANNADA LETTER JHA
+ // U+0CE6: "೦" KANNADA DIGIT ZERO
+ key("\u0C9C", joinMoreKeys("\u0C9D", "\u0CE6", "0")),
+ // U+0CA1: "ಡ" KANNADA LETTER DDA
+ // U+0CA2: "ಢ" KANNADA LETTER DDHA
+ key("\u0CA1", moreKey("\u0CA2")))
+ .setKeysOfRow(2,
+ // U+0CCB: "ೋ" KANNADA VOWEL SIGN OO
+ // U+0C93: "ಓ" KANNADA LETTER OO
+ key("\u0CCB", moreKey("\u0C93")),
+ // U+0CC7: "ೇ" KANNADA VOWEL SIGN EE
+ // U+0C8F: "ಏ" KANNADA LETTER EE
+ key("\u0CC7", moreKey("\u0C8F")),
+ // U+0CCD: "್" KANNADA SIGN VIRAMA
+ // U+0C85: "ಅ" KANNADA LETTER A
+ key("\u0CCD", moreKey("\u0C85")),
+ // U+0CBF: "ಿ" KANNADA VOWEL SIGN I
+ // U+0C87: "ಇ" KANNADA LETTER I
+ key("\u0CBF", moreKey("\u0C87")),
+ // U+0CC1: "ು" KANNADA VOWEL SIGN U
+ // U+0C89: "ಉ" KANNADA LETTER U
+ key("\u0CC1", moreKey("\u0C89")),
+ // U+0CAA: "ಪ" KANNADA LETTER PA
+ // U+0CAB: "ಫ" KANNADA LETTER PHA
+ key("\u0CAA", moreKey("\u0CAB")),
+ // U+0CB0: "ರ" KANNADA LETTER RA
+ // U+0CB1: "ಱ" KANNADA LETTER RRA
+ // U+0CC3: "ೃ" KANNADA VOWEL SIGN VOCALIC R
+ key("\u0CB0", joinMoreKeys("\u0CB1", "\u0CC3")),
+ // U+0C95: "ಕ" KANNADA LETTER KA
+ // U+0C96: "ಖ" KANNADA LETTER KHA
+ key("\u0C95", moreKey("\u0C96")),
+ // U+0CA4: "ತ" KANNADA LETTER TA
+ // U+0CA5: "ಥ" KANNADA LETTER THA
+ key("\u0CA4", moreKey("\u0CA5")),
+ // U+0C9A: "ಚ" KANNADA LETTER CA
+ // U+0C9B: "ಛ" KANNADA LETTER CHA
+ key("\u0C9A", moreKey("\u0C9B")),
+ // U+0C9F: "ಟ" KANNADA LETTER TTA
+ // U+0CA0: "ಠ" KANNADA LETTER TTHA
+ key("\u0C9F", moreKey("\u0CA0")))
+ .setKeysOfRow(3,
+ // U+0CC6: "ೆ" KANNADA VOWEL SIGN E
+ // U+0C92: "ಒ" KANNADA LETTER O
+ key("\u0CC6", moreKey("\u0C92")),
+ // U+0C82: "ಂ" KANNADA SIGN ANUSVARA
+ // U+0C8E: "ಎ" KANNADA LETTER E
+ key("\u0C82", moreKey("\u0C8E")),
+ // U+0CAE: "ಮ" KANNADA LETTER MA
+ // U+0CA3: "ಣ" KANNADA LETTER NNA
+ key("\u0CAE", moreKey("\u0CA3")),
+ // U+0CA8: "ನ" KANNADA LETTER NA
+ // U+0CB5: "ವ" KANNADA LETTER VA
+ "\u0CA8", "\u0CB5",
+ // U+0CB2: "ಲ" KANNADA LETTER LA
+ // U+0CB3: "ಳ" KANNADA LETTER LLA
+ key("\u0CB2", moreKey("\u0CB3")),
+ // U+0CB8: "ಸ" KANNADA LETTER SA
+ // U+0CB6: "ಶ" KANNADA LETTER SHA
+ key("\u0CB8", moreKey("\u0CB6")),
+ // U+0C8B: "ಋ" KANNADA LETTER VOCALIC R
+ // U+0CCD/U+0CB0: "್ರ" KANNADA SIGN VIRAMA/KANNADA LETTER RA
+ key("\u0C8B", moreKey("\u0CCD\u0CB0")),
+ // U+0CB7: "ಷ" KANNADA LETTER SSA
+ // U+0C95/U+0CCD/U+0CB7:
+ // "ಕ್ಷ" KANNADA LETTER RA/KANNADA SIGN VIRAMA/KANNADA LETTER SSA
+ key("\u0CB7", moreKey("\u0C95\u0CCD\u0CB7")),
+ // U+0CAF: "ಯ" KANNADA LETTER YA
+ // U+0C9C/U+0CCD/U+0C9E:
+ // "ಜ್ಞ" KANNADA LETTER JA/KANNADA SIGN VIRAMA/KANNADA LETTER NYA
+ key("\u0CAF", moreKey("\u0C9C\u0CCD\u0C9E")))
+ .build();
+}
diff --git a/tests/src/com/android/inputmethod/keyboard/layout/Malayalam.java b/tests/src/com/android/inputmethod/keyboard/layout/Malayalam.java
new file mode 100644
index 000000000..b44b888e1
--- /dev/null
+++ b/tests/src/com/android/inputmethod/keyboard/layout/Malayalam.java
@@ -0,0 +1,188 @@
+/*
+ * Copyright (C) 2014 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.keyboard.layout;
+
+import com.android.inputmethod.keyboard.layout.expected.ExpectedKey;
+import com.android.inputmethod.keyboard.layout.expected.ExpectedKeyboardBuilder;
+import com.android.inputmethod.latin.Constants;
+
+import java.util.Locale;
+
+/**
+ * The Malayalam keyboard.
+ */
+public final class Malayalam extends LayoutBase {
+ private static final String LAYOUT_NAME = "malayalam";
+
+ public Malayalam(final LayoutCustomizer customizer) {
+ super(customizer, Symbols.class, SymbolsShifted.class);
+ }
+
+ @Override
+ public String getName() { return LAYOUT_NAME; }
+
+ public static class MalayalamCustomizer extends LayoutCustomizer {
+ public MalayalamCustomizer(final Locale locale) { super(locale); }
+
+ @Override
+ public ExpectedKey getAlphabetKey() { return MALAYALAM_ALPHABET_KEY; }
+
+ @Override
+ public ExpectedKey getCurrencyKey() { return CURRENCY_RUPEE; }
+
+ @Override
+ public ExpectedKey[] getOtherCurrencyKeys() {
+ return SymbolsShifted.CURRENCIES_OTHER_GENERIC;
+ }
+
+ @Override
+ public ExpectedKey[] getLeftShiftKeys(final boolean isPhone) {
+ return EMPTY_KEYS;
+ }
+
+ @Override
+ public ExpectedKey[] getRightShiftKeys(final boolean isPhone) {
+ return isPhone ? EMPTY_KEYS : EXCLAMATION_AND_QUESTION_MARKS;
+ }
+
+ // U+0D05: "അ" MALAYALAM LETTER A
+ private static final ExpectedKey MALAYALAM_ALPHABET_KEY = key(
+ "\u0D05", Constants.CODE_SWITCH_ALPHA_SYMBOL);
+
+ // U+20B9: "₹" INDIAN RUPEE SIGN
+ private static final ExpectedKey CURRENCY_RUPEE = key("\u20B9",
+ Symbols.CURRENCY_GENERIC_MORE_KEYS);
+ }
+
+ @Override
+ ExpectedKey[][] getCommonAlphabetLayout(boolean isPhone) { return ALPHABET_COMMON; }
+
+ @Override
+ ExpectedKey[][] getCommonAlphabetShiftLayout(boolean isPhone, final int elementId) {
+ return null;
+ }
+
+ private static final ExpectedKey[][] ALPHABET_COMMON = new ExpectedKeyboardBuilder()
+ .setKeysOfRow(1,
+ // U+0D4D: "്" MALAYALAM SIGN VIRAMA
+ // U+0D05: "അ" MALAYALAM LETTER A
+ key("\u0D4D", joinMoreKeys("\u0D05", "1")),
+ // U+0D3E: "ാ" MALAYALAM VOWEL SIGN AA
+ // U+0D06: "ആ" MALAYALAM LETTER AA
+ key("\u0D3E", joinMoreKeys("\u0D06", "2")),
+ // U+0D3F: "ി" MALAYALAM VOWEL SIGN I
+ // U+0D07: "ഇ" MALAYALAM LETTER I
+ key("\u0D3F", joinMoreKeys("\u0D07", "3")),
+ // U+0D40: "ീ" MALAYALAM VOWEL SIGN II
+ // U+0D08: "ഈ" MALAYALAM LETTER II
+ key("\u0D40", joinMoreKeys("\u0D08", "4")),
+ // U+0D41: "ു" MALAYALAM VOWEL SIGN U
+ // U+0D09: "ഉ" MALAYALAM LETTER U
+ key("\u0D41", joinMoreKeys("\u0D09", "5")),
+ // U+0D42: "ൂ" MALAYALAM VOWEL SIGN UU
+ // U+0D0A: "ഊ" MALAYALAM LETTER UU
+ key("\u0D42", joinMoreKeys("\u0D0A", "6")),
+ // U+0D43: "ൃ" MALAYALAM VOWEL SIGN VOCALIC R
+ // U+0D0B: "ഋ" MALAYALAM LETTER VOCALIC R
+ key("\u0D43", joinMoreKeys("\u0D0B", "7")),
+ // U+0D46: "െ" MALAYALAM VOWEL SIGN E
+ // U+0D0E: "എ" MALAYALAM LETTER E
+ // U+0D10: "ഐ" MALAYALAM LETTER AI
+ // U+0D48: "ൈ" MALAYALAM VOWEL SIGN AI
+ key("\u0D46", joinMoreKeys("\u0D0E", "\u0D10", "\u0D48", "8")),
+ // U+0D47: "േ" MALAYALAM VOWEL SIGN EE
+ // U+0D0F: "ഏ" MALAYALAM LETTER EE
+ key("\u0D47", joinMoreKeys("\u0D0F", "9")),
+ // U+0D4A: "ൊ" MALAYALAM VOWEL SIGN O
+ // U+0D12: "ഒ" MALAYALAM LETTER O
+ key("\u0D4A", joinMoreKeys("\u0D12", "0")),
+ // U+0D4B: "ോ" MALAYALAM VOWEL SIGN OO
+ // U+0D13: "ഓ" MALAYALAM LETTER OO
+ // U+0D14: "ഔ" MALAYALAM LETTER AU
+ // U+0D57: "ൗ" MALAYALAM AU LENGTH MARK
+ key("\u0D4B", joinMoreKeys("\u0D13", "\u0D14", "\u0D57")))
+ .setKeysOfRow(2,
+ // U+0D15: "ക" MALAYALAM LETTER KA
+ // U+0D16: "ഖ" MALAYALAM LETTER KHA
+ key("\u0D15", moreKey("\u0D16")),
+ // U+0D17: "ഗ" MALAYALAM LETTER GA
+ // U+0D18: "ഘ" MALAYALAM LETTER GHA
+ key("\u0D17", moreKey("\u0D18")),
+ // U+0D19: "ങ" MALAYALAM LETTER NGA
+ // U+0D1E: "ഞ" MALAYALAM LETTER NYA
+ key("\u0D19", moreKey("\u0D1E")),
+ // U+0D1A: "ച" MALAYALAM LETTER CA
+ // U+0D1B: "ഛ" MALAYALAM LETTER CHA
+ key("\u0D1A", moreKey("\u0D1B")),
+ // U+0D1C: "ജ" MALAYALAM LETTER JA
+ // U+0D1D: "ഝ" MALAYALAM LETTER JHA
+ key("\u0D1C", moreKey("\u0D1D")),
+ // U+0D1F: "ട" MALAYALAM LETTER TTA
+ // U+0D20: "ഠ" MALAYALAM LETTER TTHA
+ key("\u0D1F", moreKey("\u0D20")),
+ // U+0D21: "ഡ" MALAYALAM LETTER DDA
+ // U+0D22: "ഢ" MALAYALAM LETTER DDHA
+ key("\u0D21", moreKey("\u0D22")),
+ // U+0D23: "ണ" MALAYALAM LETTER NNA
+ // U+0D7A: "ൺ" MALAYALAM LETTER CHILLU NN
+ key("\u0D23", moreKey("\u0D7A")),
+ // U+0D24: "ത" MALAYALAM LETTER TA
+ // U+0D25: "ഥ" MALAYALAM LETTER THA
+ key("\u0D24", moreKey("\u0D25")),
+ // U+0D26: "ദ" MALAYALAM LETTER DA
+ // U+0D27: "ധ" MALAYALAM LETTER DHA
+ key("\u0D26", moreKey("\u0D27")),
+ // U+0D28: "ഗന" MALAYALAM LETTER NA
+ // U+0D7B: "ൻ" MALAYALAM LETTER CHILLU N
+ key("\u0D28", moreKey("\u0D7B")))
+ .setKeysOfRow(3,
+ // U+0D2A: "പ" MALAYALAM LETTER PA
+ // U+0D2B: "ഫ" MALAYALAM LETTER PHA
+ key("\u0D2A", moreKey("\u0D2B")),
+ // U+0D2C: "ബ" MALAYALAM LETTER BA
+ // U+0D2D: "ഭ" MALAYALAM LETTER BHA
+ key("\u0D2C", moreKey("\u0D2D")),
+ // U+0D2E: "മ" MALAYALAM LETTER MA
+ // U+0D02: "ം" MALAYALAM SIGN ANUSVARA
+ key("\u0D2E", moreKey("\u0D02")),
+ // U+0D2F: "യ" MALAYALAM LETTER YA
+ // U+0D4D/U+0D2F: "്യ" MALAYALAM SIGN VIRAMA/MALAYALAM LETTER YA
+ key("\u0D2F", moreKey("\u0D4D\u0D2F")),
+ // U+0D30: "ര" MALAYALAM LETTER RA
+ // U+0D4D/U+0D30: "്ര" MALAYALAM SIGN VIRAMA/MALAYALAM LETTER RA
+ // U+0D7C: "ർ" MALAYALAM LETTER CHILLU RR
+ // U+0D31: "റ" MALAYALAM LETTER RRA
+ key("\u0D30", joinMoreKeys("\u0D4D\u0D30", "\u0D7C", "\u0D31")),
+ // U+0D32: "ല" MALAYALAM LETTER LA
+ // U+0D7D: "ൽ" MALAYALAM LETTER CHILLU L
+ key("\u0D32", moreKey("\u0D7D")),
+ // U+0D35: "വ" MALAYALAM LETTER VA
+ // U+0D4D/U+0D35: "്വ" MALAYALAM SIGN VIRAMA/MALAYALAM LETTER VA
+ key("\u0D35", moreKey("\u0D4D\u0D35")),
+ // U+0D36: "ശ" MALAYALAM LETTER SHA
+ // U+0D37: "ഷ" MALAYALAM LETTER SSA
+ // U+0D38: "സ" MALAYALAM LETTER SA
+ key("\u0D36", joinMoreKeys("\u0D37", "\u0D38")),
+ // U+0D39: "ഹ" MALAYALAM LETTER HA
+ // U+0D03: "ഃ" MALAYALAM SIGN VISARGA
+ key("\u0D39", moreKey("\u0D03")),
+ // U+0D33: "ള" MALAYALAM LETTER LLA
+ // U+0D7E: "ൾ" MALAYALAM LETTER CHILLU LL
+ // U+0D34: "ഴ" MALAYALAM LETTER LLLA
+ key("\u0D33", joinMoreKeys("\u0D7E", "\u0D34")))
+ .build();
+}
diff --git a/tests/src/com/android/inputmethod/keyboard/layout/Myanmar.java b/tests/src/com/android/inputmethod/keyboard/layout/Myanmar.java
index 1b571acc6..f2a2dfdd8 100644
--- a/tests/src/com/android/inputmethod/keyboard/layout/Myanmar.java
+++ b/tests/src/com/android/inputmethod/keyboard/layout/Myanmar.java
@@ -144,17 +144,29 @@ public final class Myanmar extends LayoutBase {
key("\u1040", moreKey("0")))
.setKeysOfRow(2,
// U+1006: "ဆ" MYANMAR LETTER CHA
+ // U+1039/U+1006: "္ဆ" MYANMAR SIGN VIRAMA/MYANMAR LETTER CHA
+ key("\u1006", moreKey("\u1039\u1006")),
// U+1010: "တ" MYANMAR LETTER TA
+ // U+1039/U+1010: "္တ" MYANMAR SIGN VIRAMA/MYANMAR LETTER TA
+ key("\u1010", moreKey("\u1039\u1010")),
// U+1014: "န" MYANMAR LETTER NA
+ // U+1039/U+1014: "္န" MYANMAR SIGN VIRAMA/MYANMAR LETTER NA
+ key("\u1014", moreKey("\u1039\u1014")),
// U+1019: "မ" MYANMAR LETTER MA
+ // U+1039/U+1019: "္မ" MYANMAR SIGN VIRAMA/MYANMAR LETTER MA
+ key("\u1019", moreKey("\u1039\u1019")),
// U+1021: "အ" MYANMAR LETTER A
// U+1015: "ပ" MYANMAR LETTER PA
+ "\u1021", "\u1015",
// U+1000: "က" MYANMAR LETTER KA
+ // U+1039/U+1000: "္က" MYANMAR SIGN VIRAMA/MYANMAR LETTER KA
+ key("\u1000", moreKey("\u1039\u1000")),
// U+1004: "င" MYANMAR LETTER NGA
// U+101E: "သ" MYANMAR LETTER SA
+ "\u1004", "\u101E",
// U+1005: "စ" MYANMAR LETTER CA
- "\u1006", "\u1010", "\u1014", "\u1019", "\u1021", "\u1015", "\u1000", "\u1004",
- "\u101E", "\u1005")
+ // U+1039/U+1005: "္စ" MYANMAR SIGN VIRAMA/MYANMAR LETTER CA
+ key("\u1005", moreKey("\u1039\u1005")))
.setKeysOfRow(3,
// U+1031: "ေ" MYANMAR VOWEL SIGN E
// U+103B: "ျ" MYANMAR CONSONANT SIGN MEDIAL YA
@@ -172,7 +184,8 @@ public final class Myanmar extends LayoutBase {
// U+1030: "ူ" MYANMAR VOWEL SIGN UU
key("\u102F", moreKey("\u1030")),
// U+102C: "ာ" MYANMAR VOWEL SIGN AA
- "\u102C",
+ // U+102B: "ါ" MYANMAR VOWEL SIGN TALL AA
+ key("\u102C", moreKey("\u102B")),
// U+103A: "်" MYANMAR SIGN ASAT
// U+1032: "ဲ" MYANMAR VOWEL SIGN AI
key("\u103A", moreKey("\u1032")),
@@ -183,11 +196,19 @@ public final class Myanmar extends LayoutBase {
"\u1038")
.setKeysOfRow(4,
// U+1016: "ဖ" MYANMAR LETTER PHA
+ "\u1016",
// U+1011: "ထ" MYANMAR LETTER THA
+ // U+1039/U+1011: "္ထ" MYANMAR SIGN VIRAMA/MYANMAR LETTER THA
+ key("\u1011", moreKey("\u1039\u1011")),
// U+1001: "ခ" MYANMAR LETTER KHA
+ // U+1039/U+1001: "္ခ" MYANMAR SIGN VIRAMA/MYANMAR LETTER KHA
+ key("\u1001", moreKey("\u1039\u1001")),
// U+101C: "လ" MYANMAR LETTER LA
+ // U+1039/U+101C: "္လ" MYANMAR SIGN VIRAMA/MYANMAR LETTER LA
+ key("\u101C", moreKey("\u1039\u101C")),
// U+1018: "ဘ" MYANMAR LETTER BHA
- "\u1016", "\u1011", "\u1001", "\u101C", "\u1018",
+ // U+1039/U+1018: "္ဘ" MYANMAR SIGN VIRAMA/MYANMAR LETTER BHA
+ key("\u1018", moreKey("\u1039\u1018")),
// U+100A: "ည" MYANMAR LETTER NNYA
// U+1009: "ဉ" MYANMAR LETTER NYA
key("\u100A", moreKey("\u1009")),
@@ -213,17 +234,28 @@ public final class Myanmar extends LayoutBase {
"\u1029", "\u102A", "\u104D", "\u104C")
.setKeysOfRow(2,
// U+1017: "ဗ" MYANMAR LETTER BA
+ // U+1039/U+1017: "္ဗ" MYANMAR SIGN VIRAMA/MYANMAR LETTER BA
+ key("\u1017", moreKey("\u1039\u1017")),
// U+1012: "ဒ" MYANMAR LETTER DA
+ // U+1039/U+1012: "္ဒ" MYANMAR SIGN VIRAMA/MYANMAR LETTER DA
+ key("\u1012", moreKey("\u1039\u1012")),
// U+1013: "ဓ" MYANMAR LETTER DHA
+ // U+1039/U+1013: "္ဓ" MYANMAR SIGN VIRAMA/MYANMAR LETTER DHA
+ key("\u1013", moreKey("\u1039\u1013")),
// U+1003: "ဃ" MYANMAR LETTER GHA
// U+100E: "ဎ" MYANMAR LETTER DDHA
// U+103F: "ဿ" MYANMAR LETTER GREAT SA
// U+100F: "ဏ" MYANMAR LETTER NNA
+ "\u1003", "\u100E", "\u103F", "\u100F",
// U+1008: "ဈ" MYANMAR LETTER JHA
+ // U+1039/U+1008: "္ဈ" MYANMAR SIGN VIRAMA/MYANMAR LETTER JHA
+ key("\u1008", moreKey("\u1039\u1008")),
// U+1007: "ဇ" MYANMAR LETTER JA
+ // U+1039/U+1007: "္ဇ" MYANMAR SIGN VIRAMA/MYANMAR LETTER JA
+ key("\u1007", moreKey("\u1039\u1007")),
// U+1002: "ဂ" MYANMAR LETTER GA
- "\u1017", "\u1012", "\u1013", "\u1003", "\u100E", "\u103F", "\u100F", "\u1008",
- "\u1007", "\u1002")
+ // U+1039/U+1002: "္ဂ" MYANMAR SIGN VIRAMA/MYANMAR LETTER GA
+ key("\u1002", moreKey("\u1039\u1002")))
.setKeysOfRow(3,
// U+101A: "ယ" MYANMAR LETTER YA
// U+1039: "္" MYANMAR SIGN VIRAMA
diff --git a/tests/src/com/android/inputmethod/keyboard/layout/Tamil.java b/tests/src/com/android/inputmethod/keyboard/layout/Tamil.java
new file mode 100644
index 000000000..70385c7d0
--- /dev/null
+++ b/tests/src/com/android/inputmethod/keyboard/layout/Tamil.java
@@ -0,0 +1,150 @@
+/*
+ * Copyright (C) 2014 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.keyboard.layout;
+
+import com.android.inputmethod.keyboard.layout.expected.ExpectedKey;
+import com.android.inputmethod.keyboard.layout.expected.ExpectedKeyboardBuilder;
+import com.android.inputmethod.latin.Constants;
+
+import java.util.Locale;
+
+/**
+ * The Tamil keyboard.
+ */
+public final class Tamil extends LayoutBase {
+ private static final String LAYOUT_NAME = "tamil";
+
+ public Tamil(final LayoutCustomizer customizer) {
+ super(customizer, Symbols.class, SymbolsShifted.class);
+ }
+
+ @Override
+ public String getName() { return LAYOUT_NAME; }
+
+ public static class TamilCustomizer extends LayoutCustomizer {
+ public TamilCustomizer(final Locale locale) { super(locale); }
+
+ @Override
+ public ExpectedKey getAlphabetKey() { return TAMIL_ALPHABET_KEY; }
+
+ @Override
+ public ExpectedKey getCurrencyKey() { return CURRENCY_RUPEE; }
+
+ @Override
+ public ExpectedKey[] getOtherCurrencyKeys() {
+ return SymbolsShifted.CURRENCIES_OTHER_GENERIC;
+ }
+
+ @Override
+ public ExpectedKey[] getLeftShiftKeys(final boolean isPhone) {
+ return EMPTY_KEYS;
+ }
+
+ @Override
+ public ExpectedKey[] getRightShiftKeys(final boolean isPhone) {
+ return isPhone ? EMPTY_KEYS : EXCLAMATION_AND_QUESTION_MARKS;
+ }
+
+ // U+0BA4: "த" TAMIL LETTER TA
+ // U+0BAE/U+0BBF: "மி" TAMIL LETTER MA/TAMIL VOWEL SIGN I
+ // U+0BB4/U+0BCD: "ழ்" TAMIL LETTER LLLA/TAMIL SIGN VIRAMA
+ private static final ExpectedKey TAMIL_ALPHABET_KEY = key(
+ "\u0BA4\u0BAE\u0BBF\u0BB4\u0BCD", Constants.CODE_SWITCH_ALPHA_SYMBOL);
+
+ // U+0BF9: "௹" TAMIL RUPEE SIGN
+ private static final ExpectedKey CURRENCY_RUPEE = key("\u0BF9",
+ Symbols.CURRENCY_GENERIC_MORE_KEYS);
+ }
+
+ @Override
+ ExpectedKey[][] getCommonAlphabetLayout(boolean isPhone) { return ALPHABET_COMMON; }
+
+ @Override
+ ExpectedKey[][] getCommonAlphabetShiftLayout(boolean isPhone, final int elementId) {
+ return null;
+ }
+
+ private static final ExpectedKey[][] ALPHABET_COMMON = new ExpectedKeyboardBuilder()
+ .setKeysOfRow(1,
+ // U+0B94: "ஔ" TAMIL LETTER AU
+ key("\u0B94", moreKey("1")),
+ // U+0B90: "ஐ" TAMIL LETTER AI
+ key("\u0B90", moreKey("2")),
+ // U+0B86: "ஆ" TAMIL LETTER AA
+ key("\u0B86", moreKey("3")),
+ // U+0B88: "ஈ" TAMIL LETTER II
+ key("\u0B88", moreKey("4")),
+ // U+0B8A: "ஊ" TAMIL LETTER UU
+ key("\u0B8A", moreKey("5")),
+ // U+0BAE: "ம" TAMIL LETTER MA
+ key("\u0BAE", moreKey("6")),
+ // U+0BA9: "ன" TAMIL LETTER NNNA
+ key("\u0BA9", moreKey("7")),
+ // U+0BA8: "ந" TAMIL LETTER NA
+ key("\u0BA8", moreKey("8")),
+ // U+0B99: "ங" TAMIL LETTER NGA
+ key("\u0B99", moreKey("9")),
+ // U+0BA3: "ண" TAMIL LETTER NNA
+ key("\u0BA3", moreKey("0")),
+ // U+0B9E: "ஞ" TAMIL LETTER NYA
+ "\u0B9E")
+ .setKeysOfRow(2,
+ // U+0B93: "ஓ" TAMIL LETTER OO
+ // U+0BD0: "ௐ" TAMIL OM
+ key("\u0B93", moreKey("\u0BD0")),
+ // U+0B8F: "ஏ" TAMIL LETTER EE
+ "\u0B8F",
+ // U+0B85: "அ" TAMIL LETTER A
+ // U+0B83: "ஃ" TAMIL SIGN VISARGA
+ key("\u0B85", moreKey("\u0B83")),
+ // U+0B87: "இ" TAMIL LETTER I
+ // U+0B89: "உ" TAMIL LETTER U
+ // U+0BB1: "ற" TAMIL LETTER RRA
+ // U+0BAA: "ப" TAMIL LETTER PA
+ "\u0B87", "\u0B89", "\u0BB1", "\u0BAA",
+ // U+0B95: "க" TAMIL LETTER KA
+ // U+0BB9: "ஹ" TAMIL LETTER HA
+ // U+0B95/U+0BCD/U+0BB7:
+ // "க்ஷ" TAMIL LETTER KA/TAMIL SIGN VIRAMA/TAMIL LETTER SSA
+ key("\u0B95", joinMoreKeys("\u0BB9", "\u0B95\u0BCD\u0BB7")),
+ // U+0BA4: "த" TAMIL LETTER TA
+ "\u0BA4",
+ // U+0B9A: "ச" TAMIL LETTER CA
+ // U+0BB8: "ஸ" TAMIL LETTER SA
+ // U+0BB6/U+0BCD/U+0BB0/U+0BC0:
+ // "ஶ்ரீ" TAMIL LETTER SHA/TAMIL SIGN VIRAMA/TAMIL LETTER RA
+ // /TAMIL VOWEL SIGN II
+ key("\u0B9A", joinMoreKeys("\u0BB8", "\u0BB6\u0BCD\u0BB0\u0BC0")),
+ // U+0B9F: "ட" TAMIL LETTER TTA
+ "\u0B9F")
+ .setKeysOfRow(3,
+ // U+0B92: "ஒ" TAMIL LETTER O
+ // U+0B8E: "எ" TAMIL LETTER E
+ // U+0BCD: "்" TAMIL SIGN VIRAMA
+ // U+0BB0: "ர" TAMIL LETTER RA
+ // U+0BB5: "வ" TAMIL LETTER VA
+ // U+0BB4: "ழ TAMIL LETTER LLLA
+ // U+0BB2: "ல" TAMIL LETTER LA
+ // U+0BB3: "ள" TAMIL LETTER LLA
+ // U+0BAF: "ய" TAMIL LETTER YA
+ "\u0B92", "\u0B8E", "\u0BCD", "\u0BB0", "\u0BB5", "\u0BB4", "\u0BB2", "\u0BB3",
+ "\u0BAF",
+ // U+0BB7: "ஷ" TAMIL LETTER SSA
+ // U+0B9C: "ஜ" TAMIL LETTER JA
+ key("\u0BB7", moreKey("\u0B9C")))
+ .build();
+}
diff --git a/tests/src/com/android/inputmethod/keyboard/layout/Telugu.java b/tests/src/com/android/inputmethod/keyboard/layout/Telugu.java
new file mode 100644
index 000000000..cc8224c54
--- /dev/null
+++ b/tests/src/com/android/inputmethod/keyboard/layout/Telugu.java
@@ -0,0 +1,189 @@
+/*
+ * Copyright (C) 2014 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.keyboard.layout;
+
+import com.android.inputmethod.keyboard.layout.expected.ExpectedKey;
+import com.android.inputmethod.keyboard.layout.expected.ExpectedKeyboardBuilder;
+import com.android.inputmethod.latin.Constants;
+
+import java.util.Locale;
+
+/**
+ * The Telugu keyboard.
+ */
+public final class Telugu extends LayoutBase {
+ private static final String LAYOUT_NAME = "telugu";
+
+ public Telugu(final LayoutCustomizer customizer) {
+ super(customizer, Symbols.class, SymbolsShifted.class);
+ }
+
+ @Override
+ public String getName() { return LAYOUT_NAME; }
+
+ public static class TeluguCustomizer extends LayoutCustomizer {
+ public TeluguCustomizer(final Locale locale) { super(locale); }
+
+ @Override
+ public ExpectedKey getAlphabetKey() { return TELUGU_ALPHABET_KEY; }
+
+ @Override
+ public ExpectedKey getCurrencyKey() { return CURRENCY_RUPEE; }
+
+ @Override
+ public ExpectedKey[] getOtherCurrencyKeys() {
+ return SymbolsShifted.CURRENCIES_OTHER_GENERIC;
+ }
+
+ @Override
+ public ExpectedKey[] getLeftShiftKeys(final boolean isPhone) {
+ return EMPTY_KEYS;
+ }
+
+ @Override
+ public ExpectedKey[] getRightShiftKeys(final boolean isPhone) {
+ return isPhone ? EMPTY_KEYS : EXCLAMATION_AND_QUESTION_MARKS;
+ }
+
+ @Override
+ public ExpectedKey[] getSpaceKeys(final boolean isPhone) {
+ return joinKeys(LANGUAGE_SWITCH_KEY, SPACE_KEY, key(ZWNJ_KEY, ZWJ_KEY));
+ }
+
+ // U+0C05: "అ" TELUGU LETTER A
+ // U+0C06: "ఆ" TELUGU LETTER AA
+ // U+0C07: "ఇ" TELUGU LETTER I
+ private static final ExpectedKey TELUGU_ALPHABET_KEY = key(
+ "\u0C05\u0C06\u0C07", Constants.CODE_SWITCH_ALPHA_SYMBOL);
+
+ // U+20B9: "₹" INDIAN RUPEE SIGN
+ private static final ExpectedKey CURRENCY_RUPEE = key("\u20B9",
+ Symbols.CURRENCY_GENERIC_MORE_KEYS);
+ }
+
+ @Override
+ ExpectedKey[][] getCommonAlphabetLayout(boolean isPhone) { return ALPHABET_COMMON; }
+
+ @Override
+ ExpectedKey[][] getCommonAlphabetShiftLayout(boolean isPhone, final int elementId) {
+ return null;
+ }
+
+ private static final ExpectedKey[][] ALPHABET_COMMON = new ExpectedKeyboardBuilder()
+ .setKeysOfRow(1,
+ // U+0C4C: "ౌ" TELUGU VOWEL SIGN AU
+ // U+0C14: "ఔ" TELUGU LETTER AU
+ key("\u0C4C", joinMoreKeys("\u0C14", "1")),
+ // U+0C48: "ై" TELUGU VOWEL SIGN AI
+ // U+0C10: "ఐ" TELUGU LETTER AI
+ key("\u0C48", joinMoreKeys("\u0C10", "2")),
+ // U+0C3E: "ా" TELUGU VOWEL SIGN AA
+ // U+0C06: "ఆ" TELUGU LETTER AA
+ key("\u0C3E", joinMoreKeys("\u0C06", "3")),
+ // U+0C40: "ీ" TELUGU VOWEL SIGN II
+ // U+0C08: "ఈ" TELUGU LETTER II
+ key("\u0C40", joinMoreKeys("\u0C08", "4")),
+ // U+0C42: "ూ" TELUGU VOWEL SIGN UU
+ // U+0C0A: "ఊ" TELUGU LETTER UU
+ key("\u0C42", joinMoreKeys("\u0C0A", "5")),
+ // U+0C2C: "బ" TELUGU LETTER BA
+ // U+0C2D: "భ" TELUGU LETTER BHA
+ key("\u0C2C", joinMoreKeys("\u0C2D", "6")),
+ // U+0C39: "హ" TELUGU LETTER HA
+ // U+0C03: "ః" TELUGU SIGN VISARGA
+ key("\u0C39", joinMoreKeys("\u0C03", "7")),
+ // U+0C17: "గ" TELUGU LETTER GA
+ // U+0C18: "ఘ" TELUGU LETTER GHA
+ key("\u0C17", joinMoreKeys("\u0C18", "8")),
+ // U+0C26: "ద" TELUGU LETTER DA
+ // U+0C27: "ధ" TELUGU LETTER DHA
+ key("\u0C26", joinMoreKeys("\u0C27", "9")),
+ // U+0C1C: "జ" TELUGU LETTER JA
+ // U+0C1D: "ఝ" TELUGU LETTER JHA
+ key("\u0C1C", joinMoreKeys("\u0C1D", "0")),
+ // U+0C21: "డ" TELUGU LETTER DDA
+ // U+0C22: "ఢ" TELUGU LETTER DDHA
+ key("\u0C21", moreKey("\u0C22")))
+ .setKeysOfRow(2,
+ // U+0C4B: "ో" TELUGU VOWEL SIGN OO
+ // U+0C13: "ఓ" TELUGU LETTER OO
+ key("\u0C4B", moreKey("\u0C13")),
+ // U+0C47: "ే" TELUGU VOWEL SIGN EE
+ // U+0C0F: "ఏ" TELUGU LETTER EE
+ key("\u0C47", moreKey("\u0C0F")),
+ // U+0C4D: "్" TELUGU SIGN VIRAMA
+ // U+0C05: "అ" TELUGU LETTER A
+ key("\u0C4D", moreKey("\u0C05")),
+ // U+0C3F: "ి" TELUGU VOWEL SIGN I
+ // U+0C07: "ఇ" TELUGU LETTER I
+ key("\u0C3F", moreKey("\u0C07")),
+ // U+0C41: "ు" TELUGU VOWEL SIGN U
+ // U+0C09: "ఉ" TELUGU LETTER U
+ key("\u0C41", moreKey("\u0C09")),
+ // U+0C2A: "ప" TELUGU LETTER PA
+ // U+0C2B: "ఫ" TELUGU LETTER PHA
+ key("\u0C2A", moreKey("\u0C2B")),
+ // U+0C30: "ర" TELUGU LETTER RA
+ // U+0C31: "ఱ" TELUGU LETTER RRA
+ // U+0C43: "ృ" TELUGU VOWEL SIGN VOCALIC R
+ key("\u0C30", joinMoreKeys("\u0C31", "\u0C43")),
+ // U+0C15: "క" TELUGU LETTER KA
+ // U+0C16: "ఖ" TELUGU LETTER KHA
+ key("\u0C15", moreKey("\u0C16")),
+ // U+0C24: "త" TELUGU LETTER TA
+ // U+0C25: "థ" TELUGU LETTER THA
+ key("\u0C24", moreKey("\u0C25")),
+ // U+0C1A: "చ" TELUGU LETTER CA
+ // U+0C1B: "ఛ" TELUGU LETTER CHA
+ key("\u0C1A", moreKey("\u0C1B")),
+ // U+0C1F: "ట" TELUGU LETTER TTA
+ // U+0C20: "ఠ" TELUGU LETTER TTHA
+ key("\u0C1F", moreKey("\u0C20")))
+ .setKeysOfRow(3,
+ // U+0C46: "ె" TELUGU VOWEL SIGN E
+ // U+0C12: "ఒ" TELUGU LETTER O
+ key("\u0C46", moreKey("\u0C12")),
+ // U+0C02: "ం" TELUGU SIGN ANUSVARA
+ // U+0C0E: "ఎ" TELUGU LETTER E
+ key("\u0C02", moreKey("\u0C0E")),
+ // U+0C2E: "మ" TELUGU LETTER MA
+ "\u0C2E",
+ // U+0C28: "న" TELUGU LETTER NA
+ // U+0C23: "ణ" TELUGU LETTER NNA
+ // U+0C19: "ఙ" TELUGU LETTER NGA
+ key("\u0C28", joinMoreKeys("\u0C23", "\u0C19")),
+ // U+0C35: "వ" TELUGU LETTER VA
+ "\u0C35",
+ // U+0C32: "ల" TELUGU LETTER LA
+ // U+0C33: "ళ" TELUGU LETTER LLA
+ key("\u0C32", moreKey("\u0C33")),
+ // U+0C38: "స" TELUGU LETTER SA
+ // U+0C36: "శ" TELUGU LETTER SHA
+ key("\u0C38", moreKey("\u0C36")),
+ // U+0C0B: "ఋ" TELUGU LETTER VOCALIC R
+ // U+0C4D/U+0C30: "్ర" TELUGU SIGN VIRAMA/TELUGU LETTER RA
+ key("\u0C0B", moreKey("\u0C4D\u0C30")),
+ // U+0C37: "ష" TELUGU LETTER SSA
+ // U+0C15/U+0C4D/U+0C37:
+ // "క్ష" TELUGU LETTER KA/TELUGU SIGN VIRAMA/TELUGU LETTER SSA
+ key("\u0C37", moreKey("\u0C15\u0C4D\u0C37")),
+ // U+0C2F: "య" TELUGU LETTER YA
+ // U+0C1C/U+0C4D/U+0C1E:
+ // "జ్ఞ" TELUGU LETTER JA/TELUGU SIGN VIRAMA/TELUGU LETTER NYA
+ key("\u0C2F", moreKey("\u0C1C\u0C4D\u0C1E")))
+ .build();
+}
diff --git a/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsKannadaIN.java b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsKannadaIN.java
new file mode 100644
index 000000000..d1866e803
--- /dev/null
+++ b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsKannadaIN.java
@@ -0,0 +1,37 @@
+/*
+ * Copyright (C) 2014 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.keyboard.layout.tests;
+
+import android.test.suitebuilder.annotation.SmallTest;
+
+import com.android.inputmethod.keyboard.layout.Kannada;
+import com.android.inputmethod.keyboard.layout.Kannada.KannadaCustomizer;
+import com.android.inputmethod.keyboard.layout.LayoutBase;
+
+import java.util.Locale;
+
+/**
+ * kn_IN: Kannada (India)/kannada
+ */
+@SmallTest
+public final class TestsKannadaIN extends LayoutTestsBase {
+ private static final Locale LOCALE = new Locale("kn", "IN");
+ private static final LayoutBase LAYOUT = new Kannada(new KannadaCustomizer(LOCALE));
+
+ @Override
+ LayoutBase getLayout() { return LAYOUT; }
+}
diff --git a/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsMalayalamIN.java b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsMalayalamIN.java
new file mode 100644
index 000000000..f937de89a
--- /dev/null
+++ b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsMalayalamIN.java
@@ -0,0 +1,37 @@
+/*
+ * Copyright (C) 2014 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.keyboard.layout.tests;
+
+import android.test.suitebuilder.annotation.SmallTest;
+
+import com.android.inputmethod.keyboard.layout.LayoutBase;
+import com.android.inputmethod.keyboard.layout.Malayalam;
+import com.android.inputmethod.keyboard.layout.Malayalam.MalayalamCustomizer;
+
+import java.util.Locale;
+
+/**
+ * ta_IN: Malayalam (India)/malayalam
+ */
+@SmallTest
+public final class TestsMalayalamIN extends LayoutTestsBase {
+ private static final Locale LOCALE = new Locale("ml", "IN");
+ private static final LayoutBase LAYOUT = new Malayalam(new MalayalamCustomizer(LOCALE));
+
+ @Override
+ LayoutBase getLayout() { return LAYOUT; }
+}
diff --git a/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsTamilIN.java b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsTamilIN.java
new file mode 100644
index 000000000..5b3649d2b
--- /dev/null
+++ b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsTamilIN.java
@@ -0,0 +1,37 @@
+/*
+ * Copyright (C) 2014 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.keyboard.layout.tests;
+
+import android.test.suitebuilder.annotation.SmallTest;
+
+import com.android.inputmethod.keyboard.layout.LayoutBase;
+import com.android.inputmethod.keyboard.layout.Tamil;
+import com.android.inputmethod.keyboard.layout.Tamil.TamilCustomizer;
+
+import java.util.Locale;
+
+/**
+ * ta_IN: Tamil (India)/tamil
+ */
+@SmallTest
+public final class TestsTamilIN extends LayoutTestsBase {
+ private static final Locale LOCALE = new Locale("ta", "IN");
+ private static final LayoutBase LAYOUT = new Tamil(new TamilCustomizer(LOCALE));
+
+ @Override
+ LayoutBase getLayout() { return LAYOUT; }
+}
diff --git a/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsTeluguIN.java b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsTeluguIN.java
new file mode 100644
index 000000000..04996d9aa
--- /dev/null
+++ b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsTeluguIN.java
@@ -0,0 +1,37 @@
+/*
+ * Copyright (C) 2014 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.keyboard.layout.tests;
+
+import android.test.suitebuilder.annotation.SmallTest;
+
+import com.android.inputmethod.keyboard.layout.LayoutBase;
+import com.android.inputmethod.keyboard.layout.Telugu;
+import com.android.inputmethod.keyboard.layout.Telugu.TeluguCustomizer;
+
+import java.util.Locale;
+
+/**
+ * te_IN: Telugu (India)/telugu
+ */
+@SmallTest
+public final class TestsTeluguIN extends LayoutTestsBase {
+ private static final Locale LOCALE = new Locale("te", "IN");
+ private static final LayoutBase LAYOUT = new Telugu(new TeluguCustomizer(LOCALE));
+
+ @Override
+ LayoutBase getLayout() { return LAYOUT; }
+}