173b3b81149d47c186ba3f9c056ae7854e2c18113Tadashi G. Takaoka/* 273b3b81149d47c186ba3f9c056ae7854e2c18113Tadashi G. Takaoka * Copyright (C) 2014 The Android Open Source Project 373b3b81149d47c186ba3f9c056ae7854e2c18113Tadashi G. Takaoka * 473b3b81149d47c186ba3f9c056ae7854e2c18113Tadashi G. Takaoka * Licensed under the Apache License, Version 2.0 (the "License"); 573b3b81149d47c186ba3f9c056ae7854e2c18113Tadashi G. Takaoka * you may not use this file except in compliance with the License. 673b3b81149d47c186ba3f9c056ae7854e2c18113Tadashi G. Takaoka * You may obtain a copy of the License at 773b3b81149d47c186ba3f9c056ae7854e2c18113Tadashi G. Takaoka * 873b3b81149d47c186ba3f9c056ae7854e2c18113Tadashi G. Takaoka * http://www.apache.org/licenses/LICENSE-2.0 973b3b81149d47c186ba3f9c056ae7854e2c18113Tadashi G. Takaoka * 1073b3b81149d47c186ba3f9c056ae7854e2c18113Tadashi G. Takaoka * Unless required by applicable law or agreed to in writing, software 1173b3b81149d47c186ba3f9c056ae7854e2c18113Tadashi G. Takaoka * distributed under the License is distributed on an "AS IS" BASIS, 1273b3b81149d47c186ba3f9c056ae7854e2c18113Tadashi G. Takaoka * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 1373b3b81149d47c186ba3f9c056ae7854e2c18113Tadashi G. Takaoka * See the License for the specific language governing permissions and 1473b3b81149d47c186ba3f9c056ae7854e2c18113Tadashi G. Takaoka * limitations under the License. 1573b3b81149d47c186ba3f9c056ae7854e2c18113Tadashi G. Takaoka */ 1673b3b81149d47c186ba3f9c056ae7854e2c18113Tadashi G. Takaoka 1773b3b81149d47c186ba3f9c056ae7854e2c18113Tadashi G. Takaokapackage com.android.inputmethod.keyboard; 1873b3b81149d47c186ba3f9c056ae7854e2c18113Tadashi G. Takaoka 1973b3b81149d47c186ba3f9c056ae7854e2c18113Tadashi G. Takaokaimport android.test.suitebuilder.annotation.SmallTest; 2073b3b81149d47c186ba3f9c056ae7854e2c18113Tadashi G. Takaokaimport android.view.inputmethod.InputMethodSubtype; 2173b3b81149d47c186ba3f9c056ae7854e2c18113Tadashi G. Takaoka 2273b3b81149d47c186ba3f9c056ae7854e2c18113Tadashi G. Takaokaimport com.android.inputmethod.latin.utils.SubtypeLocaleUtils; 2373b3b81149d47c186ba3f9c056ae7854e2c18113Tadashi G. Takaoka 2473b3b81149d47c186ba3f9c056ae7854e2c18113Tadashi G. Takaokaimport java.util.ArrayList; 2573b3b81149d47c186ba3f9c056ae7854e2c18113Tadashi G. Takaoka 2673b3b81149d47c186ba3f9c056ae7854e2c18113Tadashi G. Takaoka@SmallTest 2773b3b81149d47c186ba3f9c056ae7854e2c18113Tadashi G. Takaokapublic class KeyboardLayoutSetSubtypesCountTests extends KeyboardLayoutSetTestsBase { 28c9add10c38aabefe41979ec8b0098f3589df8acdTadashi G. Takaoka private static final int NUMBER_OF_SUBTYPES = 76; 29ac5e6ddd975ecba942fabaf752f2fad8773c51dbTadashi G. Takaoka private static final int NUMBER_OF_ASCII_CAPABLE_SUBTYPES = 45; 3073b3b81149d47c186ba3f9c056ae7854e2c18113Tadashi G. Takaoka private static final int NUMBER_OF_PREDEFINED_ADDITIONAL_SUBTYPES = 2; 3173b3b81149d47c186ba3f9c056ae7854e2c18113Tadashi G. Takaoka 32c5dc74067385f9ab6ec3086825d0b369c26a1ea3Tadashi G. Takaoka @Override 33c5dc74067385f9ab6ec3086825d0b369c26a1ea3Tadashi G. Takaoka protected int getKeyboardThemeForTests() { 34c5dc74067385f9ab6ec3086825d0b369c26a1ea3Tadashi G. Takaoka return KeyboardTheme.THEME_ID_KLP; 35c5dc74067385f9ab6ec3086825d0b369c26a1ea3Tadashi G. Takaoka } 36c5dc74067385f9ab6ec3086825d0b369c26a1ea3Tadashi G. Takaoka 3773b3b81149d47c186ba3f9c056ae7854e2c18113Tadashi G. Takaoka private static String toString(final ArrayList<InputMethodSubtype> subtypeList) { 3873b3b81149d47c186ba3f9c056ae7854e2c18113Tadashi G. Takaoka final StringBuilder sb = new StringBuilder(); 3973b3b81149d47c186ba3f9c056ae7854e2c18113Tadashi G. Takaoka for (int index = 0; index < subtypeList.size(); index++) { 4073b3b81149d47c186ba3f9c056ae7854e2c18113Tadashi G. Takaoka final InputMethodSubtype subtype = subtypeList.get(index); 4173b3b81149d47c186ba3f9c056ae7854e2c18113Tadashi G. Takaoka sb.append(index + ": "); 4273b3b81149d47c186ba3f9c056ae7854e2c18113Tadashi G. Takaoka sb.append(SubtypeLocaleUtils.getSubtypeNameForLogging(subtype)); 4373b3b81149d47c186ba3f9c056ae7854e2c18113Tadashi G. Takaoka sb.append("\n"); 4473b3b81149d47c186ba3f9c056ae7854e2c18113Tadashi G. Takaoka } 4573b3b81149d47c186ba3f9c056ae7854e2c18113Tadashi G. Takaoka return sb.toString(); 4673b3b81149d47c186ba3f9c056ae7854e2c18113Tadashi G. Takaoka } 4773b3b81149d47c186ba3f9c056ae7854e2c18113Tadashi G. Takaoka 4873b3b81149d47c186ba3f9c056ae7854e2c18113Tadashi G. Takaoka public final void testAllSubtypesCount() { 4973b3b81149d47c186ba3f9c056ae7854e2c18113Tadashi G. Takaoka final ArrayList<InputMethodSubtype> allSubtypesList = getAllSubtypesList(); 5073b3b81149d47c186ba3f9c056ae7854e2c18113Tadashi G. Takaoka assertEquals(toString(allSubtypesList), NUMBER_OF_SUBTYPES, allSubtypesList.size()); 5173b3b81149d47c186ba3f9c056ae7854e2c18113Tadashi G. Takaoka } 5273b3b81149d47c186ba3f9c056ae7854e2c18113Tadashi G. Takaoka 5373b3b81149d47c186ba3f9c056ae7854e2c18113Tadashi G. Takaoka public final void testAsciiCapableSubtypesCount() { 5473b3b81149d47c186ba3f9c056ae7854e2c18113Tadashi G. Takaoka final ArrayList<InputMethodSubtype> asciiCapableSubtypesList = 5573b3b81149d47c186ba3f9c056ae7854e2c18113Tadashi G. Takaoka getAsciiCapableSubtypesList(); 5673b3b81149d47c186ba3f9c056ae7854e2c18113Tadashi G. Takaoka assertEquals(toString(asciiCapableSubtypesList), 5773b3b81149d47c186ba3f9c056ae7854e2c18113Tadashi G. Takaoka NUMBER_OF_ASCII_CAPABLE_SUBTYPES, asciiCapableSubtypesList.size()); 5873b3b81149d47c186ba3f9c056ae7854e2c18113Tadashi G. Takaoka } 5973b3b81149d47c186ba3f9c056ae7854e2c18113Tadashi G. Takaoka 6073b3b81149d47c186ba3f9c056ae7854e2c18113Tadashi G. Takaoka public final void testAdditionalSubtypesCount() { 6173b3b81149d47c186ba3f9c056ae7854e2c18113Tadashi G. Takaoka final ArrayList<InputMethodSubtype> additionalSubtypesList = getAdditionalSubtypesList(); 6273b3b81149d47c186ba3f9c056ae7854e2c18113Tadashi G. Takaoka assertEquals(toString(additionalSubtypesList), 6373b3b81149d47c186ba3f9c056ae7854e2c18113Tadashi G. Takaoka NUMBER_OF_PREDEFINED_ADDITIONAL_SUBTYPES, additionalSubtypesList.size()); 6473b3b81149d47c186ba3f9c056ae7854e2c18113Tadashi G. Takaoka } 6573b3b81149d47c186ba3f9c056ae7854e2c18113Tadashi G. Takaoka} 66