package com.trovebox.android.test; import org.holoeverywhere.preference.CheckBoxPreference; import org.holoeverywhere.preference.EditTextPreference; import org.holoeverywhere.preference.Preference; import org.holoeverywhere.preference.PreferenceActivity; import com.trovebox.android.app.Preferences; import com.trovebox.android.app.R; import com.trovebox.android.app.SettingsActivity; import com.trovebox.android.app.SettingsFragment; import android.content.SharedPreferences; import android.test.ActivityInstrumentationTestCase2; public class SettingsActivityTest extends ActivityInstrumentationTestCase2<SettingsActivity> { private SettingsActivity mActivity; private SettingsFragment fragment; private SharedPreferences mPreferences; public SettingsActivityTest() { super("com.trovebox.android.app", SettingsActivity.class); } /** * @see android.test.ActivityInstrumentationTestCase2#setUp() */ @Override protected void setUp() throws Exception { super.setUp(); // mPreferences.edit().clear().commit(); mActivity = this.getActivity(); mPreferences = Preferences .getDefaultSharedPreferences(getInstrumentation() .getTargetContext()); fragment = (SettingsFragment) mActivity.getSupportFragmentManager() .findFragmentById(android.R.id.content); } public void testPreconditions() { assertTrue(mActivity instanceof PreferenceActivity); } /** * Tests if the settings for autoupload are present and if they have the * correct default values. */ public void testAutoUploadSetting() { CheckBoxPreference autouploadOnPreference = (CheckBoxPreference) getPreference(R.string.setting_autoupload_on_key); assertNotNull(autouploadOnPreference); boolean isAutoUploadOn = mPreferences.getBoolean( mActivity.getString(R.string.setting_autoupload_on_key), mActivity.getResources().getBoolean( R.bool.setting_autoupload_on_default)); assertEquals(isAutoUploadOn, autouploadOnPreference.isChecked()); EditTextPreference autouploadTagPreference = (EditTextPreference) getPreference(R.string.setting_autoupload_tag_key); assertEquals(isAutoUploadOn, autouploadTagPreference.isEnabled()); assertNotNull(autouploadTagPreference); String autoUploadTag = mPreferences.getString( mActivity.getString(R.string.setting_autoupload_tag_key), mActivity.getString(R.string.setting_autoupload_tag_default)); assertEquals(autoUploadTag, autouploadTagPreference.getText()); } public void testServerSetting() { Preference serverPreference = getPreference(R.string.setting_account_server_key); String server = mPreferences.getString( mActivity.getString(R.string.setting_account_server_key), mActivity.getString(R.string.setting_account_server_default)); assertEquals(server, serverPreference.getSummary()); } private Preference getPreference(int resId) { return fragment.findPreference(mActivity.getString(resId)); } }