• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (C) 2016 The Android Open Source Project
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  *      http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16 package com.android.emergency.preferences;
17 
18 import android.app.Instrumentation;
19 import android.content.Intent;
20 import android.content.IntentFilter;
21 import android.net.Uri;
22 import android.provider.ContactsContract;
23 import android.test.ActivityInstrumentationTestCase2;
24 import android.test.suitebuilder.annotation.MediumTest;
25 
26 import com.android.emergency.ContactTestUtils;
27 import com.android.emergency.edit.EditInfoActivity;
28 
29 /**
30  * Tests for {@link ContactPreference}.
31  */
32 @MediumTest
33 public class ContactPreferenceTest extends ActivityInstrumentationTestCase2<EditInfoActivity> {
34     private static final String NAME = "Jake";
35     private static final String PHONE_NUMBER = "123456";
36     private ContactPreference mContactPreference;
37     private Uri mContactUri;
38 
ContactPreferenceTest()39     public ContactPreferenceTest() {
40         super(EditInfoActivity.class);
41     }
42     @Override
setUp()43     protected void setUp() throws Exception {
44         super.setUp();
45         mContactUri =
46                 ContactTestUtils.createContact(getActivity().getContentResolver(),
47                         NAME,
48                         PHONE_NUMBER);
49         mContactPreference = new ContactPreference(getActivity(), mContactUri);
50     }
51 
52     @Override
tearDown()53     protected void tearDown() throws Exception {
54         assertTrue(ContactTestUtils.deleteContact(getActivity().getContentResolver(),
55                 NAME,
56                 PHONE_NUMBER));
57         super.tearDown();
58     }
59 
testContactPreference()60     public void testContactPreference() {
61         assertEquals(mContactUri, mContactPreference.getContactUri());
62         assertEquals(NAME, mContactPreference.getContact().getName());
63         assertEquals(PHONE_NUMBER, mContactPreference.getContact().getPhoneNumber());
64 
65         assertNull(mContactPreference.getRemoveContactDialog());
66         mContactPreference.setRemoveContactPreferenceListener(
67                 new ContactPreference.RemoveContactPreferenceListener() {
68                     @Override
69                     public void onRemoveContactPreference(ContactPreference preference) {
70                         // Do nothing
71                     }
72                 });
73         assertNotNull(mContactPreference.getRemoveContactDialog());
74     }
75 
76 
testDisplayContact()77     public void testDisplayContact() throws Throwable {
78         IntentFilter intentFilter = new IntentFilter(Intent.ACTION_VIEW);
79         intentFilter.addDataType(ContactsContract.Contacts.CONTENT_ITEM_TYPE);
80         Instrumentation.ActivityMonitor activityMonitor =
81                 getInstrumentation().addMonitor(intentFilter, null, true /* block */);
82         mContactPreference.displayContact();
83 
84         assertEquals(true, getInstrumentation().checkMonitorHit(activityMonitor, 1 /* minHits */));
85     }
86 
testCallContact()87     public void testCallContact() throws Throwable {
88         IntentFilter intentFilter = new IntentFilter(Intent.ACTION_CALL);
89         intentFilter.addDataScheme("tel");
90         Instrumentation.ActivityMonitor activityMonitor =
91                 getInstrumentation().addMonitor(intentFilter, null, true /* block */);
92         mContactPreference.callContact();
93 
94         assertEquals(true, getInstrumentation().checkMonitorHit(activityMonitor, 1 /* minHits */));
95     }
96 }
97