diff options
author | Michal Karpinski <mkarpinski@google.com> | 2019-06-18 15:36:17 +0100 |
---|---|---|
committer | Michal Karpinski <mkarpinski@google.com> | 2019-06-18 15:36:19 +0100 |
commit | 45bab8a5200e0423aac5af49e307f3a68388c10c (patch) | |
tree | 95b23f9b217fe10c85e334cedfb7620bfd58898f /tests | |
parent | c2dc83fb4c45a8383270a90ad624af061074b8a8 (diff) | |
download | android_packages_providers_DownloadProvider-45bab8a5200e0423aac5af49e307f3a68388c10c.tar.gz android_packages_providers_DownloadProvider-45bab8a5200e0423aac5af49e307f3a68388c10c.tar.bz2 android_packages_providers_DownloadProvider-45bab8a5200e0423aac5af49e307f3a68388c10c.zip |
Whitelist DownloadManager.ACTION_NOTIFICATION_CLICKED broadcast
for background activity starts
When the DownloadManager download notification is clicked,
that broadcast is sent to an app, and the app should be able
to open activities from bg for its duration.
Bug: 135515407
Test: com.android.providers.downloads.PublicApiFunctionalTest#testNotificationClickedBroadcast
Test: manual
Change-Id: Ic1691f5bda890ceb2938ac76f4ca2a4c7e7a1160
Diffstat (limited to 'tests')
-rw-r--r-- | tests/src/com/android/providers/downloads/FakeSystemFacade.java | 10 | ||||
-rw-r--r-- | tests/src/com/android/providers/downloads/PublicApiFunctionalTest.java | 7 |
2 files changed, 17 insertions, 0 deletions
diff --git a/tests/src/com/android/providers/downloads/FakeSystemFacade.java b/tests/src/com/android/providers/downloads/FakeSystemFacade.java index f381bd8a..d11e0ac4 100644 --- a/tests/src/com/android/providers/downloads/FakeSystemFacade.java +++ b/tests/src/com/android/providers/downloads/FakeSystemFacade.java @@ -16,6 +16,7 @@ import android.net.Network; import android.net.NetworkCapabilities; import android.net.NetworkInfo; import android.net.NetworkInfo.DetailedState; +import android.os.Bundle; import org.mockito.invocation.InvocationOnMock; import org.mockito.stubbing.Answer; @@ -37,6 +38,7 @@ public class FakeSystemFacade implements SystemFacade { long mMaxBytesOverMobile = Long.MAX_VALUE; long mRecommendedMaxBytesOverMobile = Long.MAX_VALUE; List<Intent> mBroadcastsSent = new ArrayList<Intent>(); + Bundle mLastBroadcastOptions; boolean mCleartextTrafficPermitted = true; private boolean mReturnActualTime = false; private SSLContext mSSLContext = null; @@ -49,6 +51,7 @@ public class FakeSystemFacade implements SystemFacade { mMaxBytesOverMobile = Long.MAX_VALUE; mRecommendedMaxBytesOverMobile = Long.MAX_VALUE; mBroadcastsSent.clear(); + mLastBroadcastOptions = null; mReturnActualTime = false; try { mSSLContext = SSLContext.getDefault(); @@ -125,6 +128,13 @@ public class FakeSystemFacade implements SystemFacade { @Override public void sendBroadcast(Intent intent) { mBroadcastsSent.add(intent); + mLastBroadcastOptions = null; + } + + @Override + public void sendBroadcast(Intent intent, String receiverPermission, Bundle options) { + mBroadcastsSent.add(intent); + mLastBroadcastOptions = options; } @Override diff --git a/tests/src/com/android/providers/downloads/PublicApiFunctionalTest.java b/tests/src/com/android/providers/downloads/PublicApiFunctionalTest.java index ae0e7e52..0652f245 100644 --- a/tests/src/com/android/providers/downloads/PublicApiFunctionalTest.java +++ b/tests/src/com/android/providers/downloads/PublicApiFunctionalTest.java @@ -36,6 +36,7 @@ import static java.net.HttpURLConnection.HTTP_PARTIAL; import static java.net.HttpURLConnection.HTTP_PRECON_FAILED; import static java.net.HttpURLConnection.HTTP_UNAVAILABLE; +import android.app.BroadcastOptions; import android.app.DownloadManager; import android.app.Notification; import android.app.NotificationManager; @@ -43,6 +44,7 @@ import android.content.Intent; import android.database.Cursor; import android.net.ConnectivityManager; import android.net.Uri; +import android.os.Bundle; import android.os.Environment; import android.os.SystemClock; import android.provider.Downloads; @@ -555,6 +557,11 @@ public class PublicApiFunctionalTest extends AbstractPublicApiTest { Intent broadcast = mSystemFacade.mBroadcastsSent.get(0); assertEquals(DownloadManager.ACTION_NOTIFICATION_CLICKED, broadcast.getAction()); assertEquals(PACKAGE_NAME, broadcast.getPackage()); + + Bundle bOptions = mSystemFacade.mLastBroadcastOptions; + assertNotNull(bOptions); + BroadcastOptions brOptions = new BroadcastOptions(bOptions); + assertTrue(brOptions.allowsBackgroundActivityStarts()); } public void testNotificationCancelDownloadClicked() throws Exception { |