From 339ba0f87d7c5b6017bfec8c017be54604547fe7 Mon Sep 17 00:00:00 2001 From: Patrick Baumann Date: Mon, 6 Apr 2020 12:46:41 -0700 Subject: [PATCH] Fixes AppsFilterTest This change fixes the AppsFilterTest#testWhoCanSee to properly validate / assert. The initial commit used a mistakenly created local method to "assert" instead of the intended hamcrest assert method. Oops. Test: atest AppsFilterTest Bug: 143534210 Change-Id: Ibd2de769d63a166f225e2bec75d27eaff2343ee9 --- .../com/android/server/pm/AppsFilterTest.java | 38 +++++++++++-------- 1 file changed, 22 insertions(+), 16 deletions(-) diff --git a/services/tests/servicestests/src/com/android/server/pm/AppsFilterTest.java b/services/tests/servicestests/src/com/android/server/pm/AppsFilterTest.java index 5109de5011575..b60e993637063 100644 --- a/services/tests/servicestests/src/com/android/server/pm/AppsFilterTest.java +++ b/services/tests/servicestests/src/com/android/server/pm/AppsFilterTest.java @@ -17,7 +17,9 @@ package com.android.server.pm; -import static org.hamcrest.Matchers.arrayContaining; +import static org.hamcrest.MatcherAssert.assertThat; +import static org.hamcrest.Matchers.contains; +import static org.hamcrest.Matchers.empty; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertTrue; import static org.mockito.ArgumentMatchers.any; @@ -48,7 +50,6 @@ import com.android.server.pm.parsing.pkg.AndroidPackage; import com.android.server.pm.parsing.pkg.PackageImpl; import com.android.server.pm.parsing.pkg.ParsedPackage; -import org.hamcrest.Matcher; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; @@ -58,7 +59,7 @@ import org.mockito.Mockito; import org.mockito.MockitoAnnotations; import java.security.cert.CertificateException; -import java.util.Arrays; +import java.util.ArrayList; import java.util.Collections; import java.util.List; import java.util.Map; @@ -650,32 +651,32 @@ public class AppsFilterTest { final int hasProviderAppId = Process.FIRST_APPLICATION_UID + 1; final int queriesProviderAppId = Process.FIRST_APPLICATION_UID + 2; PackageSetting system = simulateAddPackage(appsFilter, pkg("some.system.pkg"), systemAppId); - PackageSetting seesNothing = simulateAddPackage(appsFilter, pkg("some.system.pkg"), + PackageSetting seesNothing = simulateAddPackage(appsFilter, pkg("com.some.package"), seesNothingAppId); PackageSetting hasProvider = simulateAddPackage(appsFilter, - pkgWithProvider("com.some.package", "com.some.authority"), hasProviderAppId); + pkgWithProvider("com.some.other.package", "com.some.authority"), hasProviderAppId); PackageSetting queriesProvider = simulateAddPackage(appsFilter, - pkgQueriesProvider("com.some.other.package", "com.some.authority"), + pkgQueriesProvider("com.yet.some.other.package", "com.some.authority"), queriesProviderAppId); final int[] systemFilter = appsFilter.getVisibilityWhitelist(system, new int[]{0}, mExisting).get(0); - assertThat(Arrays.asList(systemFilter), arrayContaining(systemAppId)); + assertThat(toList(systemFilter), empty()); final int[] seesNothingFilter = appsFilter.getVisibilityWhitelist(seesNothing, new int[]{0}, mExisting).get(0); - assertThat(Arrays.asList(seesNothingFilter), - arrayContaining(systemAppId, seesNothingAppId)); + assertThat(toList(seesNothingFilter), + contains(seesNothingAppId)); final int[] hasProviderFilter = appsFilter.getVisibilityWhitelist(hasProvider, new int[]{0}, mExisting).get(0); - assertThat(Arrays.asList(hasProviderFilter), - arrayContaining(systemAppId, hasProviderAppId, queriesProviderAppId)); + assertThat(toList(hasProviderFilter), + contains(hasProviderAppId, queriesProviderAppId)); int[] queriesProviderFilter = appsFilter.getVisibilityWhitelist(queriesProvider, new int[]{0}, mExisting).get(0); - assertThat(Arrays.asList(queriesProviderFilter), - arrayContaining(systemAppId, queriesProviderAppId)); + assertThat(toList(queriesProviderFilter), + contains(queriesProviderAppId)); // provider read appsFilter.grantImplicitAccess(hasProviderAppId, queriesProviderAppId); @@ -683,11 +684,16 @@ public class AppsFilterTest { // ensure implicit access is included in the filter queriesProviderFilter = appsFilter.getVisibilityWhitelist(queriesProvider, new int[]{0}, mExisting).get(0); - assertThat(Arrays.asList(queriesProviderFilter), - arrayContaining(systemAppId, hasProviderAppId, queriesProviderAppId)); + assertThat(toList(queriesProviderFilter), + contains(hasProviderAppId, queriesProviderAppId)); } - private void assertThat(List asList, Matcher arrayContainingInAnyOrder) { + private List toList(int[] array) { + ArrayList ret = new ArrayList<>(array.length); + for (int i = 0; i < array.length; i++) { + ret.add(i, array[i]); + } + return ret; } private interface WithSettingBuilder {