diff options
Diffstat (limited to 'tests/src/com/android/photos/data/PhotoProviderTest.java')
-rw-r--r-- | tests/src/com/android/photos/data/PhotoProviderTest.java | 66 |
1 files changed, 59 insertions, 7 deletions
diff --git a/tests/src/com/android/photos/data/PhotoProviderTest.java b/tests/src/com/android/photos/data/PhotoProviderTest.java index 2e644a3d6..39abff441 100644 --- a/tests/src/com/android/photos/data/PhotoProviderTest.java +++ b/tests/src/com/android/photos/data/PhotoProviderTest.java @@ -15,13 +15,16 @@ */ package com.android.photos.data; +import android.content.ContentProviderOperation; import android.content.ContentResolver; import android.content.ContentUris; import android.content.ContentValues; +import android.content.OperationApplicationException; import android.database.Cursor; import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLiteOpenHelper; import android.net.Uri; +import android.os.RemoteException; import android.provider.BaseColumns; import android.test.ProviderTestCase2; @@ -29,12 +32,14 @@ import com.android.photos.data.PhotoProvider.Albums; import com.android.photos.data.PhotoProvider.Metadata; import com.android.photos.data.PhotoProvider.Photos; +import java.util.ArrayList; + public class PhotoProviderTest extends ProviderTestCase2<PhotoProvider> { @SuppressWarnings("unused") private static final String TAG = PhotoProviderTest.class.getSimpleName(); private static final String MIME_TYPE = "test/test"; - private static final String ALBUM_NAME = "My Album"; + private static final String ALBUM_TITLE = "My Album"; private static final long ALBUM_PARENT_ID = 100; private static final String META_KEY = "mykey"; private static final String META_VALUE = "myvalue"; @@ -69,7 +74,7 @@ public class PhotoProviderTest extends ProviderTestCase2<PhotoProvider> { SQLiteDatabase db = mDBHelper.getWritableDatabase(); db.beginTransaction(); try { - PhotoDatabaseUtils.insertAlbum(db, ALBUM_PARENT_ID, ALBUM_NAME, + PhotoDatabaseUtils.insertAlbum(db, ALBUM_PARENT_ID, ALBUM_TITLE, Albums.VISIBILITY_PRIVATE, 100L); mAlbumId = PhotoDatabaseUtils.queryAlbumIdFromParentId(db, ALBUM_PARENT_ID); PhotoDatabaseUtils.insertPhoto(db, 100, 100, System.currentTimeMillis(), mAlbumId, @@ -188,19 +193,32 @@ public class PhotoProviderTest extends ProviderTestCase2<PhotoProvider> { public void testInsert() { ContentValues values = new ContentValues(); - values.put(Albums.NAME, "don't add me"); + values.put(Albums.TITLE, "add me"); values.put(Albums.VISIBILITY, Albums.VISIBILITY_PRIVATE); - assertNull(mResolver.insert(Albums.CONTENT_URI, values)); + values.put(Albums.ACCOUNT_ID, 100L); + values.put(Albums.DATE_MODIFIED, 100L); + values.put(Albums.DATE_PUBLISHED, 100L); + values.put(Albums.LOCATION_STRING, "Home"); + values.put(Albums.TITLE, "hello world"); + values.putNull(Albums.PARENT_ID); + values.put(Albums.SUMMARY, "Nothing much to say about this"); + Uri insertedUri = mResolver.insert(Albums.CONTENT_URI, values); + assertNotNull(insertedUri); + Cursor cursor = mResolver.query(insertedUri, PhotoDatabaseUtils.PROJECTION_ALBUMS, null, + null, null); + assertNotNull(cursor); + assertEquals(1, cursor.getCount()); + cursor.close(); } public void testUpdate() { ContentValues values = new ContentValues(); // Normal update -- use an album. - values.put(Albums.NAME, "foo"); + values.put(Albums.TITLE, "foo"); Uri albumUri = ContentUris.withAppendedId(Albums.CONTENT_URI, mAlbumId); assertEquals(1, mResolver.update(albumUri, values, null, null)); String[] projection = { - Albums.NAME, + Albums.TITLE, }; Cursor cursor = mResolver.query(albumUri, projection, null, null, null); assertEquals(1, cursor.getCount()); @@ -210,7 +228,7 @@ public class PhotoProviderTest extends ProviderTestCase2<PhotoProvider> { // Update a row that doesn't exist. Uri noAlbumUri = ContentUris.withAppendedId(Albums.CONTENT_URI, mAlbumId + 1); - values.put(Albums.NAME, "bar"); + values.put(Albums.TITLE, "bar"); assertEquals(0, mResolver.update(noAlbumUri, values, null, null)); // Update a metadata value that exists. @@ -304,4 +322,38 @@ public class PhotoProviderTest extends ProviderTestCase2<PhotoProvider> { mResolver.update(Metadata.CONTENT_URI, values, null, null); assertTrue(mNotifications.isNotified(Metadata.CONTENT_URI)); } + + public void testBatchTransaction() throws RemoteException, OperationApplicationException { + ArrayList<ContentProviderOperation> operations = new ArrayList<ContentProviderOperation>(); + ContentProviderOperation.Builder insert = ContentProviderOperation + .newInsert(Photos.CONTENT_URI); + insert.withValue(Photos.WIDTH, 200L); + insert.withValue(Photos.HEIGHT, 100L); + insert.withValue(Photos.DATE_TAKEN, System.currentTimeMillis()); + insert.withValue(Photos.ALBUM_ID, 1000L); + insert.withValue(Photos.MIME_TYPE, "image/jpg"); + insert.withValue(Photos.ACCOUNT_ID, 1L); + operations.add(insert.build()); + ContentProviderOperation.Builder update = ContentProviderOperation.newUpdate(Photos.CONTENT_URI); + update.withValue(Photos.DATE_MODIFIED, System.currentTimeMillis()); + String[] whereArgs = { + "100", + }; + String where = Photos.WIDTH + " = ?"; + update.withSelection(where, whereArgs); + operations.add(update.build()); + ContentProviderOperation.Builder delete = ContentProviderOperation + .newDelete(Photos.CONTENT_URI); + delete.withSelection(where, whereArgs); + operations.add(delete.build()); + mResolver.applyBatch(PhotoProvider.AUTHORITY, operations); + assertEquals(3, mNotifications.notificationCount()); + SQLiteDatabase db = mDBHelper.getReadableDatabase(); + long id = PhotoDatabaseUtils.queryPhotoIdFromAlbumId(db, 1000L); + Uri uri = ContentUris.withAppendedId(Photos.CONTENT_URI, id); + assertTrue(mNotifications.isNotified(uri)); + assertTrue(mNotifications.isNotified(Metadata.CONTENT_URI)); + assertTrue(mNotifications.isNotified(Photos.CONTENT_URI)); + } + } |