Merge "StreamItems CONTENT_DIRECTORY Insert Test"
diff --git a/tests/tests/provider/src/android/provider/cts/ContactsContract_StreamItemsTest.java b/tests/tests/provider/src/android/provider/cts/ContactsContract_StreamItemsTest.java
index b4a8fcb..c1068e9 100644
--- a/tests/tests/provider/src/android/provider/cts/ContactsContract_StreamItemsTest.java
+++ b/tests/tests/provider/src/android/provider/cts/ContactsContract_StreamItemsTest.java
@@ -20,6 +20,7 @@
import android.content.ContentProviderResult;
import android.content.ContentResolver;
import android.content.ContentUris;
+import android.content.ContentValues;
import android.database.Cursor;
import android.net.Uri;
import android.provider.ContactsContract;
@@ -32,6 +33,13 @@
public class ContactsContract_StreamItemsTest extends AndroidTestCase {
+ private static final String ACCOUNT_TYPE = "com.android.cts";
+ private static final String ACCOUNT_NAME = "ContactsContract_StreamItemsTest";
+
+ private static final String STREAM_TEXT = "Wrote a test for the StreamItems class";
+ private static final long STREAM_TIMESTAMP = 3007;
+ private static final String STREAM_COMMENTS = "1337 people reshared this";
+
private ContentResolver mResolver;
@Override
@@ -40,29 +48,58 @@
mResolver = mContext.getContentResolver();
}
+ public void testInsert_byContentDirectory() throws Exception {
+ // Create a contact to attach the stream item to it.
+ ContentValues values = new ContentValues();
+ values.put(RawContacts.ACCOUNT_TYPE, ACCOUNT_TYPE);
+ values.put(RawContacts.ACCOUNT_NAME, ACCOUNT_NAME);
+
+ Uri contactUri = mResolver.insert(RawContacts.CONTENT_URI, values);
+ long rawContactId = ContentUris.parseId(contactUri);
+ assertTrue(rawContactId != -1);
+
+ // Attach a stream item to the contact.
+ values.clear();
+ values.put(RawContacts.ACCOUNT_TYPE, ACCOUNT_TYPE);
+ values.put(RawContacts.ACCOUNT_NAME, ACCOUNT_NAME);
+ values.put(StreamItems.TEXT, STREAM_TEXT);
+ values.put(StreamItems.TIMESTAMP, STREAM_TIMESTAMP);
+ values.put(StreamItems.COMMENTS, STREAM_COMMENTS);
+
+ Uri contactStreamUri = Uri.withAppendedPath(
+ ContentUris.withAppendedId(RawContacts.CONTENT_URI, rawContactId),
+ RawContacts.StreamItems.CONTENT_DIRECTORY);
+ Uri streamItemUri = mResolver.insert(contactStreamUri, values);
+ long streamItemId = ContentUris.parseId(streamItemUri);
+ assertTrue(streamItemId != -1);
+
+ // Check that the provider returns the stream id in it's URI.
+ assertEquals(streamItemUri,
+ ContentUris.withAppendedId(RawContacts.CONTENT_URI, rawContactId).buildUpon()
+ .appendPath(RawContacts.StreamItems.CONTENT_DIRECTORY)
+ .appendPath(Long.toString(streamItemId))
+ .build());
+
+ // Check that the provider stored what we put into it.
+ assertStreamItem(streamItemUri);
+ }
+
public void testInsert_byContentUri() throws Exception {
- String accountType = "com.android.cts";
- String accountName = "ContactsContract_StreamItemsTest";
-
- String text = "Wrote a test for the StreamItems class";
- long timestamp = System.currentTimeMillis();
- String comments = "1337 people reshared this";
-
// Create a contact with one stream item in it.
ArrayList<ContentProviderOperation> ops = new ArrayList<ContentProviderOperation>();
ops.add(ContentProviderOperation.newInsert(RawContacts.CONTENT_URI)
- .withValue(RawContacts.ACCOUNT_TYPE, accountType)
- .withValue(RawContacts.ACCOUNT_NAME, accountName)
+ .withValue(RawContacts.ACCOUNT_TYPE, ACCOUNT_TYPE)
+ .withValue(RawContacts.ACCOUNT_NAME, ACCOUNT_NAME)
.build());
ops.add(ContentProviderOperation.newInsert(StreamItems.CONTENT_URI)
.withValueBackReference(Data.RAW_CONTACT_ID, 0)
- .withValue(RawContacts.ACCOUNT_TYPE, accountType)
- .withValue(RawContacts.ACCOUNT_NAME, accountName)
- .withValue(StreamItems.TEXT, text)
- .withValue(StreamItems.TIMESTAMP, timestamp)
- .withValue(StreamItems.COMMENTS, comments)
+ .withValue(RawContacts.ACCOUNT_TYPE, ACCOUNT_TYPE)
+ .withValue(RawContacts.ACCOUNT_NAME, ACCOUNT_NAME)
+ .withValue(StreamItems.TEXT, STREAM_TEXT)
+ .withValue(StreamItems.TIMESTAMP, STREAM_TIMESTAMP)
+ .withValue(StreamItems.COMMENTS, STREAM_COMMENTS)
.build());
ContentProviderResult[] results = mResolver.applyBatch(ContactsContract.AUTHORITY, ops);
@@ -78,12 +115,19 @@
ContentUris.withAppendedId(StreamItems.CONTENT_URI, streamItemId));
// Check that the provider stored what we put into it.
- Cursor cursor = mResolver.query(streamItemUri, null, null, null, null);
+ assertStreamItem(streamItemUri);
+ }
+
+ private void assertStreamItem(Uri itemUri) {
+ Cursor cursor = mResolver.query(itemUri, null, null, null, null);
try {
assertTrue(cursor.moveToFirst());
- assertEquals(text, cursor.getString(cursor.getColumnIndex(StreamItems.TEXT)));
- assertEquals(timestamp, cursor.getLong(cursor.getColumnIndex(StreamItems.TIMESTAMP)));
- assertEquals(comments, cursor.getString(cursor.getColumnIndex(StreamItems.COMMENTS)));
+ assertEquals(STREAM_TEXT, cursor.getString(
+ cursor.getColumnIndexOrThrow(StreamItems.TEXT)));
+ assertEquals(STREAM_TIMESTAMP, cursor.getLong(
+ cursor.getColumnIndexOrThrow(StreamItems.TIMESTAMP)));
+ assertEquals(STREAM_COMMENTS, cursor.getString(
+ cursor.getColumnIndexOrThrow(StreamItems.COMMENTS)));
} finally {
cursor.close();
}