10d708b0cf5eb4334995dc67ba4ad38b18467faebJean Chalard/*
20d708b0cf5eb4334995dc67ba4ad38b18467faebJean Chalard * Copyright (C) 2012 The Android Open Source Project
30d708b0cf5eb4334995dc67ba4ad38b18467faebJean Chalard *
40d708b0cf5eb4334995dc67ba4ad38b18467faebJean Chalard * Licensed under the Apache License, Version 2.0 (the "License"); you may not
50d708b0cf5eb4334995dc67ba4ad38b18467faebJean Chalard * use this file except in compliance with the License. You may obtain a copy of
60d708b0cf5eb4334995dc67ba4ad38b18467faebJean Chalard * the License at
70d708b0cf5eb4334995dc67ba4ad38b18467faebJean Chalard *
80d708b0cf5eb4334995dc67ba4ad38b18467faebJean Chalard * http://www.apache.org/licenses/LICENSE-2.0
90d708b0cf5eb4334995dc67ba4ad38b18467faebJean Chalard *
100d708b0cf5eb4334995dc67ba4ad38b18467faebJean Chalard * Unless required by applicable law or agreed to in writing, software
110d708b0cf5eb4334995dc67ba4ad38b18467faebJean Chalard * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
120d708b0cf5eb4334995dc67ba4ad38b18467faebJean Chalard * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
130d708b0cf5eb4334995dc67ba4ad38b18467faebJean Chalard * License for the specific language governing permissions and limitations under
140d708b0cf5eb4334995dc67ba4ad38b18467faebJean Chalard * the License.
150d708b0cf5eb4334995dc67ba4ad38b18467faebJean Chalard */
160d708b0cf5eb4334995dc67ba4ad38b18467faebJean Chalard
170d708b0cf5eb4334995dc67ba4ad38b18467faebJean Chalardpackage com.android.inputmethod.latin;
180d708b0cf5eb4334995dc67ba4ad38b18467faebJean Chalard
19f338f8b50d276cfed2bafe6856792c675087ad15Jean Chalardpublic class InputLogicTestsNonEnglish extends InputTestsBase {
200d708b0cf5eb4334995dc67ba4ad38b18467faebJean Chalard
210d708b0cf5eb4334995dc67ba4ad38b18467faebJean Chalard    public void testAutoCorrectForFrench() {
220d708b0cf5eb4334995dc67ba4ad38b18467faebJean Chalard        final String STRING_TO_TYPE = "irq ";
230d708b0cf5eb4334995dc67ba4ad38b18467faebJean Chalard        final String EXPECTED_RESULT = "ira ";
240d708b0cf5eb4334995dc67ba4ad38b18467faebJean Chalard        changeLanguage("fr");
250d708b0cf5eb4334995dc67ba4ad38b18467faebJean Chalard        type(STRING_TO_TYPE);
260d708b0cf5eb4334995dc67ba4ad38b18467faebJean Chalard        assertEquals("simple auto-correct for French", EXPECTED_RESULT,
270d708b0cf5eb4334995dc67ba4ad38b18467faebJean Chalard                mTextView.getText().toString());
280d708b0cf5eb4334995dc67ba4ad38b18467faebJean Chalard    }
290d708b0cf5eb4334995dc67ba4ad38b18467faebJean Chalard
300d708b0cf5eb4334995dc67ba4ad38b18467faebJean Chalard    public void testManualPickThenSeparatorForFrench() {
310d708b0cf5eb4334995dc67ba4ad38b18467faebJean Chalard        final String WORD1_TO_TYPE = "test";
320d708b0cf5eb4334995dc67ba4ad38b18467faebJean Chalard        final String WORD2_TO_TYPE = "!";
330d708b0cf5eb4334995dc67ba4ad38b18467faebJean Chalard        final String EXPECTED_RESULT = "test !";
340d708b0cf5eb4334995dc67ba4ad38b18467faebJean Chalard        changeLanguage("fr");
350d708b0cf5eb4334995dc67ba4ad38b18467faebJean Chalard        type(WORD1_TO_TYPE);
369bfb6202154e06d7156f2f374dd9359f1be4eb68Kurt Partridge        pickSuggestionManually(0, WORD1_TO_TYPE);
370d708b0cf5eb4334995dc67ba4ad38b18467faebJean Chalard        type(WORD2_TO_TYPE);
380d708b0cf5eb4334995dc67ba4ad38b18467faebJean Chalard        assertEquals("manual pick then separator for French", EXPECTED_RESULT,
390d708b0cf5eb4334995dc67ba4ad38b18467faebJean Chalard                mTextView.getText().toString());
400d708b0cf5eb4334995dc67ba4ad38b18467faebJean Chalard    }
410d708b0cf5eb4334995dc67ba4ad38b18467faebJean Chalard
420d708b0cf5eb4334995dc67ba4ad38b18467faebJean Chalard    public void testWordThenSpaceThenPunctuationFromStripTwiceForFrench() {
430d708b0cf5eb4334995dc67ba4ad38b18467faebJean Chalard        final String WORD_TO_TYPE = "test ";
440d708b0cf5eb4334995dc67ba4ad38b18467faebJean Chalard        final String PUNCTUATION_FROM_STRIP = "!";
450d708b0cf5eb4334995dc67ba4ad38b18467faebJean Chalard        final String EXPECTED_RESULT = "test !!";
460d708b0cf5eb4334995dc67ba4ad38b18467faebJean Chalard        changeLanguage("fr");
470d708b0cf5eb4334995dc67ba4ad38b18467faebJean Chalard        type(WORD_TO_TYPE);
480d708b0cf5eb4334995dc67ba4ad38b18467faebJean Chalard        sleep(DELAY_TO_WAIT_FOR_UNDERLINE);
490d708b0cf5eb4334995dc67ba4ad38b18467faebJean Chalard        runMessages();
500d708b0cf5eb4334995dc67ba4ad38b18467faebJean Chalard        assertTrue("type word then type space should display punctuation strip",
510d708b0cf5eb4334995dc67ba4ad38b18467faebJean Chalard                mLatinIME.isShowingPunctuationList());
529bfb6202154e06d7156f2f374dd9359f1be4eb68Kurt Partridge        pickSuggestionManually(0, PUNCTUATION_FROM_STRIP);
539bfb6202154e06d7156f2f374dd9359f1be4eb68Kurt Partridge        pickSuggestionManually(0, PUNCTUATION_FROM_STRIP);
540d708b0cf5eb4334995dc67ba4ad38b18467faebJean Chalard        assertEquals("type word then type space then punctuation from strip twice for French",
550d708b0cf5eb4334995dc67ba4ad38b18467faebJean Chalard                EXPECTED_RESULT, mTextView.getText().toString());
560d708b0cf5eb4334995dc67ba4ad38b18467faebJean Chalard    }
57f338f8b50d276cfed2bafe6856792c675087ad15Jean Chalard
58f338f8b50d276cfed2bafe6856792c675087ad15Jean Chalard    public void testAutoCorrectForGerman() {
59f338f8b50d276cfed2bafe6856792c675087ad15Jean Chalard        final String STRING_TO_TYPE = "unf ";
60f338f8b50d276cfed2bafe6856792c675087ad15Jean Chalard        final String EXPECTED_RESULT = "und ";
61f338f8b50d276cfed2bafe6856792c675087ad15Jean Chalard        changeLanguage("de");
62f338f8b50d276cfed2bafe6856792c675087ad15Jean Chalard        type(STRING_TO_TYPE);
63f338f8b50d276cfed2bafe6856792c675087ad15Jean Chalard        assertEquals("simple auto-correct for German", EXPECTED_RESULT,
64f338f8b50d276cfed2bafe6856792c675087ad15Jean Chalard                mTextView.getText().toString());
65f338f8b50d276cfed2bafe6856792c675087ad15Jean Chalard    }
66f338f8b50d276cfed2bafe6856792c675087ad15Jean Chalard
67f338f8b50d276cfed2bafe6856792c675087ad15Jean Chalard    public void testAutoCorrectWithUmlautForGerman() {
68f338f8b50d276cfed2bafe6856792c675087ad15Jean Chalard        final String STRING_TO_TYPE = "ueber ";
69f338f8b50d276cfed2bafe6856792c675087ad15Jean Chalard        final String EXPECTED_RESULT = "über ";
70f338f8b50d276cfed2bafe6856792c675087ad15Jean Chalard        changeLanguage("de");
71f338f8b50d276cfed2bafe6856792c675087ad15Jean Chalard        type(STRING_TO_TYPE);
72f338f8b50d276cfed2bafe6856792c675087ad15Jean Chalard        assertEquals("auto-correct with umlaut for German", EXPECTED_RESULT,
73f338f8b50d276cfed2bafe6856792c675087ad15Jean Chalard                mTextView.getText().toString());
74f338f8b50d276cfed2bafe6856792c675087ad15Jean Chalard    }
750d708b0cf5eb4334995dc67ba4ad38b18467faebJean Chalard}
76