package edu.illinois.geoalarm.test; import android.app.Activity; import android.content.SharedPreferences; import android.test.ActivityInstrumentationTestCase2; import edu.illinois.geoalarm.*; import com.jayway.android.robotium.solo.Solo; import android.test.suitebuilder.annotation.Smoke; /** * Tests the user options for the app * @author GeoAlarm * */ public class OptionsTest extends ActivityInstrumentationTestCase2<Options> { Activity mActivity; Activity mCurrentActivity; Solo solo; public OptionsTest() { super("edu.illinois.geoalarm", Options.class); } @Override protected void setUp() throws Exception { super.setUp(); mActivity = this.getActivity(); solo = new Solo(getInstrumentation(), getActivity()); } /** * Tests that ringtone length is set properly */ @Smoke public void testSetRingtoneLength() { solo.clearEditText(0); // Corresponds to ringtone length edit text String text = solo.getEditText(0).getText().toString(); assertTrue(text.equals("")); solo.enterText(solo.getEditText(0), "5"); text = solo.getEditText(0).getText().toString(); assertTrue(text.equals("5")); solo.clickOnText("Save"); SharedPreferences settings = mActivity.getSharedPreferences("GeoAlarm", Activity.MODE_PRIVATE); int ringtoneLength = settings.getInt("ring_length", -1); assertEquals(ringtoneLength, 5); } /** * Tests that vibration length is set properly */ @Smoke public void testSetVibrateLength() { solo.clearEditText(1); // Corresponds to vibrate length edit text String text = solo.getEditText(1).getText().toString(); assertTrue(text.equals("")); solo.enterText(solo.getEditText(1), "5"); text = solo.getEditText(1).getText().toString(); assertTrue(text.equals("5")); solo.clickOnText("Save"); SharedPreferences settings = mActivity.getSharedPreferences("GeoAlarm", Activity.MODE_PRIVATE); int vibrateLength = settings.getInt("vibrate_length", -1); assertEquals(vibrateLength, 5); } /** * Tests that app color is set properly */ @Smoke public void testSetAppColor() { solo.pressSpinnerItem(0, 3); // Corresponds to red solo.waitForText("Pink"); SharedPreferences settings = mActivity.getSharedPreferences("GeoAlarm", Activity.MODE_PRIVATE); int color = settings.getInt("color_value", -1); assertEquals(color, edu.illinois.geoalarm.R.color.Pink); } /** * Tests that the splash screen is toggled properly */ @Smoke public void testToggleSplashScreen() { if(solo.searchText("OFF")) { solo.clickOnToggleButton("OFF"); SharedPreferences settings = mActivity.getSharedPreferences("GeoAlarm", Activity.MODE_PRIVATE); boolean isOn = settings.getBoolean("splash_screen", false); assertEquals(isOn, true); } else { solo.clickOnToggleButton("ON"); SharedPreferences settings = mActivity.getSharedPreferences("GeoAlarm", Activity.MODE_PRIVATE); boolean isOn = settings.getBoolean("splash_screen", false); assertEquals(isOn, false); } } }