1/*
2 * Copyright (C) 2014 The Android Open Source Project
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 *      http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
16
17package com.android.inputmethod.latin.utils;
18
19import android.content.res.Resources;
20import android.test.AndroidTestCase;
21import android.test.suitebuilder.annotation.SmallTest;
22
23import com.android.inputmethod.latin.common.LocaleUtils;
24import com.android.inputmethod.latin.settings.SpacingAndPunctuations;
25
26import java.util.Locale;
27
28@SmallTest
29public class DictionaryInfoUtilsTests extends AndroidTestCase {
30    public void testLooksValidForDictionaryInsertion() {
31        final RunInLocale<SpacingAndPunctuations> job = new RunInLocale<SpacingAndPunctuations>() {
32            @Override
33            protected SpacingAndPunctuations job(final Resources res) {
34                return new SpacingAndPunctuations(res);
35            }
36        };
37        final Resources res = getContext().getResources();
38        final SpacingAndPunctuations sp = job.runInLocale(res, Locale.ENGLISH);
39        assertTrue(DictionaryInfoUtils.looksValidForDictionaryInsertion("aochaueo", sp));
40        assertFalse(DictionaryInfoUtils.looksValidForDictionaryInsertion("", sp));
41        assertTrue(DictionaryInfoUtils.looksValidForDictionaryInsertion("ao-ch'aueo", sp));
42        assertFalse(DictionaryInfoUtils.looksValidForDictionaryInsertion("2908743256", sp));
43        assertTrue(DictionaryInfoUtils.looksValidForDictionaryInsertion("31aochaueo", sp));
44        assertFalse(DictionaryInfoUtils.looksValidForDictionaryInsertion("akeo  raeoch oerch .",
45                sp));
46        assertFalse(DictionaryInfoUtils.looksValidForDictionaryInsertion("!!!", sp));
47    }
48
49    public void testGetMainDictId() {
50        assertEquals("main:en",
51                DictionaryInfoUtils.getMainDictId(LocaleUtils.constructLocaleFromString("en")));
52        assertEquals("main:en_us",
53                DictionaryInfoUtils.getMainDictId(LocaleUtils.constructLocaleFromString("en_US")));
54        assertEquals("main:en_gb",
55                DictionaryInfoUtils.getMainDictId(LocaleUtils.constructLocaleFromString("en_GB")));
56
57        assertEquals("main:es",
58                DictionaryInfoUtils.getMainDictId(LocaleUtils.constructLocaleFromString("es")));
59        assertEquals("main:es_us",
60                DictionaryInfoUtils.getMainDictId(LocaleUtils.constructLocaleFromString("es_US")));
61
62        assertEquals("main:en_us_posix", DictionaryInfoUtils.getMainDictId(
63                        LocaleUtils.constructLocaleFromString("en_US_POSIX")));
64    }
65}
66