10ad3900521a6a93df8905d905dfb1a4c952a180cmariagpuyol/*
20ad3900521a6a93df8905d905dfb1a4c952a180cmariagpuyol * Copyright (C) 2016 The Android Open Source Project
30ad3900521a6a93df8905d905dfb1a4c952a180cmariagpuyol *
40ad3900521a6a93df8905d905dfb1a4c952a180cmariagpuyol * Licensed under the Apache License, Version 2.0 (the "License");
50ad3900521a6a93df8905d905dfb1a4c952a180cmariagpuyol * you may not use this file except in compliance with the License.
60ad3900521a6a93df8905d905dfb1a4c952a180cmariagpuyol * You may obtain a copy of the License at
70ad3900521a6a93df8905d905dfb1a4c952a180cmariagpuyol *
80ad3900521a6a93df8905d905dfb1a4c952a180cmariagpuyol *      http://www.apache.org/licenses/LICENSE-2.0
90ad3900521a6a93df8905d905dfb1a4c952a180cmariagpuyol *
100ad3900521a6a93df8905d905dfb1a4c952a180cmariagpuyol * Unless required by applicable law or agreed to in writing, software
110ad3900521a6a93df8905d905dfb1a4c952a180cmariagpuyol * distributed under the License is distributed on an "AS IS" BASIS,
120ad3900521a6a93df8905d905dfb1a4c952a180cmariagpuyol * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
130ad3900521a6a93df8905d905dfb1a4c952a180cmariagpuyol * See the License for the specific language governing permissions and
140ad3900521a6a93df8905d905dfb1a4c952a180cmariagpuyol * limitations under the License.
150ad3900521a6a93df8905d905dfb1a4c952a180cmariagpuyol */
160ad3900521a6a93df8905d905dfb1a4c952a180cmariagpuyolpackage com.android.emergency.edit;
170ad3900521a6a93df8905d905dfb1a4c952a180cmariagpuyol
180ad3900521a6a93df8905d905dfb1a4c952a180cmariagpuyolimport android.app.Instrumentation;
190ad3900521a6a93df8905d905dfb1a4c952a180cmariagpuyolimport android.content.Intent;
200ad3900521a6a93df8905d905dfb1a4c952a180cmariagpuyolimport android.content.IntentFilter;
210ad3900521a6a93df8905d905dfb1a4c952a180cmariagpuyolimport android.preference.Preference;
220ad3900521a6a93df8905d905dfb1a4c952a180cmariagpuyolimport android.provider.ContactsContract;
230ad3900521a6a93df8905d905dfb1a4c952a180cmariagpuyolimport android.test.ActivityInstrumentationTestCase2;
240ad3900521a6a93df8905d905dfb1a4c952a180cmariagpuyolimport android.test.suitebuilder.annotation.MediumTest;
250ad3900521a6a93df8905d905dfb1a4c952a180cmariagpuyol
260ad3900521a6a93df8905d905dfb1a4c952a180cmariagpuyolimport com.android.emergency.PreferenceKeys;
270ad3900521a6a93df8905d905dfb1a4c952a180cmariagpuyol
280ad3900521a6a93df8905d905dfb1a4c952a180cmariagpuyol/**
290ad3900521a6a93df8905d905dfb1a4c952a180cmariagpuyol * Tests for {@link EditEmergencyContactsFragment}.
300ad3900521a6a93df8905d905dfb1a4c952a180cmariagpuyol */
310ad3900521a6a93df8905d905dfb1a4c952a180cmariagpuyol@MediumTest
320ad3900521a6a93df8905d905dfb1a4c952a180cmariagpuyolpublic class EditEmergencyContactsFragmentTest
330ad3900521a6a93df8905d905dfb1a4c952a180cmariagpuyol        extends ActivityInstrumentationTestCase2<EditInfoActivity> {
340ad3900521a6a93df8905d905dfb1a4c952a180cmariagpuyol    private EditEmergencyContactsFragment mEditEmergencyContactsFragment;
350ad3900521a6a93df8905d905dfb1a4c952a180cmariagpuyol    private Preference mAddContactPreference;
360ad3900521a6a93df8905d905dfb1a4c952a180cmariagpuyol
370ad3900521a6a93df8905d905dfb1a4c952a180cmariagpuyol    public EditEmergencyContactsFragmentTest() {
380ad3900521a6a93df8905d905dfb1a4c952a180cmariagpuyol        super(EditInfoActivity.class);
390ad3900521a6a93df8905d905dfb1a4c952a180cmariagpuyol    }
400ad3900521a6a93df8905d905dfb1a4c952a180cmariagpuyol
410ad3900521a6a93df8905d905dfb1a4c952a180cmariagpuyol    @Override
420ad3900521a6a93df8905d905dfb1a4c952a180cmariagpuyol    protected void setUp() throws Exception {
430ad3900521a6a93df8905d905dfb1a4c952a180cmariagpuyol        super.setUp();
440ad3900521a6a93df8905d905dfb1a4c952a180cmariagpuyol        mEditEmergencyContactsFragment = (EditEmergencyContactsFragment)
450ad3900521a6a93df8905d905dfb1a4c952a180cmariagpuyol                getActivity().getFragments().get(1).second;
460ad3900521a6a93df8905d905dfb1a4c952a180cmariagpuyol        mAddContactPreference =
470ad3900521a6a93df8905d905dfb1a4c952a180cmariagpuyol                mEditEmergencyContactsFragment.findPreference(PreferenceKeys.KEY_ADD_CONTACT);
480ad3900521a6a93df8905d905dfb1a4c952a180cmariagpuyol    }
490ad3900521a6a93df8905d905dfb1a4c952a180cmariagpuyol
500ad3900521a6a93df8905d905dfb1a4c952a180cmariagpuyol    public void testAddContactPreference() throws Throwable {
510ad3900521a6a93df8905d905dfb1a4c952a180cmariagpuyol        assertNotNull(mAddContactPreference);
520ad3900521a6a93df8905d905dfb1a4c952a180cmariagpuyol
530ad3900521a6a93df8905d905dfb1a4c952a180cmariagpuyol        IntentFilter intentFilter = new IntentFilter(Intent.ACTION_PICK);
540ad3900521a6a93df8905d905dfb1a4c952a180cmariagpuyol        intentFilter.addDataType(ContactsContract.CommonDataKinds.Phone.CONTENT_TYPE);
550ad3900521a6a93df8905d905dfb1a4c952a180cmariagpuyol
560ad3900521a6a93df8905d905dfb1a4c952a180cmariagpuyol        Instrumentation.ActivityMonitor activityMonitor =
570ad3900521a6a93df8905d905dfb1a4c952a180cmariagpuyol                getInstrumentation().addMonitor(intentFilter, null, true /* block */);
580ad3900521a6a93df8905d905dfb1a4c952a180cmariagpuyol
590ad3900521a6a93df8905d905dfb1a4c952a180cmariagpuyol        runTestOnUiThread(new Runnable() {
600ad3900521a6a93df8905d905dfb1a4c952a180cmariagpuyol            @Override
610ad3900521a6a93df8905d905dfb1a4c952a180cmariagpuyol            public void run() {
620ad3900521a6a93df8905d905dfb1a4c952a180cmariagpuyol                mAddContactPreference
630ad3900521a6a93df8905d905dfb1a4c952a180cmariagpuyol                        .getOnPreferenceClickListener().onPreferenceClick(mAddContactPreference);
640ad3900521a6a93df8905d905dfb1a4c952a180cmariagpuyol            }
650ad3900521a6a93df8905d905dfb1a4c952a180cmariagpuyol        });
660ad3900521a6a93df8905d905dfb1a4c952a180cmariagpuyol
670ad3900521a6a93df8905d905dfb1a4c952a180cmariagpuyol        assertEquals(true, getInstrumentation().checkMonitorHit(activityMonitor, 1 /* minHits */));
680ad3900521a6a93df8905d905dfb1a4c952a180cmariagpuyol    }
690ad3900521a6a93df8905d905dfb1a4c952a180cmariagpuyol}
70