summaryrefslogtreecommitdiff
path: root/adservices/apk/unittest/src/com/android
diff options
context:
space:
mode:
Diffstat (limited to 'adservices/apk/unittest/src/com/android')
-rw-r--r--adservices/apk/unittest/src/com/android/adservices/adselection/AdSelectionServiceTest.java68
-rw-r--r--adservices/apk/unittest/src/com/android/adservices/customaudience/CustomAudienceServiceTest.java63
-rw-r--r--adservices/apk/unittest/src/com/android/adservices/measurement/MeasurementServiceTest.java38
-rw-r--r--adservices/apk/unittest/src/com/android/adservices/topics/TopicsServiceTest.java26
-rw-r--r--adservices/apk/unittest/src/com/android/adservices/ui/settings/viewmodels/MainViewModelTest.java9
-rw-r--r--adservices/apk/unittest/src/com/android/adservices/ui/settings/viewmodels/TopicsViewModelTest.java8
6 files changed, 158 insertions, 54 deletions
diff --git a/adservices/apk/unittest/src/com/android/adservices/adselection/AdSelectionServiceTest.java b/adservices/apk/unittest/src/com/android/adservices/adselection/AdSelectionServiceTest.java
index 53fecba2f1..2b9d9fcae9 100644
--- a/adservices/apk/unittest/src/com/android/adservices/adselection/AdSelectionServiceTest.java
+++ b/adservices/apk/unittest/src/com/android/adservices/adselection/AdSelectionServiceTest.java
@@ -16,24 +16,36 @@
package com.android.adservices.adselection;
+import static com.android.dx.mockito.inline.extended.ExtendedMockito.any;
+import static com.android.dx.mockito.inline.extended.ExtendedMockito.anyBoolean;
+import static com.android.dx.mockito.inline.extended.ExtendedMockito.doReturn;
+import static com.android.dx.mockito.inline.extended.ExtendedMockito.never;
+import static com.android.dx.mockito.inline.extended.ExtendedMockito.spyOn;
+import static com.android.dx.mockito.inline.extended.ExtendedMockito.verify;
+
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertNull;
-import static org.mockito.Mockito.any;
import android.content.Context;
import android.content.Intent;
+import android.content.pm.PackageManager;
import android.os.IBinder;
import androidx.test.core.app.ApplicationProvider;
+import com.android.adservices.download.MddJobService;
import com.android.adservices.service.Flags;
+import com.android.adservices.service.MaintenanceJobService;
import com.android.adservices.service.adselection.AdSelectionServiceImpl;
+import com.android.adservices.service.common.PackageChangedReceiver;
+import com.android.adservices.service.consent.AdServicesApiConsent;
+import com.android.adservices.service.consent.ConsentManager;
import com.android.dx.mockito.inline.extended.ExtendedMockito;
+import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.mockito.Mock;
-import org.mockito.MockitoAnnotations;
import org.mockito.MockitoSession;
/** Unit test for {@link AdSelectionService} */
@@ -43,10 +55,27 @@ public class AdSelectionServiceTest {
private final Flags mFlagsWithAdSelectionSwitchOff = new FlagsWithKillSwitchOff();
@Mock private AdSelectionServiceImpl mMockAdSelectionServiceImpl;
+ @Mock private ConsentManager mConsentManagerMock;
+ @Mock private PackageManager mPackageManagerMock;
+
+ private MockitoSession mStaticMockSession;
@Before
public void setup() {
- MockitoAnnotations.initMocks(this);
+ mStaticMockSession =
+ ExtendedMockito.mockitoSession()
+ .mockStatic(ConsentManager.class)
+ .spyStatic(AdSelectionServiceImpl.class)
+ .spyStatic(PackageChangedReceiver.class)
+ .mockStatic(MddJobService.class)
+ .mockStatic(MaintenanceJobService.class)
+ .initMocks(this)
+ .startMocking();
+ }
+
+ @After
+ public void teardown() {
+ mStaticMockSession.finishMocking();
}
@Test
@@ -56,25 +85,36 @@ public class AdSelectionServiceTest {
adSelectionService.onCreate();
IBinder binder = adSelectionService.onBind(getIntentForAdSelectionService());
assertNull(binder);
+
+ verify(mConsentManagerMock, never()).getConsent();
+ verify(() -> MddJobService.scheduleIfNeeded(any(), anyBoolean()), never());
}
@Test
public void testBindableAdSelectionServiceKillSwitchOff() {
- MockitoSession session =
- ExtendedMockito.mockitoSession()
- .spyStatic(AdSelectionServiceImpl.class)
- .startMocking();
-
- ExtendedMockito.doReturn(mMockAdSelectionServiceImpl)
+ doReturn(mMockAdSelectionServiceImpl)
.when(() -> AdSelectionServiceImpl.create(any(Context.class)));
-
- AdSelectionService adSelectionService =
+ doReturn(mConsentManagerMock).when(() -> ConsentManager.getInstance(any(Context.class)));
+ doReturn(AdServicesApiConsent.GIVEN).when(mConsentManagerMock).getConsent();
+ ExtendedMockito.doReturn(true)
+ .when(() -> PackageChangedReceiver.enableReceiver(any(Context.class)));
+ doReturn(true).when(() -> MddJobService.scheduleIfNeeded(any(), anyBoolean()));
+ doReturn(true).when(() -> MaintenanceJobService.scheduleIfNeeded(any(), anyBoolean()));
+
+ AdSelectionService adSelectionServiceSpy =
new AdSelectionService(mFlagsWithAdSelectionSwitchOff);
- adSelectionService.onCreate();
- IBinder binder = adSelectionService.onBind(getIntentForAdSelectionService());
+
+ spyOn(adSelectionServiceSpy);
+ doReturn(mPackageManagerMock).when(adSelectionServiceSpy).getPackageManager();
+
+ adSelectionServiceSpy.onCreate();
+ IBinder binder = adSelectionServiceSpy.onBind(getIntentForAdSelectionService());
assertNotNull(binder);
- session.finishMocking();
+ verify(mConsentManagerMock).getConsent();
+ verify(() -> PackageChangedReceiver.enableReceiver(any(Context.class)));
+ verify(() -> MddJobService.scheduleIfNeeded(any(), anyBoolean()));
+ verify(() -> MaintenanceJobService.scheduleIfNeeded(any(), anyBoolean()));
}
private Intent getIntentForAdSelectionService() {
diff --git a/adservices/apk/unittest/src/com/android/adservices/customaudience/CustomAudienceServiceTest.java b/adservices/apk/unittest/src/com/android/adservices/customaudience/CustomAudienceServiceTest.java
index 4f8ced89f0..10cc1fa6ac 100644
--- a/adservices/apk/unittest/src/com/android/adservices/customaudience/CustomAudienceServiceTest.java
+++ b/adservices/apk/unittest/src/com/android/adservices/customaudience/CustomAudienceServiceTest.java
@@ -16,24 +16,35 @@
package com.android.adservices.customaudience;
+import static com.android.dx.mockito.inline.extended.ExtendedMockito.any;
+import static com.android.dx.mockito.inline.extended.ExtendedMockito.anyBoolean;
+import static com.android.dx.mockito.inline.extended.ExtendedMockito.doReturn;
+import static com.android.dx.mockito.inline.extended.ExtendedMockito.never;
+import static com.android.dx.mockito.inline.extended.ExtendedMockito.spyOn;
+import static com.android.dx.mockito.inline.extended.ExtendedMockito.verify;
+
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertNull;
-import static org.mockito.Mockito.any;
import android.content.Context;
import android.content.Intent;
+import android.content.pm.PackageManager;
import android.os.IBinder;
import androidx.test.core.app.ApplicationProvider;
+import com.android.adservices.download.MddJobService;
import com.android.adservices.service.Flags;
+import com.android.adservices.service.common.PackageChangedReceiver;
+import com.android.adservices.service.consent.AdServicesApiConsent;
+import com.android.adservices.service.consent.ConsentManager;
import com.android.adservices.service.customaudience.CustomAudienceServiceImpl;
import com.android.dx.mockito.inline.extended.ExtendedMockito;
+import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.mockito.Mock;
-import org.mockito.MockitoAnnotations;
import org.mockito.MockitoSession;
public class CustomAudienceServiceTest {
@@ -42,10 +53,26 @@ public class CustomAudienceServiceTest {
private final Flags mFlagsWithCustomAudienceSwitchOff = new FlagsWithKillSwitchOff();
@Mock private CustomAudienceServiceImpl mMockCustomAudienceServiceImpl;
+ @Mock private ConsentManager mConsentManagerMock;
+ @Mock private PackageManager mPackageManagerMock;
+
+ private MockitoSession mStaticMockSession;
@Before
public void setup() {
- MockitoAnnotations.initMocks(this);
+ mStaticMockSession =
+ ExtendedMockito.mockitoSession()
+ .mockStatic(ConsentManager.class)
+ .spyStatic(CustomAudienceServiceImpl.class)
+ .spyStatic(PackageChangedReceiver.class)
+ .mockStatic(MddJobService.class)
+ .initMocks(this)
+ .startMocking();
+ }
+
+ @After
+ public void teardown() {
+ mStaticMockSession.finishMocking();
}
@Test
@@ -55,26 +82,34 @@ public class CustomAudienceServiceTest {
customAudienceService.onCreate();
IBinder binder = customAudienceService.onBind(getIntentForCustomAudienceService());
assertNull(binder);
+
+ verify(mConsentManagerMock, never()).getConsent();
+ verify(() -> MddJobService.scheduleIfNeeded(any(), anyBoolean()), never());
}
@Test
public void testBindableCustomAudienceServiceKillSwitchOff() {
-
- MockitoSession session =
- ExtendedMockito.mockitoSession()
- .spyStatic(CustomAudienceServiceImpl.class)
- .startMocking();
-
- ExtendedMockito.doReturn(mMockCustomAudienceServiceImpl)
+ doReturn(mMockCustomAudienceServiceImpl)
.when(() -> CustomAudienceServiceImpl.create(any(Context.class)));
+ doReturn(mConsentManagerMock).when(() -> ConsentManager.getInstance(any(Context.class)));
+ doReturn(AdServicesApiConsent.GIVEN).when(mConsentManagerMock).getConsent();
+ ExtendedMockito.doReturn(true)
+ .when(() -> PackageChangedReceiver.enableReceiver(any(Context.class)));
+ doReturn(true).when(() -> MddJobService.scheduleIfNeeded(any(), anyBoolean()));
- CustomAudienceService customAudienceService =
+ CustomAudienceService customAudienceServiceSpy =
new CustomAudienceService(mFlagsWithCustomAudienceSwitchOff);
- customAudienceService.onCreate();
- IBinder binder = customAudienceService.onBind(getIntentForCustomAudienceService());
+
+ spyOn(customAudienceServiceSpy);
+ doReturn(mPackageManagerMock).when(customAudienceServiceSpy).getPackageManager();
+
+ customAudienceServiceSpy.onCreate();
+ IBinder binder = customAudienceServiceSpy.onBind(getIntentForCustomAudienceService());
assertNotNull(binder);
- session.finishMocking();
+ verify(mConsentManagerMock).getConsent();
+ verify(() -> PackageChangedReceiver.enableReceiver(any(Context.class)));
+ verify(() -> MddJobService.scheduleIfNeeded(any(), anyBoolean()));
}
private Intent getIntentForCustomAudienceService() {
diff --git a/adservices/apk/unittest/src/com/android/adservices/measurement/MeasurementServiceTest.java b/adservices/apk/unittest/src/com/android/adservices/measurement/MeasurementServiceTest.java
index 865574e6aa..67a6e4e057 100644
--- a/adservices/apk/unittest/src/com/android/adservices/measurement/MeasurementServiceTest.java
+++ b/adservices/apk/unittest/src/com/android/adservices/measurement/MeasurementServiceTest.java
@@ -27,6 +27,7 @@ import static org.mockito.Mockito.spy;
import static org.mockito.Mockito.times;
import static org.mockito.Mockito.verify;
+import android.content.Context;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.os.IBinder;
@@ -34,13 +35,17 @@ import android.os.IBinder;
import androidx.test.core.app.ApplicationProvider;
import com.android.adservices.data.enrollment.EnrollmentDao;
+import com.android.adservices.download.MddJobService;
import com.android.adservices.service.Flags;
import com.android.adservices.service.FlagsFactory;
import com.android.adservices.service.common.AppImportanceFilter;
+import com.android.adservices.service.common.PackageChangedReceiver;
import com.android.adservices.service.consent.AdServicesApiConsent;
import com.android.adservices.service.consent.ConsentManager;
import com.android.adservices.service.enrollment.EnrollmentData;
+import com.android.adservices.service.measurement.AsyncRegistrationQueueJobService;
import com.android.adservices.service.measurement.DeleteExpiredJobService;
+import com.android.adservices.service.measurement.DeleteUninstalledJobService;
import com.android.adservices.service.measurement.MeasurementImpl;
import com.android.adservices.service.measurement.attribution.AttributionJobService;
import com.android.adservices.service.measurement.reporting.AggregateFallbackReportingJobService;
@@ -97,7 +102,9 @@ public class MeasurementServiceTest {
// Verification
assertNotNull(binder);
- verify(mMockConsentManager, times(1)).getConsent(any());
+ verify(mMockConsentManager, times(1)).getConsent();
+ ExtendedMockito.verify(
+ () -> PackageChangedReceiver.enableReceiver(any(Context.class)));
assertJobScheduled(/* timesCalled */ 1);
});
}
@@ -114,7 +121,7 @@ public class MeasurementServiceTest {
// Verification
assertNotNull(binder);
- verify(mMockConsentManager, times(1)).getConsent(any());
+ verify(mMockConsentManager, times(1)).getConsent();
assertJobScheduled(/* timesCalled */ 0);
});
}
@@ -131,7 +138,7 @@ public class MeasurementServiceTest {
// Verification
assertNull(binder);
- verify(mMockConsentManager, never()).getConsent(any());
+ verify(mMockConsentManager, never()).getConsent();
assertJobScheduled(/* timesCalled */ 0);
});
}
@@ -160,10 +167,14 @@ public class MeasurementServiceTest {
.spyStatic(ConsentManager.class)
.spyStatic(EnrollmentDao.class)
.spyStatic(EventReportingJobService.class)
+ .spyStatic(PackageChangedReceiver.class)
.spyStatic(EventFallbackReportingJobService.class)
.spyStatic(DeleteExpiredJobService.class)
+ .spyStatic(DeleteUninstalledJobService.class)
+ .spyStatic(MddJobService.class)
.spyStatic(FlagsFactory.class)
.spyStatic(MeasurementImpl.class)
+ .spyStatic(AsyncRegistrationQueueJobService.class)
.strictness(Strictness.LENIENT)
.startMocking();
try {
@@ -176,7 +187,7 @@ public class MeasurementServiceTest {
final AdServicesApiConsent mockConsent = mock(AdServicesApiConsent.class);
doReturn(consentStatus).when(mockConsent).isGiven();
- doReturn(mockConsent).when(mMockConsentManager).getConsent(any());
+ doReturn(mockConsent).when(mMockConsentManager).getConsent();
ExtendedMockito.doReturn(mMockEnrollmentDao)
.when(() -> EnrollmentDao.getInstance(any()));
@@ -190,6 +201,8 @@ public class MeasurementServiceTest {
ExtendedMockito.doReturn(mMockAppImportanceFilter)
.when(() -> AppImportanceFilter.create(any(), anyInt(), any()));
+ ExtendedMockito.doReturn(true)
+ .when(() -> PackageChangedReceiver.enableReceiver(any(Context.class)));
ExtendedMockito.doNothing()
.when(() -> AggregateReportingJobService.scheduleIfNeeded(any(), anyBoolean()));
ExtendedMockito.doNothing()
@@ -209,6 +222,15 @@ public class MeasurementServiceTest {
any(), anyBoolean()));
ExtendedMockito.doNothing()
.when(() -> DeleteExpiredJobService.scheduleIfNeeded(any(), anyBoolean()));
+ ExtendedMockito.doNothing()
+ .when(() -> DeleteUninstalledJobService.scheduleIfNeeded(any(), anyBoolean()));
+ ExtendedMockito.doReturn(true)
+ .when(() -> MddJobService.scheduleIfNeeded(any(), anyBoolean()));
+ ExtendedMockito.doNothing()
+ .when(
+ () ->
+ AsyncRegistrationQueueJobService.scheduleIfNeeded(
+ any(), anyBoolean()));
// Execute
execute.run();
@@ -236,5 +258,13 @@ public class MeasurementServiceTest {
ExtendedMockito.verify(
() -> DeleteExpiredJobService.scheduleIfNeeded(any(), anyBoolean()),
times(timesCalled));
+ ExtendedMockito.verify(
+ () -> DeleteUninstalledJobService.scheduleIfNeeded(any(), anyBoolean()),
+ times(timesCalled));
+ ExtendedMockito.verify(
+ () -> MddJobService.scheduleIfNeeded(any(), anyBoolean()), times(timesCalled));
+ ExtendedMockito.verify(
+ () -> AsyncRegistrationQueueJobService.scheduleIfNeeded(any(), anyBoolean()),
+ times(timesCalled));
}
}
diff --git a/adservices/apk/unittest/src/com/android/adservices/topics/TopicsServiceTest.java b/adservices/apk/unittest/src/com/android/adservices/topics/TopicsServiceTest.java
index 20574aac4b..b43d1c98d3 100644
--- a/adservices/apk/unittest/src/com/android/adservices/topics/TopicsServiceTest.java
+++ b/adservices/apk/unittest/src/com/android/adservices/topics/TopicsServiceTest.java
@@ -26,7 +26,6 @@ import static org.mockito.Mockito.spy;
import android.content.Context;
import android.content.Intent;
-import android.content.pm.PackageManager;
import android.os.IBinder;
import androidx.test.core.app.ApplicationProvider;
@@ -37,6 +36,7 @@ import com.android.adservices.service.Flags;
import com.android.adservices.service.FlagsFactory;
import com.android.adservices.service.MaintenanceJobService;
import com.android.adservices.service.common.AppImportanceFilter;
+import com.android.adservices.service.common.PackageChangedReceiver;
import com.android.adservices.service.consent.AdServicesApiConsent;
import com.android.adservices.service.consent.ConsentManager;
import com.android.adservices.service.stats.AdServicesLoggerImpl;
@@ -63,7 +63,6 @@ public class TopicsServiceTest {
@Mock AppImportanceFilter mMockAppImportanceFilter;
@Mock Flags mMockFlags;
@Mock AdServicesApiConsent mMockAdServicesApiConsent;
- @Mock PackageManager mMockPackageManager;
@Before
public void setup() {
@@ -84,6 +83,7 @@ public class TopicsServiceTest {
.spyStatic(MddJobService.class)
.spyStatic(EnrollmentDao.class)
.spyStatic(AppImportanceFilter.class)
+ .spyStatic(PackageChangedReceiver.class)
.startMocking();
try {
@@ -97,21 +97,13 @@ public class TopicsServiceTest {
.when(() -> TopicsWorker.getInstance(any(Context.class)));
TopicsService spyTopicsService = spy(new TopicsService());
- doReturn(mMockPackageManager).when(spyTopicsService).getPackageManager();
ExtendedMockito.doReturn(mMockConsentManager)
.when(() -> ConsentManager.getInstance(any(Context.class)));
doReturn(true).when(mMockAdServicesApiConsent).isGiven();
- doReturn(mMockAdServicesApiConsent)
- .when(mMockConsentManager)
- .getConsent(mMockPackageManager);
+ doReturn(mMockAdServicesApiConsent).when(mMockConsentManager).getConsent();
- ExtendedMockito.doReturn(mMockEnrollmentDao)
- .when(() -> EnrollmentDao.getInstance(any(Context.class)));
- ExtendedMockito.doReturn(mMockAppImportanceFilter)
- .when(
- () ->
- AppImportanceFilter.create(
- any(Context.class), anyInt(), any(Supplier.class)));
+ ExtendedMockito.doReturn(true)
+ .when(() -> PackageChangedReceiver.enableReceiver(any(Context.class)));
ExtendedMockito.doReturn(true)
.when(
() ->
@@ -122,6 +114,14 @@ public class TopicsServiceTest {
ExtendedMockito.doReturn(true)
.when(() -> MddJobService.scheduleIfNeeded(any(Context.class), eq(false)));
+ ExtendedMockito.doReturn(mMockEnrollmentDao)
+ .when(() -> EnrollmentDao.getInstance(any(Context.class)));
+ ExtendedMockito.doReturn(mMockAppImportanceFilter)
+ .when(
+ () ->
+ AppImportanceFilter.create(
+ any(Context.class), anyInt(), any(Supplier.class)));
+
spyTopicsService.onCreate();
IBinder binder = spyTopicsService.onBind(getIntentForTopicsService());
assertNotNull(binder);
diff --git a/adservices/apk/unittest/src/com/android/adservices/ui/settings/viewmodels/MainViewModelTest.java b/adservices/apk/unittest/src/com/android/adservices/ui/settings/viewmodels/MainViewModelTest.java
index 3bf33879e3..dd65208ca3 100644
--- a/adservices/apk/unittest/src/com/android/adservices/ui/settings/viewmodels/MainViewModelTest.java
+++ b/adservices/apk/unittest/src/com/android/adservices/ui/settings/viewmodels/MainViewModelTest.java
@@ -25,7 +25,6 @@ import static org.mockito.Mockito.times;
import static org.mockito.Mockito.verify;
import android.content.Context;
-import android.content.pm.PackageManager;
import androidx.test.core.app.ApplicationProvider;
@@ -48,9 +47,7 @@ public class MainViewModelTest {
@Before
public void setup() {
MockitoAnnotations.initMocks(this);
- doReturn(AdServicesApiConsent.GIVEN)
- .when(mConsentManager)
- .getConsent(any(PackageManager.class));
+ doReturn(AdServicesApiConsent.GIVEN).when(mConsentManager).getConsent();
mMainViewModel =
new MainViewModel(ApplicationProvider.getApplicationContext(), mConsentManager);
}
@@ -64,9 +61,7 @@ public class MainViewModelTest {
/** Test if getConsent returns false if the {@link ConsentManager} always returns false. */
@Test
public void testGetConsentReturnsFalse() {
- doReturn(AdServicesApiConsent.REVOKED)
- .when(mConsentManager)
- .getConsent(any(PackageManager.class));
+ doReturn(AdServicesApiConsent.REVOKED).when(mConsentManager).getConsent();
mMainViewModel =
new MainViewModel(ApplicationProvider.getApplicationContext(), mConsentManager);
diff --git a/adservices/apk/unittest/src/com/android/adservices/ui/settings/viewmodels/TopicsViewModelTest.java b/adservices/apk/unittest/src/com/android/adservices/ui/settings/viewmodels/TopicsViewModelTest.java
index 96a54e0dc8..9a4c4c5352 100644
--- a/adservices/apk/unittest/src/com/android/adservices/ui/settings/viewmodels/TopicsViewModelTest.java
+++ b/adservices/apk/unittest/src/com/android/adservices/ui/settings/viewmodels/TopicsViewModelTest.java
@@ -40,6 +40,7 @@ import java.io.IOException;
public class TopicsViewModelTest {
private TopicsViewModel mTopicsViewModel;
+ private BlockedTopicsViewModel mBlockedTopicsViewModel;
@Mock private ConsentManager mConsentManager;
/** Setup needed before every test in this class. */
@@ -48,11 +49,14 @@ public class TopicsViewModelTest {
MockitoAnnotations.initMocks(this);
mTopicsViewModel =
new TopicsViewModel(ApplicationProvider.getApplicationContext(), mConsentManager);
+ mBlockedTopicsViewModel =
+ new BlockedTopicsViewModel(
+ ApplicationProvider.getApplicationContext(), mConsentManager);
}
/** Test if getTopics returns no topics if {@link ConsentManager} returns no topics. */
@Test
- public void testGetTopicsReturnsNoTopics() throws IOException {
+ public void testGetTopicsReturnsNoTopics() {
ImmutableList<Topic> topicsList = ImmutableList.of();
doReturn(topicsList).when(mConsentManager).getKnownTopicsWithConsent();
@@ -91,7 +95,7 @@ public class TopicsViewModelTest {
@Test
public void testRestoreTopic() {
Topic topic1 = Topic.create(1, 1, 1);
- mTopicsViewModel.restoreTopicConsent(topic1);
+ mBlockedTopicsViewModel.restoreTopicConsent(topic1);
verify(mConsentManager, times(1)).restoreConsentForTopic(topic1);
}