Fix SettingsHandlerTest
Bug: 191500850
Test: atest
Change-Id: If2f30b50bc2b866fa767e4615d7d1b17c68a7539
diff --git a/tests/tests/settings/src/android/settings/cts/SettingsHandlerTest.java b/tests/tests/settings/src/android/settings/cts/SettingsHandlerTest.java
index c60faa4..bc43731 100644
--- a/tests/tests/settings/src/android/settings/cts/SettingsHandlerTest.java
+++ b/tests/tests/settings/src/android/settings/cts/SettingsHandlerTest.java
@@ -49,7 +49,7 @@
Uri uri = DocumentsContract.buildRootUri(MEDIA_PROVIDER_AUTHORITY, "videos_root");
intent.setDataAndType(uri, DocumentsContract.Root.MIME_TYPE_ITEM);
- assertThat(hasDefaultHandlerForIntent(intent)).isTrue();
+ assertThat(hasAtMostOneDefaultHandlerForIntent(intent)).isTrue();
}
@Test
@@ -58,7 +58,7 @@
Uri uri = DocumentsContract.buildRootUri(MEDIA_PROVIDER_AUTHORITY, "images_root");
intent.setDataAndType(uri, DocumentsContract.Root.MIME_TYPE_ITEM);
- assertThat(hasDefaultHandlerForIntent(intent)).isTrue();
+ assertThat(hasAtMostOneDefaultHandlerForIntent(intent)).isTrue();
}
@Test
@@ -67,7 +67,7 @@
Uri uri = DocumentsContract.buildRootUri(MEDIA_PROVIDER_AUTHORITY, "audio_root");
intent.setDataAndType(uri, DocumentsContract.Root.MIME_TYPE_ITEM);
- assertThat(hasDefaultHandlerForIntent(intent)).isTrue();
+ assertThat(hasAtMostOneDefaultHandlerForIntent(intent)).isTrue();
}
@Test
@@ -76,18 +76,25 @@
Uri uri = DocumentsContract.buildRootUri(MEDIA_PROVIDER_AUTHORITY, "documents_root");
intent.setDataAndType(uri, DocumentsContract.Root.MIME_TYPE_ITEM);
- assertThat(hasDefaultHandlerForIntent(intent)).isTrue();
+ assertThat(hasAtMostOneDefaultHandlerForIntent(intent)).isTrue();
}
@Test
public void oneDefaultHandlerForManageStorage() throws Exception {
Intent intent = new Intent(StorageManager.ACTION_MANAGE_STORAGE);
- assertThat(hasDefaultHandlerForIntent(intent)).isTrue();
+ assertThat(hasAtMostOneDefaultHandlerForIntent(intent)).isTrue();
}
- private boolean hasDefaultHandlerForIntent(Intent intent) {
+ private boolean hasAtMostOneDefaultHandlerForIntent(Intent intent) {
ResolveInfo resolveInfo = mPackageManager.resolveActivity(intent, /* flags= */ 0);
+
+ if (resolveInfo == null) {
+ // Return true if no handlers can handle the intent, meaning that the specific platform
+ // does need to handle the intent.
+ return true;
+ }
+
String packageName = resolveInfo.activityInfo.packageName;
String activityName = resolveInfo.activityInfo.name;
// If there are more than one handlers with no preferences set, the intent will resolve