Exercise Contacts#openContactPhotoInputStream
Bug 5810254
Change-Id: I0815aeed267c4e49a6440e2798470a5a807ae8ad
diff --git a/tests/tests/provider/src/android/provider/cts/ContactsContract_PhotoTest.java b/tests/tests/provider/src/android/provider/cts/ContactsContract_PhotoTest.java
index 68ed1b89..edab42f 100644
--- a/tests/tests/provider/src/android/provider/cts/ContactsContract_PhotoTest.java
+++ b/tests/tests/provider/src/android/provider/cts/ContactsContract_PhotoTest.java
@@ -22,6 +22,8 @@
import android.content.IContentProvider;
import android.provider.ContactsContract;
import android.provider.ContactsContract.CommonDataKinds.Photo;
+import android.provider.ContactsContract.Contacts;
+import android.provider.cts.ContactsContract_TestDataBuilder.TestContact;
import android.provider.cts.ContactsContract_TestDataBuilder.TestData;
import android.provider.cts.ContactsContract_TestDataBuilder.TestRawContact;
import android.test.InstrumentationTestCase;
@@ -35,12 +37,13 @@
private static final byte[] EMPTY_TEST_PHOTO_DATA = "".getBytes();
+ private ContentResolver mResolver;
+
@Override
protected void setUp() throws Exception {
super.setUp();
- ContentResolver contentResolver =
- getInstrumentation().getTargetContext().getContentResolver();
- IContentProvider provider = contentResolver.acquireProvider(ContactsContract.AUTHORITY);
+ mResolver = getInstrumentation().getTargetContext().getContentResolver();
+ IContentProvider provider = mResolver.acquireProvider(ContactsContract.AUTHORITY);
mBuilder = new ContactsContract_TestDataBuilder(provider);
}
@@ -51,7 +54,13 @@
}
public void testAddPhoto() throws Exception {
- TestRawContact rawContact = mBuilder.newRawContact().insert();
+ TestRawContact rawContact = mBuilder.newRawContact().insert().load();
+ TestContact contact = rawContact.getContact().load();
+
+ assertNull(Contacts.openContactPhotoInputStream(mResolver, contact.getUri()));
+ assertNull(Contacts.openContactPhotoInputStream(mResolver, contact.getUri(), true));
+ assertNull(Contacts.openContactPhotoInputStream(mResolver, contact.getUri(), false));
+
TestData photoData = rawContact.newDataRow(Photo.CONTENT_ITEM_TYPE)
.with(Photo.PHOTO, getTestPhotoData())
.insert();
@@ -59,14 +68,28 @@
photoData.load();
photoData.assertColumn(Photo.RAW_CONTACT_ID, rawContact.getId());
photoData.assertBlobColumnNotNull(Photo.PHOTO);
+
+ assertPhotoStream(Contacts.openContactPhotoInputStream(mResolver, contact.getUri()));
+ assertPhotoStream(Contacts.openContactPhotoInputStream(mResolver, contact.getUri(), true));
+ assertPhotoStream(Contacts.openContactPhotoInputStream(mResolver, contact.getUri(), false));
}
public void testAddEmptyPhoto() throws Exception {
- TestRawContact rawContact = mBuilder.newRawContact().insert();
+ TestRawContact rawContact = mBuilder.newRawContact().insert().load();
+ TestContact contact = rawContact.getContact().load();
+
+ assertNull(Contacts.openContactPhotoInputStream(mResolver, contact.getUri()));
+ assertNull(Contacts.openContactPhotoInputStream(mResolver, contact.getUri(), true));
+ assertNull(Contacts.openContactPhotoInputStream(mResolver, contact.getUri(), false));
+
TestData photoData = rawContact.newDataRow(Photo.CONTENT_ITEM_TYPE)
.with(Photo.PHOTO, EMPTY_TEST_PHOTO_DATA)
.insert();
assertNotNull(photoData.load());
+
+ assertNull(Contacts.openContactPhotoInputStream(mResolver, contact.getUri()));
+ assertNull(Contacts.openContactPhotoInputStream(mResolver, contact.getUri(), true));
+ assertNull(Contacts.openContactPhotoInputStream(mResolver, contact.getUri(), false));
}
private byte[] getTestPhotoData() {
@@ -89,5 +112,17 @@
}
return os.toByteArray();
}
+
+ private void assertPhotoStream(InputStream photoStream) throws IOException {
+ try {
+ assertNotNull(photoStream);
+ byte[] actualBytes = readInputStreamFully(photoStream);
+ assertTrue(actualBytes.length > 0);
+ } finally {
+ if (photoStream != null) {
+ photoStream.close();
+ }
+ }
+ }
}