17dd32dfc065c13e946c0d42a0e000f4ce7298ed7Tadashi G. Takaoka/*
27dd32dfc065c13e946c0d42a0e000f4ce7298ed7Tadashi G. Takaoka * Copyright (C) 2014 The Android Open Source Project
37dd32dfc065c13e946c0d42a0e000f4ce7298ed7Tadashi G. Takaoka *
47dd32dfc065c13e946c0d42a0e000f4ce7298ed7Tadashi G. Takaoka * Licensed under the Apache License, Version 2.0 (the "License");
57dd32dfc065c13e946c0d42a0e000f4ce7298ed7Tadashi G. Takaoka * you may not use this file except in compliance with the License.
67dd32dfc065c13e946c0d42a0e000f4ce7298ed7Tadashi G. Takaoka * You may obtain a copy of the License at
77dd32dfc065c13e946c0d42a0e000f4ce7298ed7Tadashi G. Takaoka *
87dd32dfc065c13e946c0d42a0e000f4ce7298ed7Tadashi G. Takaoka *      http://www.apache.org/licenses/LICENSE-2.0
97dd32dfc065c13e946c0d42a0e000f4ce7298ed7Tadashi G. Takaoka *
107dd32dfc065c13e946c0d42a0e000f4ce7298ed7Tadashi G. Takaoka * Unless required by applicable law or agreed to in writing, software
117dd32dfc065c13e946c0d42a0e000f4ce7298ed7Tadashi G. Takaoka * distributed under the License is distributed on an "AS IS" BASIS,
127dd32dfc065c13e946c0d42a0e000f4ce7298ed7Tadashi G. Takaoka * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
137dd32dfc065c13e946c0d42a0e000f4ce7298ed7Tadashi G. Takaoka * See the License for the specific language governing permissions and
147dd32dfc065c13e946c0d42a0e000f4ce7298ed7Tadashi G. Takaoka * limitations under the License.
157dd32dfc065c13e946c0d42a0e000f4ce7298ed7Tadashi G. Takaoka */
167dd32dfc065c13e946c0d42a0e000f4ce7298ed7Tadashi G. Takaoka
177dd32dfc065c13e946c0d42a0e000f4ce7298ed7Tadashi G. Takaokapackage com.android.inputmethod.keyboard.internal;
187dd32dfc065c13e946c0d42a0e000f4ce7298ed7Tadashi G. Takaoka
197dd32dfc065c13e946c0d42a0e000f4ce7298ed7Tadashi G. Takaokaimport static com.android.inputmethod.keyboard.internal.LanguageOnSpacebarHelper.FORMAT_TYPE_FULL_LOCALE;
207dd32dfc065c13e946c0d42a0e000f4ce7298ed7Tadashi G. Takaokaimport static com.android.inputmethod.keyboard.internal.LanguageOnSpacebarHelper.FORMAT_TYPE_LANGUAGE_ONLY;
217dd32dfc065c13e946c0d42a0e000f4ce7298ed7Tadashi G. Takaokaimport static com.android.inputmethod.keyboard.internal.LanguageOnSpacebarHelper.FORMAT_TYPE_NONE;
227dd32dfc065c13e946c0d42a0e000f4ce7298ed7Tadashi G. Takaoka
237dd32dfc065c13e946c0d42a0e000f4ce7298ed7Tadashi G. Takaokaimport android.content.Context;
247dd32dfc065c13e946c0d42a0e000f4ce7298ed7Tadashi G. Takaokaimport android.test.AndroidTestCase;
257dd32dfc065c13e946c0d42a0e000f4ce7298ed7Tadashi G. Takaokaimport android.test.suitebuilder.annotation.SmallTest;
267dd32dfc065c13e946c0d42a0e000f4ce7298ed7Tadashi G. Takaokaimport android.view.inputmethod.InputMethodSubtype;
277dd32dfc065c13e946c0d42a0e000f4ce7298ed7Tadashi G. Takaoka
287dd32dfc065c13e946c0d42a0e000f4ce7298ed7Tadashi G. Takaokaimport com.android.inputmethod.latin.RichInputMethodManager;
297dd32dfc065c13e946c0d42a0e000f4ce7298ed7Tadashi G. Takaokaimport com.android.inputmethod.latin.utils.AdditionalSubtypeUtils;
307dd32dfc065c13e946c0d42a0e000f4ce7298ed7Tadashi G. Takaokaimport com.android.inputmethod.latin.utils.SubtypeLocaleUtils;
317dd32dfc065c13e946c0d42a0e000f4ce7298ed7Tadashi G. Takaoka
327dd32dfc065c13e946c0d42a0e000f4ce7298ed7Tadashi G. Takaokaimport java.util.Arrays;
337dd32dfc065c13e946c0d42a0e000f4ce7298ed7Tadashi G. Takaokaimport java.util.List;
347dd32dfc065c13e946c0d42a0e000f4ce7298ed7Tadashi G. Takaokaimport java.util.Locale;
357dd32dfc065c13e946c0d42a0e000f4ce7298ed7Tadashi G. Takaoka
367dd32dfc065c13e946c0d42a0e000f4ce7298ed7Tadashi G. Takaoka@SmallTest
377dd32dfc065c13e946c0d42a0e000f4ce7298ed7Tadashi G. Takaokapublic class LanguageOnSpacebarHelperTests extends AndroidTestCase {
387dd32dfc065c13e946c0d42a0e000f4ce7298ed7Tadashi G. Takaoka    private final LanguageOnSpacebarHelper mLanguageOnSpacebarHelper =
397dd32dfc065c13e946c0d42a0e000f4ce7298ed7Tadashi G. Takaoka            new LanguageOnSpacebarHelper();
407dd32dfc065c13e946c0d42a0e000f4ce7298ed7Tadashi G. Takaoka
417dd32dfc065c13e946c0d42a0e000f4ce7298ed7Tadashi G. Takaoka    private RichInputMethodManager mRichImm;
427dd32dfc065c13e946c0d42a0e000f4ce7298ed7Tadashi G. Takaoka
437dd32dfc065c13e946c0d42a0e000f4ce7298ed7Tadashi G. Takaoka    InputMethodSubtype EN_US_QWERTY;
447dd32dfc065c13e946c0d42a0e000f4ce7298ed7Tadashi G. Takaoka    InputMethodSubtype EN_GB_QWERTY;
457dd32dfc065c13e946c0d42a0e000f4ce7298ed7Tadashi G. Takaoka    InputMethodSubtype FR_AZERTY;
467dd32dfc065c13e946c0d42a0e000f4ce7298ed7Tadashi G. Takaoka    InputMethodSubtype FR_CA_QWERTY;
477dd32dfc065c13e946c0d42a0e000f4ce7298ed7Tadashi G. Takaoka    InputMethodSubtype FR_CH_SWISS;
487dd32dfc065c13e946c0d42a0e000f4ce7298ed7Tadashi G. Takaoka    InputMethodSubtype FR_CH_QWERTY;
497dd32dfc065c13e946c0d42a0e000f4ce7298ed7Tadashi G. Takaoka    InputMethodSubtype FR_CH_QWERTZ;
507dd32dfc065c13e946c0d42a0e000f4ce7298ed7Tadashi G. Takaoka    InputMethodSubtype ZZ_QWERTY;
517dd32dfc065c13e946c0d42a0e000f4ce7298ed7Tadashi G. Takaoka
527dd32dfc065c13e946c0d42a0e000f4ce7298ed7Tadashi G. Takaoka    @Override
537dd32dfc065c13e946c0d42a0e000f4ce7298ed7Tadashi G. Takaoka    protected void setUp() throws Exception {
547dd32dfc065c13e946c0d42a0e000f4ce7298ed7Tadashi G. Takaoka        super.setUp();
557dd32dfc065c13e946c0d42a0e000f4ce7298ed7Tadashi G. Takaoka        final Context context = getContext();
567dd32dfc065c13e946c0d42a0e000f4ce7298ed7Tadashi G. Takaoka        RichInputMethodManager.init(context);
577dd32dfc065c13e946c0d42a0e000f4ce7298ed7Tadashi G. Takaoka        mRichImm = RichInputMethodManager.getInstance();
587dd32dfc065c13e946c0d42a0e000f4ce7298ed7Tadashi G. Takaoka        SubtypeLocaleUtils.init(context);
597dd32dfc065c13e946c0d42a0e000f4ce7298ed7Tadashi G. Takaoka
607dd32dfc065c13e946c0d42a0e000f4ce7298ed7Tadashi G. Takaoka        EN_US_QWERTY = mRichImm.findSubtypeByLocaleAndKeyboardLayoutSet(
617dd32dfc065c13e946c0d42a0e000f4ce7298ed7Tadashi G. Takaoka                Locale.US.toString(), "qwerty");
627dd32dfc065c13e946c0d42a0e000f4ce7298ed7Tadashi G. Takaoka        EN_GB_QWERTY = mRichImm.findSubtypeByLocaleAndKeyboardLayoutSet(
637dd32dfc065c13e946c0d42a0e000f4ce7298ed7Tadashi G. Takaoka                Locale.UK.toString(), "qwerty");
647dd32dfc065c13e946c0d42a0e000f4ce7298ed7Tadashi G. Takaoka        FR_AZERTY = mRichImm.findSubtypeByLocaleAndKeyboardLayoutSet(
657dd32dfc065c13e946c0d42a0e000f4ce7298ed7Tadashi G. Takaoka                Locale.FRENCH.toString(), "azerty");
667dd32dfc065c13e946c0d42a0e000f4ce7298ed7Tadashi G. Takaoka        FR_CA_QWERTY = mRichImm.findSubtypeByLocaleAndKeyboardLayoutSet(
677dd32dfc065c13e946c0d42a0e000f4ce7298ed7Tadashi G. Takaoka                Locale.CANADA_FRENCH.toString(), "qwerty");
687dd32dfc065c13e946c0d42a0e000f4ce7298ed7Tadashi G. Takaoka        FR_CH_SWISS = mRichImm.findSubtypeByLocaleAndKeyboardLayoutSet(
697dd32dfc065c13e946c0d42a0e000f4ce7298ed7Tadashi G. Takaoka                "fr_CH", "swiss");
703895d7f8dc2e4999947f61220b86fa148f433413Yohei Yukawa        FR_CH_QWERTZ = AdditionalSubtypeUtils.createAsciiEmojiCapableAdditionalSubtype(
713895d7f8dc2e4999947f61220b86fa148f433413Yohei Yukawa                "fr_CH", "qwertz");
723895d7f8dc2e4999947f61220b86fa148f433413Yohei Yukawa        FR_CH_QWERTY = AdditionalSubtypeUtils.createAsciiEmojiCapableAdditionalSubtype(
733895d7f8dc2e4999947f61220b86fa148f433413Yohei Yukawa                "fr_CH", "qwerty");
747dd32dfc065c13e946c0d42a0e000f4ce7298ed7Tadashi G. Takaoka        ZZ_QWERTY = mRichImm.findSubtypeByLocaleAndKeyboardLayoutSet(
757dd32dfc065c13e946c0d42a0e000f4ce7298ed7Tadashi G. Takaoka                SubtypeLocaleUtils.NO_LANGUAGE, "qwerty");
767dd32dfc065c13e946c0d42a0e000f4ce7298ed7Tadashi G. Takaoka    }
777dd32dfc065c13e946c0d42a0e000f4ce7298ed7Tadashi G. Takaoka
787dd32dfc065c13e946c0d42a0e000f4ce7298ed7Tadashi G. Takaoka    private static List<InputMethodSubtype> asList(final InputMethodSubtype ... subtypes) {
797dd32dfc065c13e946c0d42a0e000f4ce7298ed7Tadashi G. Takaoka        return Arrays.asList(subtypes);
807dd32dfc065c13e946c0d42a0e000f4ce7298ed7Tadashi G. Takaoka    }
817dd32dfc065c13e946c0d42a0e000f4ce7298ed7Tadashi G. Takaoka
827dd32dfc065c13e946c0d42a0e000f4ce7298ed7Tadashi G. Takaoka    public void testOneSubtype() {
837dd32dfc065c13e946c0d42a0e000f4ce7298ed7Tadashi G. Takaoka        mLanguageOnSpacebarHelper.updateEnabledSubtypes(asList(EN_US_QWERTY));
847dd32dfc065c13e946c0d42a0e000f4ce7298ed7Tadashi G. Takaoka        mLanguageOnSpacebarHelper.updateIsSystemLanguageSameAsInputLanguage(true /* isSame */);
857dd32dfc065c13e946c0d42a0e000f4ce7298ed7Tadashi G. Takaoka        assertEquals("one same English (US)", FORMAT_TYPE_NONE,
867dd32dfc065c13e946c0d42a0e000f4ce7298ed7Tadashi G. Takaoka                mLanguageOnSpacebarHelper.getLanguageOnSpacebarFormatType(EN_US_QWERTY));
877dd32dfc065c13e946c0d42a0e000f4ce7298ed7Tadashi G. Takaoka        assertEquals("one same NoLanguage", FORMAT_TYPE_FULL_LOCALE,
887dd32dfc065c13e946c0d42a0e000f4ce7298ed7Tadashi G. Takaoka                mLanguageOnSpacebarHelper.getLanguageOnSpacebarFormatType(ZZ_QWERTY));
897dd32dfc065c13e946c0d42a0e000f4ce7298ed7Tadashi G. Takaoka
907dd32dfc065c13e946c0d42a0e000f4ce7298ed7Tadashi G. Takaoka        mLanguageOnSpacebarHelper.updateEnabledSubtypes(asList(FR_AZERTY));
917dd32dfc065c13e946c0d42a0e000f4ce7298ed7Tadashi G. Takaoka        mLanguageOnSpacebarHelper.updateIsSystemLanguageSameAsInputLanguage(false /* isSame */);
927dd32dfc065c13e946c0d42a0e000f4ce7298ed7Tadashi G. Takaoka        assertEquals("one diff English (US)", FORMAT_TYPE_LANGUAGE_ONLY,
937dd32dfc065c13e946c0d42a0e000f4ce7298ed7Tadashi G. Takaoka                mLanguageOnSpacebarHelper.getLanguageOnSpacebarFormatType(EN_US_QWERTY));
947dd32dfc065c13e946c0d42a0e000f4ce7298ed7Tadashi G. Takaoka        assertEquals("one diff NoLanguage", FORMAT_TYPE_FULL_LOCALE,
957dd32dfc065c13e946c0d42a0e000f4ce7298ed7Tadashi G. Takaoka                mLanguageOnSpacebarHelper.getLanguageOnSpacebarFormatType(ZZ_QWERTY));
967dd32dfc065c13e946c0d42a0e000f4ce7298ed7Tadashi G. Takaoka    }
977dd32dfc065c13e946c0d42a0e000f4ce7298ed7Tadashi G. Takaoka
987dd32dfc065c13e946c0d42a0e000f4ce7298ed7Tadashi G. Takaoka    public void testTwoSubtypes() {
997dd32dfc065c13e946c0d42a0e000f4ce7298ed7Tadashi G. Takaoka        mLanguageOnSpacebarHelper.updateEnabledSubtypes(asList(EN_US_QWERTY, FR_AZERTY));
1007dd32dfc065c13e946c0d42a0e000f4ce7298ed7Tadashi G. Takaoka
1017dd32dfc065c13e946c0d42a0e000f4ce7298ed7Tadashi G. Takaoka        mLanguageOnSpacebarHelper.updateIsSystemLanguageSameAsInputLanguage(true /* isSame */);
1027dd32dfc065c13e946c0d42a0e000f4ce7298ed7Tadashi G. Takaoka        assertEquals("two same English (US)", FORMAT_TYPE_LANGUAGE_ONLY,
1037dd32dfc065c13e946c0d42a0e000f4ce7298ed7Tadashi G. Takaoka                mLanguageOnSpacebarHelper.getLanguageOnSpacebarFormatType(EN_US_QWERTY));
1047dd32dfc065c13e946c0d42a0e000f4ce7298ed7Tadashi G. Takaoka        assertEquals("two same French)", FORMAT_TYPE_LANGUAGE_ONLY,
1057dd32dfc065c13e946c0d42a0e000f4ce7298ed7Tadashi G. Takaoka                mLanguageOnSpacebarHelper.getLanguageOnSpacebarFormatType(FR_AZERTY));
1067dd32dfc065c13e946c0d42a0e000f4ce7298ed7Tadashi G. Takaoka        assertEquals("two same NoLanguage", FORMAT_TYPE_FULL_LOCALE,
1077dd32dfc065c13e946c0d42a0e000f4ce7298ed7Tadashi G. Takaoka                mLanguageOnSpacebarHelper.getLanguageOnSpacebarFormatType(ZZ_QWERTY));
1087dd32dfc065c13e946c0d42a0e000f4ce7298ed7Tadashi G. Takaoka
1097dd32dfc065c13e946c0d42a0e000f4ce7298ed7Tadashi G. Takaoka        mLanguageOnSpacebarHelper.updateIsSystemLanguageSameAsInputLanguage(false /* isSame */);
1107dd32dfc065c13e946c0d42a0e000f4ce7298ed7Tadashi G. Takaoka        assertEquals("two diff English (US)", FORMAT_TYPE_LANGUAGE_ONLY,
1117dd32dfc065c13e946c0d42a0e000f4ce7298ed7Tadashi G. Takaoka                mLanguageOnSpacebarHelper.getLanguageOnSpacebarFormatType(EN_US_QWERTY));
1127dd32dfc065c13e946c0d42a0e000f4ce7298ed7Tadashi G. Takaoka        assertEquals("two diff French", FORMAT_TYPE_LANGUAGE_ONLY,
1137dd32dfc065c13e946c0d42a0e000f4ce7298ed7Tadashi G. Takaoka                mLanguageOnSpacebarHelper.getLanguageOnSpacebarFormatType(FR_AZERTY));
1147dd32dfc065c13e946c0d42a0e000f4ce7298ed7Tadashi G. Takaoka        assertEquals("two diff NoLanguage", FORMAT_TYPE_FULL_LOCALE,
1157dd32dfc065c13e946c0d42a0e000f4ce7298ed7Tadashi G. Takaoka                mLanguageOnSpacebarHelper.getLanguageOnSpacebarFormatType(ZZ_QWERTY));
1167dd32dfc065c13e946c0d42a0e000f4ce7298ed7Tadashi G. Takaoka    }
1177dd32dfc065c13e946c0d42a0e000f4ce7298ed7Tadashi G. Takaoka
1187dd32dfc065c13e946c0d42a0e000f4ce7298ed7Tadashi G. Takaoka    public void testSameLanuageSubtypes() {
1197dd32dfc065c13e946c0d42a0e000f4ce7298ed7Tadashi G. Takaoka        mLanguageOnSpacebarHelper.updateEnabledSubtypes(
1207dd32dfc065c13e946c0d42a0e000f4ce7298ed7Tadashi G. Takaoka                asList(EN_US_QWERTY, EN_GB_QWERTY, FR_AZERTY, ZZ_QWERTY));
1217dd32dfc065c13e946c0d42a0e000f4ce7298ed7Tadashi G. Takaoka
1227dd32dfc065c13e946c0d42a0e000f4ce7298ed7Tadashi G. Takaoka        mLanguageOnSpacebarHelper.updateIsSystemLanguageSameAsInputLanguage(true /* isSame */);
1237dd32dfc065c13e946c0d42a0e000f4ce7298ed7Tadashi G. Takaoka        assertEquals("two same English (US)", FORMAT_TYPE_FULL_LOCALE,
1247dd32dfc065c13e946c0d42a0e000f4ce7298ed7Tadashi G. Takaoka                mLanguageOnSpacebarHelper.getLanguageOnSpacebarFormatType(EN_US_QWERTY));
1257dd32dfc065c13e946c0d42a0e000f4ce7298ed7Tadashi G. Takaoka        assertEquals("two same English (UK)", FORMAT_TYPE_FULL_LOCALE,
1267dd32dfc065c13e946c0d42a0e000f4ce7298ed7Tadashi G. Takaoka                mLanguageOnSpacebarHelper.getLanguageOnSpacebarFormatType(EN_GB_QWERTY));
1277dd32dfc065c13e946c0d42a0e000f4ce7298ed7Tadashi G. Takaoka        assertEquals("two same NoLanguage", FORMAT_TYPE_FULL_LOCALE,
1287dd32dfc065c13e946c0d42a0e000f4ce7298ed7Tadashi G. Takaoka                mLanguageOnSpacebarHelper.getLanguageOnSpacebarFormatType(ZZ_QWERTY));
1297dd32dfc065c13e946c0d42a0e000f4ce7298ed7Tadashi G. Takaoka
1307dd32dfc065c13e946c0d42a0e000f4ce7298ed7Tadashi G. Takaoka        mLanguageOnSpacebarHelper.updateIsSystemLanguageSameAsInputLanguage(false /* isSame */);
1317dd32dfc065c13e946c0d42a0e000f4ce7298ed7Tadashi G. Takaoka        assertEquals("two diff English (US)", FORMAT_TYPE_FULL_LOCALE,
1327dd32dfc065c13e946c0d42a0e000f4ce7298ed7Tadashi G. Takaoka                mLanguageOnSpacebarHelper.getLanguageOnSpacebarFormatType(EN_US_QWERTY));
1337dd32dfc065c13e946c0d42a0e000f4ce7298ed7Tadashi G. Takaoka        assertEquals("two diff English (UK)", FORMAT_TYPE_FULL_LOCALE,
1347dd32dfc065c13e946c0d42a0e000f4ce7298ed7Tadashi G. Takaoka                mLanguageOnSpacebarHelper.getLanguageOnSpacebarFormatType(EN_GB_QWERTY));
1357dd32dfc065c13e946c0d42a0e000f4ce7298ed7Tadashi G. Takaoka        assertEquals("two diff NoLanguage", FORMAT_TYPE_FULL_LOCALE,
1367dd32dfc065c13e946c0d42a0e000f4ce7298ed7Tadashi G. Takaoka                mLanguageOnSpacebarHelper.getLanguageOnSpacebarFormatType(ZZ_QWERTY));
1377dd32dfc065c13e946c0d42a0e000f4ce7298ed7Tadashi G. Takaoka    }
1387dd32dfc065c13e946c0d42a0e000f4ce7298ed7Tadashi G. Takaoka
1397dd32dfc065c13e946c0d42a0e000f4ce7298ed7Tadashi G. Takaoka    public void testMultiSameLanuageSubtypes() {
1407dd32dfc065c13e946c0d42a0e000f4ce7298ed7Tadashi G. Takaoka        mLanguageOnSpacebarHelper.updateEnabledSubtypes(
1417dd32dfc065c13e946c0d42a0e000f4ce7298ed7Tadashi G. Takaoka                asList(FR_AZERTY, FR_CA_QWERTY, FR_CH_SWISS, FR_CH_QWERTY, FR_CH_QWERTZ));
1427dd32dfc065c13e946c0d42a0e000f4ce7298ed7Tadashi G. Takaoka
1437dd32dfc065c13e946c0d42a0e000f4ce7298ed7Tadashi G. Takaoka        mLanguageOnSpacebarHelper.updateIsSystemLanguageSameAsInputLanguage(true /* isSame */);
1447dd32dfc065c13e946c0d42a0e000f4ce7298ed7Tadashi G. Takaoka        assertEquals("multi same French", FORMAT_TYPE_LANGUAGE_ONLY,
1457dd32dfc065c13e946c0d42a0e000f4ce7298ed7Tadashi G. Takaoka                mLanguageOnSpacebarHelper.getLanguageOnSpacebarFormatType(FR_AZERTY));
1467dd32dfc065c13e946c0d42a0e000f4ce7298ed7Tadashi G. Takaoka        assertEquals("multi same French (CA)", FORMAT_TYPE_FULL_LOCALE,
1477dd32dfc065c13e946c0d42a0e000f4ce7298ed7Tadashi G. Takaoka                mLanguageOnSpacebarHelper.getLanguageOnSpacebarFormatType(FR_CA_QWERTY));
1487dd32dfc065c13e946c0d42a0e000f4ce7298ed7Tadashi G. Takaoka        assertEquals("multi same French (CH)", FORMAT_TYPE_LANGUAGE_ONLY,
1497dd32dfc065c13e946c0d42a0e000f4ce7298ed7Tadashi G. Takaoka                mLanguageOnSpacebarHelper.getLanguageOnSpacebarFormatType(FR_CH_SWISS));
1507dd32dfc065c13e946c0d42a0e000f4ce7298ed7Tadashi G. Takaoka        assertEquals("multi same French (CH) (QWERTY)", FORMAT_TYPE_FULL_LOCALE,
1517dd32dfc065c13e946c0d42a0e000f4ce7298ed7Tadashi G. Takaoka                mLanguageOnSpacebarHelper.getLanguageOnSpacebarFormatType(FR_CH_QWERTY));
1527dd32dfc065c13e946c0d42a0e000f4ce7298ed7Tadashi G. Takaoka        assertEquals("multi same French (CH) (QWERTZ)", FORMAT_TYPE_LANGUAGE_ONLY,
1537dd32dfc065c13e946c0d42a0e000f4ce7298ed7Tadashi G. Takaoka                mLanguageOnSpacebarHelper.getLanguageOnSpacebarFormatType(FR_CH_QWERTZ));
1547dd32dfc065c13e946c0d42a0e000f4ce7298ed7Tadashi G. Takaoka
1557dd32dfc065c13e946c0d42a0e000f4ce7298ed7Tadashi G. Takaoka        mLanguageOnSpacebarHelper.updateIsSystemLanguageSameAsInputLanguage(false /* isSame */);
1567dd32dfc065c13e946c0d42a0e000f4ce7298ed7Tadashi G. Takaoka        assertEquals("multi diff French", FORMAT_TYPE_LANGUAGE_ONLY,
1577dd32dfc065c13e946c0d42a0e000f4ce7298ed7Tadashi G. Takaoka                mLanguageOnSpacebarHelper.getLanguageOnSpacebarFormatType(FR_AZERTY));
1587dd32dfc065c13e946c0d42a0e000f4ce7298ed7Tadashi G. Takaoka        assertEquals("multi diff French (CA)", FORMAT_TYPE_FULL_LOCALE,
1597dd32dfc065c13e946c0d42a0e000f4ce7298ed7Tadashi G. Takaoka                mLanguageOnSpacebarHelper.getLanguageOnSpacebarFormatType(FR_CA_QWERTY));
1607dd32dfc065c13e946c0d42a0e000f4ce7298ed7Tadashi G. Takaoka        assertEquals("multi diff French (CH)", FORMAT_TYPE_LANGUAGE_ONLY,
1617dd32dfc065c13e946c0d42a0e000f4ce7298ed7Tadashi G. Takaoka                mLanguageOnSpacebarHelper.getLanguageOnSpacebarFormatType(FR_CH_SWISS));
1627dd32dfc065c13e946c0d42a0e000f4ce7298ed7Tadashi G. Takaoka        assertEquals("multi diff French (CH) (QWERTY)", FORMAT_TYPE_FULL_LOCALE,
1637dd32dfc065c13e946c0d42a0e000f4ce7298ed7Tadashi G. Takaoka                mLanguageOnSpacebarHelper.getLanguageOnSpacebarFormatType(FR_CH_QWERTY));
1647dd32dfc065c13e946c0d42a0e000f4ce7298ed7Tadashi G. Takaoka        assertEquals("multi diff French (CH) (QWERTZ)", FORMAT_TYPE_LANGUAGE_ONLY,
1657dd32dfc065c13e946c0d42a0e000f4ce7298ed7Tadashi G. Takaoka                mLanguageOnSpacebarHelper.getLanguageOnSpacebarFormatType(FR_CH_QWERTZ));
1667dd32dfc065c13e946c0d42a0e000f4ce7298ed7Tadashi G. Takaoka    }
1677dd32dfc065c13e946c0d42a0e000f4ce7298ed7Tadashi G. Takaoka}
168