Merge "Fix punctuation test for tablet"

main
Tadashi G. Takaoka 2014-02-21 11:54:27 +00:00 committed by Android (Google) Code Review
commit 8e2951f299
1 changed files with 65 additions and 13 deletions

View File

@ -20,6 +20,8 @@ import android.content.res.Resources;
import android.test.AndroidTestCase; import android.test.AndroidTestCase;
import android.test.suitebuilder.annotation.SmallTest; import android.test.suitebuilder.annotation.SmallTest;
import com.android.inputmethod.latin.Constants;
import com.android.inputmethod.latin.R;
import com.android.inputmethod.latin.SuggestedWords; import com.android.inputmethod.latin.SuggestedWords;
import com.android.inputmethod.latin.utils.RunInLocale; import com.android.inputmethod.latin.utils.RunInLocale;
@ -32,6 +34,18 @@ public class SpacingAndPunctuationsTests extends AndroidTestCase {
private static final int ARMENIAN_FULL_STOP = '\u0589'; private static final int ARMENIAN_FULL_STOP = '\u0589';
private static final int ARMENIAN_COMMA = '\u055D'; private static final int ARMENIAN_COMMA = '\u055D';
private int mScreenMetrics;
private boolean isPhone() {
return mScreenMetrics == Constants.SCREEN_METRICS_SMALL_PHONE
|| mScreenMetrics == Constants.SCREEN_METRICS_LARGE_PHONE;
}
private boolean isTablet() {
return mScreenMetrics == Constants.SCREEN_METRICS_SMALL_TABLET
|| mScreenMetrics == Constants.SCREEN_METRICS_LARGE_TABLET;
}
private SpacingAndPunctuations ENGLISH; private SpacingAndPunctuations ENGLISH;
private SpacingAndPunctuations FRENCH; private SpacingAndPunctuations FRENCH;
private SpacingAndPunctuations GERMAN; private SpacingAndPunctuations GERMAN;
@ -56,6 +70,8 @@ public class SpacingAndPunctuationsTests extends AndroidTestCase {
protected void setUp() throws Exception { protected void setUp() throws Exception {
super.setUp(); super.setUp();
mScreenMetrics = mContext.getResources().getInteger(R.integer.config_screen_metrics);
// Language only // Language only
ENGLISH = getSpacingAndPunctuations(Locale.ENGLISH); ENGLISH = getSpacingAndPunctuations(Locale.ENGLISH);
FRENCH = getSpacingAndPunctuations(Locale.FRENCH); FRENCH = getSpacingAndPunctuations(Locale.FRENCH);
@ -373,23 +389,39 @@ public class SpacingAndPunctuationsTests extends AndroidTestCase {
assertTrue(SWISS_GERMAN.mUsesGermanRules); assertTrue(SWISS_GERMAN.mUsesGermanRules);
} }
private static final String[] PUNCTUATION_LABELS_LTR = { // Punctuations for phone.
private static final String[] PUNCTUATION_LABELS_PHONE = {
"!", "?", ",", ":", ";", "\"", "(", ")", "'", "-", "/", "@", "_" "!", "?", ",", ":", ";", "\"", "(", ")", "'", "-", "/", "@", "_"
}; };
private static final String[] PUNCTUATION_WORDS_LTR = PUNCTUATION_LABELS_LTR; private static final String[] PUNCTUATION_WORDS_PHONE_LTR = PUNCTUATION_LABELS_PHONE;
private static final String[] PUNCTUATION_WORDS_HEBREW = { private static final String[] PUNCTUATION_WORDS_PHONE_HEBREW = {
"!", "?", ",", ":", ";", "\"", ")", "(", "'", "-", "/", "@", "_" "!", "?", ",", ":", ";", "\"", ")", "(", "'", "-", "/", "@", "_"
}; };
// U+061F: "؟" ARABIC QUESTION MARK // U+061F: "؟" ARABIC QUESTION MARK
// U+060C: "،" ARABIC COMMA // U+060C: "،" ARABIC COMMA
// U+061B: "؛" ARABIC SEMICOLON // U+061B: "؛" ARABIC SEMICOLON
private static final String[] PUNCTUATION_LABELS_ARABIC_PERSIAN = { private static final String[] PUNCTUATION_LABELS_PHONE_ARABIC_PERSIAN = {
"!", "\u061F", "\u060C", ":", "\u061B", "\"", "(", ")", "'", "-", "/", "@", "_" "!", "\u061F", "\u060C", ":", "\u061B", "\"", "(", ")", "'", "-", "/", "@", "_"
}; };
private static final String[] PUNCTUATION_WORDS_ARABIC_PERSIAN = { private static final String[] PUNCTUATION_WORDS_PHONE_ARABIC_PERSIAN = {
"!", "\u061F", "\u060C", ":", "\u061B", "\"", ")", "(", "'", "-", "/", "@", "_" "!", "\u061F", "\u060C", ":", "\u061B", "\"", ")", "(", "'", "-", "/", "@", "_"
}; };
// Punctuations for tablet.
private static final String[] PUNCTUATION_LABELS_TABLET = {
":", ";", "\"", "(", ")", "'", "-", "/", "@", "_"
};
private static final String[] PUNCTUATION_WORDS_TABLET_LTR = PUNCTUATION_LABELS_TABLET;
private static final String[] PUNCTUATION_WORDS_TABLET_HEBREW = {
":", ";", "\"", ")", "(", "'", "-", "/", "@", "_"
};
private static final String[] PUNCTUATION_LABELS_TABLET_ARABIC_PERSIAN = {
"!", "\u061F", ":", "\u061B", "\"", "'", "(", ")", "-", "/", "@", "_"
};
private static final String[] PUNCTUATION_WORDS_TABLET_ARABIC_PERSIAN = {
"!", "\u061F", ":", "\u061B", "\"", "'", ")", "(", "-", "/", "@", "_"
};
private static void testingStandardPunctuationSuggestions(final SpacingAndPunctuations sp, private static void testingStandardPunctuationSuggestions(final SpacingAndPunctuations sp,
final String[] punctuationLabels, final String[] punctuationWords) { final String[] punctuationLabels, final String[] punctuationWords) {
final SuggestedWords suggestedWords = sp.mSuggestPuncList; final SuggestedWords suggestedWords = sp.mSuggestPuncList;
@ -407,19 +439,39 @@ public class SpacingAndPunctuationsTests extends AndroidTestCase {
} }
} }
// TODO: Add tests for tablet as well public void testPhonePunctuationSuggestions() {
public void testPunctuationSuggestions() { if (!isPhone()) {
return;
}
testingStandardPunctuationSuggestions(ENGLISH, testingStandardPunctuationSuggestions(ENGLISH,
PUNCTUATION_LABELS_LTR, PUNCTUATION_WORDS_LTR); PUNCTUATION_LABELS_PHONE, PUNCTUATION_WORDS_PHONE_LTR);
testingStandardPunctuationSuggestions(FRENCH, testingStandardPunctuationSuggestions(FRENCH,
PUNCTUATION_LABELS_LTR, PUNCTUATION_WORDS_LTR); PUNCTUATION_LABELS_PHONE, PUNCTUATION_WORDS_PHONE_LTR);
testingStandardPunctuationSuggestions(GERMAN, testingStandardPunctuationSuggestions(GERMAN,
PUNCTUATION_LABELS_LTR, PUNCTUATION_WORDS_LTR); PUNCTUATION_LABELS_PHONE, PUNCTUATION_WORDS_PHONE_LTR);
testingStandardPunctuationSuggestions(ARABIC, testingStandardPunctuationSuggestions(ARABIC,
PUNCTUATION_LABELS_ARABIC_PERSIAN, PUNCTUATION_WORDS_ARABIC_PERSIAN); PUNCTUATION_LABELS_PHONE_ARABIC_PERSIAN, PUNCTUATION_WORDS_PHONE_ARABIC_PERSIAN);
testingStandardPunctuationSuggestions(PERSIAN, testingStandardPunctuationSuggestions(PERSIAN,
PUNCTUATION_LABELS_ARABIC_PERSIAN, PUNCTUATION_WORDS_ARABIC_PERSIAN); PUNCTUATION_LABELS_PHONE_ARABIC_PERSIAN, PUNCTUATION_WORDS_PHONE_ARABIC_PERSIAN);
testingStandardPunctuationSuggestions(HEBREW, testingStandardPunctuationSuggestions(HEBREW,
PUNCTUATION_LABELS_LTR, PUNCTUATION_WORDS_HEBREW); PUNCTUATION_LABELS_PHONE, PUNCTUATION_WORDS_PHONE_HEBREW);
}
public void testTabletPunctuationSuggestions() {
if (!isTablet()) {
return;
}
testingStandardPunctuationSuggestions(ENGLISH,
PUNCTUATION_LABELS_TABLET, PUNCTUATION_WORDS_TABLET_LTR);
testingStandardPunctuationSuggestions(FRENCH,
PUNCTUATION_LABELS_TABLET, PUNCTUATION_WORDS_TABLET_LTR);
testingStandardPunctuationSuggestions(GERMAN,
PUNCTUATION_LABELS_TABLET, PUNCTUATION_WORDS_TABLET_LTR);
testingStandardPunctuationSuggestions(ARABIC,
PUNCTUATION_LABELS_TABLET_ARABIC_PERSIAN, PUNCTUATION_WORDS_TABLET_ARABIC_PERSIAN);
testingStandardPunctuationSuggestions(PERSIAN,
PUNCTUATION_LABELS_TABLET_ARABIC_PERSIAN, PUNCTUATION_WORDS_TABLET_ARABIC_PERSIAN);
testingStandardPunctuationSuggestions(HEBREW,
PUNCTUATION_LABELS_TABLET, PUNCTUATION_WORDS_TABLET_HEBREW);
} }
} }