blob: 3f03540b9812b0a79d41b2fa6c5f10e02e83a1a8 [file] [log] [blame]
/*
* Copyright (C) 2022 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
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;
import static com.android.adservices.service.Flags.DISABLE_FLEDGE_ENROLLMENT_CHECK;
import static com.android.adservices.service.Flags.DISABLE_MEASUREMENT_ENROLLMENT_CHECK;
import static com.android.adservices.service.Flags.DISABLE_TOPICS_ENROLLMENT_CHECK;
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.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;
import static com.android.adservices.service.Flags.FLEDGE_BACKGROUND_FETCH_ENABLED;
import static com.android.adservices.service.Flags.FLEDGE_BACKGROUND_FETCH_JOB_FLEX_MS;
import static com.android.adservices.service.Flags.FLEDGE_BACKGROUND_FETCH_JOB_MAX_RUNTIME_MS;
import static com.android.adservices.service.Flags.FLEDGE_BACKGROUND_FETCH_JOB_PERIOD_MS;
import static com.android.adservices.service.Flags.FLEDGE_BACKGROUND_FETCH_MAX_NUM_UPDATED;
import static com.android.adservices.service.Flags.FLEDGE_BACKGROUND_FETCH_MAX_RESPONSE_SIZE_B;
import static com.android.adservices.service.Flags.FLEDGE_BACKGROUND_FETCH_NETWORK_CONNECT_TIMEOUT_MS;
import static com.android.adservices.service.Flags.FLEDGE_BACKGROUND_FETCH_NETWORK_READ_TIMEOUT_MS;
import static com.android.adservices.service.Flags.FLEDGE_BACKGROUND_FETCH_THREAD_POOL_SIZE;
import static com.android.adservices.service.Flags.FLEDGE_CUSTOM_AUDIENCE_DEFAULT_EXPIRE_IN_MS;
import static com.android.adservices.service.Flags.FLEDGE_CUSTOM_AUDIENCE_MAX_ACTIVATION_DELAY_IN_MS;
import static com.android.adservices.service.Flags.FLEDGE_CUSTOM_AUDIENCE_MAX_ADS_SIZE_B;
import static com.android.adservices.service.Flags.FLEDGE_CUSTOM_AUDIENCE_MAX_BIDDING_LOGIC_URI_SIZE_B;
import static com.android.adservices.service.Flags.FLEDGE_CUSTOM_AUDIENCE_MAX_COUNT;
import static com.android.adservices.service.Flags.FLEDGE_CUSTOM_AUDIENCE_MAX_DAILY_UPDATE_URI_SIZE_B;
import static com.android.adservices.service.Flags.FLEDGE_CUSTOM_AUDIENCE_MAX_EXPIRE_IN_MS;
import static com.android.adservices.service.Flags.FLEDGE_CUSTOM_AUDIENCE_MAX_NAME_SIZE_B;
import static com.android.adservices.service.Flags.FLEDGE_CUSTOM_AUDIENCE_MAX_NUM_ADS;
import static com.android.adservices.service.Flags.FLEDGE_CUSTOM_AUDIENCE_MAX_OWNER_COUNT;
import static com.android.adservices.service.Flags.FLEDGE_CUSTOM_AUDIENCE_MAX_TRUSTED_BIDDING_DATA_SIZE_B;
import static com.android.adservices.service.Flags.FLEDGE_CUSTOM_AUDIENCE_MAX_USER_BIDDING_SIGNALS_SIZE_B;
import static com.android.adservices.service.Flags.FLEDGE_CUSTOM_AUDIENCE_PER_APP_MAX_COUNT;
import static com.android.adservices.service.Flags.FLEDGE_CUSTOM_AUDIENCE_SERVICE_KILL_SWITCH;
import static com.android.adservices.service.Flags.FLEDGE_REPORT_IMPRESSION_OVERALL_TIMEOUT_MS;
import static com.android.adservices.service.Flags.FLEDGE_SELECT_ADS_KILL_SWITCH;
import static com.android.adservices.service.Flags.FOREGROUND_STATUS_LEVEL;
import static com.android.adservices.service.Flags.GLOBAL_KILL_SWITCH;
import static com.android.adservices.service.Flags.ISOLATE_MAX_HEAP_SIZE_BYTES;
import static com.android.adservices.service.Flags.MAINTENANCE_JOB_FLEX_MS;
import static com.android.adservices.service.Flags.MAINTENANCE_JOB_PERIOD_MS;
import static com.android.adservices.service.Flags.MDD_BACKGROUND_TASK_KILL_SWITCH;
import static com.android.adservices.service.Flags.MDD_TOPICS_CLASSIFIER_MANIFEST_FILE_URL;
import static com.android.adservices.service.Flags.MEASUREMENT_AGGREGATE_ENCRYPTION_KEY_COORDINATOR_URL;
import static com.android.adservices.service.Flags.MEASUREMENT_AGGREGATE_FALLBACK_REPORTING_JOB_PERIOD_MS;
import static com.android.adservices.service.Flags.MEASUREMENT_AGGREGATE_MAIN_REPORTING_JOB_PERIOD_MS;
import static com.android.adservices.service.Flags.MEASUREMENT_API_DELETE_REGISTRATIONS_KILL_SWITCH;
import static com.android.adservices.service.Flags.MEASUREMENT_API_REGISTER_SOURCE_KILL_SWITCH;
import static com.android.adservices.service.Flags.MEASUREMENT_API_REGISTER_TRIGGER_KILL_SWITCH;
import static com.android.adservices.service.Flags.MEASUREMENT_API_REGISTER_WEB_SOURCE_KILL_SWITCH;
import static com.android.adservices.service.Flags.MEASUREMENT_API_REGISTER_WEB_TRIGGER_KILL_SWITCH;
import static com.android.adservices.service.Flags.MEASUREMENT_API_STATUS_KILL_SWITCH;
import static com.android.adservices.service.Flags.MEASUREMENT_DB_SIZE_LIMIT;
import static com.android.adservices.service.Flags.MEASUREMENT_ENFORCE_FOREGROUND_STATUS_DELETE_REGISTRATIONS;
import static com.android.adservices.service.Flags.MEASUREMENT_ENFORCE_FOREGROUND_STATUS_GET_STATUS;
import static com.android.adservices.service.Flags.MEASUREMENT_ENFORCE_FOREGROUND_STATUS_REGISTER_SOURCE;
import static com.android.adservices.service.Flags.MEASUREMENT_ENFORCE_FOREGROUND_STATUS_REGISTER_TRIGGER;
import static com.android.adservices.service.Flags.MEASUREMENT_ENFORCE_FOREGROUND_STATUS_REGISTER_WEB_SOURCE;
import static com.android.adservices.service.Flags.MEASUREMENT_ENFORCE_FOREGROUND_STATUS_REGISTER_WEB_TRIGGER;
import static com.android.adservices.service.Flags.MEASUREMENT_EVENT_FALLBACK_REPORTING_JOB_PERIOD_MS;
import static com.android.adservices.service.Flags.MEASUREMENT_EVENT_MAIN_REPORTING_JOB_PERIOD_MS;
import static com.android.adservices.service.Flags.MEASUREMENT_IS_CLICK_VERIFICATION_ENABLED;
import static com.android.adservices.service.Flags.MEASUREMENT_JOB_AGGREGATE_FALLBACK_REPORTING_KILL_SWITCH;
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;
import static com.android.adservices.service.Flags.MEASUREMENT_MANIFEST_FILE_URL;
import static com.android.adservices.service.Flags.MEASUREMENT_NETWORK_CONNECT_TIMEOUT_MS;
import static com.android.adservices.service.Flags.MEASUREMENT_NETWORK_READ_TIMEOUT_MS;
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;
import static com.android.adservices.service.Flags.PRECOMPUTED_CLASSIFIER;
import static com.android.adservices.service.Flags.SDK_REQUEST_PERMITS_PER_SECOND;
import static com.android.adservices.service.Flags.TOPICS_EPOCH_JOB_FLEX_MS;
import static com.android.adservices.service.Flags.TOPICS_EPOCH_JOB_PERIOD_MS;
import static com.android.adservices.service.Flags.TOPICS_KILL_SWITCH;
import static com.android.adservices.service.Flags.TOPICS_NUMBER_OF_LOOK_BACK_EPOCHS;
import static com.android.adservices.service.Flags.TOPICS_NUMBER_OF_RANDOM_TOPICS;
import static com.android.adservices.service.Flags.TOPICS_NUMBER_OF_TOP_TOPICS;
import static com.android.adservices.service.Flags.TOPICS_PERCENTAGE_FOR_RANDOM_TOPIC;
import static com.android.adservices.service.PhFlags.KEY_ADID_KILL_SWITCH;
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;
import static com.android.adservices.service.PhFlags.KEY_DISABLE_FLEDGE_ENROLLMENT_CHECK;
import static com.android.adservices.service.PhFlags.KEY_DISABLE_MEASUREMENT_ENROLLMENT_CHECK;
import static com.android.adservices.service.PhFlags.KEY_DISABLE_TOPICS_ENROLLMENT_CHECK;
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_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_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;
import static com.android.adservices.service.PhFlags.KEY_FLEDGE_BACKGROUND_FETCH_ENABLED;
import static com.android.adservices.service.PhFlags.KEY_FLEDGE_BACKGROUND_FETCH_JOB_FLEX_MS;
import static com.android.adservices.service.PhFlags.KEY_FLEDGE_BACKGROUND_FETCH_JOB_MAX_RUNTIME_MS;
import static com.android.adservices.service.PhFlags.KEY_FLEDGE_BACKGROUND_FETCH_JOB_PERIOD_MS;
import static com.android.adservices.service.PhFlags.KEY_FLEDGE_BACKGROUND_FETCH_MAX_NUM_UPDATED;
import static com.android.adservices.service.PhFlags.KEY_FLEDGE_BACKGROUND_FETCH_MAX_RESPONSE_SIZE_B;
import static com.android.adservices.service.PhFlags.KEY_FLEDGE_BACKGROUND_FETCH_NETWORK_CONNECT_TIMEOUT_MS;
import static com.android.adservices.service.PhFlags.KEY_FLEDGE_BACKGROUND_FETCH_NETWORK_READ_TIMEOUT_MS;
import static com.android.adservices.service.PhFlags.KEY_FLEDGE_BACKGROUND_FETCH_THREAD_POOL_SIZE;
import static com.android.adservices.service.PhFlags.KEY_FLEDGE_CUSTOM_AUDIENCE_DEFAULT_EXPIRE_IN_MS;
import static com.android.adservices.service.PhFlags.KEY_FLEDGE_CUSTOM_AUDIENCE_MAX_ACTIVATION_DELAY_IN_MS;
import static com.android.adservices.service.PhFlags.KEY_FLEDGE_CUSTOM_AUDIENCE_MAX_ADS_SIZE_B;
import static com.android.adservices.service.PhFlags.KEY_FLEDGE_CUSTOM_AUDIENCE_MAX_BIDDING_LOGIC_URI_SIZE_B;
import static com.android.adservices.service.PhFlags.KEY_FLEDGE_CUSTOM_AUDIENCE_MAX_COUNT;
import static com.android.adservices.service.PhFlags.KEY_FLEDGE_CUSTOM_AUDIENCE_MAX_DAILY_UPDATE_URI_SIZE_B;
import static com.android.adservices.service.PhFlags.KEY_FLEDGE_CUSTOM_AUDIENCE_MAX_EXPIRE_IN_MS;
import static com.android.adservices.service.PhFlags.KEY_FLEDGE_CUSTOM_AUDIENCE_MAX_NAME_SIZE_B;
import static com.android.adservices.service.PhFlags.KEY_FLEDGE_CUSTOM_AUDIENCE_MAX_NUM_ADS;
import static com.android.adservices.service.PhFlags.KEY_FLEDGE_CUSTOM_AUDIENCE_MAX_OWNER_COUNT;
import static com.android.adservices.service.PhFlags.KEY_FLEDGE_CUSTOM_AUDIENCE_MAX_TRUSTED_BIDDING_DATA_SIZE_B;
import static com.android.adservices.service.PhFlags.KEY_FLEDGE_CUSTOM_AUDIENCE_MAX_USER_BIDDING_SIGNALS_SIZE_B;
import static com.android.adservices.service.PhFlags.KEY_FLEDGE_CUSTOM_AUDIENCE_PER_APP_MAX_COUNT;
import static com.android.adservices.service.PhFlags.KEY_FLEDGE_CUSTOM_AUDIENCE_SERVICE_KILL_SWITCH;
import static com.android.adservices.service.PhFlags.KEY_FLEDGE_REPORT_IMPRESSION_OVERALL_TIMEOUT_MS;
import static com.android.adservices.service.PhFlags.KEY_FLEDGE_SELECT_ADS_KILL_SWITCH;
import static com.android.adservices.service.PhFlags.KEY_FOREGROUND_STATUS_LEVEL;
import static com.android.adservices.service.PhFlags.KEY_GLOBAL_KILL_SWITCH;
import static com.android.adservices.service.PhFlags.KEY_ISOLATE_MAX_HEAP_SIZE_BYTES;
import static com.android.adservices.service.PhFlags.KEY_MAINTENANCE_JOB_FLEX_MS;
import static com.android.adservices.service.PhFlags.KEY_MAINTENANCE_JOB_PERIOD_MS;
import static com.android.adservices.service.PhFlags.KEY_MAX_RESPONSE_BASED_REGISTRATION_SIZE_BYTES;
import static com.android.adservices.service.PhFlags.KEY_MDD_BACKGROUND_TASK_KILL_SWITCH;
import static com.android.adservices.service.PhFlags.KEY_MDD_TOPICS_CLASSIFIER_MANIFEST_FILE_URL;
import static com.android.adservices.service.PhFlags.KEY_MEASUREMENT_AGGREGATE_ENCRYPTION_KEY_COORDINATOR_URL;
import static com.android.adservices.service.PhFlags.KEY_MEASUREMENT_AGGREGATE_FALLBACK_REPORTING_JOB_PERIOD_MS;
import static com.android.adservices.service.PhFlags.KEY_MEASUREMENT_AGGREGATE_MAIN_REPORTING_JOB_PERIOD_MS;
import static com.android.adservices.service.PhFlags.KEY_MEASUREMENT_API_DELETE_REGISTRATIONS_KILL_SWITCH;
import static com.android.adservices.service.PhFlags.KEY_MEASUREMENT_API_REGISTER_SOURCE_KILL_SWITCH;
import static com.android.adservices.service.PhFlags.KEY_MEASUREMENT_API_REGISTER_TRIGGER_KILL_SWITCH;
import static com.android.adservices.service.PhFlags.KEY_MEASUREMENT_API_REGISTER_WEB_SOURCE_KILL_SWITCH;
import static com.android.adservices.service.PhFlags.KEY_MEASUREMENT_API_REGISTER_WEB_TRIGGER_KILL_SWITCH;
import static com.android.adservices.service.PhFlags.KEY_MEASUREMENT_API_STATUS_KILL_SWITCH;
import static com.android.adservices.service.PhFlags.KEY_MEASUREMENT_DB_SIZE_LIMIT;
import static com.android.adservices.service.PhFlags.KEY_MEASUREMENT_ENFORCE_FOREGROUND_STATUS_DELETE_REGISTRATIONS;
import static com.android.adservices.service.PhFlags.KEY_MEASUREMENT_ENFORCE_FOREGROUND_STATUS_GET_STATUS;
import static com.android.adservices.service.PhFlags.KEY_MEASUREMENT_ENFORCE_FOREGROUND_STATUS_REGISTER_SOURCE;
import static com.android.adservices.service.PhFlags.KEY_MEASUREMENT_ENFORCE_FOREGROUND_STATUS_REGISTER_TRIGGER;
import static com.android.adservices.service.PhFlags.KEY_MEASUREMENT_ENFORCE_FOREGROUND_STATUS_REGISTER_WEB_SOURCE;
import static com.android.adservices.service.PhFlags.KEY_MEASUREMENT_ENFORCE_FOREGROUND_STATUS_REGISTER_WEB_TRIGGER;
import static com.android.adservices.service.PhFlags.KEY_MEASUREMENT_EVENT_FALLBACK_REPORTING_JOB_PERIOD_MS;
import static com.android.adservices.service.PhFlags.KEY_MEASUREMENT_EVENT_MAIN_REPORTING_JOB_PERIOD_MS;
import static com.android.adservices.service.PhFlags.KEY_MEASUREMENT_IS_CLICK_VERIFICATION_ENABLED;
import static com.android.adservices.service.PhFlags.KEY_MEASUREMENT_JOB_AGGREGATE_FALLBACK_REPORTING_KILL_SWITCH;
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;
import static com.android.adservices.service.PhFlags.KEY_MEASUREMENT_MANIFEST_FILE_URL;
import static com.android.adservices.service.PhFlags.KEY_MEASUREMENT_NETWORK_CONNECT_TIMEOUT_MS;
import static com.android.adservices.service.PhFlags.KEY_MEASUREMENT_NETWORK_READ_TIMEOUT_MS;
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;
import static com.android.adservices.service.PhFlags.KEY_TOPICS_KILL_SWITCH;
import static com.android.adservices.service.PhFlags.KEY_TOPICS_NUMBER_OF_LOOK_BACK_EPOCHS;
import static com.android.adservices.service.PhFlags.KEY_TOPICS_NUMBER_OF_RANDOM_TOPICS;
import static com.android.adservices.service.PhFlags.KEY_TOPICS_NUMBER_OF_TOP_TOPICS;
import static com.android.adservices.service.PhFlags.KEY_TOPICS_PERCENTAGE_FOR_RANDOM_TOPIC;
import static com.google.common.truth.Truth.assertThat;
import static org.junit.Assert.assertThrows;
import android.provider.DeviceConfig;
import androidx.test.filters.SmallTest;
import com.android.adservices.service.Flags.ClassifierType;
import com.android.modules.utils.testing.TestableDeviceConfig;
import org.junit.Rule;
import org.junit.Test;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.PrintWriter;
import java.io.Writer;
/** Unit tests for {@link com.android.adservices.service.PhFlags} */
@SmallTest
public class PhFlagsTest {
@Rule
public final TestableDeviceConfig.TestableDeviceConfigRule mDeviceConfigRule =
new TestableDeviceConfig.TestableDeviceConfigRule();
@Test
public void testGetTopicsEpochJobPeriodMs() {
// Without any overriding, the value is the hard coded constant.
assertThat(FlagsFactory.getFlags().getTopicsEpochJobPeriodMs())
.isEqualTo(TOPICS_EPOCH_JOB_PERIOD_MS);
// Now overriding with the value from PH.
final long phOverridingValue = 1;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_TOPICS_EPOCH_JOB_PERIOD_MS,
Long.toString(phOverridingValue),
/* makeDefault */ false);
Flags phFlags = FlagsFactory.getFlags();
assertThat(phFlags.getTopicsEpochJobPeriodMs()).isEqualTo(phOverridingValue);
final long illegalPhOverridingValue = -1;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_TOPICS_EPOCH_JOB_PERIOD_MS,
Long.toString(illegalPhOverridingValue),
/* makeDefault */ false);
assertThrows(
IllegalArgumentException.class,
() -> {
phFlags.getTopicsEpochJobPeriodMs();
});
}
@Test
public void testGetTopicsEpochJobFlexMs() {
// Without any overriding, the value is the hard coded constant.
assertThat(FlagsFactory.getFlags().getTopicsEpochJobFlexMs())
.isEqualTo(TOPICS_EPOCH_JOB_FLEX_MS);
// Now overriding with the value from PH.
final long phOverridingValue = 2;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_TOPICS_EPOCH_JOB_FLEX_MS,
Long.toString(phOverridingValue),
/* makeDefault */ false);
Flags phFlags = FlagsFactory.getFlags();
assertThat(phFlags.getTopicsEpochJobFlexMs()).isEqualTo(phOverridingValue);
// Validate that topicsEpochJobFlexMs got from PH > 0 and
// less than topicsEpochJobPeriodMs
final long illegalPhOverridingValue = -1;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_TOPICS_EPOCH_JOB_FLEX_MS,
Long.toString(illegalPhOverridingValue),
/* makeDefault */ false);
assertThrows(
IllegalArgumentException.class,
() -> {
phFlags.getTopicsEpochJobFlexMs();
});
}
@Test
public void testGetTopicsPercentageForRandomTopic() {
// Without any overriding, the value is the hard coded constant.
assertThat(FlagsFactory.getFlags().getTopicsPercentageForRandomTopic())
.isEqualTo(TOPICS_PERCENTAGE_FOR_RANDOM_TOPIC);
final long phOverridingValue = 3;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_TOPICS_PERCENTAGE_FOR_RANDOM_TOPIC,
Long.toString(phOverridingValue),
/* makeDefault */ false);
Flags phFlags = FlagsFactory.getFlags();
assertThat(phFlags.getTopicsPercentageForRandomTopic()).isEqualTo(phOverridingValue);
// Validate that topicsPercentageForRandomTopic got from PH is between 0 and 100
final long illegalPhOverridingValue = -1;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_TOPICS_PERCENTAGE_FOR_RANDOM_TOPIC,
Long.toString(illegalPhOverridingValue),
/* makeDefault */ false);
assertThrows(
IllegalArgumentException.class,
() -> {
phFlags.getTopicsPercentageForRandomTopic();
});
}
@Test
public void testGetTopicsNumberOfRandomTopics() {
// Without any overriding, the value is the hard coded constant.
assertThat(FlagsFactory.getFlags().getTopicsNumberOfRandomTopics())
.isEqualTo(TOPICS_NUMBER_OF_RANDOM_TOPICS);
final long phOverridingValue = 4;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_TOPICS_NUMBER_OF_RANDOM_TOPICS,
Long.toString(phOverridingValue),
/* makeDefault */ false);
Flags phFlags = FlagsFactory.getFlags();
assertThat(phFlags.getTopicsNumberOfRandomTopics()).isEqualTo(phOverridingValue);
// Validate that topicsNumberOfRandomTopics got from PH >= 0
final long illegalPhOverridingValue = -1;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_TOPICS_NUMBER_OF_RANDOM_TOPICS,
Long.toString(illegalPhOverridingValue),
/* makeDefault */ false);
assertThrows(
IllegalArgumentException.class,
() -> {
phFlags.getTopicsNumberOfRandomTopics();
});
}
@Test
public void testGetTopicsNumberOfTopTopics() {
// Without any overriding, the value is the hard coded constant.
assertThat(FlagsFactory.getFlags().getTopicsNumberOfTopTopics())
.isEqualTo(TOPICS_NUMBER_OF_TOP_TOPICS);
final long phOverridingValue = 5;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_TOPICS_NUMBER_OF_TOP_TOPICS,
Long.toString(phOverridingValue),
/* makeDefault */ false);
Flags phFlags = FlagsFactory.getFlags();
assertThat(phFlags.getTopicsNumberOfTopTopics()).isEqualTo(phOverridingValue);
// Validate that topicsNumberOfTopTopics got from PH >= 0
final long illegalPhOverridingValue = -1;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_TOPICS_NUMBER_OF_TOP_TOPICS,
Long.toString(illegalPhOverridingValue),
/* makeDefault */ false);
assertThrows(
IllegalArgumentException.class,
() -> {
phFlags.getTopicsNumberOfTopTopics();
});
}
@Test
public void testGetTopicsNumberOfLookBackEpochs() {
// Without any overriding, the value is the hard coded constant.
assertThat(FlagsFactory.getFlags().getTopicsNumberOfLookBackEpochs())
.isEqualTo(TOPICS_NUMBER_OF_LOOK_BACK_EPOCHS);
final long phOverridingValue = 6;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_TOPICS_NUMBER_OF_LOOK_BACK_EPOCHS,
Long.toString(phOverridingValue),
/* makeDefault */ false);
Flags phFlags = FlagsFactory.getFlags();
assertThat(phFlags.getTopicsNumberOfLookBackEpochs()).isEqualTo(phOverridingValue);
// Validate that topicsNumberOfLookBackEpochs got from PH >= 0
final long illegalPhOverridingValue = -1;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_TOPICS_NUMBER_OF_LOOK_BACK_EPOCHS,
Long.toString(illegalPhOverridingValue),
/* makeDefault */ false);
assertThrows(
IllegalArgumentException.class,
() -> {
phFlags.getTopicsNumberOfLookBackEpochs();
});
}
@Test
public void testClassifierType() {
// Without any overriding, the value is the hard coded constant.
assertThat(FlagsFactory.getFlags().getClassifierType()).isEqualTo(DEFAULT_CLASSIFIER_TYPE);
@ClassifierType int phOverridingValue = PRECOMPUTED_CLASSIFIER;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_CLASSIFIER_TYPE,
Integer.toString(phOverridingValue),
/* makeDefault */ false);
Flags phFlags = FlagsFactory.getFlags();
assertThat(phFlags.getClassifierType()).isEqualTo(phOverridingValue);
}
@Test
public void testGetClassifierNumberOfTopLabels() {
// Without any overriding, the value is the hard coded constant.
assertThat(FlagsFactory.getFlags().getClassifierNumberOfTopLabels())
.isEqualTo(CLASSIFIER_NUMBER_OF_TOP_LABELS);
int phOverridingValue = 3;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_CLASSIFIER_NUMBER_OF_TOP_LABELS,
Integer.toString(phOverridingValue),
/* makeDefault */ false);
Flags phFlags = FlagsFactory.getFlags();
assertThat(phFlags.getClassifierType()).isEqualTo(phOverridingValue);
}
@Test
public void testGetClassifierThreshold() {
// Without any overriding, the value is the hard coded constant.
assertThat(FlagsFactory.getFlags().getClassifierThreshold())
.isEqualTo(CLASSIFIER_THRESHOLD);
float phOverridingValue = 0.3f;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_CLASSIFIER_THRESHOLD,
Float.toString(phOverridingValue),
/* makeDefault */ false);
Flags phFlags = FlagsFactory.getFlags();
assertThat(phFlags.getClassifierThreshold()).isEqualTo(phOverridingValue);
}
@Test
public void testGetClassifierDescriptionMaxWords() {
// Without any overriding, the value is the hard coded constant.
assertThat(FlagsFactory.getFlags().getClassifierDescriptionMaxWords())
.isEqualTo(CLASSIFIER_DESCRIPTION_MAX_WORDS);
int phOverridingValue = 150;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_CLASSIFIER_DESCRIPTION_MAX_WORDS,
Integer.toString(phOverridingValue),
/* makeDefault */ false);
Flags phFlags = FlagsFactory.getFlags();
assertThat(phFlags.getClassifierDescriptionMaxWords()).isEqualTo(phOverridingValue);
}
@Test
public void testGetClassifierDescriptionMaxLength() {
// Without any overriding, the value is the hard coded constant.
assertThat(FlagsFactory.getFlags().getClassifierDescriptionMaxLength())
.isEqualTo(CLASSIFIER_DESCRIPTION_MAX_LENGTH);
int phOverridingValue = 999;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_CLASSIFIER_DESCRIPTION_MAX_LENGTH,
Integer.toString(phOverridingValue),
/* makeDefault */ false);
Flags phFlags = FlagsFactory.getFlags();
assertThat(phFlags.getClassifierDescriptionMaxLength()).isEqualTo(phOverridingValue);
}
@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())
.isEqualTo(MAINTENANCE_JOB_PERIOD_MS);
final long phOverridingValue = 7;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_MAINTENANCE_JOB_PERIOD_MS,
Long.toString(phOverridingValue),
/* makeDefault */ false);
Flags phFlags = FlagsFactory.getFlags();
assertThat(phFlags.getMaintenanceJobPeriodMs()).isEqualTo(phOverridingValue);
// Validate that maintenanceJobPeriodMs got from PH > 0
final long illegalPhOverridingValue = -1;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_MAINTENANCE_JOB_PERIOD_MS,
Long.toString(illegalPhOverridingValue),
/* makeDefault */ false);
assertThrows(
IllegalArgumentException.class,
() -> {
phFlags.getMaintenanceJobPeriodMs();
});
}
@Test
public void testGetMaintenanceJobFlexMs() {
// Without any overriding, the value is the hard coded constant.
assertThat(FlagsFactory.getFlags().getMaintenanceJobFlexMs())
.isEqualTo(MAINTENANCE_JOB_FLEX_MS);
final long phOverridingValue = 8;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_MAINTENANCE_JOB_FLEX_MS,
Long.toString(phOverridingValue),
/* makeDefault */ false);
Flags phFlags = FlagsFactory.getFlags();
assertThat(phFlags.getMaintenanceJobFlexMs()).isEqualTo(phOverridingValue);
// Validate that maintenanceJobFlexMs got from PH > 0 and less
// than maintenanceJobPeriodMs
final long illegalPhOverridingValue = -1;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_MAINTENANCE_JOB_FLEX_MS,
Long.toString(illegalPhOverridingValue),
/* makeDefault */ false);
assertThrows(
IllegalArgumentException.class,
() -> {
phFlags.getMaintenanceJobFlexMs();
});
}
@Test
public void testGetMddTopicsClassifierManifestFileUrl() {
// Without any overriding, the value is the hard coded constant.
assertThat(FlagsFactory.getFlags().getMddTopicsClassifierManifestFileUrl())
.isEqualTo(MDD_TOPICS_CLASSIFIER_MANIFEST_FILE_URL);
final String phOverridingValue = "testFileUrl";
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_MDD_TOPICS_CLASSIFIER_MANIFEST_FILE_URL,
phOverridingValue,
/* makeDefault */ false);
Flags phFlags = FlagsFactory.getFlags();
assertThat(phFlags.getMddTopicsClassifierManifestFileUrl()).isEqualTo(phOverridingValue);
}
@Test
public void testGetAdSelectionConcurrentBiddingCount() {
// without any overriding, the value is hard coded constant
assertThat(FlagsFactory.getFlags().getAdSelectionConcurrentBiddingCount())
.isEqualTo(FLEDGE_AD_SELECTION_CONCURRENT_BIDDING_COUNT);
final int phOverrideValue = 4;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_FLEDGE_AD_SELECTION_CONCURRENT_BIDDING_COUNT,
Integer.toString(phOverrideValue),
false);
Flags phFlags = FlagsFactory.getFlags();
assertThat(phFlags.getAdSelectionConcurrentBiddingCount()).isEqualTo(phOverrideValue);
}
@Test
public void testGetAdSelectionBiddingTimeoutPerCaMs() {
// without any overriding, the value is hard coded constant
assertThat(FlagsFactory.getFlags().getAdSelectionBiddingTimeoutPerCaMs())
.isEqualTo(FLEDGE_AD_SELECTION_BIDDING_TIMEOUT_PER_CA_MS);
final int phOverrideValue = 4;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_FLEDGE_AD_SELECTION_BIDDING_TIMEOUT_PER_CA_MS,
Integer.toString(phOverrideValue),
false);
Flags phFlags = FlagsFactory.getFlags();
assertThat(phFlags.getAdSelectionBiddingTimeoutPerCaMs()).isEqualTo(phOverrideValue);
}
@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())
.isEqualTo(FLEDGE_AD_SELECTION_SCORING_TIMEOUT_MS);
final int phOverrideValue = 4;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_FLEDGE_AD_SELECTION_SCORING_TIMEOUT_MS,
Integer.toString(phOverrideValue),
false);
Flags phFlags = FlagsFactory.getFlags();
assertThat(phFlags.getAdSelectionScoringTimeoutMs()).isEqualTo(phOverrideValue);
}
@Test
public void testGetAdSelectionOverallTimeoutMs() {
// without any overriding, the value is hard coded constant
assertThat(FlagsFactory.getFlags().getAdSelectionOverallTimeoutMs())
.isEqualTo(FLEDGE_AD_SELECTION_OVERALL_TIMEOUT_MS);
final int phOverrideValue = 4;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_FLEDGE_AD_SELECTION_OVERALL_TIMEOUT_MS,
Integer.toString(phOverrideValue),
false);
Flags phFlags = FlagsFactory.getFlags();
assertThat(phFlags.getAdSelectionOverallTimeoutMs()).isEqualTo(phOverrideValue);
}
@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())
.isEqualTo(DOWNLOADER_CONNECTION_TIMEOUT_MS);
final int phOverrideValue = 923;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_DOWNLOADER_CONNECTION_TIMEOUT_MS,
Integer.toString(phOverrideValue),
false);
Flags phFlags = FlagsFactory.getFlags();
assertThat(phFlags.getDownloaderConnectionTimeoutMs()).isEqualTo(phOverrideValue);
Flags flags = FlagsFactory.getFlagsForTest();
assertThat(flags.getDownloaderConnectionTimeoutMs())
.isEqualTo(DOWNLOADER_CONNECTION_TIMEOUT_MS);
}
@Test
public void testGetDownloaderReadTimeoutMs() {
// without any overriding, the value is hard coded constant
assertThat(FlagsFactory.getFlags().getDownloaderReadTimeoutMs())
.isEqualTo(DOWNLOADER_READ_TIMEOUT_MS);
final int phOverrideValue = 349;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_DOWNLOADER_READ_TIMEOUT_MS,
Integer.toString(phOverrideValue),
false);
Flags phFlags = FlagsFactory.getFlags();
assertThat(phFlags.getDownloaderReadTimeoutMs()).isEqualTo(phOverrideValue);
Flags flags = FlagsFactory.getFlagsForTest();
assertThat(flags.getDownloaderReadTimeoutMs()).isEqualTo(DOWNLOADER_READ_TIMEOUT_MS);
}
@Test
public void testGetDownloaderMaxDownloadThreads() {
// without any overriding, the value is hard coded constant
assertThat(FlagsFactory.getFlags().getDownloaderMaxDownloadThreads())
.isEqualTo(DOWNLOADER_MAX_DOWNLOAD_THREADS);
final int phOverrideValue = 5;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_DOWNLOADER_MAX_DOWNLOAD_THREADS,
Integer.toString(phOverrideValue),
false);
Flags phFlags = FlagsFactory.getFlags();
assertThat(phFlags.getDownloaderMaxDownloadThreads()).isEqualTo(phOverrideValue);
Flags flags = FlagsFactory.getFlagsForTest();
assertThat(flags.getDownloaderMaxDownloadThreads())
.isEqualTo(DOWNLOADER_MAX_DOWNLOAD_THREADS);
}
@Test
public void testGetMeasurementEventMainReportingJobPeriodMs() {
// Without any overriding, the value is the hard coded constant.
assertThat(FlagsFactory.getFlags().getMeasurementEventMainReportingJobPeriodMs())
.isEqualTo(MEASUREMENT_EVENT_MAIN_REPORTING_JOB_PERIOD_MS);
final long phOverridingValue = 8;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_MEASUREMENT_EVENT_MAIN_REPORTING_JOB_PERIOD_MS,
Long.toString(phOverridingValue),
/* makeDefault */ false);
Flags phFlags = FlagsFactory.getFlags();
assertThat(phFlags.getMeasurementEventMainReportingJobPeriodMs())
.isEqualTo(phOverridingValue);
Flags flags = FlagsFactory.getFlagsForTest();
assertThat(flags.getMeasurementEventMainReportingJobPeriodMs())
.isEqualTo(MEASUREMENT_EVENT_MAIN_REPORTING_JOB_PERIOD_MS);
}
@Test
public void testGetMeasurementEventFallbackReportingJobPeriodMs() {
// Without any overriding, the value is the hard coded constant.
assertThat(FlagsFactory.getFlags().getMeasurementEventFallbackReportingJobPeriodMs())
.isEqualTo(MEASUREMENT_EVENT_FALLBACK_REPORTING_JOB_PERIOD_MS);
final long phOverridingValue = 8;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_MEASUREMENT_EVENT_FALLBACK_REPORTING_JOB_PERIOD_MS,
Long.toString(phOverridingValue),
/* makeDefault */ false);
Flags phFlags = FlagsFactory.getFlags();
assertThat(phFlags.getMeasurementEventFallbackReportingJobPeriodMs())
.isEqualTo(phOverridingValue);
Flags flags = FlagsFactory.getFlagsForTest();
assertThat(flags.getMeasurementEventFallbackReportingJobPeriodMs())
.isEqualTo(MEASUREMENT_EVENT_FALLBACK_REPORTING_JOB_PERIOD_MS);
}
@Test
public void testGetMeasurementAggregateEncryptionKeyCoordinatorUrl() {
// Without any overriding, the value is the hard coded constant.
assertThat(FlagsFactory.getFlags().getMeasurementAggregateEncryptionKeyCoordinatorUrl())
.isEqualTo(MEASUREMENT_AGGREGATE_ENCRYPTION_KEY_COORDINATOR_URL);
final String phOverridingValue = "testCoordinatorUrl";
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_MEASUREMENT_AGGREGATE_ENCRYPTION_KEY_COORDINATOR_URL,
phOverridingValue,
/* makeDefault */ false);
Flags phFlags = FlagsFactory.getFlags();
assertThat(phFlags.getMeasurementAggregateEncryptionKeyCoordinatorUrl())
.isEqualTo(phOverridingValue);
Flags flags = FlagsFactory.getFlagsForTest();
assertThat(flags.getMeasurementAggregateEncryptionKeyCoordinatorUrl())
.isEqualTo(MEASUREMENT_AGGREGATE_ENCRYPTION_KEY_COORDINATOR_URL);
}
@Test
public void testGetMeasurementAggregateMainReportingJobPeriodMs() {
// Without any overriding, the value is the hard coded constant.
assertThat(FlagsFactory.getFlags().getMeasurementAggregateMainReportingJobPeriodMs())
.isEqualTo(MEASUREMENT_AGGREGATE_MAIN_REPORTING_JOB_PERIOD_MS);
final long phOverridingValue = 8;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_MEASUREMENT_AGGREGATE_MAIN_REPORTING_JOB_PERIOD_MS,
Long.toString(phOverridingValue),
/* makeDefault */ false);
Flags phFlags = FlagsFactory.getFlags();
assertThat(phFlags.getMeasurementAggregateMainReportingJobPeriodMs())
.isEqualTo(phOverridingValue);
Flags flags = FlagsFactory.getFlagsForTest();
assertThat(flags.getMeasurementAggregateMainReportingJobPeriodMs())
.isEqualTo(MEASUREMENT_AGGREGATE_MAIN_REPORTING_JOB_PERIOD_MS);
}
@Test
public void testGetMeasurementAggregateFallbackReportingJobPeriodMs() {
// Without any overriding, the value is the hard coded constant.
assertThat(FlagsFactory.getFlags().getMeasurementAggregateFallbackReportingJobPeriodMs())
.isEqualTo(MEASUREMENT_AGGREGATE_FALLBACK_REPORTING_JOB_PERIOD_MS);
final long phOverridingValue = 8;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_MEASUREMENT_AGGREGATE_FALLBACK_REPORTING_JOB_PERIOD_MS,
Long.toString(phOverridingValue),
/* makeDefault */ false);
Flags phFlags = FlagsFactory.getFlags();
assertThat(phFlags.getMeasurementAggregateFallbackReportingJobPeriodMs())
.isEqualTo(phOverridingValue);
Flags flags = FlagsFactory.getFlagsForTest();
assertThat(flags.getMeasurementAggregateFallbackReportingJobPeriodMs())
.isEqualTo(MEASUREMENT_AGGREGATE_FALLBACK_REPORTING_JOB_PERIOD_MS);
}
@Test
public void testGetMeasurementDbSizeLimit() {
// Without any overriding, the value is the hard coded constant.
assertThat(FlagsFactory.getFlags().getMeasurementDbSizeLimit())
.isEqualTo(MEASUREMENT_DB_SIZE_LIMIT);
final long phOverridingValue = 1024 * 1024 * 5;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_MEASUREMENT_DB_SIZE_LIMIT,
Long.toString(phOverridingValue),
/* makeDefault */ false);
Flags phFlags = FlagsFactory.getFlags();
assertThat(phFlags.getMeasurementDbSizeLimit()).isEqualTo(phOverridingValue);
Flags flags = FlagsFactory.getFlagsForTest();
assertThat(flags.getMeasurementDbSizeLimit()).isEqualTo(MEASUREMENT_DB_SIZE_LIMIT);
}
@Test
public void testGetMeasurementManifestFileUrl() {
// Without any overriding, the value is the hard coded constant.
assertThat(FlagsFactory.getFlags().getMeasurementManifestFileUrl())
.isEqualTo(MEASUREMENT_MANIFEST_FILE_URL);
final String phOverridingValue = "testFileUrl";
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_MEASUREMENT_MANIFEST_FILE_URL,
phOverridingValue,
/* makeDefault */ false);
Flags phFlags = FlagsFactory.getFlags();
assertThat(phFlags.getMeasurementManifestFileUrl()).isEqualTo(phOverridingValue);
Flags flags = FlagsFactory.getFlagsForTest();
assertThat(flags.getMeasurementManifestFileUrl()).isEqualTo(MEASUREMENT_MANIFEST_FILE_URL);
}
@Test
public void testGetMeasurementNetworkConnectTimeoutMs() {
// without any overriding, the value is hard coded constant
assertThat(FlagsFactory.getFlags().getMeasurementNetworkConnectTimeoutMs())
.isEqualTo(MEASUREMENT_NETWORK_CONNECT_TIMEOUT_MS);
final int phOverrideValue = 123;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_MEASUREMENT_NETWORK_CONNECT_TIMEOUT_MS,
Integer.toString(phOverrideValue),
false);
Flags phFlags = FlagsFactory.getFlags();
assertThat(phFlags.getMeasurementNetworkConnectTimeoutMs()).isEqualTo(phOverrideValue);
}
@Test
public void testGetMeasurementNetworkReadTimeoutMs() {
// without any overriding, the value is hard coded constant
assertThat(FlagsFactory.getFlags().getMeasurementNetworkReadTimeoutMs())
.isEqualTo(MEASUREMENT_NETWORK_READ_TIMEOUT_MS);
final int phOverrideValue = 123;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_MEASUREMENT_NETWORK_READ_TIMEOUT_MS,
Integer.toString(phOverrideValue),
false);
Flags phFlags = FlagsFactory.getFlags();
assertThat(phFlags.getMeasurementNetworkReadTimeoutMs()).isEqualTo(phOverrideValue);
}
@Test
public void testGetMeasurementIsClickVerificationEnabled() {
// Without any overriding, the value is the hard coded constant.
assertThat(FlagsFactory.getFlags().getMeasurementIsClickVerificationEnabled())
.isEqualTo(MEASUREMENT_IS_CLICK_VERIFICATION_ENABLED);
final boolean phOverridingValue = false;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_MEASUREMENT_IS_CLICK_VERIFICATION_ENABLED,
Boolean.toString(phOverridingValue),
/* makeDefault */ false);
Flags phFlags = FlagsFactory.getFlags();
assertThat(phFlags.getMeasurementIsClickVerificationEnabled()).isFalse();
}
@Test
public void testGetMeasurementRegistrationInputEventValidWindowMs() {
// Without any overriding, the value is the hard coded constant.
assertThat(FlagsFactory.getFlags().getMeasurementRegistrationInputEventValidWindowMs())
.isEqualTo(MEASUREMENT_REGISTRATION_INPUT_EVENT_VALID_WINDOW_MS);
final long phOverridingValue = 8;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_MEASUREMENT_REGISTRATION_INPUT_EVENT_VALID_WINDOW_MS,
Long.toString(phOverridingValue),
/* makeDefault */ false);
Flags phFlags = FlagsFactory.getFlags();
assertThat(phFlags.getMeasurementRegistrationInputEventValidWindowMs())
.isEqualTo(phOverridingValue);
}
@Test
public void testGetFledgeCustomAudienceMaxCount() {
// Without any overriding, the value is the hard coded constant.
assertThat(FlagsFactory.getFlags().getFledgeCustomAudienceMaxCount())
.isEqualTo(FLEDGE_CUSTOM_AUDIENCE_MAX_COUNT);
final long phOverridingValue = 100L;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_FLEDGE_CUSTOM_AUDIENCE_MAX_COUNT,
Long.toString(phOverridingValue),
/* makeDefault */ false);
Flags phFlags = FlagsFactory.getFlags();
assertThat(phFlags.getFledgeCustomAudienceMaxCount()).isEqualTo(phOverridingValue);
}
@Test
public void testGetFledgeCustomAudiencePerAppMaxCount() {
// Without any overriding, the value is the hard coded constant.
assertThat(FlagsFactory.getFlags().getFledgeCustomAudiencePerAppMaxCount())
.isEqualTo(FLEDGE_CUSTOM_AUDIENCE_PER_APP_MAX_COUNT);
final long phOverridingValue = 100L;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_FLEDGE_CUSTOM_AUDIENCE_PER_APP_MAX_COUNT,
Long.toString(phOverridingValue),
/* makeDefault */ false);
Flags phFlags = FlagsFactory.getFlags();
assertThat(phFlags.getFledgeCustomAudiencePerAppMaxCount()).isEqualTo(phOverridingValue);
}
@Test
public void testGetFledgeCustomAudienceMaxOwnerCount() {
// Without any overriding, the value is the hard coded constant.
assertThat(FlagsFactory.getFlags().getFledgeCustomAudienceMaxOwnerCount())
.isEqualTo(FLEDGE_CUSTOM_AUDIENCE_MAX_OWNER_COUNT);
final long phOverridingValue = 100L;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_FLEDGE_CUSTOM_AUDIENCE_MAX_OWNER_COUNT,
Long.toString(phOverridingValue),
/* makeDefault */ false);
Flags phFlags = FlagsFactory.getFlags();
assertThat(phFlags.getFledgeCustomAudienceMaxOwnerCount()).isEqualTo(phOverridingValue);
}
@Test
public void testGetFledgeCustomAudienceDefaultExpireInMs() {
// Without any overriding, the value is the hard coded constant.
assertThat(FlagsFactory.getFlags().getFledgeCustomAudienceDefaultExpireInMs())
.isEqualTo(FLEDGE_CUSTOM_AUDIENCE_DEFAULT_EXPIRE_IN_MS);
final long phOverridingValue = 100L;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_FLEDGE_CUSTOM_AUDIENCE_DEFAULT_EXPIRE_IN_MS,
Long.toString(phOverridingValue),
/* makeDefault */ false);
Flags phFlags = FlagsFactory.getFlags();
assertThat(phFlags.getFledgeCustomAudienceDefaultExpireInMs()).isEqualTo(phOverridingValue);
}
@Test
public void testGetFledgeCustomAudienceMaxActivationDelayInMs() {
// Without any overriding, the value is the hard coded constant.
assertThat(FlagsFactory.getFlags().getFledgeCustomAudienceMaxActivationDelayInMs())
.isEqualTo(FLEDGE_CUSTOM_AUDIENCE_MAX_ACTIVATION_DELAY_IN_MS);
final long phOverridingValue = 100L;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_FLEDGE_CUSTOM_AUDIENCE_MAX_ACTIVATION_DELAY_IN_MS,
Long.toString(phOverridingValue),
/* makeDefault */ false);
Flags phFlags = FlagsFactory.getFlags();
assertThat(phFlags.getFledgeCustomAudienceMaxActivationDelayInMs())
.isEqualTo(phOverridingValue);
}
@Test
public void testGetFledgeCustomAudienceMaxExpireInMs() {
// Without any overriding, the value is the hard coded constant.
assertThat(FlagsFactory.getFlags().getFledgeCustomAudienceMaxExpireInMs())
.isEqualTo(FLEDGE_CUSTOM_AUDIENCE_MAX_EXPIRE_IN_MS);
final long phOverridingValue = 100L;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_FLEDGE_CUSTOM_AUDIENCE_MAX_EXPIRE_IN_MS,
Long.toString(phOverridingValue),
/* makeDefault */ false);
Flags phFlags = FlagsFactory.getFlags();
assertThat(phFlags.getFledgeCustomAudienceMaxExpireInMs()).isEqualTo(phOverridingValue);
}
@Test
public void testGetFledgeCustomAudienceMaxNameSizeB() {
// Without any overriding, the value is the hard coded constant.
assertThat(FlagsFactory.getFlags().getFledgeCustomAudienceMaxNameSizeB())
.isEqualTo(FLEDGE_CUSTOM_AUDIENCE_MAX_NAME_SIZE_B);
final int phOverridingValue = 234;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_FLEDGE_CUSTOM_AUDIENCE_MAX_NAME_SIZE_B,
Integer.toString(phOverridingValue),
/* makeDefault */ false);
Flags phFlags = FlagsFactory.getFlags();
assertThat(phFlags.getFledgeCustomAudienceMaxNameSizeB()).isEqualTo(phOverridingValue);
}
@Test
public void testGetFledgeCustomAudienceMaxDailyUpdateUriSizeB() {
// Without any overriding, the value is the hard coded constant.
assertThat(FlagsFactory.getFlags().getFledgeCustomAudienceMaxDailyUpdateUriSizeB())
.isEqualTo(FLEDGE_CUSTOM_AUDIENCE_MAX_DAILY_UPDATE_URI_SIZE_B);
final int phOverridingValue = 234;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_FLEDGE_CUSTOM_AUDIENCE_MAX_DAILY_UPDATE_URI_SIZE_B,
Integer.toString(phOverridingValue),
/* makeDefault */ false);
Flags phFlags = FlagsFactory.getFlags();
assertThat(phFlags.getFledgeCustomAudienceMaxDailyUpdateUriSizeB())
.isEqualTo(phOverridingValue);
}
@Test
public void testGetFledgeCustomAudienceMaxBiddingLogicUriSizeB() {
// Without any overriding, the value is the hard coded constant.
assertThat(FlagsFactory.getFlags().getFledgeCustomAudienceMaxBiddingLogicUriSizeB())
.isEqualTo(FLEDGE_CUSTOM_AUDIENCE_MAX_BIDDING_LOGIC_URI_SIZE_B);
final int phOverridingValue = 234;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_FLEDGE_CUSTOM_AUDIENCE_MAX_BIDDING_LOGIC_URI_SIZE_B,
Integer.toString(phOverridingValue),
/* makeDefault */ false);
Flags phFlags = FlagsFactory.getFlags();
assertThat(phFlags.getFledgeCustomAudienceMaxBiddingLogicUriSizeB())
.isEqualTo(phOverridingValue);
}
@Test
public void testGetFledgeCustomAudienceMaxUserBiddingSignalsSizeB() {
// Without any overriding, the value is the hard coded constant.
assertThat(FlagsFactory.getFlags().getFledgeCustomAudienceMaxUserBiddingSignalsSizeB())
.isEqualTo(FLEDGE_CUSTOM_AUDIENCE_MAX_USER_BIDDING_SIGNALS_SIZE_B);
final int phOverridingValue = 234;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_FLEDGE_CUSTOM_AUDIENCE_MAX_USER_BIDDING_SIGNALS_SIZE_B,
Integer.toString(phOverridingValue),
/* makeDefault */ false);
Flags phFlags = FlagsFactory.getFlags();
assertThat(phFlags.getFledgeCustomAudienceMaxUserBiddingSignalsSizeB())
.isEqualTo(phOverridingValue);
}
@Test
public void testGetFledgeCustomAudienceMaxTrustedBiddingDataSizeB() {
// Without any overriding, the value is the hard coded constant.
assertThat(FlagsFactory.getFlags().getFledgeCustomAudienceMaxTrustedBiddingDataSizeB())
.isEqualTo(FLEDGE_CUSTOM_AUDIENCE_MAX_TRUSTED_BIDDING_DATA_SIZE_B);
final int phOverridingValue = 123;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_FLEDGE_CUSTOM_AUDIENCE_MAX_TRUSTED_BIDDING_DATA_SIZE_B,
Integer.toString(phOverridingValue),
/* makeDefault */ false);
Flags phFlags = FlagsFactory.getFlags();
assertThat(phFlags.getFledgeCustomAudienceMaxTrustedBiddingDataSizeB())
.isEqualTo(phOverridingValue);
}
@Test
public void testGetFledgeCustomAudienceMaxAdsSizeB() {
// Without any overriding, the value is the hard coded constant.
assertThat(FlagsFactory.getFlags().getFledgeCustomAudienceMaxAdsSizeB())
.isEqualTo(FLEDGE_CUSTOM_AUDIENCE_MAX_ADS_SIZE_B);
final int phOverridingValue = 345;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_FLEDGE_CUSTOM_AUDIENCE_MAX_ADS_SIZE_B,
Integer.toString(phOverridingValue),
/* makeDefault */ false);
Flags phFlags = FlagsFactory.getFlags();
assertThat(phFlags.getFledgeCustomAudienceMaxAdsSizeB()).isEqualTo(phOverridingValue);
}
@Test
public void testGetFledgeCustomAudienceMaxNumAds() {
// Without any overriding, the value is the hard coded constant.
assertThat(FlagsFactory.getFlags().getFledgeCustomAudienceMaxNumAds())
.isEqualTo(FLEDGE_CUSTOM_AUDIENCE_MAX_NUM_ADS);
final int phOverridingValue = 876;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_FLEDGE_CUSTOM_AUDIENCE_MAX_NUM_ADS,
Integer.toString(phOverridingValue),
/* makeDefault */ false);
Flags phFlags = FlagsFactory.getFlags();
assertThat(phFlags.getFledgeCustomAudienceMaxNumAds()).isEqualTo(phOverridingValue);
}
@Test
public void testGetFledgeBackgroundFetchJobPeriodMs() {
// Without any overriding, the value is the hard coded constant.
assertThat(FlagsFactory.getFlags().getFledgeBackgroundFetchJobPeriodMs())
.isEqualTo(FLEDGE_BACKGROUND_FETCH_JOB_PERIOD_MS);
final long phOverridingValue = 100L;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_FLEDGE_BACKGROUND_FETCH_JOB_PERIOD_MS,
Long.toString(phOverridingValue),
/* makeDefault */ false);
Flags phFlags = FlagsFactory.getFlags();
assertThat(phFlags.getFledgeBackgroundFetchJobPeriodMs()).isEqualTo(phOverridingValue);
}
@Test
public void testGetFledgeBackgroundFetchEnabled() {
// Without any overriding, the value is the hard coded constant.
assertThat(FlagsFactory.getFlags().getFledgeBackgroundFetchEnabled())
.isEqualTo(FLEDGE_BACKGROUND_FETCH_ENABLED);
final boolean phOverridingValue = false;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_FLEDGE_BACKGROUND_FETCH_ENABLED,
Boolean.toString(phOverridingValue),
/* makeDefault */ false);
Flags phFlags = FlagsFactory.getFlags();
assertThat(phFlags.getFledgeBackgroundFetchEnabled()).isEqualTo(phOverridingValue);
}
@Test
public void testGetFledgeBackgroundFetchJobFlexMs() {
// Without any overriding, the value is the hard coded constant.
assertThat(FlagsFactory.getFlags().getFledgeBackgroundFetchJobFlexMs())
.isEqualTo(FLEDGE_BACKGROUND_FETCH_JOB_FLEX_MS);
final long phOverridingValue = 20L;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_FLEDGE_BACKGROUND_FETCH_JOB_FLEX_MS,
Long.toString(phOverridingValue),
/* makeDefault */ false);
Flags phFlags = FlagsFactory.getFlags();
assertThat(phFlags.getFledgeBackgroundFetchJobFlexMs()).isEqualTo(phOverridingValue);
}
@Test
public void testGetFledgeBackgroundFetchJobMaxRuntimeMs() {
// Without any overriding, the value is the hard coded constant.
assertThat(FlagsFactory.getFlags().getFledgeBackgroundFetchJobMaxRuntimeMs())
.isEqualTo(FLEDGE_BACKGROUND_FETCH_JOB_MAX_RUNTIME_MS);
final long phOverridingValue = 200L;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_FLEDGE_BACKGROUND_FETCH_JOB_MAX_RUNTIME_MS,
Long.toString(phOverridingValue),
/* makeDefault */ false);
Flags phFlags = FlagsFactory.getFlags();
assertThat(phFlags.getFledgeBackgroundFetchJobMaxRuntimeMs()).isEqualTo(phOverridingValue);
}
@Test
public void testGetFledgeBackgroundFetchMaxNumUpdated() {
// Without any overriding, the value is the hard coded constant.
assertThat(FlagsFactory.getFlags().getFledgeBackgroundFetchMaxNumUpdated())
.isEqualTo(FLEDGE_BACKGROUND_FETCH_MAX_NUM_UPDATED);
final long phOverridingValue = 25L;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_FLEDGE_BACKGROUND_FETCH_MAX_NUM_UPDATED,
Long.toString(phOverridingValue),
/* makeDefault */ false);
Flags phFlags = FlagsFactory.getFlags();
assertThat(phFlags.getFledgeBackgroundFetchMaxNumUpdated()).isEqualTo(phOverridingValue);
}
@Test
public void testGetFledgeBackgroundFetchThreadPoolSize() {
// Without any overriding, the value is the hard coded constant.
assertThat(FlagsFactory.getFlags().getFledgeBackgroundFetchThreadPoolSize())
.isEqualTo(FLEDGE_BACKGROUND_FETCH_THREAD_POOL_SIZE);
final int phOverridingValue = 3;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_FLEDGE_BACKGROUND_FETCH_THREAD_POOL_SIZE,
Integer.toString(phOverridingValue),
/* makeDefault */ false);
Flags phFlags = FlagsFactory.getFlags();
assertThat(phFlags.getFledgeBackgroundFetchThreadPoolSize()).isEqualTo(phOverridingValue);
}
@Test
public void testGetFledgeBackgroundFetchEligibleUpdateBaseIntervalS() {
// Without any overriding, the value is the hard coded constant.
assertThat(FlagsFactory.getFlags().getFledgeBackgroundFetchEligibleUpdateBaseIntervalS())
.isEqualTo(FLEDGE_BACKGROUND_FETCH_ELIGIBLE_UPDATE_BASE_INTERVAL_S);
final long phOverridingValue = 54321L;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_FLEDGE_BACKGROUND_FETCH_ELIGIBLE_UPDATE_BASE_INTERVAL_S,
Long.toString(phOverridingValue),
/* makeDefault */ false);
Flags phFlags = FlagsFactory.getFlags();
assertThat(phFlags.getFledgeBackgroundFetchEligibleUpdateBaseIntervalS())
.isEqualTo(phOverridingValue);
}
@Test
public void testGetFledgeBackgroundFetchNetworkConnectTimeoutMs() {
// Without any overriding, the value is the hard coded constant.
assertThat(FlagsFactory.getFlags().getFledgeBackgroundFetchNetworkConnectTimeoutMs())
.isEqualTo(FLEDGE_BACKGROUND_FETCH_NETWORK_CONNECT_TIMEOUT_MS);
final int phOverridingValue = 99;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_FLEDGE_BACKGROUND_FETCH_NETWORK_CONNECT_TIMEOUT_MS,
Integer.toString(phOverridingValue),
/* makeDefault */ false);
Flags phFlags = FlagsFactory.getFlags();
assertThat(phFlags.getFledgeBackgroundFetchNetworkConnectTimeoutMs())
.isEqualTo(phOverridingValue);
}
@Test
public void testGetFledgeBackgroundFetchNetworkReadTimeoutMs() {
// Without any overriding, the value is the hard coded constant.
assertThat(FlagsFactory.getFlags().getFledgeBackgroundFetchNetworkReadTimeoutMs())
.isEqualTo(FLEDGE_BACKGROUND_FETCH_NETWORK_READ_TIMEOUT_MS);
final int phOverridingValue = 1111;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_FLEDGE_BACKGROUND_FETCH_NETWORK_READ_TIMEOUT_MS,
Integer.toString(phOverridingValue),
/* makeDefault */ false);
Flags phFlags = FlagsFactory.getFlags();
assertThat(phFlags.getFledgeBackgroundFetchNetworkReadTimeoutMs())
.isEqualTo(phOverridingValue);
}
@Test
public void testGetFledgeBackgroundFetchMaxResponseSizeB() {
// Without any overriding, the value is the hard coded constant.
assertThat(FlagsFactory.getFlags().getFledgeBackgroundFetchMaxResponseSizeB())
.isEqualTo(FLEDGE_BACKGROUND_FETCH_MAX_RESPONSE_SIZE_B);
final int phOverridingValue = 9999;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_FLEDGE_BACKGROUND_FETCH_MAX_RESPONSE_SIZE_B,
Integer.toString(phOverridingValue),
/* makeDefault */ false);
Flags phFlags = FlagsFactory.getFlags();
assertThat(phFlags.getFledgeBackgroundFetchMaxResponseSizeB()).isEqualTo(phOverridingValue);
}
@Test
public void testGetEnforceForegroundStatusForFledgeRunAdSelection() {
// Without any overriding, the value is the hard coded constant.
assertThat(FlagsFactory.getFlags().getEnforceForegroundStatusForFledgeRunAdSelection())
.isEqualTo(ENFORCE_FOREGROUND_STATUS_FLEDGE_RUN_AD_SELECTION);
final boolean phOverridingValue = !ENFORCE_FOREGROUND_STATUS_FLEDGE_RUN_AD_SELECTION;
PhFlagsFixture.overrideForegroundStatusForFledgeRunAdSelection(phOverridingValue);
Flags phFlags = FlagsFactory.getFlags();
assertThat(phFlags.getEnforceForegroundStatusForFledgeRunAdSelection())
.isEqualTo(phOverridingValue);
}
@Test
public void testGetEnforceForegroundStatusForFledgeReportImpression() {
// Without any overriding, the value is the hard coded constant.
assertThat(FlagsFactory.getFlags().getEnforceForegroundStatusForFledgeReportImpression())
.isEqualTo(ENFORCE_FOREGROUND_STATUS_FLEDGE_REPORT_IMPRESSION);
final boolean phOverridingValue = !ENFORCE_FOREGROUND_STATUS_FLEDGE_REPORT_IMPRESSION;
PhFlagsFixture.overrideForegroundStatusForFledgeReportImpression(phOverridingValue);
Flags phFlags = FlagsFactory.getFlags();
assertThat(phFlags.getEnforceForegroundStatusForFledgeReportImpression())
.isEqualTo(phOverridingValue);
}
@Test
public void testEnforceForegroundStatusForFledgeOverrides() {
// Without any overriding, the value is the hard coded constant.
assertThat(FlagsFactory.getFlags().getEnforceForegroundStatusForFledgeOverrides())
.isEqualTo(ENFORCE_FOREGROUND_STATUS_FLEDGE_OVERRIDES);
final boolean phOverridingValue = !ENFORCE_FOREGROUND_STATUS_FLEDGE_OVERRIDES;
PhFlagsFixture.overrideForegroundStatusForFledgeOverrides(phOverridingValue);
Flags phFlags = FlagsFactory.getFlags();
assertThat(phFlags.getEnforceForegroundStatusForFledgeOverrides())
.isEqualTo(phOverridingValue);
}
@Test
public void testEnforceForegroundStatusForFledgeCustomAudience() {
// Without any overriding, the value is the hard coded constant.
assertThat(FlagsFactory.getFlags().getEnforceForegroundStatusForFledgeCustomAudience())
.isEqualTo(ENFORCE_FOREGROUND_STATUS_FLEDGE_CUSTOM_AUDIENCE);
final boolean phOverridingValue = !ENFORCE_FOREGROUND_STATUS_FLEDGE_CUSTOM_AUDIENCE;
PhFlagsFixture.overrideForegroundStatusForFledgeCustomAudience(phOverridingValue);
Flags phFlags = FlagsFactory.getFlags();
assertThat(phFlags.getEnforceForegroundStatusForFledgeCustomAudience())
.isEqualTo(phOverridingValue);
}
@Test
public void testGetEnforceForegroundStatusForMeasurementDeleteRegistrations() {
// without any overriding, the value is hard coded constant
assertThat(
FlagsFactory.getFlags()
.getEnforceForegroundStatusForMeasurementDeleteRegistrations())
.isEqualTo(MEASUREMENT_ENFORCE_FOREGROUND_STATUS_DELETE_REGISTRATIONS);
final boolean phOverrideValue = true;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_MEASUREMENT_ENFORCE_FOREGROUND_STATUS_DELETE_REGISTRATIONS,
Boolean.toString(phOverrideValue),
false);
Flags phFlags = FlagsFactory.getFlags();
assertThat(phFlags.getEnforceForegroundStatusForMeasurementDeleteRegistrations())
.isEqualTo(phOverrideValue);
Flags flags = FlagsFactory.getFlagsForTest();
assertThat(flags.getEnforceForegroundStatusForMeasurementDeleteRegistrations())
.isEqualTo(MEASUREMENT_ENFORCE_FOREGROUND_STATUS_DELETE_REGISTRATIONS);
}
@Test
public void testGetEnforceForegroundStatusForMeasurementRegisterSource() {
// without any overriding, the value is hard coded constant
assertThat(FlagsFactory.getFlags().getEnforceForegroundStatusForMeasurementRegisterSource())
.isEqualTo(MEASUREMENT_ENFORCE_FOREGROUND_STATUS_REGISTER_SOURCE);
final boolean phOverrideValue = true;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_MEASUREMENT_ENFORCE_FOREGROUND_STATUS_REGISTER_SOURCE,
Boolean.toString(phOverrideValue),
false);
Flags phFlags = FlagsFactory.getFlags();
assertThat(phFlags.getEnforceForegroundStatusForMeasurementRegisterSource())
.isEqualTo(phOverrideValue);
Flags flags = FlagsFactory.getFlagsForTest();
assertThat(flags.getEnforceForegroundStatusForMeasurementRegisterSource())
.isEqualTo(MEASUREMENT_ENFORCE_FOREGROUND_STATUS_REGISTER_SOURCE);
}
@Test
public void testGetEnforceForegroundStatusForMeasurementRegisterTrigger() {
// without any overriding, the value is hard coded constant
assertThat(
FlagsFactory.getFlags()
.getEnforceForegroundStatusForMeasurementRegisterTrigger())
.isEqualTo(MEASUREMENT_ENFORCE_FOREGROUND_STATUS_REGISTER_TRIGGER);
final boolean phOverrideValue = true;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_MEASUREMENT_ENFORCE_FOREGROUND_STATUS_REGISTER_TRIGGER,
Boolean.toString(phOverrideValue),
false);
Flags phFlags = FlagsFactory.getFlags();
assertThat(phFlags.getEnforceForegroundStatusForMeasurementRegisterTrigger())
.isEqualTo(phOverrideValue);
Flags flags = FlagsFactory.getFlagsForTest();
assertThat(flags.getEnforceForegroundStatusForMeasurementRegisterTrigger())
.isEqualTo(MEASUREMENT_ENFORCE_FOREGROUND_STATUS_REGISTER_TRIGGER);
}
@Test
public void testGetEnforceForegroundStatusForMeasurementRegisterWebSource() {
// without any overriding, the value is hard coded constant
assertThat(
FlagsFactory.getFlags()
.getEnforceForegroundStatusForMeasurementRegisterWebSource())
.isEqualTo(MEASUREMENT_ENFORCE_FOREGROUND_STATUS_REGISTER_WEB_SOURCE);
final boolean phOverrideValue = true;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_MEASUREMENT_ENFORCE_FOREGROUND_STATUS_REGISTER_WEB_SOURCE,
Boolean.toString(phOverrideValue),
false);
Flags phFlags = FlagsFactory.getFlags();
assertThat(phFlags.getEnforceForegroundStatusForMeasurementRegisterWebSource())
.isEqualTo(phOverrideValue);
Flags flags = FlagsFactory.getFlagsForTest();
assertThat(flags.getEnforceForegroundStatusForMeasurementRegisterWebSource())
.isEqualTo(MEASUREMENT_ENFORCE_FOREGROUND_STATUS_REGISTER_WEB_SOURCE);
}
@Test
public void testGetEnforceForegroundStatusForMeasurementRegisterWebTrigger() {
// without any overriding, the value is hard coded constant
assertThat(
FlagsFactory.getFlags()
.getEnforceForegroundStatusForMeasurementRegisterWebTrigger())
.isEqualTo(MEASUREMENT_ENFORCE_FOREGROUND_STATUS_REGISTER_WEB_TRIGGER);
final boolean phOverrideValue = true;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_MEASUREMENT_ENFORCE_FOREGROUND_STATUS_REGISTER_WEB_TRIGGER,
Boolean.toString(phOverrideValue),
false);
Flags phFlags = FlagsFactory.getFlags();
assertThat(phFlags.getEnforceForegroundStatusForMeasurementRegisterWebTrigger())
.isEqualTo(phOverrideValue);
Flags flags = FlagsFactory.getFlagsForTest();
assertThat(flags.getEnforceForegroundStatusForMeasurementRegisterWebTrigger())
.isEqualTo(MEASUREMENT_ENFORCE_FOREGROUND_STATUS_REGISTER_WEB_TRIGGER);
}
@Test
public void testGetEnforceForegroundStatusForMeasurementStatus() {
// without any overriding, the value is hard coded constant
assertThat(FlagsFactory.getFlags().getEnforceForegroundStatusForMeasurementStatus())
.isEqualTo(MEASUREMENT_ENFORCE_FOREGROUND_STATUS_GET_STATUS);
final boolean phOverrideValue = true;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_MEASUREMENT_ENFORCE_FOREGROUND_STATUS_GET_STATUS,
Boolean.toString(phOverrideValue),
false);
Flags phFlags = FlagsFactory.getFlags();
assertThat(phFlags.getEnforceForegroundStatusForMeasurementStatus())
.isEqualTo(phOverrideValue);
Flags flags = FlagsFactory.getFlagsForTest();
assertThat(flags.getEnforceForegroundStatusForMeasurementStatus())
.isEqualTo(MEASUREMENT_ENFORCE_FOREGROUND_STATUS_GET_STATUS);
}
@Test
public void testGetGlobalKillSwitch() {
// Without any overriding, the value is the hard coded constant.
assertThat(FlagsFactory.getFlags().getGlobalKillSwitch()).isEqualTo(GLOBAL_KILL_SWITCH);
// Now overriding with the value from PH.
final boolean phOverridingValue = true;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_GLOBAL_KILL_SWITCH,
Boolean.toString(phOverridingValue),
/* makeDefault */ false);
Flags phFlags = FlagsFactory.getFlags();
assertThat(phFlags.getGlobalKillSwitch()).isEqualTo(phOverridingValue);
}
@Test
public void testGetAdServicesEnabled() {
// Without any overriding, the value is the hard coded constant.
assertThat(FlagsFactory.getFlags().getAdServicesEnabled()).isEqualTo(ADSERVICES_ENABLED);
// Now overriding with the value from PH.
final boolean phOverridingValue = true;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_ADSERVICES_ENABLED,
Boolean.toString(phOverridingValue),
/* makeDefault */ false);
Flags phFlags = FlagsFactory.getFlags();
assertThat(phFlags.getAdServicesEnabled()).isEqualTo(phOverridingValue);
}
@Test
public void testGetAdServicesEnabledWhenGlobalKillSwitchOn() {
// Without any overriding, the value is the hard coded constant.
assertThat(FlagsFactory.getFlags().getAdServicesEnabled()).isEqualTo(ADSERVICES_ENABLED);
// Now overriding with the value from PH.
final boolean phOverridingValue = true;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_ADSERVICES_ENABLED,
Boolean.toString(phOverridingValue),
/* makeDefault */ false);
// enable global kill switch ->
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_GLOBAL_KILL_SWITCH,
Boolean.toString(true),
/* makeDefault */ false);
Flags phFlags = FlagsFactory.getFlags();
assertThat(phFlags.getAdServicesEnabled()).isFalse();
}
@Test
public void testMeasurementKillSwitch() {
// Without any overriding, the value is the hard coded constant.
assertThat(FlagsFactory.getFlags().getMeasurementKillSwitch())
.isEqualTo(MEASUREMENT_KILL_SWITCH);
// Now overriding with the value from PH.
final boolean phOverridingValue = true;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_MEASUREMENT_KILL_SWITCH,
Boolean.toString(phOverridingValue),
/* makeDefault */ false);
Flags phFlags = FlagsFactory.getFlags();
assertThat(phFlags.getMeasurementKillSwitch()).isEqualTo(phOverridingValue);
Flags flags = FlagsFactory.getFlagsForTest();
assertThat(flags.getMeasurementApiDeleteRegistrationsKillSwitch())
.isEqualTo(MEASUREMENT_KILL_SWITCH);
}
@Test
public void testMeasurementKillSwitch_globalOverride() {
// Without any overriding, the value is the hard coded constant.
assertThat(FlagsFactory.getFlags().getMeasurementKillSwitch())
.isEqualTo(MEASUREMENT_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.getMeasurementKillSwitch()).isEqualTo(phOverrideValue);
}
@Test
public void testGetMeasurementApiDeleteRegistrationsKillSwitch() {
// without any overriding, the value is hard coded constant
assertThat(FlagsFactory.getFlags().getMeasurementApiDeleteRegistrationsKillSwitch())
.isEqualTo(MEASUREMENT_API_DELETE_REGISTRATIONS_KILL_SWITCH);
final boolean phOverrideValue = true;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_MEASUREMENT_API_DELETE_REGISTRATIONS_KILL_SWITCH,
Boolean.toString(phOverrideValue),
false);
Flags phFlags = FlagsFactory.getFlags();
assertThat(phFlags.getMeasurementApiDeleteRegistrationsKillSwitch())
.isEqualTo(phOverrideValue);
Flags flags = FlagsFactory.getFlagsForTest();
assertThat(flags.getMeasurementApiDeleteRegistrationsKillSwitch())
.isEqualTo(MEASUREMENT_API_DELETE_REGISTRATIONS_KILL_SWITCH);
}
@Test
public void testGetMeasurementApiDeleteRegistrationsKillSwitch_measurementOverride() {
// without any overriding, the value is hard coded constant
assertThat(FlagsFactory.getFlags().getMeasurementApiDeleteRegistrationsKillSwitch())
.isEqualTo(MEASUREMENT_API_DELETE_REGISTRATIONS_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.getMeasurementApiDeleteRegistrationsKillSwitch())
.isEqualTo(phOverrideValue);
}
@Test
public void testGetMeasurementApiDeleteRegistrationsKillSwitch_globalOverride() {
// without any overriding, the value is hard coded constant
assertThat(FlagsFactory.getFlags().getMeasurementApiDeleteRegistrationsKillSwitch())
.isEqualTo(MEASUREMENT_API_DELETE_REGISTRATIONS_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.getMeasurementApiDeleteRegistrationsKillSwitch())
.isEqualTo(phOverrideValue);
}
@Test
public void testGetMeasurementApiStatusKillSwitch() {
// without any overriding, the value is hard coded constant
assertThat(FlagsFactory.getFlags().getMeasurementApiStatusKillSwitch())
.isEqualTo(MEASUREMENT_API_STATUS_KILL_SWITCH);
final boolean phOverrideValue = true;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_MEASUREMENT_API_STATUS_KILL_SWITCH,
Boolean.toString(phOverrideValue),
false);
Flags phFlags = FlagsFactory.getFlags();
assertThat(phFlags.getMeasurementApiStatusKillSwitch()).isEqualTo(phOverrideValue);
Flags flags = FlagsFactory.getFlagsForTest();
assertThat(flags.getMeasurementApiStatusKillSwitch())
.isEqualTo(MEASUREMENT_API_STATUS_KILL_SWITCH);
}
@Test
public void testGetMeasurementApiStatusKillSwitch_measurementOverride() {
// without any overriding, the value is hard coded constant
assertThat(FlagsFactory.getFlags().getMeasurementApiStatusKillSwitch())
.isEqualTo(MEASUREMENT_API_STATUS_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.getMeasurementApiStatusKillSwitch()).isEqualTo(phOverrideValue);
}
@Test
public void testGetMeasurementApiStatusKillSwitch_globalOverride() {
// without any overriding, the value is hard coded constant
assertThat(FlagsFactory.getFlags().getMeasurementApiStatusKillSwitch())
.isEqualTo(MEASUREMENT_API_STATUS_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.getMeasurementApiStatusKillSwitch()).isEqualTo(phOverrideValue);
}
@Test
public void testGetMeasurementApiRegisterSourceKillSwitch() {
// without any overriding, the value is hard coded constant
assertThat(FlagsFactory.getFlags().getMeasurementApiRegisterSourceKillSwitch())
.isEqualTo(MEASUREMENT_API_REGISTER_SOURCE_KILL_SWITCH);
final boolean phOverrideValue = true;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_MEASUREMENT_API_REGISTER_SOURCE_KILL_SWITCH,
Boolean.toString(phOverrideValue),
false);
Flags phFlags = FlagsFactory.getFlags();
assertThat(phFlags.getMeasurementApiRegisterSourceKillSwitch()).isEqualTo(phOverrideValue);
Flags flags = FlagsFactory.getFlagsForTest();
assertThat(flags.getMeasurementApiRegisterSourceKillSwitch())
.isEqualTo(MEASUREMENT_API_REGISTER_SOURCE_KILL_SWITCH);
}
@Test
public void testGetMeasurementApiRegisterSourceKillSwitch_measurementOverride() {
// without any overriding, the value is hard coded constant
assertThat(FlagsFactory.getFlags().getMeasurementApiRegisterSourceKillSwitch())
.isEqualTo(MEASUREMENT_API_REGISTER_SOURCE_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.getMeasurementApiRegisterSourceKillSwitch()).isEqualTo(phOverrideValue);
}
@Test
public void testGetMeasurementApiRegisterSourceKillSwitch_globalOverride() {
// without any overriding, the value is hard coded constant
assertThat(FlagsFactory.getFlags().getMeasurementApiRegisterSourceKillSwitch())
.isEqualTo(MEASUREMENT_API_REGISTER_SOURCE_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.getMeasurementApiRegisterSourceKillSwitch()).isEqualTo(phOverrideValue);
}
@Test
public void testGetMeasurementApiRegisterTriggerKillSwitch() {
// without any overriding, the value is hard coded constant
assertThat(FlagsFactory.getFlags().getMeasurementApiRegisterTriggerKillSwitch())
.isEqualTo(MEASUREMENT_API_REGISTER_TRIGGER_KILL_SWITCH);
final boolean phOverrideValue = true;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_MEASUREMENT_API_REGISTER_TRIGGER_KILL_SWITCH,
Boolean.toString(phOverrideValue),
false);
Flags phFlags = FlagsFactory.getFlags();
assertThat(phFlags.getMeasurementApiRegisterTriggerKillSwitch()).isEqualTo(phOverrideValue);
Flags flags = FlagsFactory.getFlagsForTest();
assertThat(flags.getMeasurementApiRegisterTriggerKillSwitch())
.isEqualTo(MEASUREMENT_API_REGISTER_TRIGGER_KILL_SWITCH);
}
@Test
public void testGetMeasurementApiRegisterTriggerKillSwitch_measurementOverride() {
// without any overriding, the value is hard coded constant
assertThat(FlagsFactory.getFlags().getMeasurementApiRegisterTriggerKillSwitch())
.isEqualTo(MEASUREMENT_API_REGISTER_TRIGGER_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.getMeasurementApiRegisterTriggerKillSwitch()).isEqualTo(phOverrideValue);
}
@Test
public void testGetMeasurementApiRegisterTriggerKillSwitch_globalOverride() {
// without any overriding, the value is hard coded constant
assertThat(FlagsFactory.getFlags().getMeasurementApiRegisterTriggerKillSwitch())
.isEqualTo(MEASUREMENT_API_REGISTER_TRIGGER_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.getMeasurementApiRegisterTriggerKillSwitch()).isEqualTo(phOverrideValue);
}
@Test
public void testGetMeasurementApiRegisterWebSourceKillSwitch() {
// without any overriding, the value is hard coded constant
assertThat(FlagsFactory.getFlags().getMeasurementApiRegisterWebSourceKillSwitch())
.isEqualTo(MEASUREMENT_API_REGISTER_WEB_SOURCE_KILL_SWITCH);
final boolean phOverrideValue = true;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_MEASUREMENT_API_REGISTER_WEB_SOURCE_KILL_SWITCH,
Boolean.toString(phOverrideValue),
false);
Flags phFlags = FlagsFactory.getFlags();
assertThat(phFlags.getMeasurementApiRegisterWebSourceKillSwitch())
.isEqualTo(phOverrideValue);
Flags flags = FlagsFactory.getFlagsForTest();
assertThat(flags.getMeasurementApiRegisterWebSourceKillSwitch())
.isEqualTo(MEASUREMENT_API_REGISTER_WEB_SOURCE_KILL_SWITCH);
}
@Test
public void testGetMeasurementApiRegisterWebSourceKillSwitch_measurementOverride() {
// without any overriding, the value is hard coded constant
assertThat(FlagsFactory.getFlags().getMeasurementApiRegisterWebSourceKillSwitch())
.isEqualTo(MEASUREMENT_API_REGISTER_WEB_SOURCE_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.getMeasurementApiRegisterWebSourceKillSwitch())
.isEqualTo(phOverrideValue);
}
@Test
public void testGetMeasurementApiRegisterWebSourceKillSwitch_globalOverride() {
// without any overriding, the value is hard coded constant
assertThat(FlagsFactory.getFlags().getMeasurementApiRegisterWebSourceKillSwitch())
.isEqualTo(MEASUREMENT_API_REGISTER_WEB_SOURCE_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.getMeasurementApiRegisterWebSourceKillSwitch())
.isEqualTo(phOverrideValue);
}
@Test
public void testGetMeasurementApiRegisterWebTriggerKillSwitch() {
// without any overriding, the value is hard coded constant
assertThat(FlagsFactory.getFlags().getMeasurementApiRegisterWebTriggerKillSwitch())
.isEqualTo(MEASUREMENT_API_REGISTER_WEB_TRIGGER_KILL_SWITCH);
final boolean phOverrideValue = true;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_MEASUREMENT_API_REGISTER_WEB_TRIGGER_KILL_SWITCH,
Boolean.toString(phOverrideValue),
false);
Flags phFlags = FlagsFactory.getFlags();
assertThat(phFlags.getMeasurementApiRegisterWebTriggerKillSwitch())
.isEqualTo(phOverrideValue);
Flags flags = FlagsFactory.getFlagsForTest();
assertThat(flags.getMeasurementApiRegisterWebTriggerKillSwitch())
.isEqualTo(MEASUREMENT_API_REGISTER_WEB_TRIGGER_KILL_SWITCH);
}
@Test
public void testGetMeasurementApiRegisterWebTriggerKillSwitch_measurementOverride() {
// without any overriding, the value is hard coded constant
assertThat(FlagsFactory.getFlags().getMeasurementApiRegisterWebTriggerKillSwitch())
.isEqualTo(MEASUREMENT_API_REGISTER_WEB_TRIGGER_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.getMeasurementApiRegisterWebTriggerKillSwitch())
.isEqualTo(phOverrideValue);
}
@Test
public void testGetMeasurementApiRegisterWebTriggerKillSwitch_globalOverride() {
// without any overriding, the value is hard coded constant
assertThat(FlagsFactory.getFlags().getMeasurementApiRegisterWebTriggerKillSwitch())
.isEqualTo(MEASUREMENT_API_REGISTER_WEB_TRIGGER_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.getMeasurementApiRegisterWebTriggerKillSwitch())
.isEqualTo(phOverrideValue);
}
@Test
public void testGetMeasurementJobAggregateFallbackReportingKillSwitch() {
// without any overriding, the value is hard coded constant
assertThat(FlagsFactory.getFlags().getMeasurementJobAggregateFallbackReportingKillSwitch())
.isEqualTo(MEASUREMENT_JOB_AGGREGATE_FALLBACK_REPORTING_KILL_SWITCH);
final boolean phOverrideValue = true;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_MEASUREMENT_JOB_AGGREGATE_FALLBACK_REPORTING_KILL_SWITCH,
Boolean.toString(phOverrideValue),
false);
Flags phFlags = FlagsFactory.getFlags();
assertThat(phFlags.getMeasurementJobAggregateFallbackReportingKillSwitch())
.isEqualTo(phOverrideValue);
Flags flags = FlagsFactory.getFlagsForTest();
assertThat(flags.getMeasurementJobAggregateFallbackReportingKillSwitch())
.isEqualTo(MEASUREMENT_JOB_AGGREGATE_FALLBACK_REPORTING_KILL_SWITCH);
}
@Test
public void testGetMeasurementJobAggregateFallbackReportingKillSwitch_measurementOverride() {
// without any overriding, the value is hard coded constant
assertThat(FlagsFactory.getFlags().getMeasurementJobAggregateFallbackReportingKillSwitch())
.isEqualTo(MEASUREMENT_JOB_AGGREGATE_FALLBACK_REPORTING_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.getMeasurementJobAggregateFallbackReportingKillSwitch())
.isEqualTo(phOverrideValue);
}
@Test
public void testGetMeasurementJobAggregateFallbackReportingKillSwitch_globalOverride() {
// without any overriding, the value is hard coded constant
assertThat(FlagsFactory.getFlags().getMeasurementJobAggregateFallbackReportingKillSwitch())
.isEqualTo(MEASUREMENT_JOB_AGGREGATE_FALLBACK_REPORTING_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.getMeasurementJobAggregateFallbackReportingKillSwitch())
.isEqualTo(phOverrideValue);
}
@Test
public void testGetMeasurementJobAggregateReportingKillSwitch() {
// without any overriding, the value is hard coded constant
assertThat(FlagsFactory.getFlags().getMeasurementJobAggregateReportingKillSwitch())
.isEqualTo(MEASUREMENT_JOB_AGGREGATE_REPORTING_KILL_SWITCH);
final boolean phOverrideValue = true;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_MEASUREMENT_JOB_AGGREGATE_REPORTING_KILL_SWITCH,
Boolean.toString(phOverrideValue),
false);
Flags phFlags = FlagsFactory.getFlags();
assertThat(phFlags.getMeasurementJobAggregateReportingKillSwitch())
.isEqualTo(phOverrideValue);
Flags flags = FlagsFactory.getFlagsForTest();
assertThat(flags.getMeasurementJobAggregateReportingKillSwitch())
.isEqualTo(MEASUREMENT_JOB_AGGREGATE_REPORTING_KILL_SWITCH);
}
@Test
public void testGetMeasurementJobAggregateReportingKillSwitch_measurementOverride() {
// without any overriding, the value is hard coded constant
assertThat(FlagsFactory.getFlags().getMeasurementJobAggregateReportingKillSwitch())
.isEqualTo(MEASUREMENT_JOB_AGGREGATE_REPORTING_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.getMeasurementJobAggregateReportingKillSwitch())
.isEqualTo(phOverrideValue);
}
@Test
public void testGetMeasurementJobAggregateReportingKillSwitch_globalOverride() {
// without any overriding, the value is hard coded constant
assertThat(FlagsFactory.getFlags().getMeasurementJobAggregateReportingKillSwitch())
.isEqualTo(MEASUREMENT_JOB_AGGREGATE_REPORTING_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.getMeasurementJobAggregateReportingKillSwitch())
.isEqualTo(phOverrideValue);
}
@Test
public void testGetMeasurementJobAttributionKillSwitch() {
// without any overriding, the value is hard coded constant
assertThat(FlagsFactory.getFlags().getMeasurementJobAttributionKillSwitch())
.isEqualTo(MEASUREMENT_JOB_ATTRIBUTION_KILL_SWITCH);
final boolean phOverrideValue = true;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_MEASUREMENT_JOB_ATTRIBUTION_KILL_SWITCH,
Boolean.toString(phOverrideValue),
false);
Flags phFlags = FlagsFactory.getFlags();
assertThat(phFlags.getMeasurementJobAttributionKillSwitch()).isEqualTo(phOverrideValue);
Flags flags = FlagsFactory.getFlagsForTest();
assertThat(flags.getMeasurementJobAttributionKillSwitch())
.isEqualTo(MEASUREMENT_JOB_ATTRIBUTION_KILL_SWITCH);
}
@Test
public void testGetMeasurementJobAttributionKillSwitch_measurementOverride() {
// without any overriding, the value is hard coded constant
assertThat(FlagsFactory.getFlags().getMeasurementJobAttributionKillSwitch())
.isEqualTo(MEASUREMENT_JOB_ATTRIBUTION_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.getMeasurementJobAttributionKillSwitch()).isEqualTo(phOverrideValue);
}
@Test
public void testGetMeasurementJobAttributionKillSwitch_globalOverride() {
// without any overriding, the value is hard coded constant
assertThat(FlagsFactory.getFlags().getMeasurementJobAttributionKillSwitch())
.isEqualTo(MEASUREMENT_JOB_ATTRIBUTION_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.getMeasurementJobAttributionKillSwitch()).isEqualTo(phOverrideValue);
}
@Test
public void testGetMeasurementJobDeleteExpiredKillSwitch() {
// without any overriding, the value is hard coded constant
assertThat(FlagsFactory.getFlags().getMeasurementJobDeleteExpiredKillSwitch())
.isEqualTo(MEASUREMENT_JOB_DELETE_EXPIRED_KILL_SWITCH);
final boolean phOverrideValue = true;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_MEASUREMENT_JOB_DELETE_EXPIRED_KILL_SWITCH,
Boolean.toString(phOverrideValue),
false);
Flags phFlags = FlagsFactory.getFlags();
assertThat(phFlags.getMeasurementJobDeleteExpiredKillSwitch()).isEqualTo(phOverrideValue);
Flags flags = FlagsFactory.getFlagsForTest();
assertThat(flags.getMeasurementJobDeleteExpiredKillSwitch())
.isEqualTo(MEASUREMENT_JOB_DELETE_EXPIRED_KILL_SWITCH);
}
@Test
public void testGetMeasurementJobDeleteExpiredKillSwitch_measurementOverride() {
// without any overriding, the value is hard coded constant
assertThat(FlagsFactory.getFlags().getMeasurementJobDeleteExpiredKillSwitch())
.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.getMeasurementJobDeleteExpiredKillSwitch()).isEqualTo(phOverrideValue);
}
@Test
public void testGetMeasurementJobDeleteExpiredKillSwitch_globalOverride() {
// without any overriding, the value is hard coded constant
assertThat(FlagsFactory.getFlags().getMeasurementJobDeleteExpiredKillSwitch())
.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.getMeasurementJobDeleteExpiredKillSwitch()).isEqualTo(phOverrideValue);
}
@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())
.isEqualTo(MEASUREMENT_JOB_EVENT_FALLBACK_REPORTING_KILL_SWITCH);
final boolean phOverrideValue = true;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_MEASUREMENT_JOB_EVENT_FALLBACK_REPORTING_KILL_SWITCH,
Boolean.toString(phOverrideValue),
false);
Flags phFlags = FlagsFactory.getFlags();
assertThat(phFlags.getMeasurementJobEventFallbackReportingKillSwitch())
.isEqualTo(phOverrideValue);
Flags flags = FlagsFactory.getFlagsForTest();
assertThat(flags.getMeasurementJobEventFallbackReportingKillSwitch())
.isEqualTo(MEASUREMENT_JOB_EVENT_FALLBACK_REPORTING_KILL_SWITCH);
}
@Test
public void testGetMeasurementJobEventFallbackReportingKillSwitch_measurementOverride() {
// without any overriding, the value is hard coded constant
assertThat(FlagsFactory.getFlags().getMeasurementJobEventFallbackReportingKillSwitch())
.isEqualTo(MEASUREMENT_JOB_EVENT_FALLBACK_REPORTING_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.getMeasurementJobEventFallbackReportingKillSwitch())
.isEqualTo(phOverrideValue);
}
@Test
public void testGetMeasurementJobEventFallbackReportingKillSwitch_globalOverride() {
// without any overriding, the value is hard coded constant
assertThat(FlagsFactory.getFlags().getMeasurementJobEventFallbackReportingKillSwitch())
.isEqualTo(MEASUREMENT_JOB_EVENT_FALLBACK_REPORTING_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.getMeasurementJobEventFallbackReportingKillSwitch())
.isEqualTo(phOverrideValue);
}
@Test
public void testGetMeasurementJobEventReportingKillSwitch() {
// without any overriding, the value is hard coded constant
assertThat(FlagsFactory.getFlags().getMeasurementJobEventReportingKillSwitch())
.isEqualTo(MEASUREMENT_JOB_EVENT_REPORTING_KILL_SWITCH);
final boolean phOverrideValue = true;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_MEASUREMENT_JOB_EVENT_REPORTING_KILL_SWITCH,
Boolean.toString(phOverrideValue),
false);
Flags phFlags = FlagsFactory.getFlags();
assertThat(phFlags.getMeasurementJobEventReportingKillSwitch()).isEqualTo(phOverrideValue);
Flags flags = FlagsFactory.getFlagsForTest();
assertThat(flags.getMeasurementJobEventReportingKillSwitch())
.isEqualTo(MEASUREMENT_JOB_EVENT_REPORTING_KILL_SWITCH);
}
@Test
public void testGetMeasurementJobEventReportingKillSwitch_measurementOverride() {
// without any overriding, the value is hard coded constant
assertThat(FlagsFactory.getFlags().getMeasurementJobEventReportingKillSwitch())
.isEqualTo(MEASUREMENT_JOB_EVENT_REPORTING_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.getMeasurementJobEventReportingKillSwitch()).isEqualTo(phOverrideValue);
}
@Test
public void testGetMeasurementJobEventReportingKillSwitch_globalOverride() {
// without any overriding, the value is hard coded constant
assertThat(FlagsFactory.getFlags().getMeasurementJobEventReportingKillSwitch())
.isEqualTo(MEASUREMENT_JOB_EVENT_REPORTING_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.getMeasurementJobEventReportingKillSwitch()).isEqualTo(phOverrideValue);
}
@Test
public void testGetMeasurementReceiverInstallAttributionKillSwitch() {
// without any overriding, the value is hard coded constant
assertThat(FlagsFactory.getFlags().getMeasurementReceiverInstallAttributionKillSwitch())
.isEqualTo(MEASUREMENT_RECEIVER_INSTALL_ATTRIBUTION_KILL_SWITCH);
final boolean phOverrideValue = true;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_MEASUREMENT_RECEIVER_INSTALL_ATTRIBUTION_KILL_SWITCH,
Boolean.toString(phOverrideValue),
false);
Flags phFlags = FlagsFactory.getFlags();
assertThat(phFlags.getMeasurementReceiverInstallAttributionKillSwitch())
.isEqualTo(phOverrideValue);
Flags flags = FlagsFactory.getFlagsForTest();
assertThat(flags.getMeasurementReceiverInstallAttributionKillSwitch())
.isEqualTo(MEASUREMENT_RECEIVER_INSTALL_ATTRIBUTION_KILL_SWITCH);
}
@Test
public void testGetMeasurementReceiverInstallAttributionKillSwitch_measurementOverride() {
// without any overriding, the value is hard coded constant
assertThat(FlagsFactory.getFlags().getMeasurementReceiverInstallAttributionKillSwitch())
.isEqualTo(MEASUREMENT_RECEIVER_INSTALL_ATTRIBUTION_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.getMeasurementReceiverInstallAttributionKillSwitch())
.isEqualTo(phOverrideValue);
}
@Test
public void testGetMeasurementReceiverInstallAttributionKillSwitch_globalOverride() {
// without any overriding, the value is hard coded constant
assertThat(FlagsFactory.getFlags().getMeasurementReceiverInstallAttributionKillSwitch())
.isEqualTo(MEASUREMENT_RECEIVER_INSTALL_ATTRIBUTION_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.getMeasurementReceiverInstallAttributionKillSwitch())
.isEqualTo(phOverrideValue);
}
@Test
public void testGetMeasurementReceiverDeletePackagesKillSwitch() {
// without any overriding, the value is hard coded constant
assertThat(FlagsFactory.getFlags().getMeasurementReceiverDeletePackagesKillSwitch())
.isEqualTo(MEASUREMENT_RECEIVER_DELETE_PACKAGES_KILL_SWITCH);
final boolean phOverrideValue = true;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_MEASUREMENT_RECEIVER_DELETE_PACKAGES_KILL_SWITCH,
Boolean.toString(phOverrideValue),
false);
Flags phFlags = FlagsFactory.getFlags();
assertThat(phFlags.getMeasurementReceiverDeletePackagesKillSwitch())
.isEqualTo(phOverrideValue);
Flags flags = FlagsFactory.getFlagsForTest();
assertThat(flags.getMeasurementReceiverDeletePackagesKillSwitch())
.isEqualTo(MEASUREMENT_RECEIVER_DELETE_PACKAGES_KILL_SWITCH);
}
@Test
public void testGetMeasurementReceiverDeletePackagesKillSwitch_measurementOverride() {
// without any overriding, the value is hard coded constant
assertThat(FlagsFactory.getFlags().getMeasurementReceiverDeletePackagesKillSwitch())
.isEqualTo(MEASUREMENT_RECEIVER_DELETE_PACKAGES_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.getMeasurementReceiverDeletePackagesKillSwitch())
.isEqualTo(phOverrideValue);
}
@Test
public void testGetMeasurementReceiverDeletePackagesKillSwitch_globalOverride() {
// without any overriding, the value is hard coded constant
assertThat(FlagsFactory.getFlags().getMeasurementReceiverDeletePackagesKillSwitch())
.isEqualTo(MEASUREMENT_RECEIVER_DELETE_PACKAGES_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.getMeasurementReceiverDeletePackagesKillSwitch())
.isEqualTo(phOverrideValue);
}
@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);
// Now overriding with the value from PH.
final boolean phOverridingValue = true;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_ADID_KILL_SWITCH,
Boolean.toString(phOverridingValue),
/* makeDefault */ false);
Flags phFlags = FlagsFactory.getFlags();
assertThat(phFlags.getAdIdKillSwitch()).isEqualTo(phOverridingValue);
}
@Test
public void testGetAppSetIdKillSwitch() {
// Without any overriding, the value is the hard coded constant.
assertThat(FlagsFactory.getFlags().getAppSetIdKillSwitch()).isEqualTo(APPSETID_KILL_SWITCH);
// Now overriding with the value from PH.
final boolean phOverridingValue = true;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_APPSETID_KILL_SWITCH,
Boolean.toString(phOverridingValue),
/* makeDefault */ false);
Flags phFlags = FlagsFactory.getFlags();
assertThat(phFlags.getAppSetIdKillSwitch()).isEqualTo(phOverridingValue);
}
@Test
public void testGetTopicsKillSwitch() {
// Without any overriding, the value is the hard coded constant.
assertThat(FlagsFactory.getFlags().getTopicsKillSwitch()).isEqualTo(TOPICS_KILL_SWITCH);
// Now overriding with the value from PH.
final boolean phOverridingValue = true;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_TOPICS_KILL_SWITCH,
Boolean.toString(phOverridingValue),
/* makeDefault */ false);
Flags phFlags = FlagsFactory.getFlags();
assertThat(phFlags.getTopicsKillSwitch()).isEqualTo(phOverridingValue);
}
@Test
public void testGetMddBackgroundTaskKillSwitch() {
// Without any overriding, the value is the hard coded constant.
assertThat(FlagsFactory.getFlags().getMddBackgroundTaskKillSwitch())
.isEqualTo(MDD_BACKGROUND_TASK_KILL_SWITCH);
// Now overriding with the value from PH.
final boolean phOverridingValue = true;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_MDD_BACKGROUND_TASK_KILL_SWITCH,
Boolean.toString(phOverridingValue),
/* makeDefault */ false);
Flags phFlags = FlagsFactory.getFlags();
assertThat(phFlags.getMddBackgroundTaskKillSwitch()).isEqualTo(phOverridingValue);
}
@Test
public void test_globalKillswitchOverrides_getAdIdKillSwitch() {
// Without any overriding, AdId Killswitch is off.
assertThat(FlagsFactory.getFlags().getAdIdKillSwitch()).isEqualTo(ADID_KILL_SWITCH);
// Without any overriding, Global Killswitch is off.
assertThat(FlagsFactory.getFlags().getGlobalKillSwitch()).isEqualTo(GLOBAL_KILL_SWITCH);
// Now overriding with the value from PH.
final boolean phOverridingValue = true;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_GLOBAL_KILL_SWITCH,
Boolean.toString(phOverridingValue),
/* makeDefault */ false);
// Now Global Killswitch is on.
Flags phFlags = FlagsFactory.getFlags();
assertThat(phFlags.getGlobalKillSwitch()).isEqualTo(phOverridingValue);
// Global Killswitch is on, but is ignored by the getAdIdKillswitch.
assertThat(FlagsFactory.getFlags().getAdIdKillSwitch()).isEqualTo(false);
}
@Test
public void test_globalKillswitchOverrides_getAppSetIdKillSwitch() {
// Without any overriding, AppSetId Killswitch is off.
assertThat(FlagsFactory.getFlags().getAppSetIdKillSwitch()).isEqualTo(APPSETID_KILL_SWITCH);
// Without any overriding, Global Killswitch is off.
assertThat(FlagsFactory.getFlags().getGlobalKillSwitch()).isEqualTo(GLOBAL_KILL_SWITCH);
// Now overriding with the value from PH.
final boolean phOverridingValue = true;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_GLOBAL_KILL_SWITCH,
Boolean.toString(phOverridingValue),
/* makeDefault */ false);
// Now Global Killswitch is on.
Flags phFlags = FlagsFactory.getFlags();
assertThat(phFlags.getGlobalKillSwitch()).isEqualTo(phOverridingValue);
// Global Killswitch is on and overrides the getAppSetIdKillswitch.
assertThat(FlagsFactory.getFlags().getAppSetIdKillSwitch()).isEqualTo(true);
}
@Test
public void test_globalKillswitchOverrides_getTopicsKillSwitch() {
// Without any overriding, Topics Killswitch is off.
assertThat(FlagsFactory.getFlags().getTopicsKillSwitch()).isEqualTo(TOPICS_KILL_SWITCH);
// Without any overriding, Global Killswitch is off.
assertThat(FlagsFactory.getFlags().getGlobalKillSwitch()).isEqualTo(GLOBAL_KILL_SWITCH);
// Now overriding with the value from PH.
final boolean phOverridingValue = true;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_GLOBAL_KILL_SWITCH,
Boolean.toString(phOverridingValue),
/* makeDefault */ false);
// Now Global Killswitch is on.
Flags phFlags = FlagsFactory.getFlags();
assertThat(phFlags.getGlobalKillSwitch()).isEqualTo(phOverridingValue);
// Global Killswitch is on and overrides the getTopicsKillswitch.
assertThat(FlagsFactory.getFlags().getTopicsKillSwitch()).isEqualTo(true);
}
@Test
public void testGetFledgeSelectAdsKillSwitch() {
// without any overrides the Ad Selection Service kill switch should be off
assertThat(FlagsFactory.getFlags().getFledgeSelectAdsKillSwitch())
.isEqualTo(FLEDGE_SELECT_ADS_KILL_SWITCH);
// Now overriding with the value from PH.
final boolean phOverridingValue = true;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_FLEDGE_SELECT_ADS_KILL_SWITCH,
Boolean.toString(phOverridingValue),
/* makeDefault */ false);
Flags phFlags = FlagsFactory.getFlags();
assertThat(phFlags.getFledgeSelectAdsKillSwitch()).isEqualTo(phOverridingValue);
}
@Test
public void testGetFledgeCustomAudienceServiceKillSwitch() {
// without any overrides the Custom Audience Service kill switch should be off
assertThat(FlagsFactory.getFlags().getFledgeCustomAudienceServiceKillSwitch())
.isEqualTo(FLEDGE_CUSTOM_AUDIENCE_SERVICE_KILL_SWITCH);
// Now overriding with the value from PH.
final boolean phOverridingValue = true;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_FLEDGE_CUSTOM_AUDIENCE_SERVICE_KILL_SWITCH,
Boolean.toString(phOverridingValue),
/* makeDefault */ false);
Flags phFlags = FlagsFactory.getFlags();
assertThat(phFlags.getFledgeCustomAudienceServiceKillSwitch()).isEqualTo(phOverridingValue);
}
@Test
public void testGetFledgeGlobalKillSwitchOverridesOtherFledgeKillSwitches() {
// without any overrides the Fledge API kill switch should be off
assertThat(FlagsFactory.getFlags().getFledgeSelectAdsKillSwitch())
.isEqualTo(FLEDGE_SELECT_ADS_KILL_SWITCH);
assertThat(FlagsFactory.getFlags().getFledgeCustomAudienceServiceKillSwitch())
.isEqualTo(FLEDGE_CUSTOM_AUDIENCE_SERVICE_KILL_SWITCH);
// Now overriding with the value from PH.
final boolean phOverridingValue = true;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_GLOBAL_KILL_SWITCH,
Boolean.toString(phOverridingValue),
/* makeDefault */ false);
Flags phFlags = FlagsFactory.getFlags();
assertThat(phFlags.getFledgeSelectAdsKillSwitch()).isEqualTo(phOverridingValue);
assertThat(phFlags.getFledgeCustomAudienceServiceKillSwitch()).isEqualTo(phOverridingValue);
}
@Test
public void testGetPpapiAppAllowList() {
// Without any overriding, the value is the hard coded constant.
assertThat(FlagsFactory.getFlags().getPpapiAppAllowList()).isEqualTo(PPAPI_APP_ALLOW_LIST);
// Now overriding with the value from PH.
final String phOverridingValue = "SomePackageName,AnotherPackageName";
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_PPAPI_APP_ALLOW_LIST,
phOverridingValue,
/* makeDefault */ false);
Flags phFlags = FlagsFactory.getFlags();
assertThat(phFlags.getPpapiAppAllowList()).isEqualTo(phOverridingValue);
}
@Test
public void testGetPpapiAppSignatureAllowList() {
// Without any overriding, the value is the hard coded constant.
assertThat(FlagsFactory.getFlags().getPpapiAppSignatureAllowList())
.isEqualTo(PPAPI_APP_SIGNATURE_ALLOW_LIST);
// Now overriding with the value from PH.
final String phOverridingValue = "SomePackageName,AnotherPackageName";
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_PPAPI_APP_SIGNATURE_ALLOW_LIST,
phOverridingValue,
/* makeDefault */ false);
Flags phFlags = FlagsFactory.getFlags();
assertThat(phFlags.getPpapiAppSignatureAllowList()).isEqualTo(phOverridingValue);
}
@Test
public void testGetSdkRequestPermitsPerSecond() {
// Without any overriding, the value is the hard coded constant.
assertThat(FlagsFactory.getFlags().getSdkRequestPermitsPerSecond())
.isEqualTo(SDK_REQUEST_PERMITS_PER_SECOND);
final float phOverridingValue = 6;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_SDK_REQUEST_PERMITS_PER_SECOND,
Float.toString(phOverridingValue),
/* makeDefault */ false);
// Now verify that the PhFlag value was overridden.
Flags phFlags = FlagsFactory.getFlags();
assertThat(phFlags.getSdkRequestPermitsPerSecond()).isEqualTo(phOverridingValue);
final float illegalPhOverridingValue = -1;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_SDK_REQUEST_PERMITS_PER_SECOND,
Float.toString(illegalPhOverridingValue),
/* makeDefault */ false);
assertThrows(
IllegalArgumentException.class,
() -> {
phFlags.getSdkRequestPermitsPerSecond();
});
}
@Test
public void testGetNumberOfEpochsToKeepInHistory() {
// Without any overriding, the value is the hard coded constant.
assertThat(FlagsFactory.getFlags().getNumberOfEpochsToKeepInHistory())
.isEqualTo(NUMBER_OF_EPOCHS_TO_KEEP_IN_HISTORY);
final long phOverridingValue = 6;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_NUMBER_OF_EPOCHS_TO_KEEP_IN_HISTORY,
Long.toString(phOverridingValue),
/* makeDefault */ false);
Flags phFlags = FlagsFactory.getFlags();
assertThat(phFlags.getNumberOfEpochsToKeepInHistory()).isEqualTo(phOverridingValue);
final long illegalPhOverridingValue = -1;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_NUMBER_OF_EPOCHS_TO_KEEP_IN_HISTORY,
Long.toString(illegalPhOverridingValue),
/* makeDefault */ false);
assertThrows(
IllegalArgumentException.class,
() -> {
phFlags.getNumberOfEpochsToKeepInHistory();
});
}
@Test
public void testGetForegroundStatuslLevelForValidation() {
// Without any overriding, the value is the hard coded constant.
assertThat(FlagsFactory.getFlags().getForegroundStatuslLevelForValidation())
.isEqualTo(FOREGROUND_STATUS_LEVEL);
final int phOverridingValue = 6;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_FOREGROUND_STATUS_LEVEL,
Integer.toString(phOverridingValue),
/* makeDefault */ false);
Flags phFlags = FlagsFactory.getFlags();
assertThat(phFlags.getForegroundStatuslLevelForValidation()).isEqualTo(phOverridingValue);
}
@Test
public void testGetEnforceIsolateMaxHeapSize() {
// Without any overriding, the value is the hard coded constant.
assertThat(FlagsFactory.getFlags().getEnforceIsolateMaxHeapSize())
.isEqualTo(ENFORCE_ISOLATE_MAX_HEAP_SIZE);
// Now overriding with the value from PH.
final boolean phOverridingValue = false;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_ENFORCE_ISOLATE_MAX_HEAP_SIZE,
Boolean.toString(phOverridingValue),
/* makeDefault */ false);
Flags phFlags = FlagsFactory.getFlags();
assertThat(phFlags.getEnforceIsolateMaxHeapSize()).isEqualTo(phOverridingValue);
}
@Test
public void testGetIsolateMaxHeapSizeBytes() {
// Without any overriding, the value is the hard coded constant.
assertThat(FlagsFactory.getFlags().getIsolateMaxHeapSizeBytes())
.isEqualTo(ISOLATE_MAX_HEAP_SIZE_BYTES);
// Now overriding with the value from PH.
final long phOverridingValue = 1000;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_ISOLATE_MAX_HEAP_SIZE_BYTES,
Long.toString(phOverridingValue),
/* makeDefault */ false);
Flags phFlags = FlagsFactory.getFlags();
assertThat(phFlags.getIsolateMaxHeapSizeBytes()).isEqualTo(phOverridingValue);
}
// Troubles between google-java-format and checkstyle
// CHECKSTYLE:OFF IndentationCheck
@Test
public void testGetReportImpressionOverallTimeoutMs() {
// without any overriding, the value is hard coded constant
assertThat(FlagsFactory.getFlags().getReportImpressionOverallTimeoutMs())
.isEqualTo(FLEDGE_REPORT_IMPRESSION_OVERALL_TIMEOUT_MS);
final int phOverrideValue = 4;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_FLEDGE_REPORT_IMPRESSION_OVERALL_TIMEOUT_MS,
Integer.toString(phOverrideValue),
false);
Flags phFlags = FlagsFactory.getFlags();
assertThat(phFlags.getReportImpressionOverallTimeoutMs()).isEqualTo(phOverrideValue);
}
@Test
public void testIsDisableTopicsEnrollmentCheck() {
// Without any overriding, the value is the hard coded constant.
assertThat(FlagsFactory.getFlags().isDisableTopicsEnrollmentCheck())
.isEqualTo(DISABLE_TOPICS_ENROLLMENT_CHECK);
final boolean phOverridingValue = !DISABLE_TOPICS_ENROLLMENT_CHECK;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_DISABLE_TOPICS_ENROLLMENT_CHECK,
Boolean.toString(phOverridingValue),
/* makeDefault */ false);
Flags phFlags = FlagsFactory.getFlags();
assertThat(phFlags.isDisableTopicsEnrollmentCheck()).isEqualTo(phOverridingValue);
}
@Test
public void testGetDisableFledgeEnrollmentCheck() {
// Without any overriding, the value is the hard coded constant.
assertThat(FlagsFactory.getFlags().getDisableFledgeEnrollmentCheck())
.isEqualTo(DISABLE_FLEDGE_ENROLLMENT_CHECK);
final boolean phOverridingValue = !DISABLE_FLEDGE_ENROLLMENT_CHECK;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_DISABLE_FLEDGE_ENROLLMENT_CHECK,
Boolean.toString(phOverridingValue),
/* makeDefault */ false);
Flags phFlags = FlagsFactory.getFlags();
assertThat(phFlags.getDisableFledgeEnrollmentCheck()).isEqualTo(phOverridingValue);
}
@Test
public void testIsDisableMeasurementEnrollmentCheck() {
// Without any overriding, the value is the hard coded constant.
assertThat(FlagsFactory.getFlags().isDisableMeasurementEnrollmentCheck())
.isEqualTo(DISABLE_MEASUREMENT_ENROLLMENT_CHECK);
final boolean phOverridingValue = !DISABLE_MEASUREMENT_ENROLLMENT_CHECK;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_DISABLE_MEASUREMENT_ENROLLMENT_CHECK,
Boolean.toString(phOverridingValue),
/* makeDefault */ false);
Flags phFlags = FlagsFactory.getFlags();
assertThat(phFlags.isDisableMeasurementEnrollmentCheck()).isEqualTo(phOverridingValue);
}
@Test
public void testGetEnforceForegroundStatusForTopics() {
// Without any overriding, the value is the hard coded constant.
assertThat(FlagsFactory.getFlags().getEnforceForegroundStatusForTopics())
.isEqualTo(ENFORCE_FOREGROUND_STATUS_TOPICS);
// Now overriding with the value from PH.
final boolean disabledEnforcing = !ENFORCE_FOREGROUND_STATUS_TOPICS;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_ENFORCE_FOREGROUND_STATUS_TOPICS,
Boolean.toString(disabledEnforcing),
/* makeDefault */ false);
Flags phFlags = FlagsFactory.getFlags();
assertThat(phFlags.getEnforceForegroundStatusForTopics()).isEqualTo(disabledEnforcing);
}
@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 =
new PrintWriter(
new Writer() {
@Override
public void write(char[] cbuf, int off, int len) throws IOException {}
@Override
public void flush() throws IOException {}
@Override
public void close() throws IOException {}
});
String[] args = new String[] {};
Flags phFlags = FlagsFactory.getFlags();
phFlags.dump(printWriter, args);
}
@Test
public void testGetMaxResponseBasedRegistrationPayloadSizeBytes_measurementOverride() {
// without any overriding, the value is hard coded constant
assertThat(FlagsFactory.getFlags().getMaxResponseBasedRegistrationPayloadSizeBytes())
.isEqualTo(Flags.MAX_RESPONSE_BASED_REGISTRATION_SIZE_BYTES);
final long phOverrideValue = 5L;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_MAX_RESPONSE_BASED_REGISTRATION_SIZE_BYTES,
Long.toString(phOverrideValue),
false);
Flags phFlags = FlagsFactory.getFlags();
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);
}
// CHECKSTYLE:ON IndentationCheck
}