summaryrefslogtreecommitdiff
path: root/adservices/tests/unittest/service-core/src/com/android/adservices/service/common/FledgeAuthorizationFilterTest.java
diff options
context:
space:
mode:
Diffstat (limited to 'adservices/tests/unittest/service-core/src/com/android/adservices/service/common/FledgeAuthorizationFilterTest.java')
-rw-r--r--adservices/tests/unittest/service-core/src/com/android/adservices/service/common/FledgeAuthorizationFilterTest.java111
1 files changed, 59 insertions, 52 deletions
diff --git a/adservices/tests/unittest/service-core/src/com/android/adservices/service/common/FledgeAuthorizationFilterTest.java b/adservices/tests/unittest/service-core/src/com/android/adservices/service/common/FledgeAuthorizationFilterTest.java
index 9f62f24c69..dd91a311eb 100644
--- a/adservices/tests/unittest/service-core/src/com/android/adservices/service/common/FledgeAuthorizationFilterTest.java
+++ b/adservices/tests/unittest/service-core/src/com/android/adservices/service/common/FledgeAuthorizationFilterTest.java
@@ -16,7 +16,12 @@
package com.android.adservices.service.common;
-import static com.android.adservices.stats.FledgeApiCallStatsMatcher.aCallStatForFledgeApiWithStatus;
+import static android.adservices.common.AdServicesStatusUtils.STATUS_CALLER_NOT_ALLOWED;
+import static android.adservices.common.AdServicesStatusUtils.STATUS_PERMISSION_NOT_REQUESTED;
+import static android.adservices.common.AdServicesStatusUtils.STATUS_UNAUTHORIZED;
+
+import static com.android.dx.mockito.inline.extended.ExtendedMockito.anyInt;
+import static com.android.dx.mockito.inline.extended.ExtendedMockito.eq;
import static com.android.dx.mockito.inline.extended.ExtendedMockito.verify;
import static com.android.dx.mockito.inline.extended.ExtendedMockito.verifyNoMoreInteractions;
import static com.android.dx.mockito.inline.extended.ExtendedMockito.verifyZeroInteractions;
@@ -33,6 +38,7 @@ import android.content.pm.PackageManager;
import androidx.test.core.app.ApplicationProvider;
import com.android.adservices.data.enrollment.EnrollmentDao;
+import com.android.adservices.service.PhFlags;
import com.android.adservices.service.enrollment.EnrollmentData;
import com.android.adservices.service.stats.AdServicesLogger;
import com.android.adservices.service.stats.AdServicesLoggerImpl;
@@ -44,7 +50,6 @@ import org.junit.Before;
import org.junit.Test;
import org.mockito.Mock;
import org.mockito.MockitoSession;
-import org.mockito.Spy;
public class FledgeAuthorizationFilterTest {
private static final Context CONTEXT = ApplicationProvider.getApplicationContext();
@@ -59,7 +64,9 @@ public class FledgeAuthorizationFilterTest {
@Mock private PackageManager mPackageManager;
@Mock private EnrollmentDao mEnrollmentDao;
- @Spy private final AdServicesLogger mAdServicesLoggerSpy = AdServicesLoggerImpl.getInstance();
+ @Mock private PhFlags mPhFlags;
+ private final AdServicesLogger mAdServicesLoggerMock =
+ ExtendedMockito.mock(AdServicesLoggerImpl.class);
public MockitoSession mMockitoSession;
@@ -71,11 +78,12 @@ public class FledgeAuthorizationFilterTest {
ExtendedMockito.mockitoSession()
.mockStatic(PermissionHelper.class)
.mockStatic(AppManifestConfigHelper.class)
+ .mockStatic(PhFlags.class)
.initMocks(this)
.startMocking();
mChecker =
new FledgeAuthorizationFilter(
- mPackageManager, mEnrollmentDao, mAdServicesLoggerSpy);
+ mPackageManager, mEnrollmentDao, mAdServicesLoggerMock);
}
@After
@@ -92,7 +100,7 @@ public class FledgeAuthorizationFilterTest {
verify(mPackageManager).getPackagesForUid(UID);
verifyNoMoreInteractions(mPackageManager);
- verifyZeroInteractions(mAdServicesLoggerSpy, mEnrollmentDao);
+ verifyZeroInteractions(mAdServicesLoggerMock, mEnrollmentDao);
}
@Test
@@ -101,7 +109,7 @@ public class FledgeAuthorizationFilterTest {
NullPointerException.class,
() -> mChecker.assertCallingPackageName(null, UID, API_NAME_LOGGING_ID));
- verifyZeroInteractions(mPackageManager, mAdServicesLoggerSpy, mEnrollmentDao);
+ verifyZeroInteractions(mPackageManager, mAdServicesLoggerMock, mEnrollmentDao);
}
@Test
@@ -119,14 +127,9 @@ public class FledgeAuthorizationFilterTest {
AdServicesStatusUtils.SECURITY_EXCEPTION_CALLER_NOT_ALLOWED_ON_BEHALF_ERROR_MESSAGE,
exception.getMessage());
verify(mPackageManager).getPackagesForUid(UID);
- verify(mAdServicesLoggerSpy)
- .logFledgeApiCallStats(
- API_NAME_LOGGING_ID, AdServicesStatusUtils.STATUS_UNAUTHORIZED);
- verify(mAdServicesLoggerSpy)
- .logApiCallStats(
- aCallStatForFledgeApiWithStatus(
- API_NAME_LOGGING_ID, AdServicesStatusUtils.STATUS_UNAUTHORIZED));
- verifyNoMoreInteractions(mPackageManager, mAdServicesLoggerSpy, mEnrollmentDao);
+ verify(mAdServicesLoggerMock)
+ .logFledgeApiCallStats(eq(API_NAME_LOGGING_ID), eq(STATUS_UNAUTHORIZED), anyInt());
+ verifyNoMoreInteractions(mPackageManager, mAdServicesLoggerMock, mEnrollmentDao);
}
@Test
@@ -144,14 +147,9 @@ public class FledgeAuthorizationFilterTest {
AdServicesStatusUtils.SECURITY_EXCEPTION_CALLER_NOT_ALLOWED_ON_BEHALF_ERROR_MESSAGE,
exception.getMessage());
verify(mPackageManager).getPackagesForUid(UID);
- verify(mAdServicesLoggerSpy)
- .logFledgeApiCallStats(
- API_NAME_LOGGING_ID, AdServicesStatusUtils.STATUS_UNAUTHORIZED);
- verify(mAdServicesLoggerSpy)
- .logApiCallStats(
- aCallStatForFledgeApiWithStatus(
- API_NAME_LOGGING_ID, AdServicesStatusUtils.STATUS_UNAUTHORIZED));
- verifyNoMoreInteractions(mPackageManager, mEnrollmentDao, mAdServicesLoggerSpy);
+ verify(mAdServicesLoggerMock)
+ .logFledgeApiCallStats(eq(API_NAME_LOGGING_ID), eq(STATUS_UNAUTHORIZED), anyInt());
+ verifyNoMoreInteractions(mPackageManager, mEnrollmentDao, mAdServicesLoggerMock);
}
@Test
@@ -160,7 +158,7 @@ public class FledgeAuthorizationFilterTest {
mChecker.assertAppDeclaredPermission(CONTEXT, API_NAME_LOGGING_ID);
- verifyZeroInteractions(mPackageManager, mEnrollmentDao, mAdServicesLoggerSpy);
+ verifyZeroInteractions(mPackageManager, mEnrollmentDao, mAdServicesLoggerMock);
}
@Test
@@ -175,15 +173,10 @@ public class FledgeAuthorizationFilterTest {
assertEquals(
AdServicesStatusUtils.SECURITY_EXCEPTION_PERMISSION_NOT_REQUESTED_ERROR_MESSAGE,
exception.getMessage());
- verify(mAdServicesLoggerSpy)
+ verify(mAdServicesLoggerMock)
.logFledgeApiCallStats(
- API_NAME_LOGGING_ID, AdServicesStatusUtils.STATUS_PERMISSION_NOT_REQUESTED);
- verify(mAdServicesLoggerSpy)
- .logApiCallStats(
- aCallStatForFledgeApiWithStatus(
- API_NAME_LOGGING_ID,
- AdServicesStatusUtils.STATUS_PERMISSION_NOT_REQUESTED));
- verifyNoMoreInteractions(mAdServicesLoggerSpy);
+ eq(API_NAME_LOGGING_ID), eq(STATUS_PERMISSION_NOT_REQUESTED), anyInt());
+ verifyNoMoreInteractions(mAdServicesLoggerMock);
verifyZeroInteractions(mPackageManager, mEnrollmentDao);
}
@@ -193,7 +186,7 @@ public class FledgeAuthorizationFilterTest {
NullPointerException.class,
() -> mChecker.assertAppDeclaredPermission(null, API_NAME_LOGGING_ID));
- verifyZeroInteractions(mPackageManager, mEnrollmentDao, mAdServicesLoggerSpy);
+ verifyZeroInteractions(mPackageManager, mEnrollmentDao, mAdServicesLoggerMock);
}
@Test
@@ -204,13 +197,15 @@ public class FledgeAuthorizationFilterTest {
when(AppManifestConfigHelper.isAllowedCustomAudiencesAccess(
CONTEXT, PACKAGE_NAME, ENROLLMENT_ID))
.thenReturn(true);
+ when(PhFlags.getInstance()).thenReturn(mPhFlags);
+ when(mPhFlags.isEnrollmentBlocklisted(ENROLLMENT_ID)).thenReturn(false);
mChecker.assertAdTechAllowed(
CONTEXT, PACKAGE_NAME, CommonFixture.VALID_BUYER_1, API_NAME_LOGGING_ID);
verify(mEnrollmentDao)
.getEnrollmentDataForFledgeByAdTechIdentifier(CommonFixture.VALID_BUYER_1);
verifyNoMoreInteractions(mEnrollmentDao);
- verifyZeroInteractions(mPackageManager, mAdServicesLoggerSpy);
+ verifyZeroInteractions(mPackageManager, mAdServicesLoggerMock);
}
@Test
@@ -234,15 +229,10 @@ public class FledgeAuthorizationFilterTest {
exception.getMessage());
verify(mEnrollmentDao)
.getEnrollmentDataForFledgeByAdTechIdentifier(CommonFixture.VALID_BUYER_1);
- verify(mAdServicesLoggerSpy)
+ verify(mAdServicesLoggerMock)
.logFledgeApiCallStats(
- API_NAME_LOGGING_ID, AdServicesStatusUtils.STATUS_CALLER_NOT_ALLOWED);
- verify(mAdServicesLoggerSpy)
- .logApiCallStats(
- aCallStatForFledgeApiWithStatus(
- API_NAME_LOGGING_ID,
- AdServicesStatusUtils.STATUS_CALLER_NOT_ALLOWED));
- verifyNoMoreInteractions(mEnrollmentDao, mAdServicesLoggerSpy);
+ eq(API_NAME_LOGGING_ID), eq(STATUS_CALLER_NOT_ALLOWED), anyInt());
+ verifyNoMoreInteractions(mEnrollmentDao, mAdServicesLoggerMock);
verifyZeroInteractions(mPackageManager);
}
@@ -270,19 +260,36 @@ public class FledgeAuthorizationFilterTest {
exception.getMessage());
verify(mEnrollmentDao)
.getEnrollmentDataForFledgeByAdTechIdentifier(CommonFixture.VALID_BUYER_1);
- verify(mAdServicesLoggerSpy)
+ verify(mAdServicesLoggerMock)
.logFledgeApiCallStats(
- API_NAME_LOGGING_ID, AdServicesStatusUtils.STATUS_CALLER_NOT_ALLOWED);
- verify(mAdServicesLoggerSpy)
- .logApiCallStats(
- aCallStatForFledgeApiWithStatus(
- API_NAME_LOGGING_ID,
- AdServicesStatusUtils.STATUS_CALLER_NOT_ALLOWED));
- verifyNoMoreInteractions(mEnrollmentDao, mAdServicesLoggerSpy);
+ eq(API_NAME_LOGGING_ID), eq(STATUS_CALLER_NOT_ALLOWED), anyInt());
+ verifyNoMoreInteractions(mEnrollmentDao, mAdServicesLoggerMock);
verifyZeroInteractions(mPackageManager);
}
@Test
+ public void testAdTechInBlocklist_throwSecurityException() {
+ when(mEnrollmentDao.getEnrollmentDataForFledgeByAdTechIdentifier(
+ CommonFixture.VALID_BUYER_1))
+ .thenReturn(ENROLLMENT_DATA);
+ when(AppManifestConfigHelper.isAllowedCustomAudiencesAccess(
+ CONTEXT, PACKAGE_NAME, ENROLLMENT_ID))
+ .thenReturn(true);
+ // Add ENROLLMENT_ID to blocklist.
+ when(PhFlags.getInstance()).thenReturn(mPhFlags);
+ when(mPhFlags.isEnrollmentBlocklisted(ENROLLMENT_ID)).thenReturn(true);
+
+ assertThrows(
+ SecurityException.class,
+ () ->
+ mChecker.assertAdTechAllowed(
+ CONTEXT,
+ PACKAGE_NAME,
+ CommonFixture.VALID_BUYER_1,
+ API_NAME_LOGGING_ID));
+ }
+
+ @Test
public void testAssertAdTechHasPermission_nullContext_throwNpe() {
assertThrows(
NullPointerException.class,
@@ -293,7 +300,7 @@ public class FledgeAuthorizationFilterTest {
CommonFixture.VALID_BUYER_1,
API_NAME_LOGGING_ID));
- verifyZeroInteractions(mPackageManager, mEnrollmentDao, mAdServicesLoggerSpy);
+ verifyZeroInteractions(mPackageManager, mEnrollmentDao, mAdServicesLoggerMock);
}
@Test
@@ -304,7 +311,7 @@ public class FledgeAuthorizationFilterTest {
mChecker.assertAdTechAllowed(
CONTEXT, null, CommonFixture.VALID_BUYER_1, API_NAME_LOGGING_ID));
- verifyZeroInteractions(mPackageManager, mEnrollmentDao, mAdServicesLoggerSpy);
+ verifyZeroInteractions(mPackageManager, mEnrollmentDao, mAdServicesLoggerMock);
}
@Test
@@ -315,6 +322,6 @@ public class FledgeAuthorizationFilterTest {
mChecker.assertAdTechAllowed(
CONTEXT, PACKAGE_NAME, null, API_NAME_LOGGING_ID));
- verifyZeroInteractions(mPackageManager, mEnrollmentDao, mAdServicesLoggerSpy);
+ verifyZeroInteractions(mPackageManager, mEnrollmentDao, mAdServicesLoggerMock);
}
}