Skip multipackage collection tests if there isn't another package to
check
Test: atest locally
Fix: 206992991
Change-Id: Iff803a81e1d6922556e7511a990333fec13d0382
diff --git a/tests/tests/widget/src/android/widget/cts/RemoteViewsFixedCollectionAdapterTest.java b/tests/tests/widget/src/android/widget/cts/RemoteViewsFixedCollectionAdapterTest.java
index 4c45564..ec76300 100644
--- a/tests/tests/widget/src/android/widget/cts/RemoteViewsFixedCollectionAdapterTest.java
+++ b/tests/tests/widget/src/android/widget/cts/RemoteViewsFixedCollectionAdapterTest.java
@@ -70,6 +70,7 @@
import java.util.List;
import java.util.Map;
+import java.util.Optional;
import java.util.concurrent.CountDownLatch;
import java.util.concurrent.TimeUnit;
import java.util.function.Function;
@@ -179,11 +180,15 @@
@Test
public void testParcelingAndUnparceling_multiplePackages() {
+ Optional<String> otherPackageName = getAnotherPackageName();
+ if (!otherPackageName.isPresent()) return;
RemoteCollectionItems items = new RemoteCollectionItems.Builder()
.setHasStableIds(true)
.setViewTypeCount(10)
.addItem(3 /* id */, new RemoteViews(PACKAGE_NAME, R.layout.textview_singleline))
- .addItem(5 /* id */, new RemoteViews(getOtherPackage(), R.layout.textview_gravity))
+ .addItem(
+ 5 /* id */,
+ new RemoteViews(otherPackageName.get(), R.layout.textview_gravity))
.build();
RemoteViews parent = new RemoteViews(PACKAGE_NAME, R.layout.listview_layout);
@@ -200,7 +205,7 @@
assertNotNull(unparceled.getItemView(0).mApplication);
assertNotNull(unparceled.getItemView(1).mApplication);
assertEquals(PACKAGE_NAME, unparceled.getItemView(0).mApplication.packageName);
- assertEquals(getOtherPackage(), unparceled.getItemView(1).mApplication.packageName);
+ assertEquals(otherPackageName.get(), unparceled.getItemView(1).mApplication.packageName);
}
@Test
@@ -316,8 +321,10 @@
@Test
public void testSerializationSize_largeCollection_multiPackage() {
+ Optional<String> otherPackageName = getAnotherPackageName();
+ if (!otherPackageName.isPresent()) return;
RemoteCollectionItems items =
- createSampleMultiPackageCollectionItems(/* size= */ 100, getOtherPackage());
+ createSampleMultiPackageCollectionItems(/* size= */ 100, otherPackageName.get());
int dataSize = parcelAndRun(items, Parcel::dataSize);
@@ -356,15 +363,16 @@
@Test
public void testSerializationSize_largeCollectionInLandPortRemoteViews_multiPackage() {
- String otherPackage = getOtherPackage();
+ Optional<String> otherPackage = getAnotherPackageName();
+ if (!otherPackage.isPresent()) return;
RemoteViews landscape = new RemoteViews(PACKAGE_NAME, R.layout.listview_layout);
landscape.setRemoteAdapter(
R.id.listview_default,
- createSampleMultiPackageCollectionItems(/* size= */ 100, otherPackage));
+ createSampleMultiPackageCollectionItems(/* size= */ 100, otherPackage.get()));
RemoteViews portrait = new RemoteViews(PACKAGE_NAME, R.layout.listview_layout);
landscape.setRemoteAdapter(
R.id.listview_default,
- createSampleMultiPackageCollectionItems(/* size= */ 100, otherPackage));
+ createSampleMultiPackageCollectionItems(/* size= */ 100, otherPackage.get()));
RemoteViews joinedRemoteViews = new RemoteViews(landscape, portrait);
@@ -399,7 +407,8 @@
@Test
public void testSerializationSize_largeCollectionInSizedRemoteViews_multiPackage() {
- String otherPackage = getOtherPackage();
+ Optional<String> otherPackage = getAnotherPackageName();
+ if (!otherPackage.isPresent()) return;
List<SizeF> sizes =
Lists.newArrayList(
new SizeF(50, 50),
@@ -409,7 +418,8 @@
Map<SizeF, RemoteViews> sizeToRemoteViews =
sizes.stream().collect(Collectors.toMap(Function.identity(), ignored -> {
RemoteCollectionItems items =
- createSampleMultiPackageCollectionItems(/* size= */ 100, otherPackage);
+ createSampleMultiPackageCollectionItems(
+ /* size= */ 100, otherPackage.get());
RemoteViews views = new RemoteViews(PACKAGE_NAME, R.layout.listview_layout);
views.setRemoteAdapter(R.id.listview_default, items);
return views;
@@ -899,15 +909,12 @@
* Returns a different package on the device that can be used for testing multi-package
* collections.
*/
- private String getOtherPackage() {
+ private Optional<String> getAnotherPackageName() {
return mActivity.getPackageManager()
.getInstalledApplications(/* flags= */ 0)
.stream()
.filter(info -> !PACKAGE_NAME.equals(info.packageName))
.findFirst()
- .map(info -> info.packageName)
- .orElseThrow(
- () -> new AssertionError("Could not find any other applications to test "
- + "with"));
+ .map(info -> info.packageName);
}
}