package com.ese2013.mensaunibe.settings.test; import android.annotation.SuppressLint; import android.app.Activity; import android.test.ActivityInstrumentationTestCase2; import android.widget.Spinner; import com.ese2013.mensaunibe.R; import com.ese2013.mensaunibe.settings.SettingsActivity; public class SettingsActivityTest extends ActivityInstrumentationTestCase2<SettingsActivity> { private Activity activity; private int origSpinnerPosition; private final int TEST_SPINNER_POSITION_1 = 0; private final int TEST_SPINNER_POSITION_2 = 1; private Spinner spinner; public SettingsActivityTest() { super(SettingsActivity.class); } @Override public void setUp() throws Exception{ super.setUp(); activity = getActivity(); spinner = (Spinner) activity.findViewById(R.id.language_spinner); origSpinnerPosition = spinner.getSelectedItemPosition(); } @Override public void tearDown() throws Exception{ spinner = (Spinner) activity.findViewById(R.id.language_spinner); activity.runOnUiThread(new Runnable() { @Override public void run() { spinner.requestFocus(); spinner.setSelection(origSpinnerPosition); } }); } /** * Test to make sure that spinner values are persisted across activity restarts. * * <p>Launches the settings activity, sets a spinner value, closes the activity, then relaunches * that activity. Checks to make sure that the spinner values match what we set them to. */ @SuppressLint("CutPasteId") public void testSpinnerValuePersistedBetweenLaunches() { activity.runOnUiThread(new Runnable() { @Override public void run() { spinner.requestFocus(); spinner.setSelection(TEST_SPINNER_POSITION_1); } }); // Close the activity activity.finish(); setActivity(null); // Relaunch the activity activity = this.getActivity(); final Spinner spinner1 = (Spinner) activity.findViewById(R.id.language_spinner); int currentPosition = spinner1.getSelectedItemPosition(); assertEquals(TEST_SPINNER_POSITION_1, currentPosition); // Set spinner to test position 2 activity.runOnUiThread(new Runnable() { @Override public void run() { spinner1.requestFocus(); spinner1.setSelection(TEST_SPINNER_POSITION_2); } }); activity.finish(); setActivity(null); activity = this.getActivity(); final Spinner spinner2 = (Spinner) activity.findViewById(R.id.language_spinner); currentPosition = spinner2.getSelectedItemPosition(); assertEquals(TEST_SPINNER_POSITION_2, currentPosition); } }