EmergencyEditTextPreferenceTest.java revision f0e8818031c5e1ceb40e4f22bd3bc27a2b6771ca
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
1809f34dab15bc09ca5b8dd7df6d67f22c395984ebmariagpuyolimport android.test.ActivityInstrumentationTestCase2;
1909f34dab15bc09ca5b8dd7df6d67f22c395984ebmariagpuyol
2009f34dab15bc09ca5b8dd7df6d67f22c395984ebmariagpuyolimport com.android.emergency.PreferenceKeys;
2109f34dab15bc09ca5b8dd7df6d67f22c395984ebmariagpuyolimport com.android.emergency.R;
2209f34dab15bc09ca5b8dd7df6d67f22c395984ebmariagpuyolimport com.android.emergency.edit.EditEmergencyInfoFragment;
2309f34dab15bc09ca5b8dd7df6d67f22c395984ebmariagpuyolimport com.android.emergency.edit.EditInfoActivity;
2409f34dab15bc09ca5b8dd7df6d67f22c395984ebmariagpuyol
2509f34dab15bc09ca5b8dd7df6d67f22c395984ebmariagpuyol/**
2609f34dab15bc09ca5b8dd7df6d67f22c395984ebmariagpuyol * Tests for {@link EmergencyEditTextPreference}.
2709f34dab15bc09ca5b8dd7df6d67f22c395984ebmariagpuyol */
2809f34dab15bc09ca5b8dd7df6d67f22c395984ebmariagpuyolpublic class EmergencyEditTextPreferenceTest
2909f34dab15bc09ca5b8dd7df6d67f22c395984ebmariagpuyol        extends ActivityInstrumentationTestCase2<EditInfoActivity> {
3009f34dab15bc09ca5b8dd7df6d67f22c395984ebmariagpuyol    private EmergencyEditTextPreference mPreference;
3109f34dab15bc09ca5b8dd7df6d67f22c395984ebmariagpuyol    private EditEmergencyInfoFragment mEditInfoFragment;
3209f34dab15bc09ca5b8dd7df6d67f22c395984ebmariagpuyol
3309f34dab15bc09ca5b8dd7df6d67f22c395984ebmariagpuyol    public EmergencyEditTextPreferenceTest() {
3409f34dab15bc09ca5b8dd7df6d67f22c395984ebmariagpuyol        super(EditInfoActivity.class);
3509f34dab15bc09ca5b8dd7df6d67f22c395984ebmariagpuyol    }
3609f34dab15bc09ca5b8dd7df6d67f22c395984ebmariagpuyol
3709f34dab15bc09ca5b8dd7df6d67f22c395984ebmariagpuyol    @Override
3809f34dab15bc09ca5b8dd7df6d67f22c395984ebmariagpuyol    protected void setUp() throws Exception {
3909f34dab15bc09ca5b8dd7df6d67f22c395984ebmariagpuyol        super.setUp();
4009f34dab15bc09ca5b8dd7df6d67f22c395984ebmariagpuyol        mEditInfoFragment = (EditEmergencyInfoFragment) getActivity().getFragments().get(0).second;
4109f34dab15bc09ca5b8dd7df6d67f22c395984ebmariagpuyol        mPreference = (EmergencyEditTextPreference)
4209f34dab15bc09ca5b8dd7df6d67f22c395984ebmariagpuyol                mEditInfoFragment.findPreference(PreferenceKeys.KEY_MEDICAL_CONDITIONS);
4309f34dab15bc09ca5b8dd7df6d67f22c395984ebmariagpuyol        try {
4409f34dab15bc09ca5b8dd7df6d67f22c395984ebmariagpuyol            runTestOnUiThread(new Runnable() {
4509f34dab15bc09ca5b8dd7df6d67f22c395984ebmariagpuyol                @Override
4609f34dab15bc09ca5b8dd7df6d67f22c395984ebmariagpuyol                public void run() {
4709f34dab15bc09ca5b8dd7df6d67f22c395984ebmariagpuyol                    mPreference.setText("");
4809f34dab15bc09ca5b8dd7df6d67f22c395984ebmariagpuyol                }
4909f34dab15bc09ca5b8dd7df6d67f22c395984ebmariagpuyol            });
5009f34dab15bc09ca5b8dd7df6d67f22c395984ebmariagpuyol        } catch (Throwable throwable) {
5109f34dab15bc09ca5b8dd7df6d67f22c395984ebmariagpuyol            fail("Should not throw exception");
5209f34dab15bc09ca5b8dd7df6d67f22c395984ebmariagpuyol        }
5309f34dab15bc09ca5b8dd7df6d67f22c395984ebmariagpuyol    }
5409f34dab15bc09ca5b8dd7df6d67f22c395984ebmariagpuyol
5509f34dab15bc09ca5b8dd7df6d67f22c395984ebmariagpuyol    public void testSummary() {
5609f34dab15bc09ca5b8dd7df6d67f22c395984ebmariagpuyol        String summary = (String) mPreference.getSummary();
5709f34dab15bc09ca5b8dd7df6d67f22c395984ebmariagpuyol        String summaryExp =
5809f34dab15bc09ca5b8dd7df6d67f22c395984ebmariagpuyol                getActivity().getResources().getString(R.string.unknown_medical_conditions);
5909f34dab15bc09ca5b8dd7df6d67f22c395984ebmariagpuyol        assertEquals(summaryExp, summary);
6009f34dab15bc09ca5b8dd7df6d67f22c395984ebmariagpuyol    }
6109f34dab15bc09ca5b8dd7df6d67f22c395984ebmariagpuyol
6209f34dab15bc09ca5b8dd7df6d67f22c395984ebmariagpuyol    public void testTitle() {
6309f34dab15bc09ca5b8dd7df6d67f22c395984ebmariagpuyol        String title = (String) mPreference.getTitle();
6409f34dab15bc09ca5b8dd7df6d67f22c395984ebmariagpuyol        String titleExp =
6509f34dab15bc09ca5b8dd7df6d67f22c395984ebmariagpuyol                getActivity().getResources().getString(R.string.medical_conditions);
6609f34dab15bc09ca5b8dd7df6d67f22c395984ebmariagpuyol        assertEquals(titleExp, title);
6709f34dab15bc09ca5b8dd7df6d67f22c395984ebmariagpuyol    }
6809f34dab15bc09ca5b8dd7df6d67f22c395984ebmariagpuyol
6909f34dab15bc09ca5b8dd7df6d67f22c395984ebmariagpuyol    public void testProperties() {
7009f34dab15bc09ca5b8dd7df6d67f22c395984ebmariagpuyol        assertNotNull(mPreference);
7109f34dab15bc09ca5b8dd7df6d67f22c395984ebmariagpuyol        assertEquals(PreferenceKeys.KEY_MEDICAL_CONDITIONS, mPreference.getKey());
7209f34dab15bc09ca5b8dd7df6d67f22c395984ebmariagpuyol        assertTrue(mPreference.isEnabled());
7309f34dab15bc09ca5b8dd7df6d67f22c395984ebmariagpuyol        assertTrue(mPreference.isPersistent());
7409f34dab15bc09ca5b8dd7df6d67f22c395984ebmariagpuyol        assertTrue(mPreference.isSelectable());
7509f34dab15bc09ca5b8dd7df6d67f22c395984ebmariagpuyol        assertTrue(mPreference.isNotSet());
7609f34dab15bc09ca5b8dd7df6d67f22c395984ebmariagpuyol        assertEquals("", mPreference.getText());
7709f34dab15bc09ca5b8dd7df6d67f22c395984ebmariagpuyol    }
7809f34dab15bc09ca5b8dd7df6d67f22c395984ebmariagpuyol
7909f34dab15bc09ca5b8dd7df6d67f22c395984ebmariagpuyol    public void testReloadFromPreference() throws Throwable {
8009f34dab15bc09ca5b8dd7df6d67f22c395984ebmariagpuyol        String medicalConditions = "Asthma";
8109f34dab15bc09ca5b8dd7df6d67f22c395984ebmariagpuyol        mEditInfoFragment.getPreferenceManager().getSharedPreferences().edit()
82f0e8818031c5e1ceb40e4f22bd3bc27a2b6771camariagpuyol                .putString(mPreference.getKey(), medicalConditions).commit();
8309f34dab15bc09ca5b8dd7df6d67f22c395984ebmariagpuyol        runTestOnUiThread(new Runnable() {
8409f34dab15bc09ca5b8dd7df6d67f22c395984ebmariagpuyol            @Override
8509f34dab15bc09ca5b8dd7df6d67f22c395984ebmariagpuyol            public void run() {
8609f34dab15bc09ca5b8dd7df6d67f22c395984ebmariagpuyol                mPreference.reloadFromPreference();
8709f34dab15bc09ca5b8dd7df6d67f22c395984ebmariagpuyol            }
8809f34dab15bc09ca5b8dd7df6d67f22c395984ebmariagpuyol        });
8909f34dab15bc09ca5b8dd7df6d67f22c395984ebmariagpuyol        assertEquals(medicalConditions, mPreference.getText());
9009f34dab15bc09ca5b8dd7df6d67f22c395984ebmariagpuyol        assertFalse(mPreference.isNotSet());
9109f34dab15bc09ca5b8dd7df6d67f22c395984ebmariagpuyol    }
9209f34dab15bc09ca5b8dd7df6d67f22c395984ebmariagpuyol
9309f34dab15bc09ca5b8dd7df6d67f22c395984ebmariagpuyol    public void testSetText() {
9409f34dab15bc09ca5b8dd7df6d67f22c395984ebmariagpuyol        String medicalConditions = "Asthma";
9509f34dab15bc09ca5b8dd7df6d67f22c395984ebmariagpuyol        mPreference.setText(medicalConditions);
9609f34dab15bc09ca5b8dd7df6d67f22c395984ebmariagpuyol        assertEquals(medicalConditions, mPreference.getText());
9709f34dab15bc09ca5b8dd7df6d67f22c395984ebmariagpuyol        assertEquals(medicalConditions, mPreference.getSummary());
9809f34dab15bc09ca5b8dd7df6d67f22c395984ebmariagpuyol    }
9909f34dab15bc09ca5b8dd7df6d67f22c395984ebmariagpuyol}
100