1e22415817febc8d3229d1774f3b0dfda0fda8f46Nicolas Catania/*
2e22415817febc8d3229d1774f3b0dfda0fda8f46Nicolas Catania * Copyright (C) 2009 The Android Open Source Project
3e22415817febc8d3229d1774f3b0dfda0fda8f46Nicolas Catania *
4e22415817febc8d3229d1774f3b0dfda0fda8f46Nicolas Catania * Licensed under the Apache License, Version 2.0 (the "License");
5e22415817febc8d3229d1774f3b0dfda0fda8f46Nicolas Catania * you may not use this file except in compliance with the License.
6e22415817febc8d3229d1774f3b0dfda0fda8f46Nicolas Catania * You may obtain a copy of the License at
7e22415817febc8d3229d1774f3b0dfda0fda8f46Nicolas Catania *
8e22415817febc8d3229d1774f3b0dfda0fda8f46Nicolas Catania *      http://www.apache.org/licenses/LICENSE-2.0
9e22415817febc8d3229d1774f3b0dfda0fda8f46Nicolas Catania *
10e22415817febc8d3229d1774f3b0dfda0fda8f46Nicolas Catania * Unless required by applicable law or agreed to in writing, software
11e22415817febc8d3229d1774f3b0dfda0fda8f46Nicolas Catania * distributed under the License is distributed on an "AS IS" BASIS,
12e22415817febc8d3229d1774f3b0dfda0fda8f46Nicolas Catania * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13e22415817febc8d3229d1774f3b0dfda0fda8f46Nicolas Catania * See the License for the specific language governing permissions and
14e22415817febc8d3229d1774f3b0dfda0fda8f46Nicolas Catania * limitations under the License.
15e22415817febc8d3229d1774f3b0dfda0fda8f46Nicolas Catania */
16e22415817febc8d3229d1774f3b0dfda0fda8f46Nicolas Catania
17fda56b600e27b081db9719d22c809018304dedefXia Wangpackage com.android.internal.telephony;
18fda56b600e27b081db9719d22c809018304dedefXia Wang
19e22415817febc8d3229d1774f3b0dfda0fda8f46Nicolas Cataniaimport android.test.AndroidTestCase;
20e22415817febc8d3229d1774f3b0dfda0fda8f46Nicolas Cataniaimport android.test.suitebuilder.annotation.SmallTest;
21e22415817febc8d3229d1774f3b0dfda0fda8f46Nicolas Catania
22e22415817febc8d3229d1774f3b0dfda0fda8f46Nicolas Cataniaimport android.content.ContentResolver;
23e22415817febc8d3229d1774f3b0dfda0fda8f46Nicolas Cataniaimport android.content.Context;
24e22415817febc8d3229d1774f3b0dfda0fda8f46Nicolas Cataniaimport android.content.res.Resources;
25e22415817febc8d3229d1774f3b0dfda0fda8f46Nicolas Cataniaimport com.android.internal.telephony.CallerInfo;
26e22415817febc8d3229d1774f3b0dfda0fda8f46Nicolas Cataniaimport com.android.internal.telephony.CallerInfoAsyncQuery;
27e22415817febc8d3229d1774f3b0dfda0fda8f46Nicolas Cataniaimport android.util.Log;
28e22415817febc8d3229d1774f3b0dfda0fda8f46Nicolas Cataniaimport android.os.Looper;
29e22415817febc8d3229d1774f3b0dfda0fda8f46Nicolas Cataniaimport android.test.ActivityInstrumentationTestCase;
30e22415817febc8d3229d1774f3b0dfda0fda8f46Nicolas Cataniaimport android.util.StringBuilderPrinter;
31e22415817febc8d3229d1774f3b0dfda0fda8f46Nicolas Catania
32e22415817febc8d3229d1774f3b0dfda0fda8f46Nicolas Catania/*
33e22415817febc8d3229d1774f3b0dfda0fda8f46Nicolas Catania * Check the CallerInfo utility class works as expected.
34e22415817febc8d3229d1774f3b0dfda0fda8f46Nicolas Catania *
35e22415817febc8d3229d1774f3b0dfda0fda8f46Nicolas Catania */
36e22415817febc8d3229d1774f3b0dfda0fda8f46Nicolas Catania
37fda56b600e27b081db9719d22c809018304dedefXia Wangpublic class CallerInfoTest extends AndroidTestCase {
38e22415817febc8d3229d1774f3b0dfda0fda8f46Nicolas Catania    private CallerInfo mInfo;
39e22415817febc8d3229d1774f3b0dfda0fda8f46Nicolas Catania    private Context mContext;
40e22415817febc8d3229d1774f3b0dfda0fda8f46Nicolas Catania
41e22415817febc8d3229d1774f3b0dfda0fda8f46Nicolas Catania    private static final String kEmergencyNumber = "Emergency Number";
42e22415817febc8d3229d1774f3b0dfda0fda8f46Nicolas Catania    private static final int kToken = 0xdeadbeef;
43e22415817febc8d3229d1774f3b0dfda0fda8f46Nicolas Catania    private static final String TAG = "CallerInfoUnitTest";
44e22415817febc8d3229d1774f3b0dfda0fda8f46Nicolas Catania
45e22415817febc8d3229d1774f3b0dfda0fda8f46Nicolas Catania    @Override
46e22415817febc8d3229d1774f3b0dfda0fda8f46Nicolas Catania    protected void setUp() throws Exception {
47e22415817febc8d3229d1774f3b0dfda0fda8f46Nicolas Catania        super.setUp();
48e22415817febc8d3229d1774f3b0dfda0fda8f46Nicolas Catania        mContext = new MockContext();
49e22415817febc8d3229d1774f3b0dfda0fda8f46Nicolas Catania        mInfo = new CallerInfo();
50e22415817febc8d3229d1774f3b0dfda0fda8f46Nicolas Catania    }
51e22415817febc8d3229d1774f3b0dfda0fda8f46Nicolas Catania
52e22415817febc8d3229d1774f3b0dfda0fda8f46Nicolas Catania    @Override
53e22415817febc8d3229d1774f3b0dfda0fda8f46Nicolas Catania    protected void tearDown() throws Exception {
54e22415817febc8d3229d1774f3b0dfda0fda8f46Nicolas Catania        super.tearDown();
55e22415817febc8d3229d1774f3b0dfda0fda8f46Nicolas Catania    }
56e22415817febc8d3229d1774f3b0dfda0fda8f46Nicolas Catania
57e22415817febc8d3229d1774f3b0dfda0fda8f46Nicolas Catania    /**
58e22415817febc8d3229d1774f3b0dfda0fda8f46Nicolas Catania     * Checks the caller info instance is flagged as an emergency if
59e22415817febc8d3229d1774f3b0dfda0fda8f46Nicolas Catania     * the number is an emergency one. There is no test for the
60e22415817febc8d3229d1774f3b0dfda0fda8f46Nicolas Catania     * contact based constructors because emergency number are not in
61e22415817febc8d3229d1774f3b0dfda0fda8f46Nicolas Catania     * the contact DB.
62e22415817febc8d3229d1774f3b0dfda0fda8f46Nicolas Catania     */
63e22415817febc8d3229d1774f3b0dfda0fda8f46Nicolas Catania    @SmallTest
64e22415817febc8d3229d1774f3b0dfda0fda8f46Nicolas Catania    public void testEmergencyIsProperlySet() throws Exception {
65e22415817febc8d3229d1774f3b0dfda0fda8f46Nicolas Catania        assertFalse(mInfo.isEmergencyNumber());
66e22415817febc8d3229d1774f3b0dfda0fda8f46Nicolas Catania
67e22415817febc8d3229d1774f3b0dfda0fda8f46Nicolas Catania        mInfo = CallerInfo.getCallerInfo(mContext, "911");
68e22415817febc8d3229d1774f3b0dfda0fda8f46Nicolas Catania        assertIsValidEmergencyCallerInfo();
69e22415817febc8d3229d1774f3b0dfda0fda8f46Nicolas Catania
70e22415817febc8d3229d1774f3b0dfda0fda8f46Nicolas Catania        mInfo = CallerInfo.getCallerInfo(mContext, "tel:911");
71e22415817febc8d3229d1774f3b0dfda0fda8f46Nicolas Catania        assertIsValidEmergencyCallerInfo();
72e22415817febc8d3229d1774f3b0dfda0fda8f46Nicolas Catania
73e22415817febc8d3229d1774f3b0dfda0fda8f46Nicolas Catania
74e22415817febc8d3229d1774f3b0dfda0fda8f46Nicolas Catania        // This one hits the content resolver.
75e22415817febc8d3229d1774f3b0dfda0fda8f46Nicolas Catania        mInfo = CallerInfo.getCallerInfo(mContext, "18001234567");
76e22415817febc8d3229d1774f3b0dfda0fda8f46Nicolas Catania        assertFalse(mInfo.isEmergencyNumber());
77e22415817febc8d3229d1774f3b0dfda0fda8f46Nicolas Catania    }
78e22415817febc8d3229d1774f3b0dfda0fda8f46Nicolas Catania
79e22415817febc8d3229d1774f3b0dfda0fda8f46Nicolas Catania    /**
80e22415817febc8d3229d1774f3b0dfda0fda8f46Nicolas Catania     * Same as testEmergencyIsProperlySet but uses the async query api.
81e22415817febc8d3229d1774f3b0dfda0fda8f46Nicolas Catania     */
82e22415817febc8d3229d1774f3b0dfda0fda8f46Nicolas Catania    @SmallTest
83e22415817febc8d3229d1774f3b0dfda0fda8f46Nicolas Catania    public void testEmergencyIsProperlySetUsingAsyncQuery() throws Exception {
84e22415817febc8d3229d1774f3b0dfda0fda8f46Nicolas Catania        QueryRunner query;
85e22415817febc8d3229d1774f3b0dfda0fda8f46Nicolas Catania
86e22415817febc8d3229d1774f3b0dfda0fda8f46Nicolas Catania        query = new QueryRunner("911");
87e22415817febc8d3229d1774f3b0dfda0fda8f46Nicolas Catania        query.runAndCheckCompletion();
88e22415817febc8d3229d1774f3b0dfda0fda8f46Nicolas Catania        assertIsValidEmergencyCallerInfo();
89e22415817febc8d3229d1774f3b0dfda0fda8f46Nicolas Catania
90e22415817febc8d3229d1774f3b0dfda0fda8f46Nicolas Catania        query = new QueryRunner("tel:911");
91e22415817febc8d3229d1774f3b0dfda0fda8f46Nicolas Catania        query.runAndCheckCompletion();
92e22415817febc8d3229d1774f3b0dfda0fda8f46Nicolas Catania        assertIsValidEmergencyCallerInfo();
93e22415817febc8d3229d1774f3b0dfda0fda8f46Nicolas Catania
94e22415817febc8d3229d1774f3b0dfda0fda8f46Nicolas Catania        query = new QueryRunner("18001234567");
95e22415817febc8d3229d1774f3b0dfda0fda8f46Nicolas Catania        query.runAndCheckCompletion();
96e22415817febc8d3229d1774f3b0dfda0fda8f46Nicolas Catania        assertFalse(mInfo.isEmergencyNumber());
97e22415817febc8d3229d1774f3b0dfda0fda8f46Nicolas Catania    }
98e22415817febc8d3229d1774f3b0dfda0fda8f46Nicolas Catania
99e22415817febc8d3229d1774f3b0dfda0fda8f46Nicolas Catania    /**
100e22415817febc8d3229d1774f3b0dfda0fda8f46Nicolas Catania     * For emergency caller info, phoneNumber should be set to the
101e22415817febc8d3229d1774f3b0dfda0fda8f46Nicolas Catania     * string emergency_call_dialog_number_for_display and the
102e22415817febc8d3229d1774f3b0dfda0fda8f46Nicolas Catania     * photoResource should be set to the picture_emergency drawable.
103e22415817febc8d3229d1774f3b0dfda0fda8f46Nicolas Catania     */
104e22415817febc8d3229d1774f3b0dfda0fda8f46Nicolas Catania    @SmallTest
105e22415817febc8d3229d1774f3b0dfda0fda8f46Nicolas Catania    public void testEmergencyNumberAndPhotoAreSet() throws Exception {
106e22415817febc8d3229d1774f3b0dfda0fda8f46Nicolas Catania        mInfo = CallerInfo.getCallerInfo(mContext, "911");
107e22415817febc8d3229d1774f3b0dfda0fda8f46Nicolas Catania
108e22415817febc8d3229d1774f3b0dfda0fda8f46Nicolas Catania        assertIsValidEmergencyCallerInfo();
109e22415817febc8d3229d1774f3b0dfda0fda8f46Nicolas Catania    }
110e22415817febc8d3229d1774f3b0dfda0fda8f46Nicolas Catania
11160d45f0f0320801a16db2ad038453c098e98966cNicolas Catania    // TODO: Add more tests:
11260d45f0f0320801a16db2ad038453c098e98966cNicolas Catania    /**
11360d45f0f0320801a16db2ad038453c098e98966cNicolas Catania     * Check if the voice mail number cannot be retrieved that the
11460d45f0f0320801a16db2ad038453c098e98966cNicolas Catania     * original phone number is preserved.
11560d45f0f0320801a16db2ad038453c098e98966cNicolas Catania     */
11660d45f0f0320801a16db2ad038453c098e98966cNicolas Catania    /**
11760d45f0f0320801a16db2ad038453c098e98966cNicolas Catania     * Check the markAs* methods work.
11860d45f0f0320801a16db2ad038453c098e98966cNicolas Catania     */
11960d45f0f0320801a16db2ad038453c098e98966cNicolas Catania
12060d45f0f0320801a16db2ad038453c098e98966cNicolas Catania
121e22415817febc8d3229d1774f3b0dfda0fda8f46Nicolas Catania    //
122e22415817febc8d3229d1774f3b0dfda0fda8f46Nicolas Catania    // Helpers
123e22415817febc8d3229d1774f3b0dfda0fda8f46Nicolas Catania    //
124e22415817febc8d3229d1774f3b0dfda0fda8f46Nicolas Catania
125e22415817febc8d3229d1774f3b0dfda0fda8f46Nicolas Catania    // Partial implementation of MockResources.
126e22415817febc8d3229d1774f3b0dfda0fda8f46Nicolas Catania    public class MockResources extends android.test.mock.MockResources
127e22415817febc8d3229d1774f3b0dfda0fda8f46Nicolas Catania    {
128e22415817febc8d3229d1774f3b0dfda0fda8f46Nicolas Catania        @Override
129e22415817febc8d3229d1774f3b0dfda0fda8f46Nicolas Catania        public String getString(int resId) throws Resources.NotFoundException {
130e22415817febc8d3229d1774f3b0dfda0fda8f46Nicolas Catania            switch (resId) {
131e22415817febc8d3229d1774f3b0dfda0fda8f46Nicolas Catania                case com.android.internal.R.string.emergency_call_dialog_number_for_display:
132e22415817febc8d3229d1774f3b0dfda0fda8f46Nicolas Catania                    return kEmergencyNumber;
133e22415817febc8d3229d1774f3b0dfda0fda8f46Nicolas Catania                default:
134e22415817febc8d3229d1774f3b0dfda0fda8f46Nicolas Catania                    throw new UnsupportedOperationException("Missing handling for resid " + resId);
135e22415817febc8d3229d1774f3b0dfda0fda8f46Nicolas Catania            }
136e22415817febc8d3229d1774f3b0dfda0fda8f46Nicolas Catania        }
137e22415817febc8d3229d1774f3b0dfda0fda8f46Nicolas Catania    }
138e22415817febc8d3229d1774f3b0dfda0fda8f46Nicolas Catania
139e22415817febc8d3229d1774f3b0dfda0fda8f46Nicolas Catania    // Partial implementation of MockContext.
140e22415817febc8d3229d1774f3b0dfda0fda8f46Nicolas Catania    public class MockContext extends android.test.mock.MockContext {
141e22415817febc8d3229d1774f3b0dfda0fda8f46Nicolas Catania        private ContentResolver mResolver;
142e22415817febc8d3229d1774f3b0dfda0fda8f46Nicolas Catania        private Resources mResources;
143e22415817febc8d3229d1774f3b0dfda0fda8f46Nicolas Catania
144e22415817febc8d3229d1774f3b0dfda0fda8f46Nicolas Catania        public MockContext() {
145e22415817febc8d3229d1774f3b0dfda0fda8f46Nicolas Catania            mResolver = new android.test.mock.MockContentResolver();
146e22415817febc8d3229d1774f3b0dfda0fda8f46Nicolas Catania            mResources = new MockResources();
147e22415817febc8d3229d1774f3b0dfda0fda8f46Nicolas Catania        }
148e22415817febc8d3229d1774f3b0dfda0fda8f46Nicolas Catania
149e22415817febc8d3229d1774f3b0dfda0fda8f46Nicolas Catania        @Override
150e22415817febc8d3229d1774f3b0dfda0fda8f46Nicolas Catania        public ContentResolver getContentResolver() {
151e22415817febc8d3229d1774f3b0dfda0fda8f46Nicolas Catania            return mResolver;
152e22415817febc8d3229d1774f3b0dfda0fda8f46Nicolas Catania        }
153e22415817febc8d3229d1774f3b0dfda0fda8f46Nicolas Catania
154e22415817febc8d3229d1774f3b0dfda0fda8f46Nicolas Catania        @Override
155e22415817febc8d3229d1774f3b0dfda0fda8f46Nicolas Catania        public Resources getResources() {
156e22415817febc8d3229d1774f3b0dfda0fda8f46Nicolas Catania            return mResources;
157e22415817febc8d3229d1774f3b0dfda0fda8f46Nicolas Catania        }
158e22415817febc8d3229d1774f3b0dfda0fda8f46Nicolas Catania    }
159e22415817febc8d3229d1774f3b0dfda0fda8f46Nicolas Catania
160e22415817febc8d3229d1774f3b0dfda0fda8f46Nicolas Catania    /**
161e22415817febc8d3229d1774f3b0dfda0fda8f46Nicolas Catania     * Class to run a CallerInfoAsyncQuery in a separate thread, with
162e22415817febc8d3229d1774f3b0dfda0fda8f46Nicolas Catania     * its own Looper. We cannot use the main Looper because on the
163e22415817febc8d3229d1774f3b0dfda0fda8f46Nicolas Catania     * 1st quit the thread is maked dead, ie no further test can use
164e22415817febc8d3229d1774f3b0dfda0fda8f46Nicolas Catania     * it. Also there is not way to inject a Looper instance in the
165e22415817febc8d3229d1774f3b0dfda0fda8f46Nicolas Catania     * query, so we have to use a thread with its own looper.
166e22415817febc8d3229d1774f3b0dfda0fda8f46Nicolas Catania     */
167e22415817febc8d3229d1774f3b0dfda0fda8f46Nicolas Catania    private class QueryRunner extends Thread
168e22415817febc8d3229d1774f3b0dfda0fda8f46Nicolas Catania            implements CallerInfoAsyncQuery.OnQueryCompleteListener {
169e22415817febc8d3229d1774f3b0dfda0fda8f46Nicolas Catania        private Looper mLooper;
170e22415817febc8d3229d1774f3b0dfda0fda8f46Nicolas Catania        private String mNumber;
171e22415817febc8d3229d1774f3b0dfda0fda8f46Nicolas Catania        private boolean mAsyncCompleted;
172e22415817febc8d3229d1774f3b0dfda0fda8f46Nicolas Catania
173e22415817febc8d3229d1774f3b0dfda0fda8f46Nicolas Catania        public QueryRunner(String number) {
174e22415817febc8d3229d1774f3b0dfda0fda8f46Nicolas Catania            super();
175e22415817febc8d3229d1774f3b0dfda0fda8f46Nicolas Catania            mNumber = number;
176e22415817febc8d3229d1774f3b0dfda0fda8f46Nicolas Catania        }
177e22415817febc8d3229d1774f3b0dfda0fda8f46Nicolas Catania
178e22415817febc8d3229d1774f3b0dfda0fda8f46Nicolas Catania        // Run the query in the thread, wait for completion.
179e22415817febc8d3229d1774f3b0dfda0fda8f46Nicolas Catania        public void runAndCheckCompletion() throws InterruptedException {
180e22415817febc8d3229d1774f3b0dfda0fda8f46Nicolas Catania            start();
181e22415817febc8d3229d1774f3b0dfda0fda8f46Nicolas Catania            join();
182e22415817febc8d3229d1774f3b0dfda0fda8f46Nicolas Catania            assertTrue(mAsyncCompleted);
183e22415817febc8d3229d1774f3b0dfda0fda8f46Nicolas Catania        }
184e22415817febc8d3229d1774f3b0dfda0fda8f46Nicolas Catania
185e22415817febc8d3229d1774f3b0dfda0fda8f46Nicolas Catania        @Override
186e22415817febc8d3229d1774f3b0dfda0fda8f46Nicolas Catania        public void run() {
187e22415817febc8d3229d1774f3b0dfda0fda8f46Nicolas Catania            Looper.prepare();
188e22415817febc8d3229d1774f3b0dfda0fda8f46Nicolas Catania            mLooper = Looper.myLooper();
189e22415817febc8d3229d1774f3b0dfda0fda8f46Nicolas Catania            mAsyncCompleted = false;
190e22415817febc8d3229d1774f3b0dfda0fda8f46Nicolas Catania            // The query will pick the thread local looper we've just prepared.
191e22415817febc8d3229d1774f3b0dfda0fda8f46Nicolas Catania            CallerInfoAsyncQuery.startQuery(kToken, mContext, mNumber, this, null);
192e22415817febc8d3229d1774f3b0dfda0fda8f46Nicolas Catania            mLooper.loop();
193e22415817febc8d3229d1774f3b0dfda0fda8f46Nicolas Catania        }
194e22415817febc8d3229d1774f3b0dfda0fda8f46Nicolas Catania
195e22415817febc8d3229d1774f3b0dfda0fda8f46Nicolas Catania        // Quit the Looper on the 1st callback
196e22415817febc8d3229d1774f3b0dfda0fda8f46Nicolas Catania        // (EVENT_EMERGENCY_NUMBER). There is another message
197e22415817febc8d3229d1774f3b0dfda0fda8f46Nicolas Catania        // (EVENT_END_OF_QUEUE) that will never be delivered because
198e22415817febc8d3229d1774f3b0dfda0fda8f46Nicolas Catania        // the test has exited. The corresponding stack trace
199e22415817febc8d3229d1774f3b0dfda0fda8f46Nicolas Catania        // "Handler{xxxxx} sending message to a Handler on a dead
200e22415817febc8d3229d1774f3b0dfda0fda8f46Nicolas Catania        // thread" can be ignored.
201e22415817febc8d3229d1774f3b0dfda0fda8f46Nicolas Catania        public void onQueryComplete(int token, Object cookie, CallerInfo info) {
202e22415817febc8d3229d1774f3b0dfda0fda8f46Nicolas Catania            mAsyncCompleted = true;
203e22415817febc8d3229d1774f3b0dfda0fda8f46Nicolas Catania            mInfo = info;
204e22415817febc8d3229d1774f3b0dfda0fda8f46Nicolas Catania            mLooper.quit();
205e22415817febc8d3229d1774f3b0dfda0fda8f46Nicolas Catania        }
206e22415817febc8d3229d1774f3b0dfda0fda8f46Nicolas Catania    }
207e22415817febc8d3229d1774f3b0dfda0fda8f46Nicolas Catania
208e22415817febc8d3229d1774f3b0dfda0fda8f46Nicolas Catania    /**
209e22415817febc8d3229d1774f3b0dfda0fda8f46Nicolas Catania     * Fail if mInfo does not contain a valid emergency CallerInfo instance.
210e22415817febc8d3229d1774f3b0dfda0fda8f46Nicolas Catania     */
211e22415817febc8d3229d1774f3b0dfda0fda8f46Nicolas Catania    private void assertIsValidEmergencyCallerInfo() throws Exception {
212e22415817febc8d3229d1774f3b0dfda0fda8f46Nicolas Catania        assertTrue(mInfo.isEmergencyNumber());
213e22415817febc8d3229d1774f3b0dfda0fda8f46Nicolas Catania
214e22415817febc8d3229d1774f3b0dfda0fda8f46Nicolas Catania        // For emergency caller info, phoneNumber should be set to the
215e22415817febc8d3229d1774f3b0dfda0fda8f46Nicolas Catania        // string emergency_call_dialog_number_for_display and the
216e22415817febc8d3229d1774f3b0dfda0fda8f46Nicolas Catania        // photoResource should be set to the picture_emergency drawable.
217e22415817febc8d3229d1774f3b0dfda0fda8f46Nicolas Catania        assertEquals(kEmergencyNumber, mInfo.phoneNumber);
218e22415817febc8d3229d1774f3b0dfda0fda8f46Nicolas Catania        assertEquals(com.android.internal.R.drawable.picture_emergency, mInfo.photoResource);
219e22415817febc8d3229d1774f3b0dfda0fda8f46Nicolas Catania
220e22415817febc8d3229d1774f3b0dfda0fda8f46Nicolas Catania        // The name should be null
221e22415817febc8d3229d1774f3b0dfda0fda8f46Nicolas Catania        assertNull(mInfo.name);
222e22415817febc8d3229d1774f3b0dfda0fda8f46Nicolas Catania        assertEquals(0, mInfo.namePresentation);
223e22415817febc8d3229d1774f3b0dfda0fda8f46Nicolas Catania        assertNull(mInfo.cnapName);
224e22415817febc8d3229d1774f3b0dfda0fda8f46Nicolas Catania        assertEquals(0, mInfo.numberPresentation);
225e22415817febc8d3229d1774f3b0dfda0fda8f46Nicolas Catania
226e22415817febc8d3229d1774f3b0dfda0fda8f46Nicolas Catania        assertFalse(mInfo.contactExists);
227e22415817febc8d3229d1774f3b0dfda0fda8f46Nicolas Catania        assertEquals(0, mInfo.person_id);
228e22415817febc8d3229d1774f3b0dfda0fda8f46Nicolas Catania        assertFalse(mInfo.needUpdate);
229e22415817febc8d3229d1774f3b0dfda0fda8f46Nicolas Catania        assertNull(mInfo.contactRefUri);
230e22415817febc8d3229d1774f3b0dfda0fda8f46Nicolas Catania
231e22415817febc8d3229d1774f3b0dfda0fda8f46Nicolas Catania        assertNull(mInfo.phoneLabel);
232e22415817febc8d3229d1774f3b0dfda0fda8f46Nicolas Catania        assertEquals(0, mInfo.numberType);
233e22415817febc8d3229d1774f3b0dfda0fda8f46Nicolas Catania        assertNull(mInfo.numberLabel);
234e22415817febc8d3229d1774f3b0dfda0fda8f46Nicolas Catania
235e22415817febc8d3229d1774f3b0dfda0fda8f46Nicolas Catania        assertNull(mInfo.contactRingtoneUri);
236e22415817febc8d3229d1774f3b0dfda0fda8f46Nicolas Catania        assertFalse(mInfo.shouldSendToVoicemail);
237e22415817febc8d3229d1774f3b0dfda0fda8f46Nicolas Catania
238e22415817febc8d3229d1774f3b0dfda0fda8f46Nicolas Catania        assertNull(mInfo.cachedPhoto);
239e22415817febc8d3229d1774f3b0dfda0fda8f46Nicolas Catania        assertFalse(mInfo.isCachedPhotoCurrent);
240e22415817febc8d3229d1774f3b0dfda0fda8f46Nicolas Catania    }
241e22415817febc8d3229d1774f3b0dfda0fda8f46Nicolas Catania}
242