summaryrefslogtreecommitdiff
path: root/adservices/tests/unittest/service-core/src/com/android/adservices/service/PhFlagsTest.java
diff options
context:
space:
mode:
Diffstat (limited to 'adservices/tests/unittest/service-core/src/com/android/adservices/service/PhFlagsTest.java')
-rw-r--r--adservices/tests/unittest/service-core/src/com/android/adservices/service/PhFlagsTest.java375
1 files changed, 371 insertions, 4 deletions
diff --git a/adservices/tests/unittest/service-core/src/com/android/adservices/service/PhFlagsTest.java b/adservices/tests/unittest/service-core/src/com/android/adservices/service/PhFlagsTest.java
index 5fc24c523a..e9351fac78 100644
--- a/adservices/tests/unittest/service-core/src/com/android/adservices/service/PhFlagsTest.java
+++ b/adservices/tests/unittest/service-core/src/com/android/adservices/service/PhFlagsTest.java
@@ -19,8 +19,10 @@ package com.android.adservices.service;
import static com.android.adservices.service.Flags.ADID_KILL_SWITCH;
import static com.android.adservices.service.Flags.ADSERVICES_ENABLED;
import static com.android.adservices.service.Flags.APPSETID_KILL_SWITCH;
+import static com.android.adservices.service.Flags.ASYNC_REGISTRATION_JOB_QUEUE_INTERVAL_MS;
import static com.android.adservices.service.Flags.CLASSIFIER_DESCRIPTION_MAX_LENGTH;
import static com.android.adservices.service.Flags.CLASSIFIER_DESCRIPTION_MAX_WORDS;
+import static com.android.adservices.service.Flags.CLASSIFIER_FORCE_USE_BUNDLED_FILES;
import static com.android.adservices.service.Flags.CLASSIFIER_NUMBER_OF_TOP_LABELS;
import static com.android.adservices.service.Flags.CLASSIFIER_THRESHOLD;
import static com.android.adservices.service.Flags.DEFAULT_CLASSIFIER_TYPE;
@@ -30,14 +32,21 @@ import static com.android.adservices.service.Flags.DISABLE_TOPICS_ENROLLMENT_CHE
import static com.android.adservices.service.Flags.DOWNLOADER_CONNECTION_TIMEOUT_MS;
import static com.android.adservices.service.Flags.DOWNLOADER_MAX_DOWNLOAD_THREADS;
import static com.android.adservices.service.Flags.DOWNLOADER_READ_TIMEOUT_MS;
+import static com.android.adservices.service.Flags.ENABLE_DATABASE_SCHEMA_VERSION_3;
+import static com.android.adservices.service.Flags.ENABLE_TOPIC_CONTRIBUTORS_CHECK;
import static com.android.adservices.service.Flags.ENFORCE_FOREGROUND_STATUS_FLEDGE_CUSTOM_AUDIENCE;
import static com.android.adservices.service.Flags.ENFORCE_FOREGROUND_STATUS_FLEDGE_OVERRIDES;
import static com.android.adservices.service.Flags.ENFORCE_FOREGROUND_STATUS_FLEDGE_REPORT_IMPRESSION;
import static com.android.adservices.service.Flags.ENFORCE_FOREGROUND_STATUS_FLEDGE_RUN_AD_SELECTION;
import static com.android.adservices.service.Flags.ENFORCE_FOREGROUND_STATUS_TOPICS;
import static com.android.adservices.service.Flags.ENFORCE_ISOLATE_MAX_HEAP_SIZE;
+import static com.android.adservices.service.Flags.FLEDGE_AD_SELECTION_BIDDING_TIMEOUT_PER_BUYER_MS;
import static com.android.adservices.service.Flags.FLEDGE_AD_SELECTION_BIDDING_TIMEOUT_PER_CA_MS;
import static com.android.adservices.service.Flags.FLEDGE_AD_SELECTION_CONCURRENT_BIDDING_COUNT;
+import static com.android.adservices.service.Flags.FLEDGE_AD_SELECTION_EXPIRATION_WINDOW_S;
+import static com.android.adservices.service.Flags.FLEDGE_AD_SELECTION_OFF_DEVICE_ENABLED;
+import static com.android.adservices.service.Flags.FLEDGE_AD_SELECTION_OFF_DEVICE_OVERALL_TIMEOUT_MS;
+import static com.android.adservices.service.Flags.FLEDGE_AD_SELECTION_OFF_DEVICE_REQUEST_COMPRESSION_ENABLED;
import static com.android.adservices.service.Flags.FLEDGE_AD_SELECTION_OVERALL_TIMEOUT_MS;
import static com.android.adservices.service.Flags.FLEDGE_AD_SELECTION_SCORING_TIMEOUT_MS;
import static com.android.adservices.service.Flags.FLEDGE_BACKGROUND_FETCH_ELIGIBLE_UPDATE_BASE_INTERVAL_S;
@@ -96,6 +105,7 @@ import static com.android.adservices.service.Flags.MEASUREMENT_JOB_AGGREGATE_FAL
import static com.android.adservices.service.Flags.MEASUREMENT_JOB_AGGREGATE_REPORTING_KILL_SWITCH;
import static com.android.adservices.service.Flags.MEASUREMENT_JOB_ATTRIBUTION_KILL_SWITCH;
import static com.android.adservices.service.Flags.MEASUREMENT_JOB_DELETE_EXPIRED_KILL_SWITCH;
+import static com.android.adservices.service.Flags.MEASUREMENT_JOB_DELETE_UNINSTALLED_KILL_SWITCH;
import static com.android.adservices.service.Flags.MEASUREMENT_JOB_EVENT_FALLBACK_REPORTING_KILL_SWITCH;
import static com.android.adservices.service.Flags.MEASUREMENT_JOB_EVENT_REPORTING_KILL_SWITCH;
import static com.android.adservices.service.Flags.MEASUREMENT_KILL_SWITCH;
@@ -105,6 +115,7 @@ import static com.android.adservices.service.Flags.MEASUREMENT_NETWORK_READ_TIME
import static com.android.adservices.service.Flags.MEASUREMENT_RECEIVER_DELETE_PACKAGES_KILL_SWITCH;
import static com.android.adservices.service.Flags.MEASUREMENT_RECEIVER_INSTALL_ATTRIBUTION_KILL_SWITCH;
import static com.android.adservices.service.Flags.MEASUREMENT_REGISTRATION_INPUT_EVENT_VALID_WINDOW_MS;
+import static com.android.adservices.service.Flags.MEASUREMENT_REGISTRATION_JOB_QUEUE_KILL_SWITCH;
import static com.android.adservices.service.Flags.NUMBER_OF_EPOCHS_TO_KEEP_IN_HISTORY;
import static com.android.adservices.service.Flags.PPAPI_APP_ALLOW_LIST;
import static com.android.adservices.service.Flags.PPAPI_APP_SIGNATURE_ALLOW_LIST;
@@ -122,6 +133,7 @@ import static com.android.adservices.service.PhFlags.KEY_ADSERVICES_ENABLED;
import static com.android.adservices.service.PhFlags.KEY_APPSETID_KILL_SWITCH;
import static com.android.adservices.service.PhFlags.KEY_CLASSIFIER_DESCRIPTION_MAX_LENGTH;
import static com.android.adservices.service.PhFlags.KEY_CLASSIFIER_DESCRIPTION_MAX_WORDS;
+import static com.android.adservices.service.PhFlags.KEY_CLASSIFIER_FORCE_USE_BUNDLED_FILES;
import static com.android.adservices.service.PhFlags.KEY_CLASSIFIER_NUMBER_OF_TOP_LABELS;
import static com.android.adservices.service.PhFlags.KEY_CLASSIFIER_THRESHOLD;
import static com.android.adservices.service.PhFlags.KEY_CLASSIFIER_TYPE;
@@ -131,10 +143,18 @@ import static com.android.adservices.service.PhFlags.KEY_DISABLE_TOPICS_ENROLLME
import static com.android.adservices.service.PhFlags.KEY_DOWNLOADER_CONNECTION_TIMEOUT_MS;
import static com.android.adservices.service.PhFlags.KEY_DOWNLOADER_MAX_DOWNLOAD_THREADS;
import static com.android.adservices.service.PhFlags.KEY_DOWNLOADER_READ_TIMEOUT_MS;
+import static com.android.adservices.service.PhFlags.KEY_ENABLE_DATABASE_SCHEMA_VERSION_3;
+import static com.android.adservices.service.PhFlags.KEY_ENABLE_TOPIC_CONTRIBUTORS_CHECK;
import static com.android.adservices.service.PhFlags.KEY_ENFORCE_FOREGROUND_STATUS_TOPICS;
import static com.android.adservices.service.PhFlags.KEY_ENFORCE_ISOLATE_MAX_HEAP_SIZE;
+import static com.android.adservices.service.PhFlags.KEY_ENROLLMENT_BLOCKLIST_IDS;
+import static com.android.adservices.service.PhFlags.KEY_FLEDE_AD_SELECTION_OFF_DEVICE_ENABLED;
+import static com.android.adservices.service.PhFlags.KEY_FLEDGE_AD_SELECTION_BIDDING_TIMEOUT_PER_BUYER_MS;
import static com.android.adservices.service.PhFlags.KEY_FLEDGE_AD_SELECTION_BIDDING_TIMEOUT_PER_CA_MS;
import static com.android.adservices.service.PhFlags.KEY_FLEDGE_AD_SELECTION_CONCURRENT_BIDDING_COUNT;
+import static com.android.adservices.service.PhFlags.KEY_FLEDGE_AD_SELECTION_EXPIRATION_WINDOW_S;
+import static com.android.adservices.service.PhFlags.KEY_FLEDGE_AD_SELECTION_OFF_DEVICE_OVERALL_TIMEOUT_MS;
+import static com.android.adservices.service.PhFlags.KEY_FLEDGE_AD_SELECTION_OFF_DEVICE_REQUEST_COMPRESSION_ENABLED;
import static com.android.adservices.service.PhFlags.KEY_FLEDGE_AD_SELECTION_OVERALL_TIMEOUT_MS;
import static com.android.adservices.service.PhFlags.KEY_FLEDGE_AD_SELECTION_SCORING_TIMEOUT_MS;
import static com.android.adservices.service.PhFlags.KEY_FLEDGE_BACKGROUND_FETCH_ELIGIBLE_UPDATE_BASE_INTERVAL_S;
@@ -194,6 +214,7 @@ import static com.android.adservices.service.PhFlags.KEY_MEASUREMENT_JOB_AGGREGA
import static com.android.adservices.service.PhFlags.KEY_MEASUREMENT_JOB_AGGREGATE_REPORTING_KILL_SWITCH;
import static com.android.adservices.service.PhFlags.KEY_MEASUREMENT_JOB_ATTRIBUTION_KILL_SWITCH;
import static com.android.adservices.service.PhFlags.KEY_MEASUREMENT_JOB_DELETE_EXPIRED_KILL_SWITCH;
+import static com.android.adservices.service.PhFlags.KEY_MEASUREMENT_JOB_DELETE_UNINSTALLED_KILL_SWITCH;
import static com.android.adservices.service.PhFlags.KEY_MEASUREMENT_JOB_EVENT_FALLBACK_REPORTING_KILL_SWITCH;
import static com.android.adservices.service.PhFlags.KEY_MEASUREMENT_JOB_EVENT_REPORTING_KILL_SWITCH;
import static com.android.adservices.service.PhFlags.KEY_MEASUREMENT_KILL_SWITCH;
@@ -203,9 +224,11 @@ import static com.android.adservices.service.PhFlags.KEY_MEASUREMENT_NETWORK_REA
import static com.android.adservices.service.PhFlags.KEY_MEASUREMENT_RECEIVER_DELETE_PACKAGES_KILL_SWITCH;
import static com.android.adservices.service.PhFlags.KEY_MEASUREMENT_RECEIVER_INSTALL_ATTRIBUTION_KILL_SWITCH;
import static com.android.adservices.service.PhFlags.KEY_MEASUREMENT_REGISTRATION_INPUT_EVENT_VALID_WINDOW_MS;
+import static com.android.adservices.service.PhFlags.KEY_MEASUREMENT_REGISTRATION_JOB_QUEUE_KILL_SWITCH;
import static com.android.adservices.service.PhFlags.KEY_NUMBER_OF_EPOCHS_TO_KEEP_IN_HISTORY;
import static com.android.adservices.service.PhFlags.KEY_PPAPI_APP_ALLOW_LIST;
import static com.android.adservices.service.PhFlags.KEY_PPAPI_APP_SIGNATURE_ALLOW_LIST;
+import static com.android.adservices.service.PhFlags.KEY_REGISTRATION_JOB_QUEUE_INTERVAL_MS;
import static com.android.adservices.service.PhFlags.KEY_SDK_REQUEST_PERMITS_PER_SECOND;
import static com.android.adservices.service.PhFlags.KEY_TOPICS_EPOCH_JOB_FLEX_MS;
import static com.android.adservices.service.PhFlags.KEY_TOPICS_EPOCH_JOB_PERIOD_MS;
@@ -508,6 +531,23 @@ public class PhFlagsTest {
}
@Test
+ public void testGetClassifierForceUseBundledFiles() {
+ // Without any overriding, the value is the hard coded constant.
+ assertThat(FlagsFactory.getFlags().getClassifierForceUseBundledFiles())
+ .isEqualTo(CLASSIFIER_FORCE_USE_BUNDLED_FILES);
+
+ boolean phOverridingValue = true;
+ DeviceConfig.setProperty(
+ DeviceConfig.NAMESPACE_ADSERVICES,
+ KEY_CLASSIFIER_FORCE_USE_BUNDLED_FILES,
+ Boolean.toString(phOverridingValue),
+ /* makeDefault */ false);
+
+ Flags phFlags = FlagsFactory.getFlags();
+ assertThat(phFlags.getClassifierForceUseBundledFiles()).isEqualTo(phOverridingValue);
+ }
+
+ @Test
public void testGetMaintenanceJobPeriodMs() {
// Without any overriding, the value is the hard coded constant.
assertThat(FlagsFactory.getFlags().getMaintenanceJobPeriodMs())
@@ -620,6 +660,23 @@ public class PhFlagsTest {
}
@Test
+ public void testGetAdSelectionBiddingTimeoutPerBuyerMs() {
+ // without any overriding, the value is hard coded constant
+ assertThat(FlagsFactory.getFlags().getAdSelectionBiddingTimeoutPerBuyerMs())
+ .isEqualTo(FLEDGE_AD_SELECTION_BIDDING_TIMEOUT_PER_BUYER_MS);
+
+ final long phOverrideValue = 5000;
+ DeviceConfig.setProperty(
+ DeviceConfig.NAMESPACE_ADSERVICES,
+ KEY_FLEDGE_AD_SELECTION_BIDDING_TIMEOUT_PER_BUYER_MS,
+ Long.toString(phOverrideValue),
+ false);
+
+ Flags phFlags = FlagsFactory.getFlags();
+ assertThat(phFlags.getAdSelectionBiddingTimeoutPerBuyerMs()).isEqualTo(phOverrideValue);
+ }
+
+ @Test
public void testGetAdSelectionScoringTimeoutMs() {
// without any overriding, the value is hard coded constant
assertThat(FlagsFactory.getFlags().getAdSelectionScoringTimeoutMs())
@@ -654,6 +711,22 @@ public class PhFlagsTest {
}
@Test
+ public void testGetOffDeviceAdSelectionOverallTimeoutMs() {
+ assertThat(FlagsFactory.getFlags().getAdSelectionOffDeviceOverallTimeoutMs())
+ .isEqualTo(FLEDGE_AD_SELECTION_OFF_DEVICE_OVERALL_TIMEOUT_MS);
+
+ final int phOverrideValue = 4;
+ DeviceConfig.setProperty(
+ DeviceConfig.NAMESPACE_ADSERVICES,
+ KEY_FLEDGE_AD_SELECTION_OFF_DEVICE_OVERALL_TIMEOUT_MS,
+ Integer.toString(phOverrideValue),
+ false);
+
+ Flags phFlags = FlagsFactory.getFlags();
+ assertThat(phFlags.getAdSelectionOffDeviceOverallTimeoutMs()).isEqualTo(phOverrideValue);
+ }
+
+ @Test
public void testGetDownloaderConnectionTimeoutMs() {
// without any overriding, the value is hard coded constant
assertThat(FlagsFactory.getFlags().getDownloaderConnectionTimeoutMs())
@@ -2226,6 +2299,64 @@ public class PhFlagsTest {
}
@Test
+ public void testGetMeasurementJobDeleteUninstalledKillSwitch() {
+ // without any overriding, the value is hard coded constant
+ assertThat(FlagsFactory.getFlags().getMeasurementJobDeleteUninstalledKillSwitch())
+ .isEqualTo(MEASUREMENT_JOB_DELETE_UNINSTALLED_KILL_SWITCH);
+
+ final boolean phOverrideValue = true;
+ DeviceConfig.setProperty(
+ DeviceConfig.NAMESPACE_ADSERVICES,
+ KEY_MEASUREMENT_JOB_DELETE_UNINSTALLED_KILL_SWITCH,
+ Boolean.toString(phOverrideValue),
+ false);
+
+ Flags phFlags = FlagsFactory.getFlags();
+ assertThat(phFlags.getMeasurementJobDeleteUninstalledKillSwitch())
+ .isEqualTo(phOverrideValue);
+
+ Flags flags = FlagsFactory.getFlagsForTest();
+ assertThat(flags.getMeasurementJobDeleteUninstalledKillSwitch())
+ .isEqualTo(MEASUREMENT_JOB_DELETE_UNINSTALLED_KILL_SWITCH);
+ }
+
+ @Test
+ public void testGetMeasurementJobDeleteUninstalledKillSwitch_measurementOverride() {
+ // without any overriding, the value is hard coded constant
+ assertThat(FlagsFactory.getFlags().getMeasurementJobDeleteUninstalledKillSwitch())
+ .isEqualTo(MEASUREMENT_JOB_DELETE_EXPIRED_KILL_SWITCH);
+
+ final boolean phOverrideValue = true;
+ DeviceConfig.setProperty(
+ DeviceConfig.NAMESPACE_ADSERVICES,
+ KEY_MEASUREMENT_KILL_SWITCH,
+ Boolean.toString(phOverrideValue),
+ false);
+
+ Flags phFlags = FlagsFactory.getFlags();
+ assertThat(phFlags.getMeasurementJobDeleteUninstalledKillSwitch())
+ .isEqualTo(phOverrideValue);
+ }
+
+ @Test
+ public void testGetMeasurementJobDeleteUninstalledKillSwitch_globalOverride() {
+ // without any overriding, the value is hard coded constant
+ assertThat(FlagsFactory.getFlags().getMeasurementJobDeleteUninstalledKillSwitch())
+ .isEqualTo(MEASUREMENT_JOB_DELETE_EXPIRED_KILL_SWITCH);
+
+ final boolean phOverrideValue = true;
+ DeviceConfig.setProperty(
+ DeviceConfig.NAMESPACE_ADSERVICES,
+ KEY_GLOBAL_KILL_SWITCH,
+ Boolean.toString(phOverrideValue),
+ false);
+
+ Flags phFlags = FlagsFactory.getFlags();
+ assertThat(phFlags.getMeasurementJobDeleteUninstalledKillSwitch())
+ .isEqualTo(phOverrideValue);
+ }
+
+ @Test
public void testGetMeasurementJobEventFallbackReportingKillSwitch() {
// without any overriding, the value is hard coded constant
assertThat(FlagsFactory.getFlags().getMeasurementJobEventFallbackReportingKillSwitch())
@@ -2455,6 +2586,77 @@ public class PhFlagsTest {
}
@Test
+ public void testGetAdIdKillSwitch_globalOverride() {
+ // test that global killswitch override has no effect on
+ // AdIdKillswitch.
+ assertThat(FlagsFactory.getFlags().getAdIdKillSwitch()).isEqualTo(ADID_KILL_SWITCH);
+
+ final boolean phOverrideValue = true;
+ DeviceConfig.setProperty(
+ DeviceConfig.NAMESPACE_ADSERVICES,
+ KEY_GLOBAL_KILL_SWITCH,
+ Boolean.toString(phOverrideValue),
+ false);
+
+ Flags phFlags = FlagsFactory.getFlags();
+ assertThat(phFlags.getAdIdKillSwitch()).isEqualTo(ADID_KILL_SWITCH);
+ }
+
+ @Test
+ public void testGetMeasurementRegistrationJobQueueKillSwitch() {
+ // without any overrides the Registration Job Queue kill switch should be off
+ assertThat(FlagsFactory.getFlags().getRegistrationJobQueueKillSwitch())
+ .isEqualTo(MEASUREMENT_REGISTRATION_JOB_QUEUE_KILL_SWITCH);
+
+ // Now overriding with the value from PH.
+ final boolean phOverrideValue = true;
+ DeviceConfig.setProperty(
+ DeviceConfig.NAMESPACE_ADSERVICES,
+ KEY_MEASUREMENT_REGISTRATION_JOB_QUEUE_KILL_SWITCH,
+ Boolean.toString(phOverrideValue),
+ /* makeDefault */ false);
+
+ Flags phFlags = FlagsFactory.getFlags();
+ assertThat(phFlags.getRegistrationJobQueueKillSwitch()).isEqualTo(phOverrideValue);
+ }
+
+ @Test
+ public void testGetMeasurementRegistrationJobQueueKillSwitch_measurementOverride() {
+ // without any overrides the Registration Job Queue kill switch should be off
+ assertThat(FlagsFactory.getFlags().getRegistrationJobQueueKillSwitch())
+ .isEqualTo(MEASUREMENT_REGISTRATION_JOB_QUEUE_KILL_SWITCH);
+
+ // Now overriding with the value from PH.
+ final boolean phOverrideValue = true;
+ DeviceConfig.setProperty(
+ DeviceConfig.NAMESPACE_ADSERVICES,
+ KEY_MEASUREMENT_KILL_SWITCH,
+ Boolean.toString(phOverrideValue),
+ false);
+
+ Flags phFlags = FlagsFactory.getFlags();
+ assertThat(phFlags.getRegistrationJobQueueKillSwitch()).isEqualTo(phOverrideValue);
+ }
+
+ @Test
+ public void testGetMeasurementRegistrationJobQueueKillSwitch_globalOverride() {
+ // without any overrides the Registration Job Queue kill switch should be off
+ assertThat(FlagsFactory.getFlags().getRegistrationJobQueueKillSwitch())
+ .isEqualTo(MEASUREMENT_REGISTRATION_JOB_QUEUE_KILL_SWITCH);
+
+ // Now overriding with the value from PH.
+ final boolean phOverrideValue = true;
+ DeviceConfig.setProperty(
+ DeviceConfig.NAMESPACE_ADSERVICES,
+ KEY_GLOBAL_KILL_SWITCH,
+ Boolean.toString(phOverrideValue),
+ false);
+
+ Flags phFlags = FlagsFactory.getFlags();
+ assertThat(phFlags.getRegistrationJobQueueKillSwitch()).isEqualTo(phOverrideValue);
+ }
+
+ @Test
public void testGetAdIdKillSwitch() {
// Without any overriding, the value is the hard coded constant.
assertThat(FlagsFactory.getFlags().getAdIdKillSwitch()).isEqualTo(ADID_KILL_SWITCH);
@@ -2543,8 +2745,25 @@ public class PhFlagsTest {
Flags phFlags = FlagsFactory.getFlags();
assertThat(phFlags.getGlobalKillSwitch()).isEqualTo(phOverridingValue);
- // Global Killswitch is on and overrides the getAdIdKillswitch.
- assertThat(FlagsFactory.getFlags().getAdIdKillSwitch()).isEqualTo(true);
+ // Global Killswitch is on, but is ignored by the getAdIdKillswitch.
+ assertThat(FlagsFactory.getFlags().getAdIdKillSwitch()).isEqualTo(false);
+ }
+
+ @Test
+ public void testGetAppSetIdKillSwitch_globalOverride() {
+ // test that global killswitch override has no effect on
+ // AppSetIdKillswitch.
+ assertThat(FlagsFactory.getFlags().getAppSetIdKillSwitch()).isEqualTo(APPSETID_KILL_SWITCH);
+
+ final boolean phOverrideValue = true;
+ DeviceConfig.setProperty(
+ DeviceConfig.NAMESPACE_ADSERVICES,
+ KEY_GLOBAL_KILL_SWITCH,
+ Boolean.toString(phOverrideValue),
+ false);
+
+ Flags phFlags = FlagsFactory.getFlags();
+ assertThat(phFlags.getAppSetIdKillSwitch()).isEqualTo(APPSETID_KILL_SWITCH);
}
@Test
@@ -2567,8 +2786,8 @@ public class PhFlagsTest {
Flags phFlags = FlagsFactory.getFlags();
assertThat(phFlags.getGlobalKillSwitch()).isEqualTo(phOverridingValue);
- // Global Killswitch is on and overrides the getAppSetIdKillswitch.
- assertThat(FlagsFactory.getFlags().getAppSetIdKillSwitch()).isEqualTo(true);
+ // Global Killswitch is on, but is ignored by getAppSetIdKillswitch.
+ assertThat(FlagsFactory.getFlags().getAppSetIdKillSwitch()).isEqualTo(false);
}
@Test
@@ -2890,6 +3109,55 @@ public class PhFlagsTest {
}
@Test
+ public void testGetOffDeviceAdSelectionEnabled() {
+ assertThat(FlagsFactory.getFlags().getAdSelectionOffDeviceEnabled())
+ .isEqualTo(FLEDGE_AD_SELECTION_OFF_DEVICE_ENABLED);
+
+ final boolean phOverridingValue = true;
+ DeviceConfig.setProperty(
+ DeviceConfig.NAMESPACE_ADSERVICES,
+ KEY_FLEDE_AD_SELECTION_OFF_DEVICE_ENABLED,
+ Boolean.toString(phOverridingValue),
+ /* makeDefault */ false);
+
+ Flags phFlags = FlagsFactory.getFlags();
+ assertThat(phFlags.getAdSelectionOffDeviceEnabled()).isEqualTo(phOverridingValue);
+ }
+
+ @Test
+ public void testgetFledgeAdselectionExpirationWindow() {
+ // Without any overriding, the value is the hard coded constant.
+ assertThat(FlagsFactory.getFlags().getAdSelectionExpirationWindowS())
+ .isEqualTo(FLEDGE_AD_SELECTION_EXPIRATION_WINDOW_S);
+
+ final int phOverridingValue = 4;
+ DeviceConfig.setProperty(
+ DeviceConfig.NAMESPACE_ADSERVICES,
+ KEY_FLEDGE_AD_SELECTION_EXPIRATION_WINDOW_S,
+ Integer.toString(phOverridingValue),
+ /* makeDefault */ false);
+
+ Flags phFlags = FlagsFactory.getFlags();
+ assertThat(phFlags.getAdSelectionExpirationWindowS()).isEqualTo(phOverridingValue);
+ }
+
+ @Test
+ public void testGetRegistrationJobQueueIntervalMs() {
+ assertThat(FlagsFactory.getFlags().getRegistrationJobQueueIntervalMs())
+ .isEqualTo(ASYNC_REGISTRATION_JOB_QUEUE_INTERVAL_MS);
+
+ final long phOverridingValue = 1L;
+ DeviceConfig.setProperty(
+ DeviceConfig.NAMESPACE_ADSERVICES,
+ KEY_REGISTRATION_JOB_QUEUE_INTERVAL_MS,
+ Long.toString(phOverridingValue),
+ /* makeDefault */ false);
+
+ Flags phFlags = FlagsFactory.getFlags();
+ assertThat(phFlags.getRegistrationJobQueueIntervalMs()).isEqualTo(phOverridingValue);
+ }
+
+ @Test
public void testDump() throws FileNotFoundException {
// Trigger the dump to verify no crash
PrintWriter printWriter =
@@ -2926,5 +3194,104 @@ public class PhFlagsTest {
assertThat(phFlags.getMaxResponseBasedRegistrationPayloadSizeBytes())
.isEqualTo(phOverrideValue);
}
+
+ @Test
+ public void testGetOffDeviceAdSelectionRequestCompressionEnabled() {
+ assertThat(FlagsFactory.getFlags().getAdSelectionOffDeviceRequestCompressionEnabled())
+ .isEqualTo(FLEDGE_AD_SELECTION_OFF_DEVICE_REQUEST_COMPRESSION_ENABLED);
+
+ final boolean phOverridingValue = false;
+ DeviceConfig.setProperty(
+ DeviceConfig.NAMESPACE_ADSERVICES,
+ KEY_FLEDGE_AD_SELECTION_OFF_DEVICE_REQUEST_COMPRESSION_ENABLED,
+ Boolean.toString(phOverridingValue),
+ false);
+
+ Flags phFlags = FlagsFactory.getFlags();
+ assertThat(phFlags.getAdSelectionOffDeviceRequestCompressionEnabled())
+ .isEqualTo(phOverridingValue);
+ }
+
+ @Test
+ public void testGetEnableTopicContributorsCheck() {
+ assertThat(FlagsFactory.getFlags().getEnableTopicContributorsCheck())
+ .isEqualTo(ENABLE_TOPIC_CONTRIBUTORS_CHECK);
+
+ final boolean phOverridingValue = true;
+ DeviceConfig.setProperty(
+ DeviceConfig.NAMESPACE_ADSERVICES,
+ KEY_ENABLE_TOPIC_CONTRIBUTORS_CHECK,
+ Boolean.toString(phOverridingValue),
+ /* makeDefault */ false);
+
+ Flags phFlags = FlagsFactory.getFlags();
+ assertThat(phFlags.getEnableTopicContributorsCheck()).isEqualTo(phOverridingValue);
+ }
+
+ @Test
+ public void testGetEnableDatabaseSchemaVersion3() {
+ assertThat(FlagsFactory.getFlags().getEnableDatabaseSchemaVersion3())
+ .isEqualTo(ENABLE_DATABASE_SCHEMA_VERSION_3);
+
+ final boolean phOverridingValue = true;
+ DeviceConfig.setProperty(
+ DeviceConfig.NAMESPACE_ADSERVICES,
+ KEY_ENABLE_DATABASE_SCHEMA_VERSION_3,
+ Boolean.toString(phOverridingValue),
+ /* makeDefault */ false);
+
+ Flags phFlags = FlagsFactory.getFlags();
+ assertThat(phFlags.getEnableDatabaseSchemaVersion3()).isEqualTo(phOverridingValue);
+ }
+
+ @Test
+ public void testEnrollmentBlocklist_singleEnrollment() {
+ Flags phFlags = FlagsFactory.getFlags();
+
+ String blocklistedEnrollmentId = "enrollmentId1";
+ setEnrollmentBlocklist(blocklistedEnrollmentId);
+
+ assertThat(phFlags.getEnrollmentBlocklist()).contains(blocklistedEnrollmentId);
+ }
+
+ @Test
+ public void testEnrollmentBlocklist_multipleEnrollments() {
+ Flags phFlags = FlagsFactory.getFlags();
+
+ String enrollmentId1 = "enrollmentId1";
+ String enrollmentId2 = "enrollmentId2";
+ String enrollmentId3 = "enrollmentId3";
+
+ String blocklistedEnrollmentId =
+ String.format("%s,%s,%s", enrollmentId1, enrollmentId2, enrollmentId3);
+ setEnrollmentBlocklist(blocklistedEnrollmentId);
+
+ assertThat(phFlags.getEnrollmentBlocklist())
+ .containsExactly(enrollmentId1, enrollmentId2, enrollmentId3);
+ }
+
+ @Test
+ public void testEnrollmentBlocklist_malformedList() {
+ Flags phFlags = FlagsFactory.getFlags();
+
+ String enrollmentId1 = "enrollmentId1";
+ String enrollmentId2 = "enrollmentId2";
+ String enrollmentId3 = "enrollmentId3";
+
+ String blocklistedEnrollmentId =
+ String.format("%s%s%s", enrollmentId1, enrollmentId2, enrollmentId3);
+ setEnrollmentBlocklist(blocklistedEnrollmentId);
+
+ assertThat(phFlags.getEnrollmentBlocklist())
+ .containsNoneOf(enrollmentId1, enrollmentId2, enrollmentId3);
+ }
+
+ private void setEnrollmentBlocklist(String blocklistFlag) {
+ DeviceConfig.setProperty(
+ DeviceConfig.NAMESPACE_ADSERVICES,
+ KEY_ENROLLMENT_BLOCKLIST_IDS,
+ blocklistFlag,
+ false);
+ }
// CHECKSTYLE:ON IndentationCheck
}