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