diff options
author | Marcus Hagerott <mhagerott@google.com> | 2017-01-04 15:06:35 -0800 |
---|---|---|
committer | Marcus Hagerott <mhagerott@google.com> | 2017-01-04 15:16:53 -0800 |
commit | aa16ca2105bc6038edf35e3dce13977f8bc77874 (patch) | |
tree | 168269e6ab4f670f391122a4151098b76a0470bc /tests | |
parent | 614d81204436ca60e3b0a4c5cd0be92fb7e8213e (diff) | |
download | Contacts-aa16ca2105bc6038edf35e3dce13977f8bc77874.tar.gz |
Guard against null cursor when querying SIM
Test: ran GoogleContactsTests
Bug 33272160
Change-Id: I177e63d489b566d55aa2009af2728279a8aea297
Diffstat (limited to 'tests')
-rw-r--r-- | tests/src/com/android/contacts/database/SimContactDaoTests.java | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/tests/src/com/android/contacts/database/SimContactDaoTests.java b/tests/src/com/android/contacts/database/SimContactDaoTests.java index 8e6edef29..18a3f0915 100644 --- a/tests/src/com/android/contacts/database/SimContactDaoTests.java +++ b/tests/src/com/android/contacts/database/SimContactDaoTests.java @@ -26,14 +26,19 @@ import static org.hamcrest.Matchers.allOf; import static org.hamcrest.Matchers.equalTo; import static org.junit.Assert.assertThat; import static org.junit.Assert.assertTrue; +import static org.mockito.Matchers.any; +import static org.mockito.Matchers.anyString; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.when; +import android.content.ContentProvider; import android.content.ContentProviderOperation; import android.content.ContentResolver; import android.content.Context; import android.content.OperationApplicationException; import android.database.Cursor; +import android.net.Uri; +import android.os.CancellationSignal; import android.os.RemoteException; import android.provider.ContactsContract; import android.provider.ContactsContract.CommonDataKinds.Email; @@ -701,6 +706,27 @@ public class SimContactDaoTests { .loadContactsForSim(new SimCard("123", "carrier", "sim", null, "us")); assertTrue(result.isEmpty()); } + + @Test + public void returnsEmptyListForNullCursor() { + mContext = mock(MockContext.class); + final MockContentResolver mockResolver = new MockContentResolver(); + final ContentProvider mockProvider = mock(android.test.mock.MockContentProvider.class); + when(mockProvider.query(any(Uri.class), any(String[].class), anyString(), + any(String[].class), anyString())) + .thenReturn(null); + when(mockProvider.query(any(Uri.class), any(String[].class), anyString(), + any(String[].class), anyString(), any(CancellationSignal.class))) + .thenReturn(null); + + mockResolver.addProvider("icc", mockProvider); + when(mContext.getContentResolver()).thenReturn(mockResolver); + + final SimContactDao sut = SimContactDao.create(mContext); + final List<SimContact> result = sut + .loadContactsForSim(new SimCard("123", "carrier", "sim", null, "us")); + assertTrue(result.isEmpty()); + } } @LargeTest |