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