14e3fa638918cd459d45d4bbd310a1c87f620f695Tadashi G. Takaoka/*
24e3fa638918cd459d45d4bbd310a1c87f620f695Tadashi G. Takaoka * Copyright (C) 2014 The Android Open Source Project
34e3fa638918cd459d45d4bbd310a1c87f620f695Tadashi G. Takaoka *
44e3fa638918cd459d45d4bbd310a1c87f620f695Tadashi G. Takaoka * Licensed under the Apache License, Version 2.0 (the "License");
54e3fa638918cd459d45d4bbd310a1c87f620f695Tadashi G. Takaoka * you may not use this file except in compliance with the License.
64e3fa638918cd459d45d4bbd310a1c87f620f695Tadashi G. Takaoka * You may obtain a copy of the License at
74e3fa638918cd459d45d4bbd310a1c87f620f695Tadashi G. Takaoka *
84e3fa638918cd459d45d4bbd310a1c87f620f695Tadashi G. Takaoka *      http://www.apache.org/licenses/LICENSE-2.0
94e3fa638918cd459d45d4bbd310a1c87f620f695Tadashi G. Takaoka *
104e3fa638918cd459d45d4bbd310a1c87f620f695Tadashi G. Takaoka * Unless required by applicable law or agreed to in writing, software
114e3fa638918cd459d45d4bbd310a1c87f620f695Tadashi G. Takaoka * distributed under the License is distributed on an "AS IS" BASIS,
124e3fa638918cd459d45d4bbd310a1c87f620f695Tadashi G. Takaoka * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
134e3fa638918cd459d45d4bbd310a1c87f620f695Tadashi G. Takaoka * See the License for the specific language governing permissions and
144e3fa638918cd459d45d4bbd310a1c87f620f695Tadashi G. Takaoka * limitations under the License.
154e3fa638918cd459d45d4bbd310a1c87f620f695Tadashi G. Takaoka */
164e3fa638918cd459d45d4bbd310a1c87f620f695Tadashi G. Takaoka
174e3fa638918cd459d45d4bbd310a1c87f620f695Tadashi G. Takaokapackage com.android.inputmethod.keyboard.layout.tests;
184e3fa638918cd459d45d4bbd310a1c87f620f695Tadashi G. Takaoka
194e3fa638918cd459d45d4bbd310a1c87f620f695Tadashi G. Takaokaimport android.test.suitebuilder.annotation.SmallTest;
204e3fa638918cd459d45d4bbd310a1c87f620f695Tadashi G. Takaoka
214e3fa638918cd459d45d4bbd310a1c87f620f695Tadashi G. Takaokaimport com.android.inputmethod.keyboard.layout.LayoutBase;
224e3fa638918cd459d45d4bbd310a1c87f620f695Tadashi G. Takaokaimport com.android.inputmethod.keyboard.layout.SouthSlavic;
234e3fa638918cd459d45d4bbd310a1c87f620f695Tadashi G. Takaokaimport com.android.inputmethod.keyboard.layout.Symbols;
246959a0f214fc18e314f54213877956d95a1631e8Tadashi G. Takaokaimport com.android.inputmethod.keyboard.layout.customizer.SouthSlavicLayoutCustomizer;
254e3fa638918cd459d45d4bbd310a1c87f620f695Tadashi G. Takaokaimport com.android.inputmethod.keyboard.layout.expected.ExpectedKey;
264e3fa638918cd459d45d4bbd310a1c87f620f695Tadashi G. Takaokaimport com.android.inputmethod.keyboard.layout.expected.ExpectedKeyboardBuilder;
274e3fa638918cd459d45d4bbd310a1c87f620f695Tadashi G. Takaoka
284e3fa638918cd459d45d4bbd310a1c87f620f695Tadashi G. Takaokaimport java.util.Locale;
294e3fa638918cd459d45d4bbd310a1c87f620f695Tadashi G. Takaoka
304e3fa638918cd459d45d4bbd310a1c87f620f695Tadashi G. Takaoka/**
314e3fa638918cd459d45d4bbd310a1c87f620f695Tadashi G. Takaoka * sr: Serbian/south_slavic
324e3fa638918cd459d45d4bbd310a1c87f620f695Tadashi G. Takaoka */
334e3fa638918cd459d45d4bbd310a1c87f620f695Tadashi G. Takaoka@SmallTest
344e3fa638918cd459d45d4bbd310a1c87f620f695Tadashi G. Takaokapublic final class TestsSerbian extends LayoutTestsBase {
354e3fa638918cd459d45d4bbd310a1c87f620f695Tadashi G. Takaoka    private static final Locale LOCALE = new Locale("sr");
364e3fa638918cd459d45d4bbd310a1c87f620f695Tadashi G. Takaoka    private static final LayoutBase LAYOUT = new SouthSlavic(new SerbianCustomizer(LOCALE));
374e3fa638918cd459d45d4bbd310a1c87f620f695Tadashi G. Takaoka
384e3fa638918cd459d45d4bbd310a1c87f620f695Tadashi G. Takaoka    @Override
394e3fa638918cd459d45d4bbd310a1c87f620f695Tadashi G. Takaoka    LayoutBase getLayout() { return LAYOUT; }
404e3fa638918cd459d45d4bbd310a1c87f620f695Tadashi G. Takaoka
414e3fa638918cd459d45d4bbd310a1c87f620f695Tadashi G. Takaoka    private static class SerbianCustomizer extends SouthSlavicLayoutCustomizer {
426959a0f214fc18e314f54213877956d95a1631e8Tadashi G. Takaoka        SerbianCustomizer(final Locale locale) { super(locale); }
434e3fa638918cd459d45d4bbd310a1c87f620f695Tadashi G. Takaoka
444e3fa638918cd459d45d4bbd310a1c87f620f695Tadashi G. Takaoka        @Override
454e3fa638918cd459d45d4bbd310a1c87f620f695Tadashi G. Takaoka        public ExpectedKey[] getDoubleQuoteMoreKeys() { return Symbols.DOUBLE_QUOTES_R9L; }
464e3fa638918cd459d45d4bbd310a1c87f620f695Tadashi G. Takaoka
474e3fa638918cd459d45d4bbd310a1c87f620f695Tadashi G. Takaoka        @Override
484e3fa638918cd459d45d4bbd310a1c87f620f695Tadashi G. Takaoka        public ExpectedKey[] getSingleQuoteMoreKeys() { return Symbols.SINGLE_QUOTES_R9L; }
494e3fa638918cd459d45d4bbd310a1c87f620f695Tadashi G. Takaoka
504e3fa638918cd459d45d4bbd310a1c87f620f695Tadashi G. Takaoka        @Override
514e3fa638918cd459d45d4bbd310a1c87f620f695Tadashi G. Takaoka        public ExpectedKey[] getDoubleAngleQuoteKeys() { return Symbols.DOUBLE_ANGLE_QUOTES_RL; }
524e3fa638918cd459d45d4bbd310a1c87f620f695Tadashi G. Takaoka
534e3fa638918cd459d45d4bbd310a1c87f620f695Tadashi G. Takaoka        @Override
544e3fa638918cd459d45d4bbd310a1c87f620f695Tadashi G. Takaoka        public ExpectedKey[] getSingleAngleQuoteKeys() { return Symbols.SINGLE_ANGLE_QUOTES_RL; }
554e3fa638918cd459d45d4bbd310a1c87f620f695Tadashi G. Takaoka
564e3fa638918cd459d45d4bbd310a1c87f620f695Tadashi G. Takaoka        @Override
574e3fa638918cd459d45d4bbd310a1c87f620f695Tadashi G. Takaoka        public ExpectedKeyboardBuilder setAccentedLetters(final ExpectedKeyboardBuilder builder) {
584e3fa638918cd459d45d4bbd310a1c87f620f695Tadashi G. Takaoka            return builder
594e3fa638918cd459d45d4bbd310a1c87f620f695Tadashi G. Takaoka                    // U+0435: "е" CYRILLIC SMALL LETTER IE
604e3fa638918cd459d45d4bbd310a1c87f620f695Tadashi G. Takaoka                    // U+0450: "ѐ" CYRILLIC SMALL LETTER IE WITH GRAVE
610dabae720a83f9099667dea4de002007fdf35d60Tadashi G. Takaoka                    .setMoreKeysOf("\u0435", "\u0450")
624e3fa638918cd459d45d4bbd310a1c87f620f695Tadashi G. Takaoka                    // U+0437: "з" CYRILLIC SMALL LETTER ZE
630dabae720a83f9099667dea4de002007fdf35d60Tadashi G. Takaoka                    .replaceKeyOfLabel(SouthSlavic.ROW1_6, key("\u0437", additionalMoreKey("6")))
644e3fa638918cd459d45d4bbd310a1c87f620f695Tadashi G. Takaoka                    // U+0438: "и" CYRILLIC SMALL LETTER I
654e3fa638918cd459d45d4bbd310a1c87f620f695Tadashi G. Takaoka                    // U+045D: "ѝ" CYRILLIC SMALL LETTER I WITH GRAVE
660dabae720a83f9099667dea4de002007fdf35d60Tadashi G. Takaoka                    .setMoreKeysOf("\u0438", "\u045D")
674e3fa638918cd459d45d4bbd310a1c87f620f695Tadashi G. Takaoka                    // U+045B: "ћ" CYRILLIC SMALL LETTER TSHE
680dabae720a83f9099667dea4de002007fdf35d60Tadashi G. Takaoka                    .replaceKeyOfLabel(SouthSlavic.ROW2_11, "\u045B")
694e3fa638918cd459d45d4bbd310a1c87f620f695Tadashi G. Takaoka                    // U+0455: "ѕ" CYRILLIC SMALL LETTER DZE
700dabae720a83f9099667dea4de002007fdf35d60Tadashi G. Takaoka                    .replaceKeyOfLabel(SouthSlavic.ROW3_1, "\u0455")
714e3fa638918cd459d45d4bbd310a1c87f620f695Tadashi G. Takaoka                    // U+0452: "ђ" CYRILLIC SMALL LETTER DJE
720dabae720a83f9099667dea4de002007fdf35d60Tadashi G. Takaoka                    .replaceKeyOfLabel(SouthSlavic.ROW3_8, "\u0452");
734e3fa638918cd459d45d4bbd310a1c87f620f695Tadashi G. Takaoka        }
744e3fa638918cd459d45d4bbd310a1c87f620f695Tadashi G. Takaoka    }
754e3fa638918cd459d45d4bbd310a1c87f620f695Tadashi G. Takaoka}
76