diff options
author | android-build-team Robot <android-build-team-robot@google.com> | 2020-12-16 00:14:24 +0000 |
---|---|---|
committer | android-build-team Robot <android-build-team-robot@google.com> | 2020-12-16 00:14:24 +0000 |
commit | 558d9982b3411fbc0f93e795db101bb8ebbb922d (patch) | |
tree | 38b6f439fb90934da4b807df7f2adf321deaa17a | |
parent | a8206a73d10498f3924023fc3d9147333ea9b7d4 (diff) | |
parent | 41c9eccdc4dbbbc5a7cc052a5cf71365d4734b39 (diff) | |
download | cts-android11-qpr1-d-release.tar.gz |
Merge cherrypicks of [13232450, 13232453, 13232296, 13232297, 13232298, 13232944, 13232945, 13232946, 13232947, 13232948, 13232949, 13232950, 13232519, 13232351, 13232398, 13232352, 13232696, 13232697, 13232698] into rvc-qpr1-d-releaseandroid-11.0.0_r31android11-qpr1-d-release
Change-Id: I5823ef6b59f8dd92ac5351bb12cac96756811e08
-rw-r--r-- | libs/install/src/com/android/cts/install/lib/TestApp.java | 2 | ||||
-rw-r--r-- | tests/tests/contactsprovider/src/android/provider/cts/contacts/CallLogProviderTest.java | 75 |
2 files changed, 77 insertions, 0 deletions
diff --git a/libs/install/src/com/android/cts/install/lib/TestApp.java b/libs/install/src/com/android/cts/install/lib/TestApp.java index cb775173096..9bf34cfceb6 100644 --- a/libs/install/src/com/android/cts/install/lib/TestApp.java +++ b/libs/install/src/com/android/cts/install/lib/TestApp.java @@ -47,6 +47,8 @@ public class TestApp { "TestAppASplitV1.apk", "TestAppASplitV1_anydpi.apk"); public static final TestApp ASplit2 = new TestApp("ASplitV2", A, 2, /*isApex*/false, "TestAppASplitV2.apk", "TestAppASplitV2_anydpi.apk"); + public static final TestApp AIncompleteSplit = new TestApp("AIncompleteSplit", A, 1, + /*isApex*/false, "TestAppASplitV1_anydpi.apk"); public static final TestApp B1 = new TestApp("Bv1", B, 1, /*isApex*/false, "TestAppBv1.apk"); diff --git a/tests/tests/contactsprovider/src/android/provider/cts/contacts/CallLogProviderTest.java b/tests/tests/contactsprovider/src/android/provider/cts/contacts/CallLogProviderTest.java index 8f55aa0fe17..f91015ac78c 100644 --- a/tests/tests/contactsprovider/src/android/provider/cts/contacts/CallLogProviderTest.java +++ b/tests/tests/contactsprovider/src/android/provider/cts/contacts/CallLogProviderTest.java @@ -18,17 +18,25 @@ package android.provider.cts.contacts; import android.content.ContentProviderClient; import android.content.ContentResolver; +import android.content.ContentUris; import android.content.ContentValues; +import android.database.ContentObserver; import android.database.Cursor; +import android.net.Uri; import android.provider.CallLog; import android.provider.CallLog.Calls; import android.test.InstrumentationTestCase; +import java.util.concurrent.CountDownLatch; +import java.util.concurrent.TimeUnit; + public class CallLogProviderTest extends InstrumentationTestCase { private ContentResolver mContentResolver; private ContentProviderClient mProvider; private static final String TEST_NUMBER = "5551234"; + private static final int TIME_OUT_MILLIS = 5000; + @Override protected void setUp() throws Exception { super.setUp(); @@ -57,4 +65,71 @@ public class CallLogProviderTest extends InstrumentationTestCase { // expected/tolerated } } + + public void testUpdate() throws Exception { + // Add a single call just to make sure the call log has something inside + ContentValues values = new ContentValues(); + values.put(CallLog.Calls.NUMBER, TEST_NUMBER); + values.put(CallLog.Calls.TYPE, Calls.OUTGOING_TYPE); + values.put(CallLog.Calls.DATE, Long.valueOf(0 /*start time*/)); + values.put(CallLog.Calls.DURATION, Long.valueOf(5 /*call duration*/)); + Uri uri = mContentResolver.insert(CallLog.Calls.CONTENT_URI, values); + + CountDownLatch changeLatch = new CountDownLatch(1); + mContentResolver.registerContentObserver( + CallLog.Calls.CONTENT_URI, true, + new ContentObserver(null /* handler */) { + @Override + public void onChange(boolean selfChange, Uri uri) { + mContentResolver.unregisterContentObserver(this); + changeLatch.countDown(); + super.onChange(selfChange); + } + }); + + // Update it! + values.put(CallLog.Calls.DURATION, Long.valueOf(6 /*call duration*/)); + int numUpdated = mContentResolver.update(uri, values, null, null); + assertEquals(1, numUpdated); + try { + assertTrue(changeLatch.await(TIME_OUT_MILLIS, TimeUnit.MILLISECONDS)); + } catch (InterruptedException e) { + e.printStackTrace(); + fail("Expected update notification."); + } + } + + public void testDelete() throws Exception { + // Add a single call just to make sure the call log has something inside + ContentValues values = new ContentValues(); + values.put(CallLog.Calls.NUMBER, TEST_NUMBER); + values.put(CallLog.Calls.TYPE, Calls.OUTGOING_TYPE); + values.put(CallLog.Calls.DATE, Long.valueOf(0 /*start time*/)); + values.put(CallLog.Calls.DURATION, Long.valueOf(5 /*call duration*/)); + Uri uri = mContentResolver.insert(CallLog.Calls.CONTENT_URI, values); + + CountDownLatch changeLatch = new CountDownLatch(1); + mContentResolver.registerContentObserver( + CallLog.Calls.CONTENT_URI, true, + new ContentObserver(null /* handler */) { + @Override + public void onChange(boolean selfChange, Uri uri) { + mContentResolver.unregisterContentObserver(this); + changeLatch.countDown(); + super.onChange(selfChange); + } + }); + + // Delete it. + // Yuck, you can't just delete using the uri passed in; you need to build a where clause. + int count = mContentResolver.delete(Calls.CONTENT_URI, Calls._ID + "=" + + ContentUris.parseId(uri), null); + assertEquals(1, count); + try { + assertTrue(changeLatch.await(TIME_OUT_MILLIS, TimeUnit.MILLISECONDS)); + } catch (InterruptedException e) { + e.printStackTrace(); + fail("Expected update notification."); + } + } } |