Skip to content
Snippets Groups Projects
Commit d28a58c2 authored by Tadashi G. Takaoka's avatar Tadashi G. Takaoka
Browse files

Fix punctuation test for tablet

It seems that some test devices are tablet and some are phone. The
unit test should aware of which device the test is running.

Change-Id: I8651a540993de29aa1cd9f40919dffe7a8df9512
parent d73044a2
No related branches found
No related tags found
No related merge requests found
......@@ -20,6 +20,8 @@ import android.content.res.Resources;
import android.test.AndroidTestCase;
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.utils.RunInLocale;
......@@ -32,6 +34,18 @@ public class SpacingAndPunctuationsTests extends AndroidTestCase {
private static final int ARMENIAN_FULL_STOP = '\u0589';
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 FRENCH;
private SpacingAndPunctuations GERMAN;
......@@ -56,6 +70,8 @@ public class SpacingAndPunctuationsTests extends AndroidTestCase {
protected void setUp() throws Exception {
super.setUp();
mScreenMetrics = mContext.getResources().getInteger(R.integer.config_screen_metrics);
// Language only
ENGLISH = getSpacingAndPunctuations(Locale.ENGLISH);
FRENCH = getSpacingAndPunctuations(Locale.FRENCH);
......@@ -373,23 +389,39 @@ public class SpacingAndPunctuationsTests extends AndroidTestCase {
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_HEBREW = {
private static final String[] PUNCTUATION_WORDS_PHONE_LTR = PUNCTUATION_LABELS_PHONE;
private static final String[] PUNCTUATION_WORDS_PHONE_HEBREW = {
"!", "?", ",", ":", ";", "\"", ")", "(", "'", "-", "/", "@", "_"
};
// U+061F: "؟" ARABIC QUESTION MARK
// U+060C: "،" ARABIC COMMA
// U+061B: "؛" ARABIC SEMICOLON
private static final String[] PUNCTUATION_LABELS_ARABIC_PERSIAN = {
private static final String[] PUNCTUATION_LABELS_PHONE_ARABIC_PERSIAN = {
"!", "\u061F", "\u060C", ":", "\u061B", "\"", "(", ")", "'", "-", "/", "@", "_"
};
private static final String[] PUNCTUATION_WORDS_ARABIC_PERSIAN = {
private static final String[] PUNCTUATION_WORDS_PHONE_ARABIC_PERSIAN = {
"!", "\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,
final String[] punctuationLabels, final String[] punctuationWords) {
final SuggestedWords suggestedWords = sp.mSuggestPuncList;
......@@ -407,19 +439,39 @@ public class SpacingAndPunctuationsTests extends AndroidTestCase {
}
}
// TODO: Add tests for tablet as well
public void testPunctuationSuggestions() {
public void testPhonePunctuationSuggestions() {
if (!isPhone()) {
return;
}
testingStandardPunctuationSuggestions(ENGLISH,
PUNCTUATION_LABELS_PHONE, PUNCTUATION_WORDS_PHONE_LTR);
testingStandardPunctuationSuggestions(FRENCH,
PUNCTUATION_LABELS_PHONE, PUNCTUATION_WORDS_PHONE_LTR);
testingStandardPunctuationSuggestions(GERMAN,
PUNCTUATION_LABELS_PHONE, PUNCTUATION_WORDS_PHONE_LTR);
testingStandardPunctuationSuggestions(ARABIC,
PUNCTUATION_LABELS_PHONE_ARABIC_PERSIAN, PUNCTUATION_WORDS_PHONE_ARABIC_PERSIAN);
testingStandardPunctuationSuggestions(PERSIAN,
PUNCTUATION_LABELS_PHONE_ARABIC_PERSIAN, PUNCTUATION_WORDS_PHONE_ARABIC_PERSIAN);
testingStandardPunctuationSuggestions(HEBREW,
PUNCTUATION_LABELS_PHONE, PUNCTUATION_WORDS_PHONE_HEBREW);
}
public void testTabletPunctuationSuggestions() {
if (!isTablet()) {
return;
}
testingStandardPunctuationSuggestions(ENGLISH,
PUNCTUATION_LABELS_LTR, PUNCTUATION_WORDS_LTR);
PUNCTUATION_LABELS_TABLET, PUNCTUATION_WORDS_TABLET_LTR);
testingStandardPunctuationSuggestions(FRENCH,
PUNCTUATION_LABELS_LTR, PUNCTUATION_WORDS_LTR);
PUNCTUATION_LABELS_TABLET, PUNCTUATION_WORDS_TABLET_LTR);
testingStandardPunctuationSuggestions(GERMAN,
PUNCTUATION_LABELS_LTR, PUNCTUATION_WORDS_LTR);
PUNCTUATION_LABELS_TABLET, PUNCTUATION_WORDS_TABLET_LTR);
testingStandardPunctuationSuggestions(ARABIC,
PUNCTUATION_LABELS_ARABIC_PERSIAN, PUNCTUATION_WORDS_ARABIC_PERSIAN);
PUNCTUATION_LABELS_TABLET_ARABIC_PERSIAN, PUNCTUATION_WORDS_TABLET_ARABIC_PERSIAN);
testingStandardPunctuationSuggestions(PERSIAN,
PUNCTUATION_LABELS_ARABIC_PERSIAN, PUNCTUATION_WORDS_ARABIC_PERSIAN);
PUNCTUATION_LABELS_TABLET_ARABIC_PERSIAN, PUNCTUATION_WORDS_TABLET_ARABIC_PERSIAN);
testingStandardPunctuationSuggestions(HEBREW,
PUNCTUATION_LABELS_LTR, PUNCTUATION_WORDS_HEBREW);
PUNCTUATION_LABELS_TABLET, PUNCTUATION_WORDS_TABLET_HEBREW);
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment