summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChiao Cheng <chiaocheng@google.com>2013-07-22 13:27:33 -0700
committerAndroid Git Automerger <android-git-automerger@android.com>2013-07-22 13:27:33 -0700
commita4f9b895d200743c0915cdb8042f57fea7321918 (patch)
treedded2c5edf5d671119e9750602d50d0b1df1f896
parent86616f3c9ee462d6cf4f4e2666d929ef017257a2 (diff)
parent1f2fa1be3e1b1eb7d97fdc262ee530ecf9eec401 (diff)
downloadcts-jb-mr1-dev.tar.gz
am 1f2fa1be: am d76b5587: Cts test for to ensure data column is not updated.jb-mr1-dev
* commit '1f2fa1be3e1b1eb7d97fdc262ee530ecf9eec401': Cts test for to ensure data column is not updated.
-rw-r--r--tests/tests/provider/src/android/provider/cts/VoicemailContractTest.java61
1 files changed, 61 insertions, 0 deletions
diff --git a/tests/tests/provider/src/android/provider/cts/VoicemailContractTest.java b/tests/tests/provider/src/android/provider/cts/VoicemailContractTest.java
index ffb60f4c445..34a546e13af 100644
--- a/tests/tests/provider/src/android/provider/cts/VoicemailContractTest.java
+++ b/tests/tests/provider/src/android/provider/cts/VoicemailContractTest.java
@@ -21,6 +21,7 @@ import android.content.ContentResolver;
import android.content.ContentValues;
import android.database.Cursor;
import android.net.Uri;
+import android.os.RemoteException;
import android.provider.VoicemailContract;
import android.provider.VoicemailContract.Status;
import android.provider.VoicemailContract.Voicemails;
@@ -140,6 +141,66 @@ public class VoicemailContractTest extends InstrumentationTestCase {
cursor.close();
}
+ // Data column should be automatically generated during insert.
+ public void testInsert_doesNotUpdateDataColumn() throws Exception {
+
+ final String newFilePath = "my/new/file/path";
+ final ContentValues value = buildContentValuesForNewVoicemail();
+ value.put(Voicemails._DATA, newFilePath);
+ mVoicemailProvider.insert(mVoicemailContentUri, value);
+
+ assertDataNotEquals(newFilePath);
+ }
+
+ public void testDataColumnUpdate_throwsIllegalArgumentException() throws Exception {
+
+ final ContentValues value = buildContentValuesForNewVoicemail();
+ final Uri uri = mVoicemailProvider.insert(mVoicemailContentUri, value);
+
+ // Test: update
+ final String newFilePath = "another/file/path";
+
+ value.clear();
+ value.put(Voicemails._DATA, newFilePath);
+ try {
+ mVoicemailProvider.update(uri, value, null, null);
+ fail("IllegalArgumentException expected but not thrown.");
+ } catch (IllegalArgumentException e) {
+ // pass
+ }
+
+ assertDataNotEquals(newFilePath);
+ }
+
+ private void assertDataNotEquals(String newFilePath) throws RemoteException {
+ // Make sure data value is not actually updated.
+ final Cursor cursor = mVoicemailProvider.query(mVoicemailContentUri,
+ new String[]{Voicemails._DATA}, null, null, null);
+ cursor.moveToNext();
+ final String data = cursor.getString(0);
+ assertFalse(data.equals(newFilePath));
+ }
+
+ private ContentValues buildContentValuesForNewVoicemail() {
+ final String insertCallsNumber = "0123456789";
+ final long insertCallsDuration = 120;
+ final String insertSourceData = "internal_id";
+ final String insertMimeType = "audio/mp3";
+ final long insertDate = 1324478862000L;
+
+ ContentValues value = new ContentValues();
+ value.put(Voicemails.NUMBER, insertCallsNumber);
+ value.put(Voicemails.DATE, insertDate);
+ value.put(Voicemails.DURATION, insertCallsDuration);
+ // Source package is expected to be inserted by the provider, if not set.
+ value.put(Voicemails.SOURCE_DATA, insertSourceData);
+ value.put(Voicemails.MIME_TYPE, insertMimeType);
+ value.put(Voicemails.IS_READ, false);
+ value.put(Voicemails.HAS_CONTENT, true);
+
+ return value;
+ }
+
public void testStatusTable() throws Exception {
final String[] STATUS_PROJECTION = new String[] {
Status._ID, Status.SOURCE_PACKAGE, Status.CONFIGURATION_STATE,