diff --git a/tests/src/com/android/inputmethod/keyboard/layout/LayoutBase.java b/tests/src/com/android/inputmethod/keyboard/layout/LayoutBase.java index 02a3900b4..2c1ac2e4f 100644 --- a/tests/src/com/android/inputmethod/keyboard/layout/LayoutBase.java +++ b/tests/src/com/android/inputmethod/keyboard/layout/LayoutBase.java @@ -145,6 +145,16 @@ public abstract class LayoutBase extends AbstractLayoutBase { return isPhone ? EMPTY_KEYS : joinKeys(EXCLAMATION_AND_QUESTION_MARKS, SHIFT_KEY); } + /** + * Get the space keys. + * @param isPhone true if requesting phone's keys. + * @return the array of {@link ExpectedKey} that should be placed at the center of the + * keyboard. + */ + public ExpectedKey[] getSpaceKeys(final boolean isPhone) { + return joinKeys(SPACE_KEY); + } + /** * Get the keys left to the spacebar. * @param isPhone true if requesting phone's keys. @@ -232,6 +242,10 @@ public abstract class LayoutBase extends AbstractLayoutBase { KeyboardIconsSet.NAME_SHIFT_KEY); private static final int ICON_SHIFTED_SHIFT = KeyboardIconsSet.getIconId( KeyboardIconsSet.NAME_SHIFT_KEY_SHIFTED); + private static final int ICON_ZWNJ = KeyboardIconsSet.getIconId( + KeyboardIconsSet.NAME_ZWNJ_KEY); + private static final int ICON_ZWJ = KeyboardIconsSet.getIconId( + KeyboardIconsSet.NAME_ZWJ_KEY); // Functional key. static final ExpectedKey CAPSLOCK_MORE_KEY = key(" ", Constants.CODE_CAPSLOCK); @@ -249,7 +263,9 @@ public abstract class LayoutBase extends AbstractLayoutBase { // U+00BF: "¿" INVERTED QUESTION MARK static final ExpectedKey[] EXCLAMATION_AND_QUESTION_MARKS = joinKeys( key("!", moreKey("\u00A1")), key("?", moreKey("\u00BF"))); - + // U+200C: ZERO WIDTH NON-JOINER + // U+200D: ZERO WIDTH JOINER + static final ExpectedKey ZWNJ_ZWJ_KEY = key(ICON_ZWNJ, "\u200C", moreKey(ICON_ZWJ, "\u200D")); // Punctuation more keys for phone form factor. public static final ExpectedKey[] PHONE_PUNCTUATION_MORE_KEYS = joinKeys( @@ -273,7 +289,7 @@ public abstract class LayoutBase extends AbstractLayoutBase { final LayoutCustomizer customizer = getCustomizer(); final ExpectedKey[] spacebar = joinKeys( customizer.getKeysLeftToSpacebar(isPhone), - SPACEBAR, + customizer.getSpaceKeys(isPhone), customizer.getKeysRightToSpacebar(isPhone)); builder.setKeysOfRow(4, spacebar); if (isPhone) { diff --git a/tests/src/com/android/inputmethod/keyboard/layout/Symbols.java b/tests/src/com/android/inputmethod/keyboard/layout/Symbols.java index ca3c711c1..3edf041f8 100644 --- a/tests/src/com/android/inputmethod/keyboard/layout/Symbols.java +++ b/tests/src/com/android/inputmethod/keyboard/layout/Symbols.java @@ -32,13 +32,28 @@ public class Symbols extends AbstractLayoutBase { } public ExpectedKey[][] getLayout(final boolean isPhone) { - final ExpectedKeyboardBuilder builder = new ExpectedKeyboardBuilder(isPhone - ? toPhoneSymbol(SYMBOLS_COMMON) : toTabletSymbols(SYMBOLS_COMMON)); - builder.replaceKeyOfLabel(CURRENCY, mCustomizer.getCurrencyKey()); - builder.replaceKeyOfLabel(DOUBLE_QUOTE, key("\"", joinKeys( - mCustomizer.getDoubleQuoteMoreKeys(), mCustomizer.getDoubleAngleQuoteKeys()))); - builder.replaceKeyOfLabel(SINGLE_QUOTE, key("'", joinKeys( - mCustomizer.getSingleQuoteMoreKeys(), mCustomizer.getSingleAngleQuoteKeys()))); + final ExpectedKeyboardBuilder builder = new ExpectedKeyboardBuilder(SYMBOLS_COMMON); + final LayoutCustomizer customizer = mCustomizer; + builder.replaceKeyOfLabel(CURRENCY, customizer.getCurrencyKey()); + builder.replaceKeyOfLabel(DOUBLE_QUOTE, key("\"", joinMoreKeys( + customizer.getDoubleQuoteMoreKeys(), customizer.getDoubleAngleQuoteKeys()))); + builder.replaceKeyOfLabel(SINGLE_QUOTE, key("'", joinMoreKeys( + customizer.getSingleQuoteMoreKeys(), customizer.getSingleAngleQuoteKeys()))); + if (isPhone) { + builder.addKeysOnTheLeftOfRow(3, customizer.getSymbolsShiftKey(isPhone)) + .addKeysOnTheRightOfRow(3, DELETE_KEY) + .addKeysOnTheLeftOfRow(4, customizer.getAlphabetKey()) + .addKeysOnTheRightOfRow(4, key(ENTER_KEY, EMOJI_KEY)); + } else { + // Tablet symbols keyboard has extra two keys at the left edge of the 3rd row. + builder.addKeysOnTheLeftOfRow(3, joinKeys("\\", "=")); + builder.addKeysOnTheRightOfRow(1, DELETE_KEY) + .addKeysOnTheRightOfRow(2, ENTER_KEY) + .addKeysOnTheLeftOfRow(3, customizer.getSymbolsShiftKey(isPhone)) + .addKeysOnTheRightOfRow(3, customizer.getSymbolsShiftKey(isPhone)) + .addKeysOnTheLeftOfRow(4, customizer.getAlphabetKey()) + .addKeysOnTheRightOfRow(4, EMOJI_KEY); + } return builder.build(); } @@ -100,76 +115,61 @@ public class Symbols extends AbstractLayoutBase { // Common symbols keyboard layout. private static final ExpectedKey[][] SYMBOLS_COMMON = new ExpectedKeyboardBuilder(10, 9, 7, 5) - .setLabelsOfRow(1, "1", "2", "3", "4", "5", "6", "7", "8", "9", "0") - // U+00B9: "¹" SUPERSCRIPT ONE - // U+00BD: "½" VULGAR FRACTION ONE HALF - // U+2153: "⅓" VULGAR FRACTION ONE THIRD - // U+00BC: "¼" VULGAR FRACTION ONE QUARTER - // U+215B: "⅛" VULGAR FRACTION ONE EIGHTH - .setMoreKeysOf("1", "\u00B9", "\u00BD", "\u2153", "\u00BC", "\u215B") - // U+00B2: "²" SUPERSCRIPT TWO - // U+2154: "⅔" VULGAR FRACTION TWO THIRDS - .setMoreKeysOf("2", "\u00B2", "\u2154") - // U+00B3: "³" SUPERSCRIPT THREE - // U+00BE: "¾" VULGAR FRACTION THREE QUARTERS - // U+215C: "⅜" VULGAR FRACTION THREE EIGHTHS - .setMoreKeysOf("3", "\u00B3", "\u00BE", "\u215C") - // U+2074: "⁴" SUPERSCRIPT FOUR - .setMoreKeysOf("4", "\u2074") - // U+215D: "⅝" VULGAR FRACTION FIVE EIGHTHS - .setMoreKeysOf("5", "\u215D") - // U+215E: "⅞" VULGAR FRACTION SEVEN EIGHTHS - .setMoreKeysOf("7", "\u215E") - // U+207F: "ⁿ" SUPERSCRIPT LATIN SMALL LETTER N - // U+2205: "∅" EMPTY SET - .setMoreKeysOf("0", "\u207F", "\u2205") - .setLabelsOfRow(2, "@", "#", CURRENCY, "%", "&", "-", "+", "(", ")") - // U+2030: "‰" PER MILLE SIGN - .setMoreKeysOf("%", "\u2030") - // U+2013: "–" EN DASH - // U+2014: "—" EM DASH - // U+00B7: "·" MIDDLE DOT - .setMoreKeysOf("-", "_", "\u2013", "\u2014", "\u00B7") - // U+00B1: "±" PLUS-MINUS SIGN - .setMoreKeysOf("+", "\u00B1") - .setMoreKeysOf("(", "<", "{", "[") - .setMoreKeysOf(")", ">", "}", "]") - .setLabelsOfRow(3, "*", DOUBLE_QUOTE, SINGLE_QUOTE, ":", ";", "!", "?") - // U+2020: "†" DAGGER - // U+2021: "‡" DOUBLE DAGGER - // U+2605: "★" BLACK STAR - .setMoreKeysOf("*", "\u2020", "\u2021", "\u2605") - // U+00A1: "¡" INVERTED EXCLAMATION MARK - .setMoreKeysOf("!", "\u00A1") - // U+00BF: "¿" INVERTED QUESTION MARK - .setMoreKeysOf("?", "\u00BF") - .setLabelsOfRow(4, "_", "/", " ", ",", ".") - // U+2026: "…" HORIZONTAL ELLIPSIS - .setMoreKeysOf(".", "\u2026") + .setKeysOfRow(1, + // U+00B9: "¹" SUPERSCRIPT ONE + // U+00BD: "½" VULGAR FRACTION ONE HALF + // U+2153: "⅓" VULGAR FRACTION ONE THIRD + // U+00BC: "¼" VULGAR FRACTION ONE QUARTER + // U+215B: "⅛" VULGAR FRACTION ONE EIGHTH + key("1", joinMoreKeys("\u00B9", "\u00BD", "\u2153", "\u00BC", "\u215B")), + // U+00B2: "²" SUPERSCRIPT TWO + // U+2154: "⅔" VULGAR FRACTION TWO THIRDS + key("2", joinMoreKeys("\u00B2", "\u2154")), + // U+00B3: "³" SUPERSCRIPT THREE + // U+00BE: "¾" VULGAR FRACTION THREE QUARTERS + // U+215C: "⅜" VULGAR FRACTION THREE EIGHTHS + key("3", joinMoreKeys("\u00B3", "\u00BE", "\u215C")), + // U+2074: "⁴" SUPERSCRIPT FOUR + key("4", moreKey("\u2074")), + // U+215D: "⅝" VULGAR FRACTION FIVE EIGHTHS + key("5", moreKey("\u215D")), + key("6"), + // U+215E: "⅞" VULGAR FRACTION SEVEN EIGHTHS + key("7", moreKey("\u215E")), + key("8"), + key("9"), + // U+207F: "ⁿ" SUPERSCRIPT LATIN SMALL LETTER N + // U+2205: "∅" EMPTY SET + key("0", joinMoreKeys("\u207F", "\u2205"))) + .setKeysOfRow(2, + key("@"), key("#"), key(CURRENCY), + // U+2030: "‰" PER MILLE SIGN + key("%", moreKey("\u2030")), + key("&"), + // U+2013: "–" EN DASH + // U+2014: "—" EM DASH + // U+00B7: "·" MIDDLE DOT + key("-", joinMoreKeys("_", "\u2013", "\u2014", "\u00B7")), + // U+00B1: "±" PLUS-MINUS SIGN + key("+", moreKey("\u00B1")), + key("(", joinMoreKeys("<", "{", "[")), + key(")", joinMoreKeys(">", "}", "]"))) + .setKeysOfRow(3, + // U+2020: "†" DAGGER + // U+2021: "‡" DOUBLE DAGGER + // U+2605: "★" BLACK STAR + key("*", joinMoreKeys("\u2020", "\u2021", "\u2605")), + key(DOUBLE_QUOTE), key(SINGLE_QUOTE), key(":"), key(";"), + // U+00A1: "¡" INVERTED EXCLAMATION MARK + key("!", moreKey("\u00A1")), + // U+00BF: "¿" INVERTED QUESTION MARK + key("?", moreKey("\u00BF"))) + .setKeysOfRow(4, + key("_"), key("/"), SPACE_KEY, key(","), + // U+2026: "…" HORIZONTAL ELLIPSIS + key(".", moreKey("\u2026"))) .build(); - private ExpectedKey[][] toPhoneSymbol(final ExpectedKey[][] common) { - return new ExpectedKeyboardBuilder(common) - .addKeysOnTheLeftOfRow(3, mCustomizer.getSymbolsShiftKey(true /* isPhone */)) - .addKeysOnTheRightOfRow(3, DELETE_KEY) - .addKeysOnTheLeftOfRow(4, mCustomizer.getAlphabetKey()) - .addKeysOnTheRightOfRow(4, key(ENTER_KEY, EMOJI_KEY)) - .build(); - } - - private ExpectedKey[][] toTabletSymbols(final ExpectedKey[][] common) { - return new ExpectedKeyboardBuilder(common) - .addKeysOnTheLeftOfRow(3, - key("\\"), key("=")) - .addKeysOnTheRightOfRow(1, DELETE_KEY) - .addKeysOnTheRightOfRow(2, ENTER_KEY) - .addKeysOnTheLeftOfRow(3, mCustomizer.getSymbolsShiftKey(false /* isPhone */)) - .addKeysOnTheRightOfRow(3, mCustomizer.getSymbolsShiftKey(false /* isPhone */)) - .addKeysOnTheLeftOfRow(4, mCustomizer.getAlphabetKey()) - .addKeysOnTheRightOfRow(4, EMOJI_KEY) - .build(); - } - public static class RtlSymbols extends Symbols { public RtlSymbols(final LayoutCustomizer customizer) { super(customizer); diff --git a/tests/src/com/android/inputmethod/keyboard/layout/SymbolsShifted.java b/tests/src/com/android/inputmethod/keyboard/layout/SymbolsShifted.java index f5b78ceb1..2403f0fd7 100644 --- a/tests/src/com/android/inputmethod/keyboard/layout/SymbolsShifted.java +++ b/tests/src/com/android/inputmethod/keyboard/layout/SymbolsShifted.java @@ -32,10 +32,26 @@ public class SymbolsShifted extends AbstractLayoutBase { } public ExpectedKey[][] getLayout(final boolean isPhone) { - final ExpectedKeyboardBuilder builder = new ExpectedKeyboardBuilder(isPhone - ? toPhoneSymbolsShifted(SYMBOLS_SHIFTED_COMMON) - : toTabletSymbolsShifted(SYMBOLS_SHIFTED_COMMON)); - builder.replaceKeyOfLabel(OTHER_CURRENCIES, mCustomizer.getOtherCurrencyKeys()); + final ExpectedKeyboardBuilder builder = new ExpectedKeyboardBuilder(SYMBOLS_SHIFTED_COMMON); + final LayoutCustomizer customizer = mCustomizer; + builder.replaceKeyOfLabel(OTHER_CURRENCIES, customizer.getOtherCurrencyKeys()); + if (isPhone) { + builder.addKeysOnTheLeftOfRow(3, customizer.getBackToSymbolsKey()) + .addKeysOnTheRightOfRow(3, DELETE_KEY) + .addKeysOnTheLeftOfRow(4, customizer.getAlphabetKey()) + .addKeysOnTheRightOfRow(4, key(ENTER_KEY, EMOJI_KEY)); + } else { + // Tablet symbols shifted keyboard has extra two keys at the right edge of the 3rd row. + // U+00BF: "¿" INVERTED QUESTION MARK + // U+00A1: "¡" INVERTED EXCLAMATION MARK + builder.addKeysOnTheRightOfRow(3, joinKeys("\u00A1", "\u00BF")); + builder.addKeysOnTheRightOfRow(1, DELETE_KEY) + .addKeysOnTheRightOfRow(2, ENTER_KEY) + .addKeysOnTheLeftOfRow(3, customizer.getBackToSymbolsKey()) + .addKeysOnTheRightOfRow(3, customizer.getBackToSymbolsKey()) + .addKeysOnTheLeftOfRow(4, customizer.getAlphabetKey()) + .addKeysOnTheRightOfRow(4, EMOJI_KEY); + } return builder.build(); } @@ -54,92 +70,71 @@ public class SymbolsShifted extends AbstractLayoutBase { }; // Common symbols shifted keyboard layout. - private static final ExpectedKey[][] SYMBOLS_SHIFTED_COMMON = - new ExpectedKeyboardBuilder(10, 1 /* other_currencies */ + 5, 7, 5) - // U+0060: "`" GRAVE ACCENT - // U+2022: "•" BULLET - // U+221A: "√" SQUARE ROOT - // U+03C0: "π" GREEK SMALL LETTER PI - // U+00F7: "÷" DIVISION SIGN - // U+00D7: "×" MULTIPLICATION SIGN - // U+00B6: "¶" PILCROW SIGN - // U+2206: "∆" INCREMENT - .setLabelsOfRow(1, - "~", "\u0060", "|", "\u2022", "\u221A", - "\u03C0", "\u00F7", "\u00D7", "\u00B6", "\u2206") - // U+2022: "•" BULLET - // U+266A: "♪" EIGHTH NOTE - // U+2665: "♥" BLACK HEART SUIT - // U+2660: "♠" BLACK SPADE SUIT - // U+2666: "♦" BLACK DIAMOND SUIT - // U+2663: "♣" BLACK CLUB SUIT - .setMoreKeysOf("\u2022", "\u266A", "\u2665", "\u2660", "\u2666", "\u2663") - // U+03C0: "π" GREEK SMALL LETTER PI - // U+03A0: "Π" GREEK CAPITAL LETTER PI - .setMoreKeysOf("\u03C0", "\u03A0") - // U+00B6: "¶" PILCROW SIGN - // U+00A7: "§" SECTION SIGN - .setMoreKeysOf("\u00B6", "\u00A7") - // U+00B0: "°" DEGREE SIGN - .setLabelsOfRow(2, OTHER_CURRENCIES, "^", "\u00B0", "=", "{", "}") - // U+2191: "↑" UPWARDS ARROW - // U+2193: "↓" DOWNWARDS ARROW - // U+2190: "←" LEFTWARDS ARROW - // U+2192: "→" RIGHTWARDS ARROW - .setMoreKeysOf("^", "\u2191", "\u2193", "\u2190", "\u2192") - // U+00B0: "°" DEGREE SIGN - // U+2032: "′" PRIME - // U+2033: "″" DOUBLE PRIME - .setMoreKeysOf("\u00B0", "\u2032", "\u2033") - // U+2260: "≠" NOT EQUAL TO - // U+2248: "≈" ALMOST EQUAL TO - // U+221E: "∞" INFINITY - .setMoreKeysOf("=", "\u2260", "\u2248", "\u221E") - // U+00A9: "©" COPYRIGHT SIGN - // U+00AE: "®" REGISTERED SIGN - // U+2122: "™" TRADE MARK SIGN - // U+2105: "℅" CARE OF + private static final ExpectedKey[][] SYMBOLS_SHIFTED_COMMON = new ExpectedKeyboardBuilder( + 10, 1 /* other_currencies */+ 5, 7, 5) + .setKeysOfRow(1, + key("~"), + // U+0060: "`" GRAVE ACCENT + key("\u0060"), + key("|"), + // U+2022: "•" BULLET + // U+266A: "♪" EIGHTH NOTE + // U+2665: "♥" BLACK HEART SUIT + // U+2660: "♠" BLACK SPADE SUIT + // U+2666: "♦" BLACK DIAMOND SUIT + // U+2663: "♣" BLACK CLUB SUIT + key("\u2022", joinMoreKeys("\u266A", "\u2665", "\u2660", "\u2666", "\u2663")), + // U+221A: "√" SQUARE ROOT + key("\u221A"), + // U+03C0: "π" GREEK SMALL LETTER PI + // U+03A0: "Π" GREEK CAPITAL LETTER PI + key("\u03C0", moreKey("\u03A0")), + // U+00F7: "÷" DIVISION SIGN + key("\u00F7"), + // U+00D7: "×" MULTIPLICATION SIGN + key("\u00D7"), + // U+00B6: "¶" PILCROW SIGN + // U+00A7: "§" SECTION SIGN + key("\u00B6", moreKey("\u00A7")), + // U+2206: "∆" INCREMENT + key("\u2206")) + .setKeysOfRow(2, + key(OTHER_CURRENCIES), + // U+2191: "↑" UPWARDS ARROW + // U+2193: "↓" DOWNWARDS ARROW + // U+2190: "←" LEFTWARDS ARROW + // U+2192: "→" RIGHTWARDS ARROW + key("^", joinMoreKeys("\u2191", "\u2193", "\u2190", "\u2192")), + // U+00B0: "°" DEGREE SIGN + // U+2032: "′" PRIME + // U+2033: "″" DOUBLE PRIME + key("\u00B0", joinMoreKeys("\u2032", "\u2033")), + // U+2260: "≠" NOT EQUAL TO + // U+2248: "≈" ALMOST EQUAL TO + // U+221E: "∞" INFINITY + key("=", joinMoreKeys("\u2260", "\u2248", "\u221E")), + key("{"), + key("}")) .setLabelsOfRow(3, - "\\", "\u00A9", "\u00AE", "\u2122", "\u2105", - "[", "]") - .setLabelsOfRow(4, - "<", ">", " ", ",", ".") - // U+2039: "‹" SINGLE LEFT-POINTING ANGLE QUOTATION MARK - // U+2264: "≤" LESS-THAN OR EQUAL TO - // U+00AB: "«" LEFT-POINTING DOUBLE ANGLE QUOTATION MARK - .setMoreKeysOf("<", "\u2039", "\u2264", "\u00AB") - // U+203A: "›" SINGLE RIGHT-POINTING ANGLE QUOTATION MARK - // U+2265: "≥" GREATER-THAN EQUAL TO - // U+00BB: "»" RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK - .setMoreKeysOf(">", "\u203A", "\u2265", "\u00BB") - // U+2026: "…" HORIZONTAL ELLIPSIS - .setMoreKeysOf(".", "\u2026") + // U+00A9: "©" COPYRIGHT SIGN + // U+00AE: "®" REGISTERED SIGN + // U+2122: "™" TRADE MARK SIGN + // U+2105: "℅" CARE OF + "\\", "\u00A9", "\u00AE", "\u2122", "\u2105", "[", "]") + .setKeysOfRow(4, + // U+2039: "‹" SINGLE LEFT-POINTING ANGLE QUOTATION MARK + // U+2264: "≤" LESS-THAN OR EQUAL TO + // U+00AB: "«" LEFT-POINTING DOUBLE ANGLE QUOTATION MARK + key("<", joinMoreKeys("\u2039", "\u2264", "\u00AB")), + // U+203A: "›" SINGLE RIGHT-POINTING ANGLE QUOTATION MARK + // U+2265: "≥" GREATER-THAN EQUAL TO + // U+00BB: "»" RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK + key(">", joinMoreKeys("\u203A", "\u2265", "\u00BB")), + SPACE_KEY, key(","), + // U+2026: "…" HORIZONTAL ELLIPSIS + key(".", moreKey("\u2026"))) .build(); - private ExpectedKey[][] toPhoneSymbolsShifted(final ExpectedKey[][] common) { - return new ExpectedKeyboardBuilder(common) - .addKeysOnTheLeftOfRow(3, mCustomizer.getBackToSymbolsKey()) - .addKeysOnTheRightOfRow(3, DELETE_KEY) - .addKeysOnTheLeftOfRow(4, mCustomizer.getAlphabetKey()) - .addKeysOnTheRightOfRow(4, key(ENTER_KEY, EMOJI_KEY)) - .build(); - } - - private ExpectedKey[][] toTabletSymbolsShifted(final ExpectedKey[][] common) { - return new ExpectedKeyboardBuilder(common) - // U+00BF: "¿" INVERTED QUESTION MARK - // U+00A1: "¡" INVERTED EXCLAMATION MARK - .addKeysOnTheRightOfRow(3, - key("\u00A1"), key("\u00BF")) - .addKeysOnTheRightOfRow(1, DELETE_KEY) - .addKeysOnTheRightOfRow(2, ENTER_KEY) - .addKeysOnTheLeftOfRow(3, mCustomizer.getBackToSymbolsKey()) - .addKeysOnTheRightOfRow(3, mCustomizer.getBackToSymbolsKey()) - .addKeysOnTheLeftOfRow(4, mCustomizer.getAlphabetKey()) - .addKeysOnTheRightOfRow(4, EMOJI_KEY) - .build(); - } - public static class RtlSymbolsShifted extends SymbolsShifted { public RtlSymbolsShifted(final LayoutCustomizer customizer) { super(customizer); diff --git a/tests/src/com/android/inputmethod/keyboard/layout/expected/AbstractLayoutBase.java b/tests/src/com/android/inputmethod/keyboard/layout/expected/AbstractLayoutBase.java index 066bcc0be..61cadfcad 100644 --- a/tests/src/com/android/inputmethod/keyboard/layout/expected/AbstractLayoutBase.java +++ b/tests/src/com/android/inputmethod/keyboard/layout/expected/AbstractLayoutBase.java @@ -31,54 +31,66 @@ public abstract class AbstractLayoutBase { // Those helper methods have a lower case name to be readable when defining expected keyboard // layouts. - // Helper method to create {@link ExpectedKey} object that has the label. + // Helper method to create an {@link ExpectedKey} object that has the label. public static ExpectedKey key(final String label, final ExpectedKey ... moreKeys) { return ExpectedKey.newInstance(label, moreKeys); } - // Helper method to create {@link ExpectedKey} object that has the label and the output text. + // Helper method to create an {@link ExpectedKey} object that has the label and the output text. public static ExpectedKey key(final String label, final String outputText, final ExpectedKey ... moreKeys) { return ExpectedKey.newInstance(label, outputText, moreKeys); } - // Helper method to create {@link ExpectedKey} object that has the label and the output code. + // Helper method to create an {@link ExpectedKey} object that has the label and the output code. public static ExpectedKey key(final String label, final int code, final ExpectedKey ... moreKeys) { return ExpectedKey.newInstance(label, code, moreKeys); } - // Helper method to create {@link ExpectedKey} object that has the icon and the output code. + // Helper method to create an {@link ExpectedKey} object that has the icon and the output text. + public static ExpectedKey key(final int iconId, final String outputText, + final ExpectedKey ... moreKeys) { + return ExpectedKey.newInstance(iconId, outputText, moreKeys); + } + + // Helper method to create an {@link ExpectedKey} object that has the icon and the output code. public static ExpectedKey key(final int iconId, final int code, final ExpectedKey ... moreKeys) { return ExpectedKey.newInstance(iconId, code, moreKeys); } - // Helper method to create {@link ExpectedKey} object that has new "more keys". + // Helper method to create an {@link ExpectedKey} object that has new "more keys". public static ExpectedKey key(final ExpectedKey key, final ExpectedKey ... moreKeys) { return ExpectedKey.newInstance(key.getVisual(), key.getOutput(), moreKeys); } - // Helper method to create {@link ExpectedKey} object for "more key" that has the label. + // Helper method to create an {@link ExpectedKey} object for a "more key" that has the label. public static ExpectedKey moreKey(final String label) { return ExpectedKey.newInstance(label); } - // Helper method to create {@link ExpectedKey} object for "more key" that has the label and the - // output text. + // Helper method to create an {@link ExpectedKey} object for a "more key" that has the label + // and the output text. public static ExpectedKey moreKey(final String label, final String outputText) { return ExpectedKey.newInstance(label, outputText); } - // Helper method to create {@link ExpectedKey} object for "more key" that has the label and the - // output code. + // Helper method to create an {@link ExpectedKey} object for a "more key" that has the label + // and the output code. public static ExpectedKey moreKey(final String label, final int code) { return ExpectedKey.newInstance(label, code); } + // Helper method to create an {@link ExpectedKey} object for a "more key" that has the icon + // and the output text. + public static ExpectedKey moreKey(final int iconId, final String outputText) { + return ExpectedKey.newInstance(iconId, outputText); + } + // Helper method to create {@link ExpectedKey} array by joining {@link ExpectedKey}, // {@link ExpectedKey} array, and {@link String}. - public static ExpectedKey[] moreKeys(final Object ... moreKeys) { + public static ExpectedKey[] joinMoreKeys(final Object ... moreKeys) { return joinKeys(moreKeys); } @@ -115,6 +127,6 @@ public abstract class AbstractLayoutBase { public static final ExpectedKey SETTINGS_KEY = key(ICON_SETTINGS, Constants.CODE_SETTINGS); public static final ExpectedKey ENTER_KEY = key(ICON_ENTER, Constants.CODE_ENTER); public static final ExpectedKey EMOJI_KEY = key(ICON_EMOJI, Constants.CODE_EMOJI); - public static final ExpectedKey SPACEBAR = key( + public static final ExpectedKey SPACE_KEY = key( StringUtils.newSingleCodePointString(Constants.CODE_SPACE)); } diff --git a/tests/src/com/android/inputmethod/keyboard/layout/expected/ExpectedKey.java b/tests/src/com/android/inputmethod/keyboard/layout/expected/ExpectedKey.java index e22d75cd7..98c08aded 100644 --- a/tests/src/com/android/inputmethod/keyboard/layout/expected/ExpectedKey.java +++ b/tests/src/com/android/inputmethod/keyboard/layout/expected/ExpectedKey.java @@ -47,6 +47,13 @@ public class ExpectedKey { ExpectedKeyOutput.newInstance(code), moreKeys); } + // A key that has an icon and an output text and may have "more keys". + static ExpectedKey newInstance(final int iconId, final String outputText, + final ExpectedKey ... moreKeys) { + return newInstance(ExpectedKeyVisual.newInstance(iconId), + ExpectedKeyOutput.newInstance(outputText), moreKeys); + } + // A key that has an icon and a code point output and may have "more keys". static ExpectedKey newInstance(final int iconId, final int code, final ExpectedKey ... moreKeys) { diff --git a/tests/src/com/android/inputmethod/keyboard/layout/tests/LayoutTestsBase.java b/tests/src/com/android/inputmethod/keyboard/layout/tests/LayoutTestsBase.java index 9c9f74890..c51abc03e 100644 --- a/tests/src/com/android/inputmethod/keyboard/layout/tests/LayoutTestsBase.java +++ b/tests/src/com/android/inputmethod/keyboard/layout/tests/LayoutTestsBase.java @@ -56,36 +56,36 @@ abstract class LayoutTestsBase extends KeyboardLayoutSetTestsBase { // Those helper methods have a lower case name to be readable when defining expected keyboard // layouts. - // Helper method to create {@link ExpectedKey} object that has the label. + // Helper method to create an {@link ExpectedKey} object that has the label. static ExpectedKey key(final String label, final ExpectedKey ... moreKeys) { return AbstractLayoutBase.key(label, moreKeys); } - // Helper method to create {@link ExpectedKey} object that has the label and the output text. + // Helper method to create an {@link ExpectedKey} object that has the label and the output text. static ExpectedKey key(final String label, final String outputText, final ExpectedKey ... moreKeys) { return AbstractLayoutBase.key(label, outputText, moreKeys); } - // Helper method to create {@link ExpectedKey} object that has new "more keys". + // Helper method to create an {@link ExpectedKey} object that has new "more keys". static ExpectedKey key(final ExpectedKey key, final ExpectedKey ... moreKeys) { return AbstractLayoutBase.key(key, moreKeys); } - // Helper method to create {@link ExpectedKey} object for "more key" that has the label. + // Helper method to create an {@link ExpectedKey} object for a "more key" that has the label. static ExpectedKey moreKey(final String label) { return AbstractLayoutBase.moreKey(label); } - // Helper method to create {@link ExpectedKey} object for "more key" that has the label and the - // output text. + // Helper method to create an {@link ExpectedKey} object for a "more key" that has the label + // and the output text. static ExpectedKey moreKey(final String label, final String outputText) { return AbstractLayoutBase.moreKey(label, outputText); } // Helper method to create {@link ExpectedKey} array by joining {@link ExpectedKey}, // {@link ExpectedKey} array, and {@link String}. - static ExpectedKey[] moreKeys(final Object ... moreKeys) { + static ExpectedKey[] joinMoreKeys(final Object ... moreKeys) { return AbstractLayoutBase.joinKeys(moreKeys); }