Merge "Adjust a test for a new default setting"

main
Jean Chalard 2012-04-16 02:38:54 -07:00 committed by Android (Google) Code Review
commit c4092d8ec4
2 changed files with 36 additions and 14 deletions

View File

@ -90,14 +90,21 @@ public class InputTestsBase extends ServiceTestCase<LatinIME> {
super(LatinIME.class);
}
// returns the previous setting value
protected boolean setDebugMode(final boolean mode) {
// TODO: Isn't there a way to make this generic somehow? We can take a <T> and return a <T>
// but we'd have to dispatch types on editor.put...() functions
protected boolean setBooleanPreference(final String key, final boolean value,
final boolean defaultValue) {
final SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(mLatinIME);
final boolean previousDebugSetting = prefs.getBoolean(PREF_DEBUG_MODE, false);
final boolean previousSetting = prefs.getBoolean(key, defaultValue);
final SharedPreferences.Editor editor = prefs.edit();
editor.putBoolean(PREF_DEBUG_MODE, mode);
editor.putBoolean(key, value);
editor.commit();
return previousDebugSetting;
return previousSetting;
}
// returns the previous setting value
protected boolean setDebugMode(final boolean value) {
return setBooleanPreference(PREF_DEBUG_MODE, value, false);
}
// overload this to configure preferences in a way specific to a subclass's tests

View File

@ -16,21 +16,36 @@
package com.android.inputmethod.latin;
import com.android.inputmethod.latin.R;
public class PunctuationTests extends InputTestsBase {
final String NEXT_WORD_PREDICTION_OPTION = "next_word_prediction";
public void testWordThenSpaceThenPunctuationFromStripTwice() {
final String WORD_TO_TYPE = "this ";
final String PUNCTUATION_FROM_STRIP = "!";
final String EXPECTED_RESULT = "this!! ";
type(WORD_TO_TYPE);
sleep(DELAY_TO_WAIT_FOR_UNDERLINE);
runMessages();
assertTrue("type word then type space should display punctuation strip",
mLatinIME.isShowingPunctuationList());
mLatinIME.pickSuggestionManually(0, PUNCTUATION_FROM_STRIP);
mLatinIME.pickSuggestionManually(0, PUNCTUATION_FROM_STRIP);
assertEquals("type word then type space then punctuation from strip twice", EXPECTED_RESULT,
mTextView.getText().toString());
final boolean defaultNextWordPredictionOption =
mLatinIME.getResources().getBoolean(R.bool.config_default_next_word_suggestions);
final boolean previousNextWordPredictionOption =
setBooleanPreference(NEXT_WORD_PREDICTION_OPTION, false,
defaultNextWordPredictionOption);
try {
mLatinIME.loadSettings();
type(WORD_TO_TYPE);
sleep(DELAY_TO_WAIT_FOR_UNDERLINE);
runMessages();
assertTrue("type word then type space should display punctuation strip",
mLatinIME.isShowingPunctuationList());
mLatinIME.pickSuggestionManually(0, PUNCTUATION_FROM_STRIP);
mLatinIME.pickSuggestionManually(0, PUNCTUATION_FROM_STRIP);
assertEquals("type word then type space then punctuation from strip twice",
EXPECTED_RESULT, mTextView.getText().toString());
} finally {
setBooleanPreference(NEXT_WORD_PREDICTION_OPTION, previousNextWordPredictionOption,
defaultNextWordPredictionOption);
}
}
public void testWordThenSpaceThenPunctuationFromKeyboardTwice() {