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