109f34dab15bc09ca5b8dd7df6d67f22c395984ebmariagpuyol/* 209f34dab15bc09ca5b8dd7df6d67f22c395984ebmariagpuyol * Copyright (C) 2016 The Android Open Source Project 309f34dab15bc09ca5b8dd7df6d67f22c395984ebmariagpuyol * 409f34dab15bc09ca5b8dd7df6d67f22c395984ebmariagpuyol * Licensed under the Apache License, Version 2.0 (the "License"); 509f34dab15bc09ca5b8dd7df6d67f22c395984ebmariagpuyol * you may not use this file except in compliance with the License. 609f34dab15bc09ca5b8dd7df6d67f22c395984ebmariagpuyol * You may obtain a copy of the License at 709f34dab15bc09ca5b8dd7df6d67f22c395984ebmariagpuyol * 809f34dab15bc09ca5b8dd7df6d67f22c395984ebmariagpuyol * http://www.apache.org/licenses/LICENSE-2.0 909f34dab15bc09ca5b8dd7df6d67f22c395984ebmariagpuyol * 1009f34dab15bc09ca5b8dd7df6d67f22c395984ebmariagpuyol * Unless required by applicable law or agreed to in writing, software 1109f34dab15bc09ca5b8dd7df6d67f22c395984ebmariagpuyol * distributed under the License is distributed on an "AS IS" BASIS, 1209f34dab15bc09ca5b8dd7df6d67f22c395984ebmariagpuyol * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 1309f34dab15bc09ca5b8dd7df6d67f22c395984ebmariagpuyol * See the License for the specific language governing permissions and 1409f34dab15bc09ca5b8dd7df6d67f22c395984ebmariagpuyol * limitations under the License. 1509f34dab15bc09ca5b8dd7df6d67f22c395984ebmariagpuyol */ 1609f34dab15bc09ca5b8dd7df6d67f22c395984ebmariagpuyolpackage com.android.emergency.preferences; 1709f34dab15bc09ca5b8dd7df6d67f22c395984ebmariagpuyol 180ad3900521a6a93df8905d905dfb1a4c952a180cmariagpuyolimport android.preference.PreferenceManager; 1909f34dab15bc09ca5b8dd7df6d67f22c395984ebmariagpuyolimport android.test.ActivityInstrumentationTestCase2; 200ad3900521a6a93df8905d905dfb1a4c952a180cmariagpuyolimport android.test.suitebuilder.annotation.MediumTest; 2109f34dab15bc09ca5b8dd7df6d67f22c395984ebmariagpuyol 2209f34dab15bc09ca5b8dd7df6d67f22c395984ebmariagpuyolimport com.android.emergency.PreferenceKeys; 2309f34dab15bc09ca5b8dd7df6d67f22c395984ebmariagpuyolimport com.android.emergency.R; 2409f34dab15bc09ca5b8dd7df6d67f22c395984ebmariagpuyolimport com.android.emergency.edit.EditEmergencyInfoFragment; 2509f34dab15bc09ca5b8dd7df6d67f22c395984ebmariagpuyolimport com.android.emergency.edit.EditInfoActivity; 2609f34dab15bc09ca5b8dd7df6d67f22c395984ebmariagpuyol 2709f34dab15bc09ca5b8dd7df6d67f22c395984ebmariagpuyol/** 2809f34dab15bc09ca5b8dd7df6d67f22c395984ebmariagpuyol * Tests for {@link EmergencyEditTextPreference}. 2909f34dab15bc09ca5b8dd7df6d67f22c395984ebmariagpuyol */ 300ad3900521a6a93df8905d905dfb1a4c952a180cmariagpuyol@MediumTest 3109f34dab15bc09ca5b8dd7df6d67f22c395984ebmariagpuyolpublic class EmergencyEditTextPreferenceTest 3209f34dab15bc09ca5b8dd7df6d67f22c395984ebmariagpuyol extends ActivityInstrumentationTestCase2<EditInfoActivity> { 3309f34dab15bc09ca5b8dd7df6d67f22c395984ebmariagpuyol private EmergencyEditTextPreference mPreference; 3409f34dab15bc09ca5b8dd7df6d67f22c395984ebmariagpuyol private EditEmergencyInfoFragment mEditInfoFragment; 3509f34dab15bc09ca5b8dd7df6d67f22c395984ebmariagpuyol 3609f34dab15bc09ca5b8dd7df6d67f22c395984ebmariagpuyol public EmergencyEditTextPreferenceTest() { 3709f34dab15bc09ca5b8dd7df6d67f22c395984ebmariagpuyol super(EditInfoActivity.class); 3809f34dab15bc09ca5b8dd7df6d67f22c395984ebmariagpuyol } 3909f34dab15bc09ca5b8dd7df6d67f22c395984ebmariagpuyol 4009f34dab15bc09ca5b8dd7df6d67f22c395984ebmariagpuyol @Override 4109f34dab15bc09ca5b8dd7df6d67f22c395984ebmariagpuyol protected void setUp() throws Exception { 4209f34dab15bc09ca5b8dd7df6d67f22c395984ebmariagpuyol super.setUp(); 4309f34dab15bc09ca5b8dd7df6d67f22c395984ebmariagpuyol mEditInfoFragment = (EditEmergencyInfoFragment) getActivity().getFragments().get(0).second; 4409f34dab15bc09ca5b8dd7df6d67f22c395984ebmariagpuyol mPreference = (EmergencyEditTextPreference) 4509f34dab15bc09ca5b8dd7df6d67f22c395984ebmariagpuyol mEditInfoFragment.findPreference(PreferenceKeys.KEY_MEDICAL_CONDITIONS); 4609f34dab15bc09ca5b8dd7df6d67f22c395984ebmariagpuyol try { 4709f34dab15bc09ca5b8dd7df6d67f22c395984ebmariagpuyol runTestOnUiThread(new Runnable() { 4809f34dab15bc09ca5b8dd7df6d67f22c395984ebmariagpuyol @Override 4909f34dab15bc09ca5b8dd7df6d67f22c395984ebmariagpuyol public void run() { 5009f34dab15bc09ca5b8dd7df6d67f22c395984ebmariagpuyol mPreference.setText(""); 5109f34dab15bc09ca5b8dd7df6d67f22c395984ebmariagpuyol } 5209f34dab15bc09ca5b8dd7df6d67f22c395984ebmariagpuyol }); 5309f34dab15bc09ca5b8dd7df6d67f22c395984ebmariagpuyol } catch (Throwable throwable) { 5409f34dab15bc09ca5b8dd7df6d67f22c395984ebmariagpuyol fail("Should not throw exception"); 5509f34dab15bc09ca5b8dd7df6d67f22c395984ebmariagpuyol } 5609f34dab15bc09ca5b8dd7df6d67f22c395984ebmariagpuyol } 5709f34dab15bc09ca5b8dd7df6d67f22c395984ebmariagpuyol 580ad3900521a6a93df8905d905dfb1a4c952a180cmariagpuyol @Override 590ad3900521a6a93df8905d905dfb1a4c952a180cmariagpuyol protected void tearDown() throws Exception { 600ad3900521a6a93df8905d905dfb1a4c952a180cmariagpuyol PreferenceManager.getDefaultSharedPreferences(getActivity()).edit().clear().commit(); 610ad3900521a6a93df8905d905dfb1a4c952a180cmariagpuyol super.tearDown(); 620ad3900521a6a93df8905d905dfb1a4c952a180cmariagpuyol } 630ad3900521a6a93df8905d905dfb1a4c952a180cmariagpuyol 6409f34dab15bc09ca5b8dd7df6d67f22c395984ebmariagpuyol public void testSummary() { 6509f34dab15bc09ca5b8dd7df6d67f22c395984ebmariagpuyol String summary = (String) mPreference.getSummary(); 6609f34dab15bc09ca5b8dd7df6d67f22c395984ebmariagpuyol String summaryExp = 6709f34dab15bc09ca5b8dd7df6d67f22c395984ebmariagpuyol getActivity().getResources().getString(R.string.unknown_medical_conditions); 6809f34dab15bc09ca5b8dd7df6d67f22c395984ebmariagpuyol assertEquals(summaryExp, summary); 6909f34dab15bc09ca5b8dd7df6d67f22c395984ebmariagpuyol } 7009f34dab15bc09ca5b8dd7df6d67f22c395984ebmariagpuyol 7109f34dab15bc09ca5b8dd7df6d67f22c395984ebmariagpuyol public void testTitle() { 7209f34dab15bc09ca5b8dd7df6d67f22c395984ebmariagpuyol String title = (String) mPreference.getTitle(); 7309f34dab15bc09ca5b8dd7df6d67f22c395984ebmariagpuyol String titleExp = 7409f34dab15bc09ca5b8dd7df6d67f22c395984ebmariagpuyol getActivity().getResources().getString(R.string.medical_conditions); 7509f34dab15bc09ca5b8dd7df6d67f22c395984ebmariagpuyol assertEquals(titleExp, title); 7609f34dab15bc09ca5b8dd7df6d67f22c395984ebmariagpuyol } 7709f34dab15bc09ca5b8dd7df6d67f22c395984ebmariagpuyol 7809f34dab15bc09ca5b8dd7df6d67f22c395984ebmariagpuyol public void testProperties() { 7909f34dab15bc09ca5b8dd7df6d67f22c395984ebmariagpuyol assertNotNull(mPreference); 8009f34dab15bc09ca5b8dd7df6d67f22c395984ebmariagpuyol assertEquals(PreferenceKeys.KEY_MEDICAL_CONDITIONS, mPreference.getKey()); 8109f34dab15bc09ca5b8dd7df6d67f22c395984ebmariagpuyol assertTrue(mPreference.isEnabled()); 8209f34dab15bc09ca5b8dd7df6d67f22c395984ebmariagpuyol assertTrue(mPreference.isPersistent()); 8309f34dab15bc09ca5b8dd7df6d67f22c395984ebmariagpuyol assertTrue(mPreference.isSelectable()); 8409f34dab15bc09ca5b8dd7df6d67f22c395984ebmariagpuyol assertTrue(mPreference.isNotSet()); 8509f34dab15bc09ca5b8dd7df6d67f22c395984ebmariagpuyol assertEquals("", mPreference.getText()); 8609f34dab15bc09ca5b8dd7df6d67f22c395984ebmariagpuyol } 8709f34dab15bc09ca5b8dd7df6d67f22c395984ebmariagpuyol 8809f34dab15bc09ca5b8dd7df6d67f22c395984ebmariagpuyol public void testReloadFromPreference() throws Throwable { 8909f34dab15bc09ca5b8dd7df6d67f22c395984ebmariagpuyol String medicalConditions = "Asthma"; 9009f34dab15bc09ca5b8dd7df6d67f22c395984ebmariagpuyol mEditInfoFragment.getPreferenceManager().getSharedPreferences().edit() 91f0e8818031c5e1ceb40e4f22bd3bc27a2b6771camariagpuyol .putString(mPreference.getKey(), medicalConditions).commit(); 9209f34dab15bc09ca5b8dd7df6d67f22c395984ebmariagpuyol runTestOnUiThread(new Runnable() { 9309f34dab15bc09ca5b8dd7df6d67f22c395984ebmariagpuyol @Override 9409f34dab15bc09ca5b8dd7df6d67f22c395984ebmariagpuyol public void run() { 9509f34dab15bc09ca5b8dd7df6d67f22c395984ebmariagpuyol mPreference.reloadFromPreference(); 9609f34dab15bc09ca5b8dd7df6d67f22c395984ebmariagpuyol } 9709f34dab15bc09ca5b8dd7df6d67f22c395984ebmariagpuyol }); 9809f34dab15bc09ca5b8dd7df6d67f22c395984ebmariagpuyol assertEquals(medicalConditions, mPreference.getText()); 9909f34dab15bc09ca5b8dd7df6d67f22c395984ebmariagpuyol assertFalse(mPreference.isNotSet()); 10009f34dab15bc09ca5b8dd7df6d67f22c395984ebmariagpuyol } 10109f34dab15bc09ca5b8dd7df6d67f22c395984ebmariagpuyol 102124a8fdf53a4815c0f57b6178e97322dc86d40a6mariagpuyol public void testSetText() throws Throwable { 103124a8fdf53a4815c0f57b6178e97322dc86d40a6mariagpuyol final String medicalConditions = "Asthma"; 104124a8fdf53a4815c0f57b6178e97322dc86d40a6mariagpuyol runTestOnUiThread(new Runnable() { 105124a8fdf53a4815c0f57b6178e97322dc86d40a6mariagpuyol @Override 106124a8fdf53a4815c0f57b6178e97322dc86d40a6mariagpuyol public void run() { 107124a8fdf53a4815c0f57b6178e97322dc86d40a6mariagpuyol mPreference.setText(medicalConditions); 108124a8fdf53a4815c0f57b6178e97322dc86d40a6mariagpuyol } 109124a8fdf53a4815c0f57b6178e97322dc86d40a6mariagpuyol }); 110124a8fdf53a4815c0f57b6178e97322dc86d40a6mariagpuyol 11109f34dab15bc09ca5b8dd7df6d67f22c395984ebmariagpuyol assertEquals(medicalConditions, mPreference.getText()); 11209f34dab15bc09ca5b8dd7df6d67f22c395984ebmariagpuyol assertEquals(medicalConditions, mPreference.getSummary()); 11309f34dab15bc09ca5b8dd7df6d67f22c395984ebmariagpuyol } 11409f34dab15bc09ca5b8dd7df6d67f22c395984ebmariagpuyol} 115