blob: af962dbb61396b307213c136f9b3c35f616b4f43 [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.mockito.ExtendedMockitoExpectations.mockIsAtLeastT;
import static com.android.adservices.service.Flags.ADID_KILL_SWITCH;
import static com.android.adservices.service.Flags.ADID_REQUEST_PERMITS_PER_SECOND;
import static com.android.adservices.service.Flags.ADSERVICES_APK_SHA_CERTIFICATE;
import static com.android.adservices.service.Flags.ADSERVICES_ENABLED;
import static com.android.adservices.service.Flags.ADSERVICES_ERROR_LOGGING_ENABLED;
import static com.android.adservices.service.Flags.ADSERVICES_RELEASE_STAGE_FOR_COBALT;
import static com.android.adservices.service.Flags.APPSEARCH_ONLY;
import static com.android.adservices.service.Flags.APPSEARCH_WRITER_ALLOW_LIST_OVERRIDE;
import static com.android.adservices.service.Flags.APPSETID_KILL_SWITCH;
import static com.android.adservices.service.Flags.APPSETID_REQUEST_PERMITS_PER_SECOND;
import static com.android.adservices.service.Flags.ASYNC_REGISTRATION_JOB_QUEUE_INTERVAL_MS;
import static com.android.adservices.service.Flags.BACKGROUND_JOBS_LOGGING_KILL_SWITCH;
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.COBALT_ADSERVICES_API_KEY_HEX;
import static com.android.adservices.service.Flags.COBALT_LOGGING_ENABLED;
import static com.android.adservices.service.Flags.COBALT_LOGGING_JOB_PERIOD_MS;
import static com.android.adservices.service.Flags.COBALT_UPLOAD_SERVICE_UNBIND_DELAY_MS;
import static com.android.adservices.service.Flags.COMPAT_LOGGING_KILL_SWITCH;
import static com.android.adservices.service.Flags.CONSENT_NOTIFICATION_ACTIVITY_DEBUG_MODE;
import static com.android.adservices.service.Flags.CONSENT_NOTIFICATION_RESET_TOKEN;
import static com.android.adservices.service.Flags.CONSENT_NOTIFIED_DEBUG_MODE;
import static com.android.adservices.service.Flags.DEBUG_UX;
import static com.android.adservices.service.Flags.DEFAULT_ADID_CACHE_ENABLED;
import static com.android.adservices.service.Flags.DEFAULT_ADSERVICES_CONSENT_MIGRATION_LOGGING_ENABLED;
import static com.android.adservices.service.Flags.DEFAULT_ADSERVICES_ENABLEMENT_CHECK_ENABLED;
import static com.android.adservices.service.Flags.DEFAULT_ADSERVICES_VERSION_MAPPINGS;
import static com.android.adservices.service.Flags.DEFAULT_AD_ID_FETCHER_TIMEOUT_MS;
import static com.android.adservices.service.Flags.DEFAULT_BLOCKED_TOPICS_SOURCE_OF_TRUTH;
import static com.android.adservices.service.Flags.DEFAULT_CLASSIFIER_TYPE;
import static com.android.adservices.service.Flags.DEFAULT_COMPUTE_VERSION_FROM_MAPPINGS_ENABLED;
import static com.android.adservices.service.Flags.DEFAULT_CONSENT_SOURCE_OF_TRUTH;
import static com.android.adservices.service.Flags.DEFAULT_ENABLE_ADEXT_DATA_SERVICE_APIS;
import static com.android.adservices.service.Flags.DEFAULT_ENABLE_ADSERVICES_API_ENABLED;
import static com.android.adservices.service.Flags.DEFAULT_ENABLE_AD_SERVICES_SYSTEM_API;
import static com.android.adservices.service.Flags.DEFAULT_EU_NOTIF_FLOW_CHANGE_ENABLED;
import static com.android.adservices.service.Flags.DEFAULT_MAINLINE_TRAIN_VERSION;
import static com.android.adservices.service.Flags.DEFAULT_MEASUREMENT_ASYNC_REGISTRATION_JOB_TRIGGER_MAX_DELAY_MS;
import static com.android.adservices.service.Flags.DEFAULT_MEASUREMENT_ASYNC_REGISTRATION_JOB_TRIGGER_MIN_DELAY_MS;
import static com.android.adservices.service.Flags.DEFAULT_MEASUREMENT_ATTRIBUTION_JOB_TRIGGERING_DELAY_MS;
import static com.android.adservices.service.Flags.DEFAULT_MEASUREMENT_DEBUG_JOIN_KEY_ENROLLMENT_ALLOWLIST;
import static com.android.adservices.service.Flags.DEFAULT_MEASUREMENT_DEBUG_JOIN_KEY_HASH_LIMIT;
import static com.android.adservices.service.Flags.DEFAULT_MEASUREMENT_ENABLE_COARSE_EVENT_REPORT_DESTINATIONS;
import static com.android.adservices.service.Flags.DEFAULT_MEASUREMENT_ENABLE_VTC_CONFIGURABLE_MAX_EVENT_REPORTS;
import static com.android.adservices.service.Flags.DEFAULT_MEASUREMENT_MAX_AGGREGATE_DEDUPLICATION_KEYS_PER_REGISTRATION;
import static com.android.adservices.service.Flags.DEFAULT_MEASUREMENT_MAX_AGGREGATE_REPORT_UPLOAD_RETRY_WINDOW_MS;
import static com.android.adservices.service.Flags.DEFAULT_MEASUREMENT_MAX_ATTRIBUTIONS_PER_INVOCATION;
import static com.android.adservices.service.Flags.DEFAULT_MEASUREMENT_MAX_ATTRIBUTION_FILTERS;
import static com.android.adservices.service.Flags.DEFAULT_MEASUREMENT_MAX_BYTES_PER_ATTRIBUTION_AGGREGATE_KEY_ID;
import static com.android.adservices.service.Flags.DEFAULT_MEASUREMENT_MAX_BYTES_PER_ATTRIBUTION_FILTER_STRING;
import static com.android.adservices.service.Flags.DEFAULT_MEASUREMENT_MAX_DELAYED_SOURCE_REGISTRATION_WINDOW;
import static com.android.adservices.service.Flags.DEFAULT_MEASUREMENT_MAX_EVENT_REPORT_UPLOAD_RETRY_WINDOW_MS;
import static com.android.adservices.service.Flags.DEFAULT_MEASUREMENT_MAX_FILTER_MAPS_PER_FILTER_SET;
import static com.android.adservices.service.Flags.DEFAULT_MEASUREMENT_MAX_VALUES_PER_ATTRIBUTION_FILTER;
import static com.android.adservices.service.Flags.DEFAULT_MEASUREMENT_PLATFORM_DEBUG_AD_ID_MATCHING_BLOCKLIST;
import static com.android.adservices.service.Flags.DEFAULT_MEASUREMENT_PLATFORM_DEBUG_AD_ID_MATCHING_LIMIT;
import static com.android.adservices.service.Flags.DEFAULT_MEASUREMENT_VTC_CONFIGURABLE_MAX_EVENT_REPORTS_COUNT;
import static com.android.adservices.service.Flags.DEFAULT_NOTIFICATION_DISMISSED_ON_CLICK;
import static com.android.adservices.service.Flags.DEFAULT_RVC_NOTIFICATION_ENABLED;
import static com.android.adservices.service.Flags.DEFAULT_RVC_UX_ENABLED;
import static com.android.adservices.service.Flags.DEFAULT_U18_UX_ENABLED;
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.ENABLE_ADEXT_SERVICE_CONSENT_DATA;
import static com.android.adservices.service.Flags.ENABLE_APPSEARCH_CONSENT_DATA;
import static com.android.adservices.service.Flags.ENABLE_DATABASE_SCHEMA_VERSION_8;
import static com.android.adservices.service.Flags.ENABLE_DATABASE_SCHEMA_VERSION_9;
import static com.android.adservices.service.Flags.ENABLE_ENROLLMENT_TEST_SEED;
import static com.android.adservices.service.Flags.ENABLE_LOGGED_TOPIC;
import static com.android.adservices.service.Flags.ENCRYPTION_KEY_JOB_PERIOD_MS;
import static com.android.adservices.service.Flags.ENCRYPTION_KEY_JOB_REQUIRED_NETWORK_TYPE;
import static com.android.adservices.service.Flags.ENCRYPTION_KEY_NETWORK_CONNECT_TIMEOUT_MS;
import static com.android.adservices.service.Flags.ENCRYPTION_KEY_NETWORK_READ_TIMEOUT_MS;
import static com.android.adservices.service.Flags.ENCRYPTION_KEY_NEW_ENROLLMENT_FETCH_KILL_SWITCH;
import static com.android.adservices.service.Flags.ENCRYPTION_KEY_PERIODIC_FETCH_KILL_SWITCH;
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_REPORT_INTERACTION;
import static com.android.adservices.service.Flags.ENFORCE_FOREGROUND_STATUS_FLEDGE_RUN_AD_SELECTION;
import static com.android.adservices.service.Flags.ENFORCE_FOREGROUND_STATUS_SIGNALS;
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.ENROLLMENT_ENABLE_LIMITED_LOGGING;
import static com.android.adservices.service.Flags.ENROLLMENT_MDD_RECORD_DELETION_ENABLED;
import static com.android.adservices.service.Flags.FLEDGE_AD_COUNTER_HISTOGRAM_ABSOLUTE_MAX_PER_BUYER_EVENT_COUNT;
import static com.android.adservices.service.Flags.FLEDGE_AD_COUNTER_HISTOGRAM_ABSOLUTE_MAX_TOTAL_EVENT_COUNT;
import static com.android.adservices.service.Flags.FLEDGE_AD_COUNTER_HISTOGRAM_LOWER_MAX_PER_BUYER_EVENT_COUNT;
import static com.android.adservices.service.Flags.FLEDGE_AD_COUNTER_HISTOGRAM_LOWER_MAX_TOTAL_EVENT_COUNT;
import static com.android.adservices.service.Flags.FLEDGE_AD_SELECTION_BIDDING_LOGIC_JS_VERSION;
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_CONTEXTUAL_ADS_ENABLED;
import static com.android.adservices.service.Flags.FLEDGE_AD_SELECTION_EXPIRATION_WINDOW_S;
import static com.android.adservices.service.Flags.FLEDGE_AD_SELECTION_FILTERING_ENABLED;
import static com.android.adservices.service.Flags.FLEDGE_AD_SELECTION_FROM_OUTCOMES_OVERALL_TIMEOUT_MS;
import static com.android.adservices.service.Flags.FLEDGE_AD_SELECTION_MAX_CONCURRENT_BIDDING_COUNT;
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_PREBUILT_URI_ENABLED;
import static com.android.adservices.service.Flags.FLEDGE_AD_SELECTION_SCORING_TIMEOUT_MS;
import static com.android.adservices.service.Flags.FLEDGE_AD_SELECTION_SELECTING_OUTCOME_TIMEOUT_MS;
import static com.android.adservices.service.Flags.FLEDGE_AUCTION_SERVER_AD_RENDER_ID_ENABLED;
import static com.android.adservices.service.Flags.FLEDGE_AUCTION_SERVER_AD_RENDER_ID_MAX_LENGTH;
import static com.android.adservices.service.Flags.FLEDGE_AUCTION_SERVER_AUCTION_KEY_FETCH_TIMEOUT_MS;
import static com.android.adservices.service.Flags.FLEDGE_AUCTION_SERVER_AUCTION_KEY_FETCH_URI;
import static com.android.adservices.service.Flags.FLEDGE_AUCTION_SERVER_AUCTION_KEY_SHARDING;
import static com.android.adservices.service.Flags.FLEDGE_AUCTION_SERVER_BACKGROUND_AUCTION_KEY_FETCH_ENABLED;
import static com.android.adservices.service.Flags.FLEDGE_AUCTION_SERVER_BACKGROUND_JOIN_KEY_FETCH_ENABLED;
import static com.android.adservices.service.Flags.FLEDGE_AUCTION_SERVER_BACKGROUND_KEY_FETCH_JOB_ENABLED;
import static com.android.adservices.service.Flags.FLEDGE_AUCTION_SERVER_BACKGROUND_KEY_FETCH_JOB_FLEX_MS;
import static com.android.adservices.service.Flags.FLEDGE_AUCTION_SERVER_BACKGROUND_KEY_FETCH_JOB_PERIOD_MS;
import static com.android.adservices.service.Flags.FLEDGE_AUCTION_SERVER_BACKGROUND_KEY_FETCH_MAX_RESPONSE_SIZE_B;
import static com.android.adservices.service.Flags.FLEDGE_AUCTION_SERVER_BACKGROUND_KEY_FETCH_MAX_RUNTIME_MS;
import static com.android.adservices.service.Flags.FLEDGE_AUCTION_SERVER_BACKGROUND_KEY_FETCH_NETWORK_CONNECT_TIMEOUT_MS;
import static com.android.adservices.service.Flags.FLEDGE_AUCTION_SERVER_BACKGROUND_KEY_FETCH_NETWORK_READ_TIMEOUT_MS;
import static com.android.adservices.service.Flags.FLEDGE_AUCTION_SERVER_COMPRESSION_ALGORITHM_VERSION;
import static com.android.adservices.service.Flags.FLEDGE_AUCTION_SERVER_ENABLED;
import static com.android.adservices.service.Flags.FLEDGE_AUCTION_SERVER_ENABLED_FOR_REPORT_EVENT;
import static com.android.adservices.service.Flags.FLEDGE_AUCTION_SERVER_ENABLED_FOR_REPORT_IMPRESSION;
import static com.android.adservices.service.Flags.FLEDGE_AUCTION_SERVER_ENABLED_FOR_SELECT_ADS_MEDIATION;
import static com.android.adservices.service.Flags.FLEDGE_AUCTION_SERVER_ENABLED_FOR_UPDATE_HISTOGRAM;
import static com.android.adservices.service.Flags.FLEDGE_AUCTION_SERVER_ENABLE_AD_FILTER_IN_GET_AD_SELECTION_DATA;
import static com.android.adservices.service.Flags.FLEDGE_AUCTION_SERVER_ENABLE_DEBUG_REPORTING;
import static com.android.adservices.service.Flags.FLEDGE_AUCTION_SERVER_ENCRYPTION_ALGORITHM_AEAD_ID;
import static com.android.adservices.service.Flags.FLEDGE_AUCTION_SERVER_ENCRYPTION_ALGORITHM_KDF_ID;
import static com.android.adservices.service.Flags.FLEDGE_AUCTION_SERVER_ENCRYPTION_ALGORITHM_KEM_ID;
import static com.android.adservices.service.Flags.FLEDGE_AUCTION_SERVER_ENCRYPTION_KEY_MAX_AGE_SECONDS;
import static com.android.adservices.service.Flags.FLEDGE_AUCTION_SERVER_FORCE_SEARCH_WHEN_OWNER_IS_ABSENT_ENABLED;
import static com.android.adservices.service.Flags.FLEDGE_AUCTION_SERVER_JOIN_KEY_FETCH_URI;
import static com.android.adservices.service.Flags.FLEDGE_AUCTION_SERVER_KILL_SWITCH;
import static com.android.adservices.service.Flags.FLEDGE_AUCTION_SERVER_OVERALL_TIMEOUT_MS;
import static com.android.adservices.service.Flags.FLEDGE_AUCTION_SERVER_PAYLOAD_BUCKET_SIZES;
import static com.android.adservices.service.Flags.FLEDGE_AUCTION_SERVER_PAYLOAD_FORMAT_VERSION;
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_CPC_BILLING_ENABLED;
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_DATA_VERSION_HEADER_ENABLED;
import static com.android.adservices.service.Flags.FLEDGE_DEBUG_REPORT_SENDER_JOB_FLEX_MS;
import static com.android.adservices.service.Flags.FLEDGE_DEBUG_REPORT_SENDER_JOB_MAX_RUNTIME_MS;
import static com.android.adservices.service.Flags.FLEDGE_DEBUG_REPORT_SENDER_JOB_NETWORK_CONNECT_TIMEOUT_MS;
import static com.android.adservices.service.Flags.FLEDGE_DEBUG_REPORT_SENDER_JOB_NETWORK_READ_TIMEOUT_MS;
import static com.android.adservices.service.Flags.FLEDGE_DEBUG_REPORT_SENDER_JOB_PERIOD_MS;
import static com.android.adservices.service.Flags.FLEDGE_EVENT_LEVEL_DEBUG_REPORTING_BATCH_DELAY_SECONDS;
import static com.android.adservices.service.Flags.FLEDGE_EVENT_LEVEL_DEBUG_REPORTING_ENABLED;
import static com.android.adservices.service.Flags.FLEDGE_EVENT_LEVEL_DEBUG_REPORTING_MAX_ITEMS_PER_BATCH;
import static com.android.adservices.service.Flags.FLEDGE_EVENT_LEVEL_DEBUG_REPORT_SEND_IMMEDIATELY;
import static com.android.adservices.service.Flags.FLEDGE_FETCH_CUSTOM_AUDIENCE_ENABLED;
import static com.android.adservices.service.Flags.FLEDGE_FETCH_CUSTOM_AUDIENCE_MAX_CUSTOM_AUDIENCE_SIZE_B;
import static com.android.adservices.service.Flags.FLEDGE_FETCH_CUSTOM_AUDIENCE_MAX_REQUEST_CUSTOM_HEADER_SIZE_B;
import static com.android.adservices.service.Flags.FLEDGE_FETCH_CUSTOM_AUDIENCE_MAX_RETRY_AFTER_VALUE_MS;
import static com.android.adservices.service.Flags.FLEDGE_FETCH_CUSTOM_AUDIENCE_MAX_USER_BIDDING_SIGNALS_SIZE_B;
import static com.android.adservices.service.Flags.FLEDGE_FETCH_CUSTOM_AUDIENCE_MIN_RETRY_AFTER_VALUE_MS;
import static com.android.adservices.service.Flags.FLEDGE_HTTP_CACHE_DEFAULT_MAX_AGE_SECONDS;
import static com.android.adservices.service.Flags.FLEDGE_HTTP_CACHE_ENABLE;
import static com.android.adservices.service.Flags.FLEDGE_HTTP_CACHE_ENABLE_JS_CACHING;
import static com.android.adservices.service.Flags.FLEDGE_HTTP_CACHE_MAX_ENTRIES;
import static com.android.adservices.service.Flags.FLEDGE_MEASUREMENT_REPORT_AND_REGISTER_EVENT_API_ENABLED;
import static com.android.adservices.service.Flags.FLEDGE_MEASUREMENT_REPORT_AND_REGISTER_EVENT_API_FALLBACK_ENABLED;
import static com.android.adservices.service.Flags.FLEDGE_ON_DEVICE_AUCTION_KILL_SWITCH;
import static com.android.adservices.service.Flags.FLEDGE_ON_DEVICE_AUCTION_SHOULD_USE_UNIFIED_TABLES;
import static com.android.adservices.service.Flags.FLEDGE_REGISTER_AD_BEACON_ENABLED;
import static com.android.adservices.service.Flags.FLEDGE_REPORT_IMPRESSION_MAX_INTERACTION_REPORTING_URI_SIZE_B;
import static com.android.adservices.service.Flags.FLEDGE_REPORT_IMPRESSION_MAX_REGISTERED_AD_BEACONS_PER_AD_TECH_COUNT;
import static com.android.adservices.service.Flags.FLEDGE_REPORT_IMPRESSION_MAX_REGISTERED_AD_BEACONS_TOTAL_COUNT;
import static com.android.adservices.service.Flags.FLEDGE_REPORT_IMPRESSION_OVERALL_TIMEOUT_MS;
import static com.android.adservices.service.Flags.FLEDGE_REPORT_IMPRESSION_REGISTERED_AD_BEACONS_MAX_INTERACTION_KEY_SIZE_B;
import static com.android.adservices.service.Flags.FLEDGE_REPORT_INTERACTION_REQUEST_PERMITS_PER_SECOND;
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.GA_UX_FEATURE_ENABLED;
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.IS_BACK_COMPACT_ACTIVITY_FEATURE_ENABLED;
import static com.android.adservices.service.Flags.IS_EEA_DEVICE;
import static com.android.adservices.service.Flags.IS_EEA_DEVICE_FEATURE_ENABLED;
import static com.android.adservices.service.Flags.IS_U18_SUPERVISED_ACCOUNT_ENABLED_DEFAULT;
import static com.android.adservices.service.Flags.IS_U18_UX_DETENTION_CHANNEL_ENABLED_DEFAULT;
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.MAX_RESPONSE_BASED_REGISTRATION_SIZE_BYTES;
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_FALLBACK_REPORTING_JOB_PERIOD_MS;
import static com.android.adservices.service.Flags.MEASUREMENT_AGGREGATE_FALLBACK_REPORTING_JOB_PERSISTED;
import static com.android.adservices.service.Flags.MEASUREMENT_AGGREGATE_FALLBACK_REPORTING_JOB_REQUIRED_BATTERY_NOT_LOW;
import static com.android.adservices.service.Flags.MEASUREMENT_AGGREGATE_FALLBACK_REPORTING_JOB_REQUIRED_NETWORK_TYPE;
import static com.android.adservices.service.Flags.MEASUREMENT_AGGREGATE_MAIN_REPORTING_JOB_PERIOD_MS;
import static com.android.adservices.service.Flags.MEASUREMENT_AGGREGATE_REPORTING_JOB_PERSISTED;
import static com.android.adservices.service.Flags.MEASUREMENT_AGGREGATE_REPORTING_JOB_REQUIRED_BATTERY_NOT_LOW;
import static com.android.adservices.service.Flags.MEASUREMENT_AGGREGATE_REPORTING_JOB_REQUIRED_NETWORK_TYPE;
import static com.android.adservices.service.Flags.MEASUREMENT_AGGREGATE_REPORT_DELAY_CONFIG;
import static com.android.adservices.service.Flags.MEASUREMENT_AGGREGATION_COORDINATOR_ORIGIN_ENABLED;
import static com.android.adservices.service.Flags.MEASUREMENT_AGGREGATION_COORDINATOR_ORIGIN_LIST;
import static com.android.adservices.service.Flags.MEASUREMENT_AGGREGATION_COORDINATOR_PATH;
import static com.android.adservices.service.Flags.MEASUREMENT_API_DELETE_REGISTRATIONS_KILL_SWITCH;
import static com.android.adservices.service.Flags.MEASUREMENT_API_REGISTER_SOURCES_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_APP_PACKAGE_NAME_LOGGING_ALLOWLIST;
import static com.android.adservices.service.Flags.MEASUREMENT_ASYNC_REGISTRATION_FALLBACK_JOB_PERSISTED;
import static com.android.adservices.service.Flags.MEASUREMENT_ASYNC_REGISTRATION_FALLBACK_JOB_REQUIRED_BATTERY_NOT_LOW;
import static com.android.adservices.service.Flags.MEASUREMENT_ASYNC_REGISTRATION_FALLBACK_JOB_REQUIRED_NETWORK_TYPE;
import static com.android.adservices.service.Flags.MEASUREMENT_ASYNC_REGISTRATION_QUEUE_JOB_PERSISTED;
import static com.android.adservices.service.Flags.MEASUREMENT_ASYNC_REGISTRATION_QUEUE_JOB_REQUIRED_NETWORK_TYPE;
import static com.android.adservices.service.Flags.MEASUREMENT_ATTRIBUTION_FALLBACK_JOB_KILL_SWITCH;
import static com.android.adservices.service.Flags.MEASUREMENT_ATTRIBUTION_FALLBACK_JOB_PERIOD_MS;
import static com.android.adservices.service.Flags.MEASUREMENT_ATTRIBUTION_FALLBACK_JOB_PERSISTED;
import static com.android.adservices.service.Flags.MEASUREMENT_ATTRIBUTION_JOB_PERSISTED;
import static com.android.adservices.service.Flags.MEASUREMENT_ATTRIBUTION_JOB_TRIGGERING_DELAY_MS;
import static com.android.adservices.service.Flags.MEASUREMENT_DATA_EXPIRY_WINDOW_MS;
import static com.android.adservices.service.Flags.MEASUREMENT_DB_SIZE_LIMIT;
import static com.android.adservices.service.Flags.MEASUREMENT_DEBUG_REPORTING_FALLBACK_JOB_KILL_SWITCH;
import static com.android.adservices.service.Flags.MEASUREMENT_DEBUG_REPORTING_FALLBACK_JOB_PERIOD_MS;
import static com.android.adservices.service.Flags.MEASUREMENT_DEBUG_REPORTING_FALLBACK_JOB_PERSISTED;
import static com.android.adservices.service.Flags.MEASUREMENT_DEBUG_REPORTING_FALLBACK_JOB_REQUIRED_NETWORK_TYPE;
import static com.android.adservices.service.Flags.MEASUREMENT_DEBUG_REPORTING_JOB_REQUIRED_NETWORK_TYPE;
import static com.android.adservices.service.Flags.MEASUREMENT_DEFAULT_AGGREGATION_COORDINATOR_ORIGIN;
import static com.android.adservices.service.Flags.MEASUREMENT_DELETE_EXPIRED_JOB_PERIOD_MS;
import static com.android.adservices.service.Flags.MEASUREMENT_DELETE_EXPIRED_JOB_PERSISTED;
import static com.android.adservices.service.Flags.MEASUREMENT_DELETE_EXPIRED_JOB_REQUIRES_DEVICE_IDLE;
import static com.android.adservices.service.Flags.MEASUREMENT_DELETE_UNINSTALLED_JOB_PERIOD_MS;
import static com.android.adservices.service.Flags.MEASUREMENT_DELETE_UNINSTALLED_JOB_PERSISTED;
import static com.android.adservices.service.Flags.MEASUREMENT_DESTINATION_RATE_LIMIT_WINDOW;
import static com.android.adservices.service.Flags.MEASUREMENT_DUAL_DESTINATION_EVENT_NOISE_PROBABILITY;
import static com.android.adservices.service.Flags.MEASUREMENT_DUAL_DESTINATION_NAVIGATION_NOISE_PROBABILITY;
import static com.android.adservices.service.Flags.MEASUREMENT_ENABLE_AGGREGATABLE_REPORT_PAYLOAD_PADDING;
import static com.android.adservices.service.Flags.MEASUREMENT_ENABLE_API_STATUS_ALLOW_LIST_CHECK;
import static com.android.adservices.service.Flags.MEASUREMENT_ENABLE_APP_PACKAGE_NAME_LOGGING;
import static com.android.adservices.service.Flags.MEASUREMENT_ENABLE_ARA_DEDUPLICATION_ALIGNMENT_V1;
import static com.android.adservices.service.Flags.MEASUREMENT_ENABLE_ARA_PARSING_ALIGNMENT_V1;
import static com.android.adservices.service.Flags.MEASUREMENT_ENABLE_CONFIGURABLE_AGGREGATE_REPORT_DELAY;
import static com.android.adservices.service.Flags.MEASUREMENT_ENABLE_CONFIGURABLE_EVENT_REPORTING_WINDOWS;
import static com.android.adservices.service.Flags.MEASUREMENT_ENABLE_DATASTORE_MANAGER_THROW_DATASTORE_EXCEPTION;
import static com.android.adservices.service.Flags.MEASUREMENT_ENABLE_DEBUG_REPORT;
import static com.android.adservices.service.Flags.MEASUREMENT_ENABLE_DELETE_REPORTS_ON_UNRECOVERABLE_EXCEPTION;
import static com.android.adservices.service.Flags.MEASUREMENT_ENABLE_DESTINATION_RATE_LIMIT;
import static com.android.adservices.service.Flags.MEASUREMENT_ENABLE_LOOKBACK_WINDOW_FILTER;
import static com.android.adservices.service.Flags.MEASUREMENT_ENABLE_MAX_AGGREGATE_REPORTS_PER_SOURCE;
import static com.android.adservices.service.Flags.MEASUREMENT_ENABLE_PREINSTALL_CHECK;
import static com.android.adservices.service.Flags.MEASUREMENT_ENABLE_REPORTING_JOBS_THROW_JSON_EXCEPTION;
import static com.android.adservices.service.Flags.MEASUREMENT_ENABLE_REPORTING_JOBS_THROW_UNACCOUNTED_EXCEPTION;
import static com.android.adservices.service.Flags.MEASUREMENT_ENABLE_SHARED_FILTER_DATA_KEYS_XNA;
import static com.android.adservices.service.Flags.MEASUREMENT_ENABLE_SHARED_SOURCE_DEBUG_KEY;
import static com.android.adservices.service.Flags.MEASUREMENT_ENABLE_SOURCE_DEACTIVATION_AFTER_FILTERING;
import static com.android.adservices.service.Flags.MEASUREMENT_ENABLE_SOURCE_DEBUG_REPORT;
import static com.android.adservices.service.Flags.MEASUREMENT_ENABLE_TRIGGER_DEBUG_REPORT;
import static com.android.adservices.service.Flags.MEASUREMENT_ENABLE_XNA;
import static com.android.adservices.service.Flags.MEASUREMENT_ENFORCE_ENROLLMENT_ORIGIN_MATCH;
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_SOURCES;
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_FALLBACK_REPORTING_JOB_PERSISTED;
import static com.android.adservices.service.Flags.MEASUREMENT_EVENT_FALLBACK_REPORTING_JOB_REQUIRED_BATTERY_NOT_LOW;
import static com.android.adservices.service.Flags.MEASUREMENT_EVENT_FALLBACK_REPORTING_JOB_REQUIRED_NETWORK_TYPE;
import static com.android.adservices.service.Flags.MEASUREMENT_EVENT_MAIN_REPORTING_JOB_PERIOD_MS;
import static com.android.adservices.service.Flags.MEASUREMENT_EVENT_NOISE_PROBABILITY;
import static com.android.adservices.service.Flags.MEASUREMENT_EVENT_REPORTING_JOB_PERSISTED;
import static com.android.adservices.service.Flags.MEASUREMENT_EVENT_REPORTING_JOB_REQUIRED_BATTERY_NOT_LOW;
import static com.android.adservices.service.Flags.MEASUREMENT_EVENT_REPORTING_JOB_REQUIRED_NETWORK_TYPE;
import static com.android.adservices.service.Flags.MEASUREMENT_EVENT_REPORTS_CTC_EARLY_REPORTING_WINDOWS;
import static com.android.adservices.service.Flags.MEASUREMENT_EVENT_REPORTS_VTC_EARLY_REPORTING_WINDOWS;
import static com.android.adservices.service.Flags.MEASUREMENT_FLEXIBLE_EVENT_REPORTING_API_ENABLED;
import static com.android.adservices.service.Flags.MEASUREMENT_FLEX_API_MAX_EVENT_REPORTS;
import static com.android.adservices.service.Flags.MEASUREMENT_FLEX_API_MAX_EVENT_REPORT_WINDOWS;
import static com.android.adservices.service.Flags.MEASUREMENT_FLEX_API_MAX_INFO_GAIN_EVENT;
import static com.android.adservices.service.Flags.MEASUREMENT_FLEX_API_MAX_INFO_GAIN_NAVIGATION;
import static com.android.adservices.service.Flags.MEASUREMENT_FLEX_API_MAX_TRIGGER_DATA_CARDINALITY;
import static com.android.adservices.service.Flags.MEASUREMENT_FLEX_LITE_API_ENABLED;
import static com.android.adservices.service.Flags.MEASUREMENT_INSTALL_ATTR_DUAL_DESTINATION_EVENT_NOISE_PROBABILITY;
import static com.android.adservices.service.Flags.MEASUREMENT_INSTALL_ATTR_DUAL_DESTINATION_NAVIGATION_NOISE_PROBABILITY;
import static com.android.adservices.service.Flags.MEASUREMENT_INSTALL_ATTR_EVENT_NOISE_PROBABILITY;
import static com.android.adservices.service.Flags.MEASUREMENT_INSTALL_ATTR_NAVIGATION_NOISE_PROBABILITY;
import static com.android.adservices.service.Flags.MEASUREMENT_IS_CLICK_VERIFICATION_ENABLED;
import static com.android.adservices.service.Flags.MEASUREMENT_IS_CLICK_VERIFIED_BY_INPUT_EVENT;
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_DEBUG_REPORTING_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_JOB_VERBOSE_DEBUG_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_MAX_AGGREGATE_KEYS_PER_SOURCE_REGISTRATION;
import static com.android.adservices.service.Flags.MEASUREMENT_MAX_AGGREGATE_KEYS_PER_TRIGGER_REGISTRATION;
import static com.android.adservices.service.Flags.MEASUREMENT_MAX_AGGREGATE_REPORTS_PER_DESTINATION;
import static com.android.adservices.service.Flags.MEASUREMENT_MAX_AGGREGATE_REPORTS_PER_SOURCE;
import static com.android.adservices.service.Flags.MEASUREMENT_MAX_ATTRIBUTION_PER_RATE_LIMIT_WINDOW;
import static com.android.adservices.service.Flags.MEASUREMENT_MAX_DESTINATIONS_PER_PUBLISHER_PER_RATE_LIMIT_WINDOW;
import static com.android.adservices.service.Flags.MEASUREMENT_MAX_DEST_PER_PUBLISHER_X_ENROLLMENT_PER_RATE_LIMIT_WINDOW;
import static com.android.adservices.service.Flags.MEASUREMENT_MAX_DISTINCT_DESTINATIONS_IN_ACTIVE_SOURCE;
import static com.android.adservices.service.Flags.MEASUREMENT_MAX_DISTINCT_ENROLLMENTS_IN_ATTRIBUTION;
import static com.android.adservices.service.Flags.MEASUREMENT_MAX_DISTINCT_REP_ORIG_PER_PUBLISHER_X_DEST_IN_SOURCE;
import static com.android.adservices.service.Flags.MEASUREMENT_MAX_DISTINCT_WEB_DESTINATIONS_IN_SOURCE_REGISTRATION;
import static com.android.adservices.service.Flags.MEASUREMENT_MAX_EVENT_REPORTS_PER_DESTINATION;
import static com.android.adservices.service.Flags.MEASUREMENT_MAX_INSTALL_ATTRIBUTION_WINDOW;
import static com.android.adservices.service.Flags.MEASUREMENT_MAX_POST_INSTALL_EXCLUSIVITY_WINDOW;
import static com.android.adservices.service.Flags.MEASUREMENT_MAX_REGISTRATIONS_PER_JOB_INVOCATION;
import static com.android.adservices.service.Flags.MEASUREMENT_MAX_REGISTRATION_REDIRECTS;
import static com.android.adservices.service.Flags.MEASUREMENT_MAX_REPORTING_ORIGINS_PER_SOURCE_REPORTING_SITE_PER_WINDOW;
import static com.android.adservices.service.Flags.MEASUREMENT_MAX_REPORTING_REGISTER_SOURCE_EXPIRATION_IN_SECONDS;
import static com.android.adservices.service.Flags.MEASUREMENT_MAX_RETRIES_PER_REGISTRATION_REQUEST;
import static com.android.adservices.service.Flags.MEASUREMENT_MAX_SOURCES_PER_PUBLISHER;
import static com.android.adservices.service.Flags.MEASUREMENT_MAX_SUM_OF_AGGREGATE_VALUES_PER_SOURCE;
import static com.android.adservices.service.Flags.MEASUREMENT_MAX_TRIGGERS_PER_DESTINATION;
import static com.android.adservices.service.Flags.MEASUREMENT_MINIMUM_AGGREGATABLE_REPORT_WINDOW_IN_SECONDS;
import static com.android.adservices.service.Flags.MEASUREMENT_MINIMUM_EVENT_REPORT_WINDOW_IN_SECONDS;
import static com.android.adservices.service.Flags.MEASUREMENT_MIN_EVENT_REPORT_DELAY_MILLIS;
import static com.android.adservices.service.Flags.MEASUREMENT_MIN_INSTALL_ATTRIBUTION_WINDOW;
import static com.android.adservices.service.Flags.MEASUREMENT_MIN_POST_INSTALL_EXCLUSIVITY_WINDOW;
import static com.android.adservices.service.Flags.MEASUREMENT_MIN_REPORTING_ORIGIN_UPDATE_WINDOW;
import static com.android.adservices.service.Flags.MEASUREMENT_MIN_REPORTING_REGISTER_SOURCE_EXPIRATION_IN_SECONDS;
import static com.android.adservices.service.Flags.MEASUREMENT_NAVIGATION_NOISE_PROBABILITY;
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_RATE_LIMIT_WINDOW_MILLISECONDS;
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_REGISTER_SOURCES_REQUEST_PERMITS_PER_SECOND;
import static com.android.adservices.service.Flags.MEASUREMENT_REGISTER_SOURCE_REQUEST_PERMITS_PER_SECOND;
import static com.android.adservices.service.Flags.MEASUREMENT_REGISTER_TRIGGER_REQUEST_PERMITS_PER_SECOND;
import static com.android.adservices.service.Flags.MEASUREMENT_REGISTER_WEB_SOURCE_REQUEST_PERMITS_PER_SECOND;
import static com.android.adservices.service.Flags.MEASUREMENT_REGISTER_WEB_TRIGGER_REQUEST_PERMITS_PER_SECOND;
import static com.android.adservices.service.Flags.MEASUREMENT_REGISTRATION_FALLBACK_JOB_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.MEASUREMENT_ROLLBACK_DELETION_APP_SEARCH_KILL_SWITCH;
import static com.android.adservices.service.Flags.MEASUREMENT_ROLLBACK_DELETION_KILL_SWITCH;
import static com.android.adservices.service.Flags.MEASUREMENT_THROW_UNKNOWN_EXCEPTION_SAMPLING_RATE;
import static com.android.adservices.service.Flags.MEASUREMENT_VERBOSE_DEBUG_REPORTING_FALLBACK_JOB_KILL_SWITCH;
import static com.android.adservices.service.Flags.MEASUREMENT_VERBOSE_DEBUG_REPORTING_FALLBACK_JOB_PERIOD_MS;
import static com.android.adservices.service.Flags.MEASUREMENT_VERBOSE_DEBUG_REPORTING_FALLBACK_JOB_PERSISTED;
import static com.android.adservices.service.Flags.MEASUREMENT_VERBOSE_DEBUG_REPORTING_JOB_REQUIRED_NETWORK_TYPE;
import static com.android.adservices.service.Flags.MSMT_API_APP_ALLOW_LIST;
import static com.android.adservices.service.Flags.MSMT_API_APP_BLOCK_LIST;
import static com.android.adservices.service.Flags.NUMBER_OF_EPOCHS_TO_KEEP_IN_HISTORY;
import static com.android.adservices.service.Flags.PPAPI_AND_ADEXT_SERVICE;
import static com.android.adservices.service.Flags.PPAPI_AND_SYSTEM_SERVER;
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.PROTECTED_SIGNALS_CLEANUP_ENABLED;
import static com.android.adservices.service.Flags.PROTECTED_SIGNALS_ENCODED_PAYLOAD_MAX_SIZE_BYTES;
import static com.android.adservices.service.Flags.PROTECTED_SIGNALS_ENCODER_REFRESH_WINDOW_SECONDS;
import static com.android.adservices.service.Flags.PROTECTED_SIGNALS_FETCH_SIGNAL_UPDATES_MAX_SIZE_BYTES;
import static com.android.adservices.service.Flags.PROTECTED_SIGNALS_PERIODIC_ENCODING_ENABLED;
import static com.android.adservices.service.Flags.PROTECTED_SIGNALS_PERIODIC_ENCODING_JOB_FLEX_MS;
import static com.android.adservices.service.Flags.PROTECTED_SIGNALS_PERIODIC_ENCODING_JOB_PERIOD_MS;
import static com.android.adservices.service.Flags.PROTECTED_SIGNALS_SERVICE_KILL_SWITCH;
import static com.android.adservices.service.Flags.RECORD_MANUAL_INTERACTION_ENABLED;
import static com.android.adservices.service.Flags.SDK_REQUEST_PERMITS_PER_SECOND;
import static com.android.adservices.service.Flags.TOGGLE_SPEED_BUMP_ENABLED;
import static com.android.adservices.service.Flags.TOPICS_API_APP_REQUEST_PERMITS_PER_SECOND;
import static com.android.adservices.service.Flags.TOPICS_API_SDK_REQUEST_PERMITS_PER_SECOND;
import static com.android.adservices.service.Flags.TOPICS_COBALT_LOGGING_ENABLED;
import static com.android.adservices.service.Flags.TOPICS_DISABLE_DIRECT_APP_CALLS;
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_ON_DEVICE_CLASSIFIER_KILL_SWITCH;
import static com.android.adservices.service.Flags.TOPICS_PERCENTAGE_FOR_RANDOM_TOPIC;
import static com.android.adservices.service.Flags.TOPICS_PRIVACY_BUDGET_FOR_TOPIC_ID_DISTRIBUTION;
import static com.android.adservices.service.Flags.UI_DIALOG_FRAGMENT;
import static com.android.adservices.service.Flags.UI_EEA_COUNTRIES;
import static com.android.adservices.service.Flags.UI_FEATURE_TYPE_LOGGING_ENABLED;
import static com.android.adservices.service.Flags.UI_OTA_STRINGS_MANIFEST_FILE_URL;
import static com.android.adservices.service.FlagsConstants.ADSERVICES_CONSENT_MIGRATION_LOGGING_ENABLED;
import static com.android.adservices.service.FlagsConstants.KEY_ADID_KILL_SWITCH;
import static com.android.adservices.service.FlagsConstants.KEY_ADID_REQUEST_PERMITS_PER_SECOND;
import static com.android.adservices.service.FlagsConstants.KEY_ADSERVICES_APK_SHA_CERTS;
import static com.android.adservices.service.FlagsConstants.KEY_ADSERVICES_ENABLED;
import static com.android.adservices.service.FlagsConstants.KEY_ADSERVICES_ENABLEMENT_CHECK_ENABLED;
import static com.android.adservices.service.FlagsConstants.KEY_ADSERVICES_ERROR_LOGGING_ENABLED;
import static com.android.adservices.service.FlagsConstants.KEY_ADSERVICES_RELEASE_STAGE_FOR_COBALT;
import static com.android.adservices.service.FlagsConstants.KEY_ADSERVICES_VERSION_MAPPINGS;
import static com.android.adservices.service.FlagsConstants.KEY_AD_ID_CACHE_ENABLED;
import static com.android.adservices.service.FlagsConstants.KEY_APPSEARCH_WRITER_ALLOW_LIST_OVERRIDE;
import static com.android.adservices.service.FlagsConstants.KEY_APPSETID_KILL_SWITCH;
import static com.android.adservices.service.FlagsConstants.KEY_APPSETID_REQUEST_PERMITS_PER_SECOND;
import static com.android.adservices.service.FlagsConstants.KEY_ASYNC_REGISTRATION_JOB_QUEUE_INTERVAL_MS;
import static com.android.adservices.service.FlagsConstants.KEY_BACKGROUND_JOBS_LOGGING_KILL_SWITCH;
import static com.android.adservices.service.FlagsConstants.KEY_BLOCKED_TOPICS_SOURCE_OF_TRUTH;
import static com.android.adservices.service.FlagsConstants.KEY_CLASSIFIER_DESCRIPTION_MAX_LENGTH;
import static com.android.adservices.service.FlagsConstants.KEY_CLASSIFIER_DESCRIPTION_MAX_WORDS;
import static com.android.adservices.service.FlagsConstants.KEY_CLASSIFIER_FORCE_USE_BUNDLED_FILES;
import static com.android.adservices.service.FlagsConstants.KEY_CLASSIFIER_NUMBER_OF_TOP_LABELS;
import static com.android.adservices.service.FlagsConstants.KEY_CLASSIFIER_THRESHOLD;
import static com.android.adservices.service.FlagsConstants.KEY_CLASSIFIER_TYPE;
import static com.android.adservices.service.FlagsConstants.KEY_COBALT_ADSERVICES_API_KEY_HEX;
import static com.android.adservices.service.FlagsConstants.KEY_COBALT_LOGGING_ENABLED;
import static com.android.adservices.service.FlagsConstants.KEY_COBALT_LOGGING_JOB_PERIOD_MS;
import static com.android.adservices.service.FlagsConstants.KEY_COBALT_UPLOAD_SERVICE_UNBIND_DELAY_MS;
import static com.android.adservices.service.FlagsConstants.KEY_COMPAT_LOGGING_KILL_SWITCH;
import static com.android.adservices.service.FlagsConstants.KEY_CONSENT_NOTIFICATION_ACTIVITY_DEBUG_MODE;
import static com.android.adservices.service.FlagsConstants.KEY_CONSENT_NOTIFICATION_RESET_TOKEN;
import static com.android.adservices.service.FlagsConstants.KEY_CONSENT_NOTIFIED_DEBUG_MODE;
import static com.android.adservices.service.FlagsConstants.KEY_CONSENT_SOURCE_OF_TRUTH;
import static com.android.adservices.service.FlagsConstants.KEY_DEBUG_UX;
import static com.android.adservices.service.FlagsConstants.KEY_DISABLE_FLEDGE_ENROLLMENT_CHECK;
import static com.android.adservices.service.FlagsConstants.KEY_DISABLE_MEASUREMENT_ENROLLMENT_CHECK;
import static com.android.adservices.service.FlagsConstants.KEY_DISABLE_TOPICS_ENROLLMENT_CHECK;
import static com.android.adservices.service.FlagsConstants.KEY_DOWNLOADER_CONNECTION_TIMEOUT_MS;
import static com.android.adservices.service.FlagsConstants.KEY_DOWNLOADER_MAX_DOWNLOAD_THREADS;
import static com.android.adservices.service.FlagsConstants.KEY_DOWNLOADER_READ_TIMEOUT_MS;
import static com.android.adservices.service.FlagsConstants.KEY_ENABLE_ADEXT_DATA_SERVICE_APIS;
import static com.android.adservices.service.FlagsConstants.KEY_ENABLE_ADEXT_SERVICE_CONSENT_DATA;
import static com.android.adservices.service.FlagsConstants.KEY_ENABLE_ADSERVICES_API_ENABLED;
import static com.android.adservices.service.FlagsConstants.KEY_ENABLE_AD_SERVICES_SYSTEM_API;
import static com.android.adservices.service.FlagsConstants.KEY_ENABLE_APPSEARCH_CONSENT_DATA;
import static com.android.adservices.service.FlagsConstants.KEY_ENABLE_BACK_COMPAT;
import static com.android.adservices.service.FlagsConstants.KEY_ENABLE_COMPUTE_VERSION_FROM_MAPPINGS;
import static com.android.adservices.service.FlagsConstants.KEY_ENABLE_DATABASE_SCHEMA_VERSION_8;
import static com.android.adservices.service.FlagsConstants.KEY_ENABLE_DATABASE_SCHEMA_VERSION_9;
import static com.android.adservices.service.FlagsConstants.KEY_ENABLE_ENROLLMENT_TEST_SEED;
import static com.android.adservices.service.FlagsConstants.KEY_ENABLE_LOGGED_TOPIC;
import static com.android.adservices.service.FlagsConstants.KEY_ENCRYPTION_KEY_JOB_PERIOD_MS;
import static com.android.adservices.service.FlagsConstants.KEY_ENCRYPTION_KEY_JOB_REQUIRED_NETWORK_TYPE;
import static com.android.adservices.service.FlagsConstants.KEY_ENCRYPTION_KEY_NETWORK_CONNECT_TIMEOUT_MS;
import static com.android.adservices.service.FlagsConstants.KEY_ENCRYPTION_KEY_NETWORK_READ_TIMEOUT_MS;
import static com.android.adservices.service.FlagsConstants.KEY_ENCRYPTION_KEY_NEW_ENROLLMENT_FETCH_KILL_SWITCH;
import static com.android.adservices.service.FlagsConstants.KEY_ENCRYPTION_KEY_PERIODIC_FETCH_KILL_SWITCH;
import static com.android.adservices.service.FlagsConstants.KEY_ENFORCE_FOREGROUND_STATUS_SIGNALS;
import static com.android.adservices.service.FlagsConstants.KEY_ENFORCE_FOREGROUND_STATUS_TOPICS;
import static com.android.adservices.service.FlagsConstants.KEY_ENFORCE_ISOLATE_MAX_HEAP_SIZE;
import static com.android.adservices.service.FlagsConstants.KEY_ENROLLMENT_BLOCKLIST_IDS;
import static com.android.adservices.service.FlagsConstants.KEY_ENROLLMENT_ENABLE_LIMITED_LOGGING;
import static com.android.adservices.service.FlagsConstants.KEY_ENROLLMENT_MDD_RECORD_DELETION_ENABLED;
import static com.android.adservices.service.FlagsConstants.KEY_ERROR_CODE_LOGGING_DENY_LIST;
import static com.android.adservices.service.FlagsConstants.KEY_EU_NOTIF_FLOW_CHANGE_ENABLED;
import static com.android.adservices.service.FlagsConstants.KEY_FLEDGE_AD_COUNTER_HISTOGRAM_ABSOLUTE_MAX_PER_BUYER_EVENT_COUNT;
import static com.android.adservices.service.FlagsConstants.KEY_FLEDGE_AD_COUNTER_HISTOGRAM_ABSOLUTE_MAX_TOTAL_EVENT_COUNT;
import static com.android.adservices.service.FlagsConstants.KEY_FLEDGE_AD_COUNTER_HISTOGRAM_LOWER_MAX_PER_BUYER_EVENT_COUNT;
import static com.android.adservices.service.FlagsConstants.KEY_FLEDGE_AD_COUNTER_HISTOGRAM_LOWER_MAX_TOTAL_EVENT_COUNT;
import static com.android.adservices.service.FlagsConstants.KEY_FLEDGE_AD_SELECTION_BIDDING_LOGIC_JS_VERSION;
import static com.android.adservices.service.FlagsConstants.KEY_FLEDGE_AD_SELECTION_BIDDING_TIMEOUT_PER_BUYER_MS;
import static com.android.adservices.service.FlagsConstants.KEY_FLEDGE_AD_SELECTION_BIDDING_TIMEOUT_PER_CA_MS;
import static com.android.adservices.service.FlagsConstants.KEY_FLEDGE_AD_SELECTION_EXPIRATION_WINDOW_S;
import static com.android.adservices.service.FlagsConstants.KEY_FLEDGE_AD_SELECTION_FILTERING_ENABLED;
import static com.android.adservices.service.FlagsConstants.KEY_FLEDGE_AD_SELECTION_FROM_OUTCOMES_OVERALL_TIMEOUT_MS;
import static com.android.adservices.service.FlagsConstants.KEY_FLEDGE_AD_SELECTION_MAX_CONCURRENT_BIDDING_COUNT;
import static com.android.adservices.service.FlagsConstants.KEY_FLEDGE_AD_SELECTION_OFF_DEVICE_ENABLED;
import static com.android.adservices.service.FlagsConstants.KEY_FLEDGE_AD_SELECTION_OFF_DEVICE_OVERALL_TIMEOUT_MS;
import static com.android.adservices.service.FlagsConstants.KEY_FLEDGE_AD_SELECTION_OFF_DEVICE_REQUEST_COMPRESSION_ENABLED;
import static com.android.adservices.service.FlagsConstants.KEY_FLEDGE_AD_SELECTION_OVERALL_TIMEOUT_MS;
import static com.android.adservices.service.FlagsConstants.KEY_FLEDGE_AD_SELECTION_PREBUILT_URI_ENABLED;
import static com.android.adservices.service.FlagsConstants.KEY_FLEDGE_AD_SELECTION_SCORING_TIMEOUT_MS;
import static com.android.adservices.service.FlagsConstants.KEY_FLEDGE_AD_SELECTION_SELECTING_OUTCOME_TIMEOUT_MS;
import static com.android.adservices.service.FlagsConstants.KEY_FLEDGE_AUCTION_SERVER_AD_RENDER_ID_ENABLED;
import static com.android.adservices.service.FlagsConstants.KEY_FLEDGE_AUCTION_SERVER_AD_RENDER_ID_MAX_LENGTH;
import static com.android.adservices.service.FlagsConstants.KEY_FLEDGE_AUCTION_SERVER_AUCTION_KEY_FETCH_TIMEOUT_MS;
import static com.android.adservices.service.FlagsConstants.KEY_FLEDGE_AUCTION_SERVER_AUCTION_KEY_FETCH_URI;
import static com.android.adservices.service.FlagsConstants.KEY_FLEDGE_AUCTION_SERVER_AUCTION_KEY_SHARDING;
import static com.android.adservices.service.FlagsConstants.KEY_FLEDGE_AUCTION_SERVER_BACKGROUND_AUCTION_KEY_FETCH_ENABLED;
import static com.android.adservices.service.FlagsConstants.KEY_FLEDGE_AUCTION_SERVER_BACKGROUND_JOIN_KEY_FETCH_ENABLED;
import static com.android.adservices.service.FlagsConstants.KEY_FLEDGE_AUCTION_SERVER_BACKGROUND_KEY_FETCH_JOB_ENABLED;
import static com.android.adservices.service.FlagsConstants.KEY_FLEDGE_AUCTION_SERVER_BACKGROUND_KEY_FETCH_JOB_FLEX_MS;
import static com.android.adservices.service.FlagsConstants.KEY_FLEDGE_AUCTION_SERVER_BACKGROUND_KEY_FETCH_JOB_PERIOD_MS;
import static com.android.adservices.service.FlagsConstants.KEY_FLEDGE_AUCTION_SERVER_BACKGROUND_KEY_FETCH_MAX_RESPONSE_SIZE_B;
import static com.android.adservices.service.FlagsConstants.KEY_FLEDGE_AUCTION_SERVER_BACKGROUND_KEY_FETCH_MAX_RUNTIME_MS;
import static com.android.adservices.service.FlagsConstants.KEY_FLEDGE_AUCTION_SERVER_COMPRESSION_ALGORITHM_VERSION;
import static com.android.adservices.service.FlagsConstants.KEY_FLEDGE_AUCTION_SERVER_ENABLED;
import static com.android.adservices.service.FlagsConstants.KEY_FLEDGE_AUCTION_SERVER_ENABLED_FOR_REPORT_EVENT;
import static com.android.adservices.service.FlagsConstants.KEY_FLEDGE_AUCTION_SERVER_ENABLED_FOR_REPORT_IMPRESSION;
import static com.android.adservices.service.FlagsConstants.KEY_FLEDGE_AUCTION_SERVER_ENABLED_FOR_SELECT_ADS_MEDIATION;
import static com.android.adservices.service.FlagsConstants.KEY_FLEDGE_AUCTION_SERVER_ENABLED_FOR_UPDATE_HISTOGRAM;
import static com.android.adservices.service.FlagsConstants.KEY_FLEDGE_AUCTION_SERVER_ENABLE_AD_FILTER_IN_GET_AD_SELECTION_DATA;
import static com.android.adservices.service.FlagsConstants.KEY_FLEDGE_AUCTION_SERVER_ENABLE_DEBUG_REPORTING;
import static com.android.adservices.service.FlagsConstants.KEY_FLEDGE_AUCTION_SERVER_ENCRYPTION_ALGORITHM_AEAD_ID;
import static com.android.adservices.service.FlagsConstants.KEY_FLEDGE_AUCTION_SERVER_ENCRYPTION_ALGORITHM_KDF_ID;
import static com.android.adservices.service.FlagsConstants.KEY_FLEDGE_AUCTION_SERVER_ENCRYPTION_ALGORITHM_KEM_ID;
import static com.android.adservices.service.FlagsConstants.KEY_FLEDGE_AUCTION_SERVER_ENCRYPTION_KEY_MAX_AGE_SECONDS;
import static com.android.adservices.service.FlagsConstants.KEY_FLEDGE_AUCTION_SERVER_FORCE_SEARCH_WHEN_OWNER_IS_ABSENT_ENABLED;
import static com.android.adservices.service.FlagsConstants.KEY_FLEDGE_AUCTION_SERVER_JOIN_KEY_FETCH_URI;
import static com.android.adservices.service.FlagsConstants.KEY_FLEDGE_AUCTION_SERVER_KILL_SWITCH;
import static com.android.adservices.service.FlagsConstants.KEY_FLEDGE_AUCTION_SERVER_OVERALL_TIMEOUT_MS;
import static com.android.adservices.service.FlagsConstants.KEY_FLEDGE_AUCTION_SERVER_PAYLOAD_BUCKET_SIZES;
import static com.android.adservices.service.FlagsConstants.KEY_FLEDGE_AUCTION_SERVER_PAYLOAD_FORMAT_VERSION;
import static com.android.adservices.service.FlagsConstants.KEY_FLEDGE_BACKGROUND_FETCH_ELIGIBLE_UPDATE_BASE_INTERVAL_S;
import static com.android.adservices.service.FlagsConstants.KEY_FLEDGE_BACKGROUND_FETCH_ENABLED;
import static com.android.adservices.service.FlagsConstants.KEY_FLEDGE_BACKGROUND_FETCH_JOB_FLEX_MS;
import static com.android.adservices.service.FlagsConstants.KEY_FLEDGE_BACKGROUND_FETCH_JOB_MAX_RUNTIME_MS;
import static com.android.adservices.service.FlagsConstants.KEY_FLEDGE_BACKGROUND_FETCH_JOB_PERIOD_MS;
import static com.android.adservices.service.FlagsConstants.KEY_FLEDGE_BACKGROUND_FETCH_MAX_NUM_UPDATED;
import static com.android.adservices.service.FlagsConstants.KEY_FLEDGE_BACKGROUND_FETCH_MAX_RESPONSE_SIZE_B;
import static com.android.adservices.service.FlagsConstants.KEY_FLEDGE_BACKGROUND_FETCH_NETWORK_CONNECT_TIMEOUT_MS;
import static com.android.adservices.service.FlagsConstants.KEY_FLEDGE_BACKGROUND_FETCH_NETWORK_READ_TIMEOUT_MS;
import static com.android.adservices.service.FlagsConstants.KEY_FLEDGE_BACKGROUND_FETCH_THREAD_POOL_SIZE;
import static com.android.adservices.service.FlagsConstants.KEY_FLEDGE_CUSTOM_AUDIENCE_DEFAULT_EXPIRE_IN_MS;
import static com.android.adservices.service.FlagsConstants.KEY_FLEDGE_CUSTOM_AUDIENCE_MAX_ACTIVATION_DELAY_IN_MS;
import static com.android.adservices.service.FlagsConstants.KEY_FLEDGE_CUSTOM_AUDIENCE_MAX_ADS_SIZE_B;
import static com.android.adservices.service.FlagsConstants.KEY_FLEDGE_CUSTOM_AUDIENCE_MAX_BIDDING_LOGIC_URI_SIZE_B;
import static com.android.adservices.service.FlagsConstants.KEY_FLEDGE_CUSTOM_AUDIENCE_MAX_COUNT;
import static com.android.adservices.service.FlagsConstants.KEY_FLEDGE_CUSTOM_AUDIENCE_MAX_DAILY_UPDATE_URI_SIZE_B;
import static com.android.adservices.service.FlagsConstants.KEY_FLEDGE_CUSTOM_AUDIENCE_MAX_EXPIRE_IN_MS;
import static com.android.adservices.service.FlagsConstants.KEY_FLEDGE_CUSTOM_AUDIENCE_MAX_NAME_SIZE_B;
import static com.android.adservices.service.FlagsConstants.KEY_FLEDGE_CUSTOM_AUDIENCE_MAX_NUM_ADS;
import static com.android.adservices.service.FlagsConstants.KEY_FLEDGE_CUSTOM_AUDIENCE_MAX_OWNER_COUNT;
import static com.android.adservices.service.FlagsConstants.KEY_FLEDGE_CUSTOM_AUDIENCE_MAX_TRUSTED_BIDDING_DATA_SIZE_B;
import static com.android.adservices.service.FlagsConstants.KEY_FLEDGE_CUSTOM_AUDIENCE_MAX_USER_BIDDING_SIGNALS_SIZE_B;
import static com.android.adservices.service.FlagsConstants.KEY_FLEDGE_CUSTOM_AUDIENCE_PER_APP_MAX_COUNT;
import static com.android.adservices.service.FlagsConstants.KEY_FLEDGE_CUSTOM_AUDIENCE_SERVICE_KILL_SWITCH;
import static com.android.adservices.service.FlagsConstants.KEY_FLEDGE_FETCH_CUSTOM_AUDIENCE_ENABLED;
import static com.android.adservices.service.FlagsConstants.KEY_FLEDGE_FETCH_CUSTOM_AUDIENCE_MAX_CUSTOM_AUDIENCE_SIZE_B;
import static com.android.adservices.service.FlagsConstants.KEY_FLEDGE_FETCH_CUSTOM_AUDIENCE_MAX_REQUEST_CUSTOM_HEADER_SIZE_B;
import static com.android.adservices.service.FlagsConstants.KEY_FLEDGE_FETCH_CUSTOM_AUDIENCE_MAX_RETRY_AFTER_VALUE_MS;
import static com.android.adservices.service.FlagsConstants.KEY_FLEDGE_FETCH_CUSTOM_AUDIENCE_MAX_USER_BIDDING_SIGNALS_SIZE_B;
import static com.android.adservices.service.FlagsConstants.KEY_FLEDGE_FETCH_CUSTOM_AUDIENCE_MIN_RETRY_AFTER_VALUE_MS;
import static com.android.adservices.service.FlagsConstants.KEY_FLEDGE_HTTP_CACHE_DEFAULT_MAX_AGE_SECONDS;
import static com.android.adservices.service.FlagsConstants.KEY_FLEDGE_HTTP_CACHE_ENABLE;
import static com.android.adservices.service.FlagsConstants.KEY_FLEDGE_HTTP_CACHE_ENABLE_JS_CACHING;
import static com.android.adservices.service.FlagsConstants.KEY_FLEDGE_HTTP_CACHE_MAX_ENTRIES;
import static com.android.adservices.service.FlagsConstants.KEY_FLEDGE_MEASUREMENT_REPORT_AND_REGISTER_EVENT_API_ENABLED;
import static com.android.adservices.service.FlagsConstants.KEY_FLEDGE_MEASUREMENT_REPORT_AND_REGISTER_EVENT_API_FALLBACK_ENABLED;
import static com.android.adservices.service.FlagsConstants.KEY_FLEDGE_ON_DEVICE_AUCTION_KILL_SWITCH;
import static com.android.adservices.service.FlagsConstants.KEY_FLEDGE_ON_DEVICE_AUCTION_SHOULD_USE_UNIFIED_TABLES;
import static com.android.adservices.service.FlagsConstants.KEY_FLEDGE_REPORT_IMPRESSION_MAX_INTERACTION_REPORTING_URI_SIZE_B;
import static com.android.adservices.service.FlagsConstants.KEY_FLEDGE_REPORT_IMPRESSION_MAX_REGISTERED_AD_BEACONS_PER_AD_TECH_COUNT;
import static com.android.adservices.service.FlagsConstants.KEY_FLEDGE_REPORT_IMPRESSION_MAX_REGISTERED_AD_BEACONS_TOTAL_COUNT;
import static com.android.adservices.service.FlagsConstants.KEY_FLEDGE_REPORT_IMPRESSION_OVERALL_TIMEOUT_MS;
import static com.android.adservices.service.FlagsConstants.KEY_FLEDGE_REPORT_IMPRESSION_REGISTERED_AD_BEACONS_MAX_INTERACTION_KEY_SIZE_B;
import static com.android.adservices.service.FlagsConstants.KEY_FLEDGE_REPORT_INTERACTION_REQUEST_PERMITS_PER_SECOND;
import static com.android.adservices.service.FlagsConstants.KEY_FLEDGE_SELECT_ADS_KILL_SWITCH;
import static com.android.adservices.service.FlagsConstants.KEY_FOREGROUND_STATUS_LEVEL;
import static com.android.adservices.service.FlagsConstants.KEY_GA_UX_FEATURE_ENABLED;
import static com.android.adservices.service.FlagsConstants.KEY_GLOBAL_BLOCKED_TOPIC_IDS;
import static com.android.adservices.service.FlagsConstants.KEY_GLOBAL_KILL_SWITCH;
import static com.android.adservices.service.FlagsConstants.KEY_ISOLATE_MAX_HEAP_SIZE_BYTES;
import static com.android.adservices.service.FlagsConstants.KEY_IS_BACK_COMPACT_ACTIVITY_FEATURE_ENABLED;
import static com.android.adservices.service.FlagsConstants.KEY_IS_EEA_DEVICE;
import static com.android.adservices.service.FlagsConstants.KEY_IS_EEA_DEVICE_FEATURE_ENABLED;
import static com.android.adservices.service.FlagsConstants.KEY_IS_U18_SUPERVISED_ACCOUNT_ENABLED;
import static com.android.adservices.service.FlagsConstants.KEY_IS_U18_UX_DETENTION_CHANNEL_ENABLED;
import static com.android.adservices.service.FlagsConstants.KEY_MAINLINE_TRAIN_VERSION;
import static com.android.adservices.service.FlagsConstants.KEY_MAINTENANCE_JOB_FLEX_MS;
import static com.android.adservices.service.FlagsConstants.KEY_MAINTENANCE_JOB_PERIOD_MS;
import static com.android.adservices.service.FlagsConstants.KEY_MAX_RESPONSE_BASED_REGISTRATION_SIZE_BYTES;
import static com.android.adservices.service.FlagsConstants.KEY_MDD_BACKGROUND_TASK_KILL_SWITCH;
import static com.android.adservices.service.FlagsConstants.KEY_MDD_TOPICS_CLASSIFIER_MANIFEST_FILE_URL;
import static com.android.adservices.service.FlagsConstants.KEY_MEASUREMENT_AGGREGATE_FALLBACK_REPORTING_JOB_PERIOD_MS;
import static com.android.adservices.service.FlagsConstants.KEY_MEASUREMENT_AGGREGATE_FALLBACK_REPORTING_JOB_PERSISTED;
import static com.android.adservices.service.FlagsConstants.KEY_MEASUREMENT_AGGREGATE_FALLBACK_REPORTING_JOB_REQUIRED_BATTERY_NOT_LOW;
import static com.android.adservices.service.FlagsConstants.KEY_MEASUREMENT_AGGREGATE_FALLBACK_REPORTING_JOB_REQUIRED_NETWORK_TYPE;
import static com.android.adservices.service.FlagsConstants.KEY_MEASUREMENT_AGGREGATE_MAIN_REPORTING_JOB_PERIOD_MS;
import static com.android.adservices.service.FlagsConstants.KEY_MEASUREMENT_AGGREGATE_REPORTING_JOB_PERSISTED;
import static com.android.adservices.service.FlagsConstants.KEY_MEASUREMENT_AGGREGATE_REPORTING_JOB_REQUIRED_BATTERY_NOT_LOW;
import static com.android.adservices.service.FlagsConstants.KEY_MEASUREMENT_AGGREGATE_REPORTING_JOB_REQUIRED_NETWORK_TYPE;
import static com.android.adservices.service.FlagsConstants.KEY_MEASUREMENT_AGGREGATE_REPORT_DELAY_CONFIG;
import static com.android.adservices.service.FlagsConstants.KEY_MEASUREMENT_AGGREGATION_COORDINATOR_ORIGIN_ENABLED;
import static com.android.adservices.service.FlagsConstants.KEY_MEASUREMENT_AGGREGATION_COORDINATOR_ORIGIN_LIST;
import static com.android.adservices.service.FlagsConstants.KEY_MEASUREMENT_AGGREGATION_COORDINATOR_PATH;
import static com.android.adservices.service.FlagsConstants.KEY_MEASUREMENT_API_DELETE_REGISTRATIONS_KILL_SWITCH;
import static com.android.adservices.service.FlagsConstants.KEY_MEASUREMENT_API_REGISTER_SOURCES_KILL_SWITCH;
import static com.android.adservices.service.FlagsConstants.KEY_MEASUREMENT_API_REGISTER_SOURCE_KILL_SWITCH;
import static com.android.adservices.service.FlagsConstants.KEY_MEASUREMENT_API_REGISTER_TRIGGER_KILL_SWITCH;
import static com.android.adservices.service.FlagsConstants.KEY_MEASUREMENT_API_REGISTER_WEB_SOURCE_KILL_SWITCH;
import static com.android.adservices.service.FlagsConstants.KEY_MEASUREMENT_API_REGISTER_WEB_TRIGGER_KILL_SWITCH;
import static com.android.adservices.service.FlagsConstants.KEY_MEASUREMENT_API_STATUS_KILL_SWITCH;
import static com.android.adservices.service.FlagsConstants.KEY_MEASUREMENT_APP_PACKAGE_NAME_LOGGING_ALLOWLIST;
import static com.android.adservices.service.FlagsConstants.KEY_MEASUREMENT_ASYNC_REGISTRATION_FALLBACK_JOB_PERSISTED;
import static com.android.adservices.service.FlagsConstants.KEY_MEASUREMENT_ASYNC_REGISTRATION_FALLBACK_JOB_REQUIRED_BATTERY_NOT_LOW;
import static com.android.adservices.service.FlagsConstants.KEY_MEASUREMENT_ASYNC_REGISTRATION_FALLBACK_JOB_REQUIRED_NETWORK_TYPE;
import static com.android.adservices.service.FlagsConstants.KEY_MEASUREMENT_ASYNC_REGISTRATION_JOB_TRIGGER_MAX_DELAY_MS;
import static com.android.adservices.service.FlagsConstants.KEY_MEASUREMENT_ASYNC_REGISTRATION_JOB_TRIGGER_MIN_DELAY_MS;
import static com.android.adservices.service.FlagsConstants.KEY_MEASUREMENT_ASYNC_REGISTRATION_QUEUE_JOB_PERSISTED;
import static com.android.adservices.service.FlagsConstants.KEY_MEASUREMENT_ASYNC_REGISTRATION_QUEUE_JOB_REQUIRED_NETWORK_TYPE;
import static com.android.adservices.service.FlagsConstants.KEY_MEASUREMENT_ATTRIBUTION_FALLBACK_JOB_KILL_SWITCH;
import static com.android.adservices.service.FlagsConstants.KEY_MEASUREMENT_ATTRIBUTION_FALLBACK_JOB_PERIOD_MS;
import static com.android.adservices.service.FlagsConstants.KEY_MEASUREMENT_ATTRIBUTION_FALLBACK_JOB_PERSISTED;
import static com.android.adservices.service.FlagsConstants.KEY_MEASUREMENT_ATTRIBUTION_JOB_PERSISTED;
import static com.android.adservices.service.FlagsConstants.KEY_MEASUREMENT_ATTRIBUTION_JOB_TRIGGERING_DELAY_MS;
import static com.android.adservices.service.FlagsConstants.KEY_MEASUREMENT_DATA_EXPIRY_WINDOW_MS;
import static com.android.adservices.service.FlagsConstants.KEY_MEASUREMENT_DB_SIZE_LIMIT;
import static com.android.adservices.service.FlagsConstants.KEY_MEASUREMENT_DEBUG_JOIN_KEY_ENROLLMENT_ALLOWLIST;
import static com.android.adservices.service.FlagsConstants.KEY_MEASUREMENT_DEBUG_JOIN_KEY_HASH_LIMIT;
import static com.android.adservices.service.FlagsConstants.KEY_MEASUREMENT_DEBUG_KEY_AD_ID_MATCHING_ENROLLMENT_BLOCKLIST;
import static com.android.adservices.service.FlagsConstants.KEY_MEASUREMENT_DEBUG_KEY_AD_ID_MATCHING_LIMIT;
import static com.android.adservices.service.FlagsConstants.KEY_MEASUREMENT_DEBUG_REPORTING_FALLBACK_JOB_KILL_SWITCH;
import static com.android.adservices.service.FlagsConstants.KEY_MEASUREMENT_DEBUG_REPORTING_FALLBACK_JOB_PERIOD_MS;
import static com.android.adservices.service.FlagsConstants.KEY_MEASUREMENT_DEBUG_REPORTING_FALLBACK_JOB_PERSISTED;
import static com.android.adservices.service.FlagsConstants.KEY_MEASUREMENT_DEBUG_REPORTING_FALLBACK_JOB_REQUIRED_NETWORK_TYPE;
import static com.android.adservices.service.FlagsConstants.KEY_MEASUREMENT_DEBUG_REPORTING_JOB_REQUIRED_NETWORK_TYPE;
import static com.android.adservices.service.FlagsConstants.KEY_MEASUREMENT_DEFAULT_AGGREGATION_COORDINATOR_ORIGIN;
import static com.android.adservices.service.FlagsConstants.KEY_MEASUREMENT_DELETE_EXPIRED_JOB_PERIOD_MS;
import static com.android.adservices.service.FlagsConstants.KEY_MEASUREMENT_DELETE_EXPIRED_JOB_PERSISTED;
import static com.android.adservices.service.FlagsConstants.KEY_MEASUREMENT_DELETE_EXPIRED_JOB_REQUIRES_DEVICE_IDLE;
import static com.android.adservices.service.FlagsConstants.KEY_MEASUREMENT_DELETE_UNINSTALLED_JOB_PERIOD_MS;
import static com.android.adservices.service.FlagsConstants.KEY_MEASUREMENT_DELETE_UNINSTALLED_JOB_PERSISTED;
import static com.android.adservices.service.FlagsConstants.KEY_MEASUREMENT_DESTINATION_RATE_LIMIT_WINDOW;
import static com.android.adservices.service.FlagsConstants.KEY_MEASUREMENT_DUAL_DESTINATION_EVENT_NOISE_PROBABILITY;
import static com.android.adservices.service.FlagsConstants.KEY_MEASUREMENT_DUAL_DESTINATION_NAVIGATION_NOISE_PROBABILITY;
import static com.android.adservices.service.FlagsConstants.KEY_MEASUREMENT_ENABLE_AGGREGATABLE_REPORT_PAYLOAD_PADDING;
import static com.android.adservices.service.FlagsConstants.KEY_MEASUREMENT_ENABLE_API_STATUS_ALLOW_LIST_CHECK;
import static com.android.adservices.service.FlagsConstants.KEY_MEASUREMENT_ENABLE_APP_PACKAGE_NAME_LOGGING;
import static com.android.adservices.service.FlagsConstants.KEY_MEASUREMENT_ENABLE_ARA_DEDUPLICATION_ALIGNMENT_V1;
import static com.android.adservices.service.FlagsConstants.KEY_MEASUREMENT_ENABLE_ARA_PARSING_ALIGNMENT_V1;
import static com.android.adservices.service.FlagsConstants.KEY_MEASUREMENT_ENABLE_COARSE_EVENT_REPORT_DESTINATIONS;
import static com.android.adservices.service.FlagsConstants.KEY_MEASUREMENT_ENABLE_CONFIGURABLE_AGGREGATE_REPORT_DELAY;
import static com.android.adservices.service.FlagsConstants.KEY_MEASUREMENT_ENABLE_CONFIGURABLE_EVENT_REPORTING_WINDOWS;
import static com.android.adservices.service.FlagsConstants.KEY_MEASUREMENT_ENABLE_DATASTORE_MANAGER_THROW_DATASTORE_EXCEPTION;
import static com.android.adservices.service.FlagsConstants.KEY_MEASUREMENT_ENABLE_DEBUG_REPORT;
import static com.android.adservices.service.FlagsConstants.KEY_MEASUREMENT_ENABLE_DELETE_REPORTS_ON_UNRECOVERABLE_EXCEPTION;
import static com.android.adservices.service.FlagsConstants.KEY_MEASUREMENT_ENABLE_DESTINATION_RATE_LIMIT;
import static com.android.adservices.service.FlagsConstants.KEY_MEASUREMENT_ENABLE_LOOKBACK_WINDOW_FILTER;
import static com.android.adservices.service.FlagsConstants.KEY_MEASUREMENT_ENABLE_MAX_AGGREGATE_REPORTS_PER_SOURCE;
import static com.android.adservices.service.FlagsConstants.KEY_MEASUREMENT_ENABLE_PREINSTALL_CHECK;
import static com.android.adservices.service.FlagsConstants.KEY_MEASUREMENT_ENABLE_REPORTING_JOBS_THROW_CRYPTO_EXCEPTION;
import static com.android.adservices.service.FlagsConstants.KEY_MEASUREMENT_ENABLE_REPORTING_JOBS_THROW_JSON_EXCEPTION;
import static com.android.adservices.service.FlagsConstants.KEY_MEASUREMENT_ENABLE_REPORTING_JOBS_THROW_UNACCOUNTED_EXCEPTION;
import static com.android.adservices.service.FlagsConstants.KEY_MEASUREMENT_ENABLE_SHARED_FILTER_DATA_KEYS_XNA;
import static com.android.adservices.service.FlagsConstants.KEY_MEASUREMENT_ENABLE_SHARED_SOURCE_DEBUG_KEY;
import static com.android.adservices.service.FlagsConstants.KEY_MEASUREMENT_ENABLE_SOURCE_DEACTIVATION_AFTER_FILTERING;
import static com.android.adservices.service.FlagsConstants.KEY_MEASUREMENT_ENABLE_SOURCE_DEBUG_REPORT;
import static com.android.adservices.service.FlagsConstants.KEY_MEASUREMENT_ENABLE_TRIGGER_DEBUG_REPORT;
import static com.android.adservices.service.FlagsConstants.KEY_MEASUREMENT_ENABLE_VTC_CONFIGURABLE_MAX_EVENT_REPORTS;
import static com.android.adservices.service.FlagsConstants.KEY_MEASUREMENT_ENABLE_XNA;
import static com.android.adservices.service.FlagsConstants.KEY_MEASUREMENT_ENFORCE_ENROLLMENT_ORIGIN_MATCH;
import static com.android.adservices.service.FlagsConstants.KEY_MEASUREMENT_ENFORCE_FOREGROUND_STATUS_DELETE_REGISTRATIONS;
import static com.android.adservices.service.FlagsConstants.KEY_MEASUREMENT_ENFORCE_FOREGROUND_STATUS_GET_STATUS;
import static com.android.adservices.service.FlagsConstants.KEY_MEASUREMENT_ENFORCE_FOREGROUND_STATUS_REGISTER_SOURCE;
import static com.android.adservices.service.FlagsConstants.KEY_MEASUREMENT_ENFORCE_FOREGROUND_STATUS_REGISTER_SOURCES;
import static com.android.adservices.service.FlagsConstants.KEY_MEASUREMENT_ENFORCE_FOREGROUND_STATUS_REGISTER_TRIGGER;
import static com.android.adservices.service.FlagsConstants.KEY_MEASUREMENT_ENFORCE_FOREGROUND_STATUS_REGISTER_WEB_SOURCE;
import static com.android.adservices.service.FlagsConstants.KEY_MEASUREMENT_ENFORCE_FOREGROUND_STATUS_REGISTER_WEB_TRIGGER;
import static com.android.adservices.service.FlagsConstants.KEY_MEASUREMENT_EVENT_FALLBACK_REPORTING_JOB_PERIOD_MS;
import static com.android.adservices.service.FlagsConstants.KEY_MEASUREMENT_EVENT_FALLBACK_REPORTING_JOB_PERSISTED;
import static com.android.adservices.service.FlagsConstants.KEY_MEASUREMENT_EVENT_FALLBACK_REPORTING_JOB_REQUIRED_BATTERY_NOT_LOW;
import static com.android.adservices.service.FlagsConstants.KEY_MEASUREMENT_EVENT_FALLBACK_REPORTING_JOB_REQUIRED_NETWORK_TYPE;
import static com.android.adservices.service.FlagsConstants.KEY_MEASUREMENT_EVENT_MAIN_REPORTING_JOB_PERIOD_MS;
import static com.android.adservices.service.FlagsConstants.KEY_MEASUREMENT_EVENT_NOISE_PROBABILITY;
import static com.android.adservices.service.FlagsConstants.KEY_MEASUREMENT_EVENT_REPORTING_JOB_PERSISTED;
import static com.android.adservices.service.FlagsConstants.KEY_MEASUREMENT_EVENT_REPORTING_JOB_REQUIRED_BATTERY_NOT_LOW;
import static com.android.adservices.service.FlagsConstants.KEY_MEASUREMENT_EVENT_REPORTING_JOB_REQUIRED_NETWORK_TYPE;
import static com.android.adservices.service.FlagsConstants.KEY_MEASUREMENT_EVENT_REPORTS_CTC_EARLY_REPORTING_WINDOWS;
import static com.android.adservices.service.FlagsConstants.KEY_MEASUREMENT_EVENT_REPORTS_VTC_EARLY_REPORTING_WINDOWS;
import static com.android.adservices.service.FlagsConstants.KEY_MEASUREMENT_FLEXIBLE_EVENT_REPORTING_API_ENABLED;
import static com.android.adservices.service.FlagsConstants.KEY_MEASUREMENT_FLEX_API_MAX_EVENT_REPORTS;
import static com.android.adservices.service.FlagsConstants.KEY_MEASUREMENT_FLEX_API_MAX_EVENT_REPORT_WINDOWS;
import static com.android.adservices.service.FlagsConstants.KEY_MEASUREMENT_FLEX_API_MAX_INFORMATION_GAIN_EVENT;
import static com.android.adservices.service.FlagsConstants.KEY_MEASUREMENT_FLEX_API_MAX_INFORMATION_GAIN_NAVIGATION;
import static com.android.adservices.service.FlagsConstants.KEY_MEASUREMENT_FLEX_API_MAX_TRIGGER_DATA_CARDINALITY;
import static com.android.adservices.service.FlagsConstants.KEY_MEASUREMENT_FLEX_LITE_API_ENABLED;
import static com.android.adservices.service.FlagsConstants.KEY_MEASUREMENT_INSTALL_ATTR_DUAL_DESTINATION_EVENT_NOISE_PROBABILITY;
import static com.android.adservices.service.FlagsConstants.KEY_MEASUREMENT_INSTALL_ATTR_DUAL_DESTINATION_NAVIGATION_NOISE_PROBABILITY;
import static com.android.adservices.service.FlagsConstants.KEY_MEASUREMENT_INSTALL_ATTR_EVENT_NOISE_PROBABILITY;
import static com.android.adservices.service.FlagsConstants.KEY_MEASUREMENT_INSTALL_ATTR_NAVIGATION_NOISE_PROBABILITY;
import static com.android.adservices.service.FlagsConstants.KEY_MEASUREMENT_IS_CLICK_VERIFICATION_ENABLED;
import static com.android.adservices.service.FlagsConstants.KEY_MEASUREMENT_IS_CLICK_VERIFIED_BY_INPUT_EVENT;
import static com.android.adservices.service.FlagsConstants.KEY_MEASUREMENT_JOB_AGGREGATE_FALLBACK_REPORTING_KILL_SWITCH;
import static com.android.adservices.service.FlagsConstants.KEY_MEASUREMENT_JOB_AGGREGATE_REPORTING_KILL_SWITCH;
import static com.android.adservices.service.FlagsConstants.KEY_MEASUREMENT_JOB_ATTRIBUTION_KILL_SWITCH;
import static com.android.adservices.service.FlagsConstants.KEY_MEASUREMENT_JOB_DEBUG_REPORTING_KILL_SWITCH;
import static com.android.adservices.service.FlagsConstants.KEY_MEASUREMENT_JOB_DELETE_EXPIRED_KILL_SWITCH;
import static com.android.adservices.service.FlagsConstants.KEY_MEASUREMENT_JOB_DELETE_UNINSTALLED_KILL_SWITCH;
import static com.android.adservices.service.FlagsConstants.KEY_MEASUREMENT_JOB_EVENT_FALLBACK_REPORTING_KILL_SWITCH;
import static com.android.adservices.service.FlagsConstants.KEY_MEASUREMENT_JOB_EVENT_REPORTING_KILL_SWITCH;
import static com.android.adservices.service.FlagsConstants.KEY_MEASUREMENT_JOB_VERBOSE_DEBUG_REPORTING_KILL_SWITCH;
import static com.android.adservices.service.FlagsConstants.KEY_MEASUREMENT_KILL_SWITCH;
import static com.android.adservices.service.FlagsConstants.KEY_MEASUREMENT_MANIFEST_FILE_URL;
import static com.android.adservices.service.FlagsConstants.KEY_MEASUREMENT_MAX_AGGREGATE_DEDUPLICATION_KEYS_PER_REGISTRATION;
import static com.android.adservices.service.FlagsConstants.KEY_MEASUREMENT_MAX_AGGREGATE_KEYS_PER_SOURCE_REGISTRATION;
import static com.android.adservices.service.FlagsConstants.KEY_MEASUREMENT_MAX_AGGREGATE_KEYS_PER_TRIGGER_REGISTRATION;
import static com.android.adservices.service.FlagsConstants.KEY_MEASUREMENT_MAX_AGGREGATE_REPORTS_PER_DESTINATION;
import static com.android.adservices.service.FlagsConstants.KEY_MEASUREMENT_MAX_AGGREGATE_REPORTS_PER_SOURCE;
import static com.android.adservices.service.FlagsConstants.KEY_MEASUREMENT_MAX_AGGREGATE_REPORT_UPLOAD_RETRY_WINDOW_MS;
import static com.android.adservices.service.FlagsConstants.KEY_MEASUREMENT_MAX_ATTRIBUTIONS_PER_INVOCATION;
import static com.android.adservices.service.FlagsConstants.KEY_MEASUREMENT_MAX_ATTRIBUTION_FILTERS;
import static com.android.adservices.service.FlagsConstants.KEY_MEASUREMENT_MAX_ATTRIBUTION_PER_RATE_LIMIT_WINDOW;
import static com.android.adservices.service.FlagsConstants.KEY_MEASUREMENT_MAX_BYTES_PER_ATTRIBUTION_AGGREGATE_KEY_ID;
import static com.android.adservices.service.FlagsConstants.KEY_MEASUREMENT_MAX_BYTES_PER_ATTRIBUTION_FILTER_STRING;
import static com.android.adservices.service.FlagsConstants.KEY_MEASUREMENT_MAX_DELAYED_SOURCE_REGISTRATION_WINDOW;
import static com.android.adservices.service.FlagsConstants.KEY_MEASUREMENT_MAX_DESTINATIONS_PER_PUBLISHER_PER_RATE_LIMIT_WINDOW;
import static com.android.adservices.service.FlagsConstants.KEY_MEASUREMENT_MAX_DEST_PER_PUBLISHER_X_ENROLLMENT_PER_RATE_LIMIT_WINDOW;
import static com.android.adservices.service.FlagsConstants.KEY_MEASUREMENT_MAX_DISTINCT_DESTINATIONS_IN_ACTIVE_SOURCE;
import static com.android.adservices.service.FlagsConstants.KEY_MEASUREMENT_MAX_DISTINCT_ENROLLMENTS_IN_ATTRIBUTION;
import static com.android.adservices.service.FlagsConstants.KEY_MEASUREMENT_MAX_DISTINCT_REPORTING_ORIGINS_IN_SOURCE;
import static com.android.adservices.service.FlagsConstants.KEY_MEASUREMENT_MAX_DISTINCT_WEB_DESTINATIONS_IN_SOURCE_REGISTRATION;
import static com.android.adservices.service.FlagsConstants.KEY_MEASUREMENT_MAX_EVENT_REPORTS_PER_DESTINATION;
import static com.android.adservices.service.FlagsConstants.KEY_MEASUREMENT_MAX_EVENT_REPORT_UPLOAD_RETRY_WINDOW_MS;
import static com.android.adservices.service.FlagsConstants.KEY_MEASUREMENT_MAX_FILTER_MAPS_PER_FILTER_SET;
import static com.android.adservices.service.FlagsConstants.KEY_MEASUREMENT_MAX_INSTALL_ATTRIBUTION_WINDOW;
import static com.android.adservices.service.FlagsConstants.KEY_MEASUREMENT_MAX_POST_INSTALL_EXCLUSIVITY_WINDOW;
import static com.android.adservices.service.FlagsConstants.KEY_MEASUREMENT_MAX_REGISTRATIONS_PER_JOB_INVOCATION;
import static com.android.adservices.service.FlagsConstants.KEY_MEASUREMENT_MAX_REGISTRATION_REDIRECTS;
import static com.android.adservices.service.FlagsConstants.KEY_MEASUREMENT_MAX_REPORTING_ORIGINS_PER_SOURCE_REPORTING_SITE_PER_WINDOW;
import static com.android.adservices.service.FlagsConstants.KEY_MEASUREMENT_MAX_REPORTING_REGISTER_SOURCE_EXPIRATION_IN_SECONDS;
import static com.android.adservices.service.FlagsConstants.KEY_MEASUREMENT_MAX_RETRIES_PER_REGISTRATION_REQUEST;
import static com.android.adservices.service.FlagsConstants.KEY_MEASUREMENT_MAX_SOURCES_PER_PUBLISHER;
import static com.android.adservices.service.FlagsConstants.KEY_MEASUREMENT_MAX_SUM_OF_AGGREGATE_VALUES_PER_SOURCE;
import static com.android.adservices.service.FlagsConstants.KEY_MEASUREMENT_MAX_TRIGGERS_PER_DESTINATION;
import static com.android.adservices.service.FlagsConstants.KEY_MEASUREMENT_MAX_VALUES_PER_ATTRIBUTION_FILTER;
import static com.android.adservices.service.FlagsConstants.KEY_MEASUREMENT_MINIMUM_AGGREGATABLE_REPORT_WINDOW_IN_SECONDS;
import static com.android.adservices.service.FlagsConstants.KEY_MEASUREMENT_MINIMUM_EVENT_REPORT_WINDOW_IN_SECONDS;
import static com.android.adservices.service.FlagsConstants.KEY_MEASUREMENT_MIN_EVENT_REPORT_DELAY_MILLIS;
import static com.android.adservices.service.FlagsConstants.KEY_MEASUREMENT_MIN_INSTALL_ATTRIBUTION_WINDOW;
import static com.android.adservices.service.FlagsConstants.KEY_MEASUREMENT_MIN_POST_INSTALL_EXCLUSIVITY_WINDOW;
import static com.android.adservices.service.FlagsConstants.KEY_MEASUREMENT_MIN_REPORTING_ORIGIN_UPDATE_WINDOW;
import static com.android.adservices.service.FlagsConstants.KEY_MEASUREMENT_MIN_REPORTING_REGISTER_SOURCE_EXPIRATION_IN_SECONDS;
import static com.android.adservices.service.FlagsConstants.KEY_MEASUREMENT_NAVIGATION_NOISE_PROBABILITY;
import static com.android.adservices.service.FlagsConstants.KEY_MEASUREMENT_NETWORK_CONNECT_TIMEOUT_MS;
import static com.android.adservices.service.FlagsConstants.KEY_MEASUREMENT_NETWORK_READ_TIMEOUT_MS;
import static com.android.adservices.service.FlagsConstants.KEY_MEASUREMENT_RATE_LIMIT_WINDOW_MILLISECONDS;
import static com.android.adservices.service.FlagsConstants.KEY_MEASUREMENT_RECEIVER_DELETE_PACKAGES_KILL_SWITCH;
import static com.android.adservices.service.FlagsConstants.KEY_MEASUREMENT_RECEIVER_INSTALL_ATTRIBUTION_KILL_SWITCH;
import static com.android.adservices.service.FlagsConstants.KEY_MEASUREMENT_REGISTER_SOURCES_REQUEST_PERMITS_PER_SECOND;
import static com.android.adservices.service.FlagsConstants.KEY_MEASUREMENT_REGISTER_SOURCE_REQUEST_PERMITS_PER_SECOND;
import static com.android.adservices.service.FlagsConstants.KEY_MEASUREMENT_REGISTER_TRIGGER_REQUEST_PERMITS_PER_SECOND;
import static com.android.adservices.service.FlagsConstants.KEY_MEASUREMENT_REGISTER_WEB_SOURCE_REQUEST_PERMITS_PER_SECOND;
import static com.android.adservices.service.FlagsConstants.KEY_MEASUREMENT_REGISTER_WEB_TRIGGER_REQUEST_PERMITS_PER_SECOND;
import static com.android.adservices.service.FlagsConstants.KEY_MEASUREMENT_REGISTRATION_FALLBACK_JOB_KILL_SWITCH;
import static com.android.adservices.service.FlagsConstants.KEY_MEASUREMENT_REGISTRATION_INPUT_EVENT_VALID_WINDOW_MS;
import static com.android.adservices.service.FlagsConstants.KEY_MEASUREMENT_REGISTRATION_JOB_QUEUE_KILL_SWITCH;
import static com.android.adservices.service.FlagsConstants.KEY_MEASUREMENT_ROLLBACK_DELETION_APP_SEARCH_KILL_SWITCH;
import static com.android.adservices.service.FlagsConstants.KEY_MEASUREMENT_ROLLBACK_DELETION_KILL_SWITCH;
import static com.android.adservices.service.FlagsConstants.KEY_MEASUREMENT_THROW_UNKNOWN_EXCEPTION_SAMPLING_RATE;
import static com.android.adservices.service.FlagsConstants.KEY_MEASUREMENT_VERBOSE_DEBUG_REPORTING_FALLBACK_JOB_KILL_SWITCH;
import static com.android.adservices.service.FlagsConstants.KEY_MEASUREMENT_VERBOSE_DEBUG_REPORTING_FALLBACK_JOB_PERIOD_MS;
import static com.android.adservices.service.FlagsConstants.KEY_MEASUREMENT_VERBOSE_DEBUG_REPORTING_FALLBACK_JOB_PERSISTED;
import static com.android.adservices.service.FlagsConstants.KEY_MEASUREMENT_VERBOSE_DEBUG_REPORTING_JOB_REQUIRED_NETWORK_TYPE;
import static com.android.adservices.service.FlagsConstants.KEY_MEASUREMENT_VTC_CONFIGURABLE_MAX_EVENT_REPORTS_COUNT;
import static com.android.adservices.service.FlagsConstants.KEY_MSMT_API_APP_ALLOW_LIST;
import static com.android.adservices.service.FlagsConstants.KEY_MSMT_API_APP_BLOCK_LIST;
import static com.android.adservices.service.FlagsConstants.KEY_NOTIFICATION_DISMISSED_ON_CLICK;
import static com.android.adservices.service.FlagsConstants.KEY_NUMBER_OF_EPOCHS_TO_KEEP_IN_HISTORY;
import static com.android.adservices.service.FlagsConstants.KEY_PPAPI_APP_ALLOW_LIST;
import static com.android.adservices.service.FlagsConstants.KEY_PPAPI_APP_SIGNATURE_ALLOW_LIST;
import static com.android.adservices.service.FlagsConstants.KEY_PROTECTED_SIGNALS_ENCODED_PAYLOAD_MAX_SIZE_BYTES;
import static com.android.adservices.service.FlagsConstants.KEY_PROTECTED_SIGNALS_ENCODER_REFRESH_WINDOW_SECONDS;
import static com.android.adservices.service.FlagsConstants.KEY_PROTECTED_SIGNALS_FETCH_SIGNAL_UPDATES_MAX_SIZE_BYTES;
import static com.android.adservices.service.FlagsConstants.KEY_PROTECTED_SIGNALS_PERIODIC_ENCODING_ENABLED;
import static com.android.adservices.service.FlagsConstants.KEY_PROTECTED_SIGNALS_PERIODIC_ENCODING_JOB_FLEX_MS;
import static com.android.adservices.service.FlagsConstants.KEY_PROTECTED_SIGNALS_PERIODIC_ENCODING_JOB_PERIOD_MS;
import static com.android.adservices.service.FlagsConstants.KEY_PROTECTED_SIGNALS_SERVICE_KILL_SWITCH;
import static com.android.adservices.service.FlagsConstants.KEY_RECORD_MANUAL_INTERACTION_ENABLED;
import static com.android.adservices.service.FlagsConstants.KEY_RVC_NOTIFICATION_ENABLED;
import static com.android.adservices.service.FlagsConstants.KEY_RVC_UX_ENABLED;
import static com.android.adservices.service.FlagsConstants.KEY_SDK_REQUEST_PERMITS_PER_SECOND;
import static com.android.adservices.service.FlagsConstants.KEY_TOPICS_API_APP_REQUEST_PERMITS_PER_SECOND;
import static com.android.adservices.service.FlagsConstants.KEY_TOPICS_API_SDK_REQUEST_PERMITS_PER_SECOND;
import static com.android.adservices.service.FlagsConstants.KEY_TOPICS_COBALT_LOGGING_ENABLED;
import static com.android.adservices.service.FlagsConstants.KEY_TOPICS_DISABLE_DIRECT_APP_CALLS;
import static com.android.adservices.service.FlagsConstants.KEY_TOPICS_EPOCH_JOB_FLEX_MS;
import static com.android.adservices.service.FlagsConstants.KEY_TOPICS_EPOCH_JOB_PERIOD_MS;
import static com.android.adservices.service.FlagsConstants.KEY_TOPICS_KILL_SWITCH;
import static com.android.adservices.service.FlagsConstants.KEY_TOPICS_NUMBER_OF_LOOK_BACK_EPOCHS;
import static com.android.adservices.service.FlagsConstants.KEY_TOPICS_NUMBER_OF_RANDOM_TOPICS;
import static com.android.adservices.service.FlagsConstants.KEY_TOPICS_NUMBER_OF_TOP_TOPICS;
import static com.android.adservices.service.FlagsConstants.KEY_TOPICS_ON_DEVICE_CLASSIFIER_KILL_SWITCH;
import static com.android.adservices.service.FlagsConstants.KEY_TOPICS_PERCENTAGE_FOR_RANDOM_TOPIC;
import static com.android.adservices.service.FlagsConstants.KEY_TOPICS_PRIVACY_BUDGET_FOR_TOPIC_ID_DISTRIBUTION;
import static com.android.adservices.service.FlagsConstants.KEY_U18_UX_ENABLED;
import static com.android.adservices.service.FlagsConstants.KEY_UI_DIALOG_FRAGMENT_ENABLED;
import static com.android.adservices.service.FlagsConstants.KEY_UI_EEA_COUNTRIES;
import static com.android.adservices.service.FlagsConstants.KEY_UI_FEATURE_TYPE_LOGGING_ENABLED;
import static com.android.adservices.service.FlagsConstants.KEY_UI_OTA_STRINGS_MANIFEST_FILE_URL;
import static com.android.adservices.service.FlagsConstants.KEY_UI_TOGGLE_SPEED_BUMP_ENABLED;
import static com.google.common.truth.Truth.assertThat;
import static com.google.common.truth.Truth.assertWithMessage;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertThrows;
import android.provider.DeviceConfig;
import androidx.test.filters.SmallTest;
import com.android.adservices.mockito.AdServicesExtendedMockitoRule;
import com.android.adservices.service.Flags.ClassifierType;
import com.android.adservices.service.topics.fixture.SysPropForceDefaultValueFixture;
import com.android.modules.utils.build.SdkLevel;
import com.android.modules.utils.testing.TestableDeviceConfig;
import com.google.common.collect.ImmutableList;
import org.junit.Assume;
import org.junit.Rule;
import org.junit.Test;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.PrintWriter;
import java.io.Writer;
import java.util.UUID;
import java.util.concurrent.TimeUnit;
import java.util.stream.Collectors;
/** Unit tests for {@link com.android.adservices.service.PhFlags} */
@SmallTest
public class PhFlagsTest {
@Rule
public final AdServicesExtendedMockitoRule mAdServicesExtendedMockitoRule =
new AdServicesExtendedMockitoRule.Builder(this)
.spyStatic(SdkLevel.class)
.addStaticMockFixtures(
TestableDeviceConfig::new, SysPropForceDefaultValueFixture::new)
.build();
private final Flags mPhFlags = PhFlags.getInstance();
private final Flags mTestFlags = FlagsFactory.getFlagsForTest();
@Test
public void testGetTopicsEpochJobPeriodMs() {
// Without any overriding, the value is the hard coded constant.
assertThat(mPhFlags.getTopicsEpochJobPeriodMs()).isEqualTo(TOPICS_EPOCH_JOB_PERIOD_MS);
// Now overriding with the value from PH.
long phOverridingValue = TOPICS_EPOCH_JOB_PERIOD_MS + 1;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_TOPICS_EPOCH_JOB_PERIOD_MS,
Long.toString(phOverridingValue),
/* makeDefault */ false);
assertThat(mPhFlags.getTopicsEpochJobPeriodMs()).isEqualTo(phOverridingValue);
long illegalPhOverridingValue = -1;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_TOPICS_EPOCH_JOB_PERIOD_MS,
Long.toString(illegalPhOverridingValue),
/* makeDefault */ false);
assertThrows(IllegalArgumentException.class, mPhFlags::getTopicsEpochJobPeriodMs);
}
@Test
public void testGetTopicsEpochJobFlexMs() {
// Without any overriding, the value is the hard coded constant.
assertThat(mPhFlags.getTopicsEpochJobFlexMs()).isEqualTo(TOPICS_EPOCH_JOB_FLEX_MS);
// Now overriding with the value from PH.
long phOverridingValue = TOPICS_EPOCH_JOB_FLEX_MS + 2;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_TOPICS_EPOCH_JOB_FLEX_MS,
Long.toString(phOverridingValue),
/* makeDefault */ false);
assertThat(mPhFlags.getTopicsEpochJobFlexMs()).isEqualTo(phOverridingValue);
// Validate that topicsEpochJobFlexMs got from PH > 0 and
// less than topicsEpochJobPeriodMs
long illegalPhOverridingValue = -1;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_TOPICS_EPOCH_JOB_FLEX_MS,
Long.toString(illegalPhOverridingValue),
/* makeDefault */ false);
assertThrows(IllegalArgumentException.class, mPhFlags::getTopicsEpochJobFlexMs);
}
@Test
public void testGetTopicsPercentageForRandomTopic() {
// Without any overriding, the value is the hard coded constant.
assertThat(mPhFlags.getTopicsPercentageForRandomTopic())
.isEqualTo(TOPICS_PERCENTAGE_FOR_RANDOM_TOPIC);
long phOverridingValue = TOPICS_PERCENTAGE_FOR_RANDOM_TOPIC + 3;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_TOPICS_PERCENTAGE_FOR_RANDOM_TOPIC,
Long.toString(phOverridingValue),
/* makeDefault */ false);
assertThat(mPhFlags.getTopicsPercentageForRandomTopic()).isEqualTo(phOverridingValue);
// Validate that topicsPercentageForRandomTopic got from PH is between 0 and 100
long illegalPhOverridingValue = -1;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_TOPICS_PERCENTAGE_FOR_RANDOM_TOPIC,
Long.toString(illegalPhOverridingValue),
/* makeDefault */ false);
assertThrows(IllegalArgumentException.class, mPhFlags::getTopicsPercentageForRandomTopic);
}
@Test
public void testGetTopicsNumberOfRandomTopics() {
// Without any overriding, the value is the hard coded constant.
assertThat(mPhFlags.getTopicsNumberOfRandomTopics())
.isEqualTo(TOPICS_NUMBER_OF_RANDOM_TOPICS);
long phOverridingValue = TOPICS_NUMBER_OF_RANDOM_TOPICS + 4;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_TOPICS_NUMBER_OF_RANDOM_TOPICS,
Long.toString(phOverridingValue),
/* makeDefault */ false);
assertThat(mPhFlags.getTopicsNumberOfRandomTopics()).isEqualTo(phOverridingValue);
// Validate that topicsNumberOfRandomTopics got from PH >= 0
long illegalPhOverridingValue = -1;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_TOPICS_NUMBER_OF_RANDOM_TOPICS,
Long.toString(illegalPhOverridingValue),
/* makeDefault */ false);
assertThrows(IllegalArgumentException.class, mPhFlags::getTopicsNumberOfRandomTopics);
}
@Test
public void testGetTopicsNumberOfTopTopics() {
// Without any overriding, the value is the hard coded constant.
assertThat(mPhFlags.getTopicsNumberOfTopTopics()).isEqualTo(TOPICS_NUMBER_OF_TOP_TOPICS);
long phOverridingValue = TOPICS_NUMBER_OF_TOP_TOPICS + 5;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_TOPICS_NUMBER_OF_TOP_TOPICS,
Long.toString(phOverridingValue),
/* makeDefault */ false);
assertThat(mPhFlags.getTopicsNumberOfTopTopics()).isEqualTo(phOverridingValue);
// Validate that topicsNumberOfTopTopics got from PH >= 0
long illegalPhOverridingValue = -1;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_TOPICS_NUMBER_OF_TOP_TOPICS,
Long.toString(illegalPhOverridingValue),
/* makeDefault */ false);
assertThrows(IllegalArgumentException.class, mPhFlags::getTopicsNumberOfTopTopics);
}
@Test
public void testGetTopicsNumberOfLookBackEpochs() {
// Without any overriding, the value is the hard coded constant.
assertThat(mPhFlags.getTopicsNumberOfLookBackEpochs())
.isEqualTo(TOPICS_NUMBER_OF_LOOK_BACK_EPOCHS);
long phOverridingValue = TOPICS_NUMBER_OF_LOOK_BACK_EPOCHS + 6;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_TOPICS_NUMBER_OF_LOOK_BACK_EPOCHS,
Long.toString(phOverridingValue),
/* makeDefault */ false);
assertThat(mPhFlags.getTopicsNumberOfLookBackEpochs()).isEqualTo(phOverridingValue);
// Validate that topicsNumberOfLookBackEpochs got from PH >= 0
long illegalPhOverridingValue = -1;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_TOPICS_NUMBER_OF_LOOK_BACK_EPOCHS,
Long.toString(illegalPhOverridingValue),
/* makeDefault */ false);
assertThrows(IllegalArgumentException.class, mPhFlags::getTopicsNumberOfLookBackEpochs);
}
@Test
public void testGetTopicsPrivacyBudgetForTopicIdDistribution() {
// Without any overriding, the value is the hard coded constant.
assertThat(mPhFlags.getTopicsPrivacyBudgetForTopicIdDistribution())
.isEqualTo(TOPICS_PRIVACY_BUDGET_FOR_TOPIC_ID_DISTRIBUTION);
float phOverridingValue = TOPICS_PRIVACY_BUDGET_FOR_TOPIC_ID_DISTRIBUTION + 5f;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_TOPICS_PRIVACY_BUDGET_FOR_TOPIC_ID_DISTRIBUTION,
Double.toString(phOverridingValue),
/* makeDefault */ false);
assertThat(mPhFlags.getTopicsPrivacyBudgetForTopicIdDistribution())
.isEqualTo(phOverridingValue);
// Validate that topicsPrivacyBudgetForTopicIdDistribution got from PH >= phOverridingValue
// + 1
float illegalPhOverridingValue = -1f;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_TOPICS_PRIVACY_BUDGET_FOR_TOPIC_ID_DISTRIBUTION,
Double.toString(illegalPhOverridingValue),
/* makeDefault */ false);
assertThrows(
IllegalArgumentException.class,
mPhFlags::getTopicsPrivacyBudgetForTopicIdDistribution);
}
@Test
public void testGetTopicsDisableDirectAppCalls() {
assertThat(mPhFlags.getTopicsDisableDirectAppCalls())
.isEqualTo(TOPICS_DISABLE_DIRECT_APP_CALLS);
// Now overriding with the value from PH.
boolean phOverridingValue = !TOPICS_DISABLE_DIRECT_APP_CALLS;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_TOPICS_DISABLE_DIRECT_APP_CALLS,
Boolean.toString(phOverridingValue),
/* makeDefault */ false);
assertThat(mPhFlags.getTopicsDisableDirectAppCalls()).isEqualTo(phOverridingValue);
}
@Test
public void testClassifierType() {
// Without any overriding, the value is the hard coded constant.
assertThat(mPhFlags.getClassifierType()).isEqualTo(DEFAULT_CLASSIFIER_TYPE);
@ClassifierType int phOverridingValue = PRECOMPUTED_CLASSIFIER;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_CLASSIFIER_TYPE,
Integer.toString(phOverridingValue),
/* makeDefault */ false);
assertThat(mPhFlags.getClassifierType()).isEqualTo(phOverridingValue);
}
@Test
public void testGetClassifierNumberOfTopLabels() {
// Without any overriding, the value is the hard coded constant.
assertThat(mPhFlags.getClassifierNumberOfTopLabels())
.isEqualTo(CLASSIFIER_NUMBER_OF_TOP_LABELS);
int phOverridingValue = CLASSIFIER_NUMBER_OF_TOP_LABELS + 3;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_CLASSIFIER_NUMBER_OF_TOP_LABELS,
Integer.toString(phOverridingValue),
/* makeDefault */ false);
assertThat(mPhFlags.getClassifierNumberOfTopLabels()).isEqualTo(phOverridingValue);
}
@Test
public void testGetClassifierThreshold() {
// Without any overriding, the value is the hard coded constant.
assertThat(mPhFlags.getClassifierThreshold()).isEqualTo(CLASSIFIER_THRESHOLD);
float phOverridingValue = CLASSIFIER_THRESHOLD + 0.3f;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_CLASSIFIER_THRESHOLD,
Float.toString(phOverridingValue),
/* makeDefault */ false);
assertThat(mPhFlags.getClassifierThreshold()).isEqualTo(phOverridingValue);
}
@Test
public void testGetClassifierDescriptionMaxWords() {
// Without any overriding, the value is the hard coded constant.
assertThat(mPhFlags.getClassifierDescriptionMaxWords())
.isEqualTo(CLASSIFIER_DESCRIPTION_MAX_WORDS);
int phOverridingValue = CLASSIFIER_DESCRIPTION_MAX_WORDS + 150;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_CLASSIFIER_DESCRIPTION_MAX_WORDS,
Integer.toString(phOverridingValue),
/* makeDefault */ false);
assertThat(mPhFlags.getClassifierDescriptionMaxWords()).isEqualTo(phOverridingValue);
}
@Test
public void testGetClassifierDescriptionMaxLength() {
// Without any overriding, the value is the hard coded constant.
assertThat(mPhFlags.getClassifierDescriptionMaxLength())
.isEqualTo(CLASSIFIER_DESCRIPTION_MAX_LENGTH);
int phOverridingValue = CLASSIFIER_DESCRIPTION_MAX_LENGTH + 999;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_CLASSIFIER_DESCRIPTION_MAX_LENGTH,
Integer.toString(phOverridingValue),
/* makeDefault */ false);
assertThat(mPhFlags.getClassifierDescriptionMaxLength()).isEqualTo(phOverridingValue);
}
@Test
public void testGetClassifierForceUseBundledFiles() {
// Without any overriding, the value is the hard coded constant.
assertThat(mPhFlags.getClassifierForceUseBundledFiles())
.isEqualTo(CLASSIFIER_FORCE_USE_BUNDLED_FILES);
boolean phOverridingValue = !CLASSIFIER_FORCE_USE_BUNDLED_FILES;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_CLASSIFIER_FORCE_USE_BUNDLED_FILES,
Boolean.toString(phOverridingValue),
/* makeDefault */ false);
assertThat(mPhFlags.getClassifierForceUseBundledFiles()).isEqualTo(phOverridingValue);
}
@Test
public void testTopicsCobaltLoggingEnabled() {
// Disable global_kill_switch so that this flag can be tested.
disableGlobalKillSwitch();
// Enable the cobalt_logging_enabled to test other flag values.
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_COBALT_LOGGING_ENABLED,
Boolean.toString(true),
/* makeDefault */ false);
// Without any overriding, the value is the hard coded constant.
assertThat(mPhFlags.getTopicsCobaltLoggingEnabled())
.isEqualTo(TOPICS_COBALT_LOGGING_ENABLED);
boolean phOverridingValue = !TOPICS_COBALT_LOGGING_ENABLED;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_TOPICS_COBALT_LOGGING_ENABLED,
Boolean.toString(phOverridingValue),
/* makeDefault */ false);
assertThat(mPhFlags.getTopicsCobaltLoggingEnabled()).isEqualTo(phOverridingValue);
}
@Test
public void testCobaltAdservicesApiKeyHex() {
// Without any overriding, the value is the hard coded constant.
assertThat(mPhFlags.getCobaltAdservicesApiKeyHex())
.isEqualTo(COBALT_ADSERVICES_API_KEY_HEX);
String phOverridingValue = COBALT_ADSERVICES_API_KEY_HEX + "testkey";
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_COBALT_ADSERVICES_API_KEY_HEX,
phOverridingValue,
/* makeDefault */ false);
assertThat(mPhFlags.getCobaltAdservicesApiKeyHex()).isEqualTo(phOverridingValue);
}
@Test
public void testAdservicesReleaseStageForCobalt() {
// Without any overriding, the value is the hard coded constant.
assertThat(mPhFlags.getAdservicesReleaseStageForCobalt())
.isEqualTo(ADSERVICES_RELEASE_STAGE_FOR_COBALT);
String phOverridingValue = ADSERVICES_RELEASE_STAGE_FOR_COBALT + "OPEN_BETA";
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_ADSERVICES_RELEASE_STAGE_FOR_COBALT,
phOverridingValue,
/* makeDefault */ false);
assertThat(mPhFlags.getAdservicesReleaseStageForCobalt()).isEqualTo(phOverridingValue);
}
@Test
public void testGetCobaltLoggingJobPeriodMs() {
// Without any overriding, the value is the hard coded constant.
assertThat(mPhFlags.getCobaltLoggingJobPeriodMs()).isEqualTo(COBALT_LOGGING_JOB_PERIOD_MS);
long phOverridingValue = COBALT_LOGGING_JOB_PERIOD_MS + 4;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_COBALT_LOGGING_JOB_PERIOD_MS,
Long.toString(phOverridingValue),
/* makeDefault */ false);
assertThat(mPhFlags.getCobaltLoggingJobPeriodMs()).isEqualTo(phOverridingValue);
// Validate that maintenanceJobPeriodMs got from PH > 0
long illegalPhOverridingValue = -1;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_COBALT_LOGGING_JOB_PERIOD_MS,
Long.toString(illegalPhOverridingValue),
/* makeDefault */ false);
assertThrows(IllegalArgumentException.class, mPhFlags::getCobaltLoggingJobPeriodMs);
}
@Test
public void testGetCobaltUploadServiceUnbindDelayMs() {
// Without any overriding, the value is the hard coded constant.
assertThat(mPhFlags.getCobaltUploadServiceUnbindDelayMs())
.isEqualTo(COBALT_UPLOAD_SERVICE_UNBIND_DELAY_MS);
long phOverridingValue = COBALT_UPLOAD_SERVICE_UNBIND_DELAY_MS + 4;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_COBALT_UPLOAD_SERVICE_UNBIND_DELAY_MS,
Long.toString(phOverridingValue),
/* makeDefault */ false);
assertThat(mPhFlags.getCobaltUploadServiceUnbindDelayMs()).isEqualTo(phOverridingValue);
// Validate that maintenanceJobPeriodMs got from PH > 0
long illegalPhOverridingValue = -1;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_COBALT_UPLOAD_SERVICE_UNBIND_DELAY_MS,
Long.toString(illegalPhOverridingValue),
/* makeDefault */ false);
assertThrows(IllegalArgumentException.class, mPhFlags::getCobaltUploadServiceUnbindDelayMs);
}
@Test
public void testGetCobaltLoggingEnabled() {
// Disable global_kill_switch so that this flag can be tested.
disableGlobalKillSwitch();
// Without any overriding, the value is the hard coded constant.
assertThat(mPhFlags.getCobaltLoggingEnabled()).isEqualTo(COBALT_LOGGING_ENABLED);
// Now overriding with the value from PH.
boolean phOverridingValue = !COBALT_LOGGING_ENABLED;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_COBALT_LOGGING_ENABLED,
Boolean.toString(phOverridingValue),
/* makeDefault */ false);
assertThat(mPhFlags.getCobaltLoggingEnabled()).isEqualTo(phOverridingValue);
}
@Test
public void testGetMaintenanceJobPeriodMs() {
// Without any overriding, the value is the hard coded constant.
assertThat(mPhFlags.getMaintenanceJobPeriodMs()).isEqualTo(MAINTENANCE_JOB_PERIOD_MS);
long phOverridingValue = MAINTENANCE_JOB_PERIOD_MS + 7;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_MAINTENANCE_JOB_PERIOD_MS,
Long.toString(phOverridingValue),
/* makeDefault */ false);
assertThat(mPhFlags.getMaintenanceJobPeriodMs()).isEqualTo(phOverridingValue);
// Validate that maintenanceJobPeriodMs got from PH > 0
long illegalPhOverridingValue = -1;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_MAINTENANCE_JOB_PERIOD_MS,
Long.toString(illegalPhOverridingValue),
/* makeDefault */ false);
assertThrows(IllegalArgumentException.class, mPhFlags::getMaintenanceJobPeriodMs);
}
@Test
public void testGetMaintenanceJobFlexMs() {
// Without any overriding, the value is the hard coded constant.
assertThat(mPhFlags.getMaintenanceJobFlexMs()).isEqualTo(MAINTENANCE_JOB_FLEX_MS);
long phOverridingValue = MAINTENANCE_JOB_FLEX_MS + 8;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_MAINTENANCE_JOB_FLEX_MS,
Long.toString(phOverridingValue),
/* makeDefault */ false);
assertThat(mPhFlags.getMaintenanceJobFlexMs()).isEqualTo(phOverridingValue);
// Validate that maintenanceJobFlexMs got from PH > 0 and less
// than maintenanceJobPeriodMs
long illegalPhOverridingValue = -1;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_MAINTENANCE_JOB_FLEX_MS,
Long.toString(illegalPhOverridingValue),
/* makeDefault */ false);
assertThrows(IllegalArgumentException.class, mPhFlags::getMaintenanceJobFlexMs);
}
@Test
public void testGetEncryptionKeyNetworkConnectTimeoutMs() {
// without any overriding, the value is hard coded constant
assertThat(mPhFlags.getEncryptionKeyNetworkConnectTimeoutMs())
.isEqualTo(ENCRYPTION_KEY_NETWORK_CONNECT_TIMEOUT_MS);
int phOverridingValue = ENCRYPTION_KEY_NETWORK_CONNECT_TIMEOUT_MS + 123;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_ENCRYPTION_KEY_NETWORK_CONNECT_TIMEOUT_MS,
Integer.toString(phOverridingValue),
false);
assertThat(mPhFlags.getEncryptionKeyNetworkConnectTimeoutMs()).isEqualTo(phOverridingValue);
}
@Test
public void testGetEncryptionKeyNetworkReadTimeoutMs() {
// without any overriding, the value is hard coded constant
assertThat(mPhFlags.getEncryptionKeyNetworkReadTimeoutMs())
.isEqualTo(ENCRYPTION_KEY_NETWORK_READ_TIMEOUT_MS);
int phOverridingValue = ENCRYPTION_KEY_NETWORK_READ_TIMEOUT_MS + 123;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_ENCRYPTION_KEY_NETWORK_READ_TIMEOUT_MS,
Integer.toString(phOverridingValue),
false);
assertThat(mPhFlags.getEncryptionKeyNetworkReadTimeoutMs()).isEqualTo(phOverridingValue);
}
@Test
public void testGetMddTopicsClassifierManifestFileUrl() {
// Without any overriding, the value is the hard coded constant.
assertThat(mPhFlags.getMddTopicsClassifierManifestFileUrl())
.isEqualTo(MDD_TOPICS_CLASSIFIER_MANIFEST_FILE_URL);
String phOverridingValue = MDD_TOPICS_CLASSIFIER_MANIFEST_FILE_URL + "testFileUrl";
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_MDD_TOPICS_CLASSIFIER_MANIFEST_FILE_URL,
phOverridingValue,
/* makeDefault */ false);
assertThat(mPhFlags.getMddTopicsClassifierManifestFileUrl()).isEqualTo(phOverridingValue);
}
@Test
public void testGetAdSelectionMaxConcurrentBiddingCount() {
// without any overriding, the value is hard coded constant
assertThat(mPhFlags.getAdSelectionMaxConcurrentBiddingCount())
.isEqualTo(FLEDGE_AD_SELECTION_MAX_CONCURRENT_BIDDING_COUNT);
int phOverridingValue = FLEDGE_AD_SELECTION_MAX_CONCURRENT_BIDDING_COUNT + 4;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_FLEDGE_AD_SELECTION_MAX_CONCURRENT_BIDDING_COUNT,
Integer.toString(phOverridingValue),
false);
assertThat(mPhFlags.getAdSelectionMaxConcurrentBiddingCount()).isEqualTo(phOverridingValue);
}
@Test
public void testGetAdSelectionBiddingTimeoutPerCaMs() {
// without any overriding, the value is hard coded constant
assertThat(mPhFlags.getAdSelectionBiddingTimeoutPerCaMs())
.isEqualTo(FLEDGE_AD_SELECTION_BIDDING_TIMEOUT_PER_CA_MS);
long phOverridingValue = FLEDGE_AD_SELECTION_BIDDING_TIMEOUT_PER_CA_MS + 4;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_FLEDGE_AD_SELECTION_BIDDING_TIMEOUT_PER_CA_MS,
Long.toString(phOverridingValue),
false);
assertThat(mPhFlags.getAdSelectionBiddingTimeoutPerCaMs()).isEqualTo(phOverridingValue);
}
@Test
public void testGetAdSelectionBiddingTimeoutPerBuyerMs() {
// without any overriding, the value is hard coded constant
assertThat(mPhFlags.getAdSelectionBiddingTimeoutPerBuyerMs())
.isEqualTo(FLEDGE_AD_SELECTION_BIDDING_TIMEOUT_PER_BUYER_MS);
long phOverridingValue = FLEDGE_AD_SELECTION_BIDDING_TIMEOUT_PER_BUYER_MS + 5000;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_FLEDGE_AD_SELECTION_BIDDING_TIMEOUT_PER_BUYER_MS,
Long.toString(phOverridingValue),
false);
assertThat(mPhFlags.getAdSelectionBiddingTimeoutPerBuyerMs()).isEqualTo(phOverridingValue);
}
@Test
public void testGetAdSelectionScoringTimeoutMs() {
// without any overriding, the value is hard coded constant
assertThat(mPhFlags.getAdSelectionScoringTimeoutMs())
.isEqualTo(FLEDGE_AD_SELECTION_SCORING_TIMEOUT_MS);
long phOverridingValue = FLEDGE_AD_SELECTION_SCORING_TIMEOUT_MS + 4;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_FLEDGE_AD_SELECTION_SCORING_TIMEOUT_MS,
Long.toString(phOverridingValue),
false);
assertThat(mPhFlags.getAdSelectionScoringTimeoutMs()).isEqualTo(phOverridingValue);
}
@Test
public void testGetAdSelectionSelectingOutcomeTimeoutMs() {
// without any overriding, the value is hard coded constant
assertThat(mPhFlags.getAdSelectionSelectingOutcomeTimeoutMs())
.isEqualTo(FLEDGE_AD_SELECTION_SELECTING_OUTCOME_TIMEOUT_MS);
long phOverridingValue = FLEDGE_AD_SELECTION_SELECTING_OUTCOME_TIMEOUT_MS + 5;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_FLEDGE_AD_SELECTION_SELECTING_OUTCOME_TIMEOUT_MS,
Long.toString(phOverridingValue),
false);
assertThat(mPhFlags.getAdSelectionSelectingOutcomeTimeoutMs()).isEqualTo(phOverridingValue);
}
@Test
public void testGetAdSelectionOverallTimeoutMs() {
// without any overriding, the value is hard coded constant
assertThat(mPhFlags.getAdSelectionOverallTimeoutMs())
.isEqualTo(FLEDGE_AD_SELECTION_OVERALL_TIMEOUT_MS);
long phOverridingValue = FLEDGE_AD_SELECTION_OVERALL_TIMEOUT_MS + 4;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_FLEDGE_AD_SELECTION_OVERALL_TIMEOUT_MS,
Long.toString(phOverridingValue),
false);
assertThat(mPhFlags.getAdSelectionOverallTimeoutMs()).isEqualTo(phOverridingValue);
}
@Test
public void testGetAdSelectionFromOutcomesOverallTimeoutMs() {
// without any overriding, the value is hard coded constant
assertThat(mPhFlags.getAdSelectionFromOutcomesOverallTimeoutMs())
.isEqualTo(FLEDGE_AD_SELECTION_FROM_OUTCOMES_OVERALL_TIMEOUT_MS);
long phOverridingValue = FLEDGE_AD_SELECTION_FROM_OUTCOMES_OVERALL_TIMEOUT_MS + 4;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_FLEDGE_AD_SELECTION_FROM_OUTCOMES_OVERALL_TIMEOUT_MS,
Long.toString(phOverridingValue),
false);
assertThat(mPhFlags.getAdSelectionFromOutcomesOverallTimeoutMs())
.isEqualTo(phOverridingValue);
}
@Test
public void testGetOffDeviceAdSelectionOverallTimeoutMs() {
assertThat(mPhFlags.getAdSelectionOffDeviceOverallTimeoutMs())
.isEqualTo(FLEDGE_AD_SELECTION_OFF_DEVICE_OVERALL_TIMEOUT_MS);
long phOverridingValue = FLEDGE_AD_SELECTION_OFF_DEVICE_OVERALL_TIMEOUT_MS + 4;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_FLEDGE_AD_SELECTION_OFF_DEVICE_OVERALL_TIMEOUT_MS,
Long.toString(phOverridingValue),
false);
assertThat(mPhFlags.getAdSelectionOffDeviceOverallTimeoutMs()).isEqualTo(phOverridingValue);
}
@Test
public void testGetFledgeAdSelectionFilteringEnabled() {
assertThat(mPhFlags.getFledgeAdSelectionFilteringEnabled())
.isEqualTo(FLEDGE_AD_SELECTION_FILTERING_ENABLED);
boolean phOverridingValue = !FLEDGE_AD_SELECTION_FILTERING_ENABLED;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_FLEDGE_AD_SELECTION_FILTERING_ENABLED,
Boolean.toString(phOverridingValue),
false);
assertThat(mPhFlags.getFledgeAdSelectionFilteringEnabled()).isEqualTo(phOverridingValue);
}
@Test
public void testGetFledgeAdSelectionContextualAdsEnabled() {
assertThat(FLEDGE_AD_SELECTION_CONTEXTUAL_ADS_ENABLED)
.isEqualTo(FLEDGE_AD_SELECTION_FILTERING_ENABLED);
assertThat(mPhFlags.getFledgeAdSelectionContextualAdsEnabled())
.isEqualTo(FLEDGE_AD_SELECTION_CONTEXTUAL_ADS_ENABLED);
boolean phOverridingValue = !FLEDGE_AD_SELECTION_CONTEXTUAL_ADS_ENABLED;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_FLEDGE_AD_SELECTION_FILTERING_ENABLED,
Boolean.toString(phOverridingValue),
false);
assertThat(mPhFlags.getFledgeAdSelectionContextualAdsEnabled())
.isEqualTo(phOverridingValue);
}
@Test
public void testGetFledgeFetchCustomAudienceEnabled() {
assertThat(mPhFlags.getFledgeFetchCustomAudienceEnabled())
.isEqualTo(FLEDGE_FETCH_CUSTOM_AUDIENCE_ENABLED);
boolean phOverridingValue = !FLEDGE_FETCH_CUSTOM_AUDIENCE_ENABLED;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_FLEDGE_FETCH_CUSTOM_AUDIENCE_ENABLED,
Boolean.toString(phOverridingValue),
false);
assertThat(mPhFlags.getFledgeFetchCustomAudienceEnabled()).isEqualTo(phOverridingValue);
}
@Test
public void testGetFledgeAdSelectionBiddingLogicJsVersion() {
assertThat(mPhFlags.getFledgeAdSelectionBiddingLogicJsVersion())
.isEqualTo(FLEDGE_AD_SELECTION_BIDDING_LOGIC_JS_VERSION);
long phOverridingValue = FLEDGE_AD_SELECTION_BIDDING_LOGIC_JS_VERSION + 4L;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_FLEDGE_AD_SELECTION_BIDDING_LOGIC_JS_VERSION,
Long.toString(phOverridingValue),
false);
assertThat(mPhFlags.getFledgeAdSelectionBiddingLogicJsVersion())
.isEqualTo(phOverridingValue);
}
@Test
public void testGetFledgeAuctionServerAdRenderIdEnabled() {
boolean defaultValue = FlagsFactory.getFlags().getFledgeAuctionServerAdRenderIdEnabled();
assertThat(defaultValue).isEqualTo(FLEDGE_AUCTION_SERVER_AD_RENDER_ID_ENABLED);
boolean overrideValue = !defaultValue;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_FLEDGE_AUCTION_SERVER_AD_RENDER_ID_ENABLED,
Boolean.toString(overrideValue),
false);
assertThat(mPhFlags.getFledgeAuctionServerAdRenderIdEnabled()).isEqualTo(overrideValue);
}
@Test
public void testGetFledgAuctionServerAdRenderIdMaxLength() {
long defaultValue = FlagsFactory.getFlags().getFledgeAuctionServerAdRenderIdMaxLength();
assertThat(defaultValue).isEqualTo(FLEDGE_AUCTION_SERVER_AD_RENDER_ID_MAX_LENGTH);
long overrideValue = defaultValue + 100;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_FLEDGE_AUCTION_SERVER_AD_RENDER_ID_MAX_LENGTH,
Long.toString(overrideValue),
false);
assertThat(mPhFlags.getFledgeAuctionServerAdRenderIdMaxLength()).isEqualTo(overrideValue);
}
@Test
public void testGetDownloaderConnectionTimeoutMs() {
// without any overriding, the value is hard coded constant
assertThat(mPhFlags.getDownloaderConnectionTimeoutMs())
.isEqualTo(DOWNLOADER_CONNECTION_TIMEOUT_MS);
int phOverridingValue = DOWNLOADER_CONNECTION_TIMEOUT_MS + 923;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_DOWNLOADER_CONNECTION_TIMEOUT_MS,
Integer.toString(phOverridingValue),
false);
assertThat(mPhFlags.getDownloaderConnectionTimeoutMs()).isEqualTo(phOverridingValue);
assertThat(mTestFlags.getDownloaderConnectionTimeoutMs())
.isEqualTo(DOWNLOADER_CONNECTION_TIMEOUT_MS);
}
@Test
public void testGetDownloaderReadTimeoutMs() {
// without any overriding, the value is hard coded constant
assertThat(mPhFlags.getDownloaderReadTimeoutMs()).isEqualTo(DOWNLOADER_READ_TIMEOUT_MS);
int phOverridingValue = DOWNLOADER_READ_TIMEOUT_MS + 349;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_DOWNLOADER_READ_TIMEOUT_MS,
Integer.toString(phOverridingValue),
false);
assertThat(mPhFlags.getDownloaderReadTimeoutMs()).isEqualTo(phOverridingValue);
assertThat(mTestFlags.getDownloaderReadTimeoutMs()).isEqualTo(DOWNLOADER_READ_TIMEOUT_MS);
}
@Test
public void testGetDownloaderMaxDownloadThreads() {
// without any overriding, the value is hard coded constant
assertThat(mPhFlags.getDownloaderMaxDownloadThreads())
.isEqualTo(DOWNLOADER_MAX_DOWNLOAD_THREADS);
int phOverridingValue = DOWNLOADER_MAX_DOWNLOAD_THREADS + 5;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_DOWNLOADER_MAX_DOWNLOAD_THREADS,
Integer.toString(phOverridingValue),
false);
assertThat(mPhFlags.getDownloaderMaxDownloadThreads()).isEqualTo(phOverridingValue);
assertThat(mTestFlags.getDownloaderMaxDownloadThreads())
.isEqualTo(DOWNLOADER_MAX_DOWNLOAD_THREADS);
}
@Test
public void testGetMeasurementEventMainReportingJobPeriodMs() {
// Without any overriding, the value is the hard coded constant.
assertThat(mPhFlags.getMeasurementEventMainReportingJobPeriodMs())
.isEqualTo(MEASUREMENT_EVENT_MAIN_REPORTING_JOB_PERIOD_MS);
long phOverridingValue = MEASUREMENT_EVENT_MAIN_REPORTING_JOB_PERIOD_MS + 8;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_MEASUREMENT_EVENT_MAIN_REPORTING_JOB_PERIOD_MS,
Long.toString(phOverridingValue),
/* makeDefault */ false);
assertThat(mPhFlags.getMeasurementEventMainReportingJobPeriodMs())
.isEqualTo(phOverridingValue);
assertThat(mTestFlags.getMeasurementEventMainReportingJobPeriodMs())
.isEqualTo(MEASUREMENT_EVENT_MAIN_REPORTING_JOB_PERIOD_MS);
}
@Test
public void testGetMeasurementEventFallbackReportingJobPeriodMs() {
// Without any overriding, the value is the hard coded constant.
assertThat(mPhFlags.getMeasurementEventFallbackReportingJobPeriodMs())
.isEqualTo(MEASUREMENT_EVENT_FALLBACK_REPORTING_JOB_PERIOD_MS);
long phOverridingValue = MEASUREMENT_EVENT_FALLBACK_REPORTING_JOB_PERIOD_MS + 8;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_MEASUREMENT_EVENT_FALLBACK_REPORTING_JOB_PERIOD_MS,
Long.toString(phOverridingValue),
/* makeDefault */ false);
assertThat(mPhFlags.getMeasurementEventFallbackReportingJobPeriodMs())
.isEqualTo(phOverridingValue);
assertThat(mTestFlags.getMeasurementEventFallbackReportingJobPeriodMs())
.isEqualTo(MEASUREMENT_EVENT_FALLBACK_REPORTING_JOB_PERIOD_MS);
}
@Test
public void testGetEnrollmentOriginMatch() {
// Without any overriding, the value is the hard coded constant.
assertThat(mPhFlags.getEnforceEnrollmentOriginMatch())
.isEqualTo(MEASUREMENT_ENFORCE_ENROLLMENT_ORIGIN_MATCH);
boolean phOverridingValue = !MEASUREMENT_ENFORCE_ENROLLMENT_ORIGIN_MATCH;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_MEASUREMENT_ENFORCE_ENROLLMENT_ORIGIN_MATCH,
Boolean.toString(phOverridingValue),
/* makeDefault */ false);
assertThat(mPhFlags.getEnforceEnrollmentOriginMatch()).isEqualTo(phOverridingValue);
}
@Test
public void testGetMeasurementAggregationCoordinatorOriginEnabled() {
// Without any overriding, the value is the hard coded constant.
assertThat(mPhFlags.getMeasurementAggregationCoordinatorOriginEnabled())
.isEqualTo(MEASUREMENT_AGGREGATION_COORDINATOR_ORIGIN_ENABLED);
boolean phOverridingValue = !MEASUREMENT_AGGREGATION_COORDINATOR_ORIGIN_ENABLED;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_MEASUREMENT_AGGREGATION_COORDINATOR_ORIGIN_ENABLED,
Boolean.toString(phOverridingValue),
/* makeDefault */ false);
assertThat(mPhFlags.getMeasurementAggregationCoordinatorOriginEnabled())
.isEqualTo(phOverridingValue);
}
@Test
public void testGetMeasurementAggregationCoordinatorOriginList() {
// Without any overriding, the value is the hard coded constant.
assertThat(mPhFlags.getMeasurementAggregationCoordinatorOriginList())
.isEqualTo(MEASUREMENT_AGGREGATION_COORDINATOR_ORIGIN_LIST);
String phOverridingValue =
MEASUREMENT_AGGREGATION_COORDINATOR_ORIGIN_LIST
+ "testCoordinatorUrl1,testCoordinatorUrl2";
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_MEASUREMENT_AGGREGATION_COORDINATOR_ORIGIN_LIST,
phOverridingValue,
/* makeDefault */ false);
assertThat(mPhFlags.getMeasurementAggregationCoordinatorOriginList())
.isEqualTo(phOverridingValue);
}
@Test
public void testGetMeasurementDefaultAggregationCoordinatorOrigin() {
// Without any overriding, the value is the hard coded constant.
assertThat(mPhFlags.getMeasurementDefaultAggregationCoordinatorOrigin())
.isEqualTo(MEASUREMENT_DEFAULT_AGGREGATION_COORDINATOR_ORIGIN);
String phOverridingValue =
MEASUREMENT_DEFAULT_AGGREGATION_COORDINATOR_ORIGIN + "https://coordinator.test";
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_MEASUREMENT_DEFAULT_AGGREGATION_COORDINATOR_ORIGIN,
phOverridingValue,
/* makeDefault */ false);
assertThat(mPhFlags.getMeasurementDefaultAggregationCoordinatorOrigin())
.isEqualTo(phOverridingValue);
}
@Test
public void testGetMeasurementAggregationCoordinatorPath() {
// Without any overriding, the value is the hard coded constant.
assertThat(mPhFlags.getMeasurementAggregationCoordinatorPath())
.isEqualTo(MEASUREMENT_AGGREGATION_COORDINATOR_PATH);
String phOverridingValue = MEASUREMENT_AGGREGATION_COORDINATOR_PATH + "/test/best";
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_MEASUREMENT_AGGREGATION_COORDINATOR_PATH,
phOverridingValue,
/* makeDefault */ false);
assertThat(mPhFlags.getMeasurementAggregationCoordinatorPath())
.isEqualTo(phOverridingValue);
}
@Test
public void testGetMeasurementAggregateMainReportingJobPeriodMs() {
// Without any overriding, the value is the hard coded constant.
assertThat(mPhFlags.getMeasurementAggregateMainReportingJobPeriodMs())
.isEqualTo(MEASUREMENT_AGGREGATE_MAIN_REPORTING_JOB_PERIOD_MS);
long phOverridingValue = MEASUREMENT_AGGREGATE_MAIN_REPORTING_JOB_PERIOD_MS + 8;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_MEASUREMENT_AGGREGATE_MAIN_REPORTING_JOB_PERIOD_MS,
Long.toString(phOverridingValue),
/* makeDefault */ false);
assertThat(mPhFlags.getMeasurementAggregateMainReportingJobPeriodMs())
.isEqualTo(phOverridingValue);
assertThat(mTestFlags.getMeasurementAggregateMainReportingJobPeriodMs())
.isEqualTo(MEASUREMENT_AGGREGATE_MAIN_REPORTING_JOB_PERIOD_MS);
}
@Test
public void testGetMeasurementAggregateFallbackReportingJobPeriodMs() {
// Without any overriding, the value is the hard coded constant.
assertThat(mPhFlags.getMeasurementAggregateFallbackReportingJobPeriodMs())
.isEqualTo(MEASUREMENT_AGGREGATE_FALLBACK_REPORTING_JOB_PERIOD_MS);
long phOverridingValue = MEASUREMENT_AGGREGATE_FALLBACK_REPORTING_JOB_PERIOD_MS + 8;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_MEASUREMENT_AGGREGATE_FALLBACK_REPORTING_JOB_PERIOD_MS,
Long.toString(phOverridingValue),
/* makeDefault */ false);
assertThat(mPhFlags.getMeasurementAggregateFallbackReportingJobPeriodMs())
.isEqualTo(phOverridingValue);
assertThat(mTestFlags.getMeasurementAggregateFallbackReportingJobPeriodMs())
.isEqualTo(MEASUREMENT_AGGREGATE_FALLBACK_REPORTING_JOB_PERIOD_MS);
}
@Test
public void testGetMeasurementDbSizeLimit() {
// Without any overriding, the value is the hard coded constant.
assertThat(mPhFlags.getMeasurementDbSizeLimit()).isEqualTo(MEASUREMENT_DB_SIZE_LIMIT);
long phOverridingValue = MEASUREMENT_DB_SIZE_LIMIT + (1024 * 1024 * 5);
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_MEASUREMENT_DB_SIZE_LIMIT,
Long.toString(phOverridingValue),
/* makeDefault */ false);
assertThat(mPhFlags.getMeasurementDbSizeLimit()).isEqualTo(phOverridingValue);
assertThat(mTestFlags.getMeasurementDbSizeLimit()).isEqualTo(MEASUREMENT_DB_SIZE_LIMIT);
}
@Test
public void testGetMeasurementManifestFileUrl() {
// Without any overriding, the value is the hard coded constant.
assertThat(mPhFlags.getMeasurementManifestFileUrl())
.isEqualTo(MEASUREMENT_MANIFEST_FILE_URL);
String phOverridingValue = MEASUREMENT_MANIFEST_FILE_URL + "testFileUrl";
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_MEASUREMENT_MANIFEST_FILE_URL,
phOverridingValue,
/* makeDefault */ false);
assertThat(mPhFlags.getMeasurementManifestFileUrl()).isEqualTo(phOverridingValue);
assertThat(mTestFlags.getMeasurementManifestFileUrl())
.isEqualTo(MEASUREMENT_MANIFEST_FILE_URL);
}
@Test
public void testGetMeasurementNetworkConnectTimeoutMs() {
// without any overriding, the value is hard coded constant
assertThat(mPhFlags.getMeasurementNetworkConnectTimeoutMs())
.isEqualTo(MEASUREMENT_NETWORK_CONNECT_TIMEOUT_MS);
int phOverridingValue = MEASUREMENT_NETWORK_CONNECT_TIMEOUT_MS + 123;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_MEASUREMENT_NETWORK_CONNECT_TIMEOUT_MS,
Integer.toString(phOverridingValue),
false);
assertThat(mPhFlags.getMeasurementNetworkConnectTimeoutMs()).isEqualTo(phOverridingValue);
}
@Test
public void testGetMeasurementNetworkReadTimeoutMs() {
// without any overriding, the value is hard coded constant
assertThat(mPhFlags.getMeasurementNetworkReadTimeoutMs())
.isEqualTo(MEASUREMENT_NETWORK_READ_TIMEOUT_MS);
int phOverridingValue = MEASUREMENT_NETWORK_READ_TIMEOUT_MS + 123;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_MEASUREMENT_NETWORK_READ_TIMEOUT_MS,
Integer.toString(phOverridingValue),
false);
assertThat(mPhFlags.getMeasurementNetworkReadTimeoutMs()).isEqualTo(phOverridingValue);
}
@Test
public void testGetMeasurementIsClickVerificationEnabled() {
// Without any overriding, the value is the hard coded constant.
assertThat(mPhFlags.getMeasurementIsClickVerificationEnabled())
.isEqualTo(MEASUREMENT_IS_CLICK_VERIFICATION_ENABLED);
boolean phOverridingValue = !MEASUREMENT_IS_CLICK_VERIFICATION_ENABLED;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_MEASUREMENT_IS_CLICK_VERIFICATION_ENABLED,
Boolean.toString(phOverridingValue),
/* makeDefault */ false);
assertThat(mPhFlags.getMeasurementIsClickVerificationEnabled())
.isEqualTo(phOverridingValue);
}
@Test
public void testGetMeasurementIsClickVerifiedByInputEvent() {
// Without any overriding, the value is the hard coded constant.
assertThat(mPhFlags.getMeasurementIsClickVerifiedByInputEvent())
.isEqualTo(MEASUREMENT_IS_CLICK_VERIFIED_BY_INPUT_EVENT);
boolean phOverridingValue = !MEASUREMENT_IS_CLICK_VERIFIED_BY_INPUT_EVENT;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_MEASUREMENT_IS_CLICK_VERIFIED_BY_INPUT_EVENT,
Boolean.toString(phOverridingValue),
/* makeDefault */ false);
assertThat(mPhFlags.getMeasurementIsClickVerifiedByInputEvent())
.isEqualTo(phOverridingValue);
}
@Test
public void testGetMeasurementRegistrationInputEventValidWindowMs() {
// Without any overriding, the value is the hard coded constant.
assertThat(mPhFlags.getMeasurementRegistrationInputEventValidWindowMs())
.isEqualTo(MEASUREMENT_REGISTRATION_INPUT_EVENT_VALID_WINDOW_MS);
long phOverridingValue = MEASUREMENT_REGISTRATION_INPUT_EVENT_VALID_WINDOW_MS + 8;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_MEASUREMENT_REGISTRATION_INPUT_EVENT_VALID_WINDOW_MS,
Long.toString(phOverridingValue),
/* makeDefault */ false);
assertThat(mPhFlags.getMeasurementRegistrationInputEventValidWindowMs())
.isEqualTo(phOverridingValue);
}
@Test
public void testGetMeasurementEnableXNA() {
// Without any overriding, the value is the hard coded constant.
assertThat(mPhFlags.getMeasurementEnableXNA()).isEqualTo(MEASUREMENT_ENABLE_XNA);
boolean phOverridingValue = !MEASUREMENT_ENABLE_XNA;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_MEASUREMENT_ENABLE_XNA,
Boolean.toString(phOverridingValue),
/* makeDefault */ false);
assertThat(mPhFlags.getMeasurementEnableXNA()).isTrue();
}
@Test
public void testGetMeasurementEnableDebugReport() {
// Without any overriding, the value is the hard coded constant.
assertThat(mPhFlags.getMeasurementEnableDebugReport())
.isEqualTo(MEASUREMENT_ENABLE_DEBUG_REPORT);
boolean phOverridingValue = !MEASUREMENT_ENABLE_DEBUG_REPORT;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_MEASUREMENT_ENABLE_DEBUG_REPORT,
Boolean.toString(phOverridingValue),
/* makeDefault */ false);
assertThat(mPhFlags.getMeasurementEnableDebugReport()).isEqualTo(phOverridingValue);
}
@Test
public void testGetMeasurementEnableSourceDebugReport() {
// Without any overriding, the value is the hard coded constant.
assertThat(mPhFlags.getMeasurementEnableSourceDebugReport())
.isEqualTo(MEASUREMENT_ENABLE_SOURCE_DEBUG_REPORT);
boolean phOverridingValue = !MEASUREMENT_ENABLE_SOURCE_DEBUG_REPORT;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_MEASUREMENT_ENABLE_SOURCE_DEBUG_REPORT,
Boolean.toString(phOverridingValue),
/* makeDefault */ false);
assertThat(mPhFlags.getMeasurementEnableSourceDebugReport()).isEqualTo(phOverridingValue);
}
@Test
public void testGetMeasurementEnableTriggerDebugReport() {
// Without any overriding, the value is the hard coded constant.
assertThat(mPhFlags.getMeasurementEnableTriggerDebugReport())
.isEqualTo(MEASUREMENT_ENABLE_TRIGGER_DEBUG_REPORT);
boolean phOverridingValue = !MEASUREMENT_ENABLE_TRIGGER_DEBUG_REPORT;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_MEASUREMENT_ENABLE_TRIGGER_DEBUG_REPORT,
Boolean.toString(phOverridingValue),
/* makeDefault */ false);
assertThat(mPhFlags.getMeasurementEnableTriggerDebugReport()).isEqualTo(phOverridingValue);
}
@Test
public void testGetMeasurementDebugJoinKeyHashLimit() {
// Without any overriding, the value is the hard coded constant.
assertThat(mPhFlags.getMeasurementDebugJoinKeyHashLimit())
.isEqualTo(DEFAULT_MEASUREMENT_DEBUG_JOIN_KEY_HASH_LIMIT);
long phOverridingValue = DEFAULT_MEASUREMENT_DEBUG_JOIN_KEY_HASH_LIMIT + 1234567L;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_MEASUREMENT_DEBUG_JOIN_KEY_HASH_LIMIT,
Long.toString(phOverridingValue),
/* makeDefault */ false);
assertThat(mPhFlags.getMeasurementDebugJoinKeyHashLimit()).isEqualTo(phOverridingValue);
}
@Test
public void testGetMeasurementDebugJoinKeyEnrollmentAllowList() {
// Without any overriding, the value is the hard coded constant.
assertThat(mPhFlags.getMeasurementDebugJoinKeyEnrollmentAllowlist())
.isEqualTo(DEFAULT_MEASUREMENT_DEBUG_JOIN_KEY_ENROLLMENT_ALLOWLIST);
String phOverridingValue =
DEFAULT_MEASUREMENT_DEBUG_JOIN_KEY_ENROLLMENT_ALLOWLIST
+ "enrollment1,enrollment2,enrollment3";
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_MEASUREMENT_DEBUG_JOIN_KEY_ENROLLMENT_ALLOWLIST,
phOverridingValue,
/* makeDefault */ false);
assertThat(mPhFlags.getMeasurementDebugJoinKeyEnrollmentAllowlist())
.isEqualTo(phOverridingValue);
}
@Test
public void testGetMeasurementDebugKeyAdIDMatchingLimit() {
// Without any overriding, the value is the hard coded constant.
assertThat(mPhFlags.getMeasurementPlatformDebugAdIdMatchingLimit())
.isEqualTo(DEFAULT_MEASUREMENT_PLATFORM_DEBUG_AD_ID_MATCHING_LIMIT);
long phOverridingValue = DEFAULT_MEASUREMENT_PLATFORM_DEBUG_AD_ID_MATCHING_LIMIT + 555L;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_MEASUREMENT_DEBUG_KEY_AD_ID_MATCHING_LIMIT,
Long.toString(phOverridingValue),
/* makeDefault */ false);
assertThat(mPhFlags.getMeasurementPlatformDebugAdIdMatchingLimit())
.isEqualTo(phOverridingValue);
}
@Test
public void testGetMeasurementDebugKeyAdIdMatchingEnrollmentBlocklist() {
// Without any overriding, the value is the hard coded constant.
assertThat(
FlagsFactory.getFlags()
.getMeasurementPlatformDebugAdIdMatchingEnrollmentBlocklist())
.isEqualTo(DEFAULT_MEASUREMENT_PLATFORM_DEBUG_AD_ID_MATCHING_BLOCKLIST);
String phOverridingValue =
DEFAULT_MEASUREMENT_PLATFORM_DEBUG_AD_ID_MATCHING_BLOCKLIST
+ "enrollment1,enrollment2,enrollment3";
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_MEASUREMENT_DEBUG_KEY_AD_ID_MATCHING_ENROLLMENT_BLOCKLIST,
phOverridingValue,
/* makeDefault */ false);
assertThat(mPhFlags.getMeasurementPlatformDebugAdIdMatchingEnrollmentBlocklist())
.isEqualTo(phOverridingValue);
}
@Test
public void testGetComputeVersionFromMappings() {
assertThat(FlagsFactory.getFlags().getEnableComputeVersionFromMappings())
.isEqualTo(DEFAULT_COMPUTE_VERSION_FROM_MAPPINGS_ENABLED);
boolean overrideValue = false;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_ENABLE_COMPUTE_VERSION_FROM_MAPPINGS,
Boolean.toString(overrideValue),
/* makeDefault */ false);
assertThat(mPhFlags.getEnableComputeVersionFromMappings()).isEqualTo(overrideValue);
}
@Test
public void testGetMainlineTrainVersion() {
assertThat(FlagsFactory.getFlags().getMainlineTrainVersion())
.isEqualTo(DEFAULT_MAINLINE_TRAIN_VERSION);
String overrideValue = "123456";
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_MAINLINE_TRAIN_VERSION,
overrideValue,
/* makeDefault */ false);
assertThat(mPhFlags.getMainlineTrainVersion()).isEqualTo(overrideValue);
}
@Test
public void testGetAdservicesVersionMappings() {
assertThat(FlagsFactory.getFlags().getAdservicesVersionMappings())
.isEqualTo(DEFAULT_ADSERVICES_VERSION_MAPPINGS);
String overrideValue =
"341700000,341800000,202404|341900000,342000000,202405|342100000,342200000,202406";
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_ADSERVICES_VERSION_MAPPINGS,
overrideValue,
/* makeDefault */ false);
assertThat(mPhFlags.getAdservicesVersionMappings()).isEqualTo(overrideValue);
}
@Test
public void testGetMeasurementDataExpiryWindowMs() {
// Without any overriding, the value is the hard coded constant.
assertThat(mPhFlags.getMeasurementDataExpiryWindowMs())
.isEqualTo(MEASUREMENT_DATA_EXPIRY_WINDOW_MS);
long phOverridingValue = MEASUREMENT_DATA_EXPIRY_WINDOW_MS + TimeUnit.DAYS.toMillis(20);
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_MEASUREMENT_DATA_EXPIRY_WINDOW_MS,
Long.toString(phOverridingValue),
/* makeDefault */ false);
assertThat(mPhFlags.getMeasurementDataExpiryWindowMs()).isEqualTo(phOverridingValue);
}
@Test
public void testGetMeasurementMaxRegistrationRedirects() {
// Without any overriding, the value is the hard coded constant.
assertThat(mPhFlags.getMeasurementMaxRegistrationRedirects())
.isEqualTo(MEASUREMENT_MAX_REGISTRATION_REDIRECTS);
int phOverridingValue = MEASUREMENT_MAX_REGISTRATION_REDIRECTS + 2;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_MEASUREMENT_MAX_REGISTRATION_REDIRECTS,
Long.toString(phOverridingValue),
/* makeDefault */ false);
assertThat(mPhFlags.getMeasurementMaxRegistrationRedirects()).isEqualTo(phOverridingValue);
}
@Test
public void testGetMeasurementMaxRegistrationsPerJobInvocation() {
// Without any overriding, the value is the hard coded constant.
assertThat(mPhFlags.getMeasurementMaxRegistrationsPerJobInvocation())
.isEqualTo(MEASUREMENT_MAX_REGISTRATIONS_PER_JOB_INVOCATION);
int phOverridingValue = MEASUREMENT_MAX_REGISTRATIONS_PER_JOB_INVOCATION + 2;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_MEASUREMENT_MAX_REGISTRATIONS_PER_JOB_INVOCATION,
Integer.toString(phOverridingValue),
/* makeDefault */ false);
assertThat(mPhFlags.getMeasurementMaxRegistrationsPerJobInvocation())
.isEqualTo(phOverridingValue);
}
@Test
public void testGetMeasurementMaxRetriesPerRegistrationRequest() {
// Without any overriding, the value is the hard coded constant.
assertThat(mPhFlags.getMeasurementMaxRetriesPerRegistrationRequest())
.isEqualTo(MEASUREMENT_MAX_RETRIES_PER_REGISTRATION_REQUEST);
int phOverridingValue = MEASUREMENT_MAX_RETRIES_PER_REGISTRATION_REQUEST + 100;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_MEASUREMENT_MAX_RETRIES_PER_REGISTRATION_REQUEST,
Integer.toString(phOverridingValue),
/* makeDefault */ false);
assertThat(mPhFlags.getMeasurementMaxRetriesPerRegistrationRequest())
.isEqualTo(phOverridingValue);
}
@Test
public void testGetMeasurementAsyncRegistrationJobTriggerMinDelayMs() {
// Without any overriding, the value is the hard coded constant.
assertThat(mPhFlags.getMeasurementAsyncRegistrationJobTriggerMinDelayMs())
.isEqualTo(DEFAULT_MEASUREMENT_ASYNC_REGISTRATION_JOB_TRIGGER_MIN_DELAY_MS);
long phOverridingValue =
DEFAULT_MEASUREMENT_ASYNC_REGISTRATION_JOB_TRIGGER_MIN_DELAY_MS + 150000;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_MEASUREMENT_ASYNC_REGISTRATION_JOB_TRIGGER_MIN_DELAY_MS,
Long.toString(phOverridingValue),
/* makeDefault */ false);
assertThat(mPhFlags.getMeasurementAsyncRegistrationJobTriggerMinDelayMs())
.isEqualTo(phOverridingValue);
}
@Test
public void testGetMeasurementAsyncRegistrationJobTriggerMaxDelayMs() {
// Without any overriding, the value is the hard coded constant.
assertThat(mPhFlags.getMeasurementAsyncRegistrationJobTriggerMaxDelayMs())
.isEqualTo(DEFAULT_MEASUREMENT_ASYNC_REGISTRATION_JOB_TRIGGER_MAX_DELAY_MS);
long phOverridingValue =
DEFAULT_MEASUREMENT_ASYNC_REGISTRATION_JOB_TRIGGER_MAX_DELAY_MS + 1500000;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_MEASUREMENT_ASYNC_REGISTRATION_JOB_TRIGGER_MAX_DELAY_MS,
Long.toString(phOverridingValue),
/* makeDefault */ false);
assertThat(mPhFlags.getMeasurementAsyncRegistrationJobTriggerMaxDelayMs())
.isEqualTo(phOverridingValue);
}
@Test
public void testGetMeasurementMaxBytesPerAttributionFilterString() {
// Without any overriding, the value is the hard coded constant.
assertThat(mPhFlags.getMeasurementMaxBytesPerAttributionFilterString())
.isEqualTo(DEFAULT_MEASUREMENT_MAX_BYTES_PER_ATTRIBUTION_FILTER_STRING);
int phOverridingValue = DEFAULT_MEASUREMENT_MAX_BYTES_PER_ATTRIBUTION_FILTER_STRING + 5;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_MEASUREMENT_MAX_BYTES_PER_ATTRIBUTION_FILTER_STRING,
Integer.toString(phOverridingValue),
/* makeDefault */ false);
assertThat(mPhFlags.getMeasurementMaxBytesPerAttributionFilterString())
.isEqualTo(phOverridingValue);
}
@Test
public void testGetMeasurementMaxBytesPerAttributionAggregateKeyId() {
// Without any overriding, the value is the hard coded constant.
assertThat(mPhFlags.getMeasurementMaxBytesPerAttributionAggregateKeyId())
.isEqualTo(DEFAULT_MEASUREMENT_MAX_BYTES_PER_ATTRIBUTION_AGGREGATE_KEY_ID);
int phOverridingValue = DEFAULT_MEASUREMENT_MAX_BYTES_PER_ATTRIBUTION_AGGREGATE_KEY_ID + 5;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_MEASUREMENT_MAX_BYTES_PER_ATTRIBUTION_AGGREGATE_KEY_ID,
Integer.toString(phOverridingValue),
/* makeDefault */ false);
assertThat(mPhFlags.getMeasurementMaxBytesPerAttributionAggregateKeyId())
.isEqualTo(phOverridingValue);
}
@Test
public void testGetMeasurementMaxAggregateDeduplicationKeysPerRegistration() {
// Without any overriding, the value is the hard coded constant.
assertThat(mPhFlags.getMeasurementMaxAggregateDeduplicationKeysPerRegistration())
.isEqualTo(DEFAULT_MEASUREMENT_MAX_AGGREGATE_DEDUPLICATION_KEYS_PER_REGISTRATION);
int phOverridingValue =
DEFAULT_MEASUREMENT_MAX_AGGREGATE_DEDUPLICATION_KEYS_PER_REGISTRATION + 5;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_MEASUREMENT_MAX_AGGREGATE_DEDUPLICATION_KEYS_PER_REGISTRATION,
Integer.toString(phOverridingValue),
/* makeDefault */ false);
assertThat(mPhFlags.getMeasurementMaxAggregateDeduplicationKeysPerRegistration())
.isEqualTo(phOverridingValue);
}
@Test
public void testGetMeasurementMaxFilterMapsPerFilterSet() {
// Without any overriding, the value is the hard coded constant.
assertThat(mPhFlags.getMeasurementMaxFilterMapsPerFilterSet())
.isEqualTo(DEFAULT_MEASUREMENT_MAX_FILTER_MAPS_PER_FILTER_SET);
int phOverridingValue = DEFAULT_MEASUREMENT_MAX_FILTER_MAPS_PER_FILTER_SET + 5;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_MEASUREMENT_MAX_FILTER_MAPS_PER_FILTER_SET,
Integer.toString(phOverridingValue),
/* makeDefault */ false);
assertThat(mPhFlags.getMeasurementMaxFilterMapsPerFilterSet()).isEqualTo(phOverridingValue);
}
@Test
public void testGetMeasurementMaxValuesPerAttributionFilter() {
// Without any overriding, the value is the hard coded constant.
assertThat(mPhFlags.getMeasurementMaxValuesPerAttributionFilter())
.isEqualTo(DEFAULT_MEASUREMENT_MAX_VALUES_PER_ATTRIBUTION_FILTER);
int phOverridingValue = DEFAULT_MEASUREMENT_MAX_VALUES_PER_ATTRIBUTION_FILTER + 5;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_MEASUREMENT_MAX_VALUES_PER_ATTRIBUTION_FILTER,
Integer.toString(phOverridingValue),
/* makeDefault */ false);
assertThat(mPhFlags.getMeasurementMaxValuesPerAttributionFilter())
.isEqualTo(phOverridingValue);
}
@Test
public void testGetMeasurementMaxAttributionFilters() {
// Without any overriding, the value is the hard coded constant.
assertThat(mPhFlags.getMeasurementMaxAttributionFilters())
.isEqualTo(DEFAULT_MEASUREMENT_MAX_ATTRIBUTION_FILTERS);
int phOverridingValue = DEFAULT_MEASUREMENT_MAX_ATTRIBUTION_FILTERS + 5;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_MEASUREMENT_MAX_ATTRIBUTION_FILTERS,
Integer.toString(phOverridingValue),
/* makeDefault */ false);
assertThat(mPhFlags.getMeasurementMaxAttributionFilters()).isEqualTo(phOverridingValue);
}
@Test
public void testGetMeasurementMaxEventReportUploadRetryWindowMs() {
// Without any overriding, the value is the hard coded constant.
assertThat(mPhFlags.getMeasurementMaxEventReportUploadRetryWindowMs())
.isEqualTo(DEFAULT_MEASUREMENT_MAX_EVENT_REPORT_UPLOAD_RETRY_WINDOW_MS);
long phOverridingValue = DEFAULT_MEASUREMENT_MAX_EVENT_REPORT_UPLOAD_RETRY_WINDOW_MS + 100;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_MEASUREMENT_MAX_EVENT_REPORT_UPLOAD_RETRY_WINDOW_MS,
Long.toString(phOverridingValue),
/* makeDefault */ false);
assertThat(mPhFlags.getMeasurementMaxEventReportUploadRetryWindowMs())
.isEqualTo(phOverridingValue);
}
@Test
public void testGetMeasurementAttributionJobTriggerDelayMs() {
// Without any overriding, the value is the hard coded constant.
assertThat(mPhFlags.getMeasurementAttributionJobTriggerDelayMs())
.isEqualTo(DEFAULT_MEASUREMENT_ATTRIBUTION_JOB_TRIGGERING_DELAY_MS);
long phOverridingValue = DEFAULT_MEASUREMENT_ATTRIBUTION_JOB_TRIGGERING_DELAY_MS + 100;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_MEASUREMENT_ATTRIBUTION_JOB_TRIGGERING_DELAY_MS,
Long.toString(phOverridingValue),
/* makeDefault */ false);
assertThat(mPhFlags.getMeasurementAttributionJobTriggerDelayMs())
.isEqualTo(phOverridingValue);
}
@Test
public void testGetMeasurementMaxAttributionsPerInvocation() {
// Without any overriding, the value is the hard coded constant.
assertThat(mPhFlags.getMeasurementMaxAttributionsPerInvocation())
.isEqualTo(DEFAULT_MEASUREMENT_MAX_ATTRIBUTIONS_PER_INVOCATION);
int phOverridingValue = DEFAULT_MEASUREMENT_MAX_ATTRIBUTIONS_PER_INVOCATION + 100;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_MEASUREMENT_MAX_ATTRIBUTIONS_PER_INVOCATION,
Integer.toString(phOverridingValue),
/* makeDefault */ false);
assertThat(mPhFlags.getMeasurementMaxAttributionsPerInvocation())
.isEqualTo(phOverridingValue);
}
@Test
public void testGetMeasurementMaxAggregateReportUploadRetryWindowMs() {
// Without any overriding, the value is the hard coded constant.
assertThat(mPhFlags.getMeasurementMaxAggregateReportUploadRetryWindowMs())
.isEqualTo(DEFAULT_MEASUREMENT_MAX_AGGREGATE_REPORT_UPLOAD_RETRY_WINDOW_MS);
long phOverridingValue =
DEFAULT_MEASUREMENT_MAX_AGGREGATE_REPORT_UPLOAD_RETRY_WINDOW_MS + 100;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_MEASUREMENT_MAX_AGGREGATE_REPORT_UPLOAD_RETRY_WINDOW_MS,
Long.toString(phOverridingValue),
/* makeDefault */ false);
assertThat(mPhFlags.getMeasurementMaxAggregateReportUploadRetryWindowMs())
.isEqualTo(phOverridingValue);
}
@Test
public void testGetMeasurementMaxDelayedSourceRegistrationWindow() {
// Without any overriding, the value is the hard coded constant.
assertThat(mPhFlags.getMeasurementMaxDelayedSourceRegistrationWindow())
.isEqualTo(DEFAULT_MEASUREMENT_MAX_DELAYED_SOURCE_REGISTRATION_WINDOW);
long phOverridingValue = DEFAULT_MEASUREMENT_MAX_DELAYED_SOURCE_REGISTRATION_WINDOW + 150;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_MEASUREMENT_MAX_DELAYED_SOURCE_REGISTRATION_WINDOW,
Long.toString(phOverridingValue),
/* makeDefault */ false);
assertThat(mPhFlags.getMeasurementMaxDelayedSourceRegistrationWindow())
.isEqualTo(phOverridingValue);
}
@Test
public void testGetMeasurementMaxAttributionPerRateLimitWindow() {
// Without any overriding, the value is the hard coded constant.
assertThat(mPhFlags.getMeasurementMaxAttributionPerRateLimitWindow())
.isEqualTo(MEASUREMENT_MAX_ATTRIBUTION_PER_RATE_LIMIT_WINDOW);
int phOverridingValue = MEASUREMENT_MAX_ATTRIBUTION_PER_RATE_LIMIT_WINDOW + 10;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_MEASUREMENT_MAX_ATTRIBUTION_PER_RATE_LIMIT_WINDOW,
Long.toString(phOverridingValue),
/* makeDefault */ false);
assertThat(mPhFlags.getMeasurementMaxAttributionPerRateLimitWindow())
.isEqualTo(phOverridingValue);
}
@Test
public void testGetMeasurementMaxDistinctEnrollmentsPerPublisherXDestinationInAttribution() {
// Without any overriding, the value is the hard coded constant.
assertThat(mPhFlags.getMeasurementMaxDistinctEnrollmentsInAttribution())
.isEqualTo(MEASUREMENT_MAX_DISTINCT_ENROLLMENTS_IN_ATTRIBUTION);
int phOverridingValue = MEASUREMENT_MAX_DISTINCT_ENROLLMENTS_IN_ATTRIBUTION + 10;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_MEASUREMENT_MAX_DISTINCT_ENROLLMENTS_IN_ATTRIBUTION,
Long.toString(phOverridingValue),
/* makeDefault */ false);
assertThat(mPhFlags.getMeasurementMaxDistinctEnrollmentsInAttribution())
.isEqualTo(phOverridingValue);
}
@Test
public void testGetMeasurementMaxDistinctDestinationsInActiveSource() {
// Without any overriding, the value is the hard coded constant.
assertThat(mPhFlags.getMeasurementMaxDistinctDestinationsInActiveSource())
.isEqualTo(MEASUREMENT_MAX_DISTINCT_DESTINATIONS_IN_ACTIVE_SOURCE);
int phOverridingValue = MEASUREMENT_MAX_DISTINCT_DESTINATIONS_IN_ACTIVE_SOURCE + 10;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_MEASUREMENT_MAX_DISTINCT_DESTINATIONS_IN_ACTIVE_SOURCE,
Long.toString(phOverridingValue),
/* makeDefault */ false);
assertThat(mPhFlags.getMeasurementMaxDistinctDestinationsInActiveSource())
.isEqualTo(phOverridingValue);
}
@Test
public void testGetMeasurementMaxReportingOriginsPerSourceReportingSitePerWindow() {
// Without any overriding, the value is the hard coded constant.
assertThat(mPhFlags.getMeasurementMaxReportingOriginsPerSourceReportingSitePerWindow())
.isEqualTo(MEASUREMENT_MAX_REPORTING_ORIGINS_PER_SOURCE_REPORTING_SITE_PER_WINDOW);
int phOverridingValue =
MEASUREMENT_MAX_REPORTING_ORIGINS_PER_SOURCE_REPORTING_SITE_PER_WINDOW + 10;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_MEASUREMENT_MAX_REPORTING_ORIGINS_PER_SOURCE_REPORTING_SITE_PER_WINDOW,
Integer.toString(phOverridingValue),
/* makeDefault */ false);
assertThat(mPhFlags.getMeasurementMaxReportingOriginsPerSourceReportingSitePerWindow())
.isEqualTo(phOverridingValue);
}
@Test
public void testGetMeasurementMaxDistinctReportingOriginsInSource() {
// Without any overriding, the value is the hard coded constant.
assertThat(mPhFlags.getMeasurementMaxDistinctRepOrigPerPublXDestInSource())
.isEqualTo(MEASUREMENT_MAX_DISTINCT_REP_ORIG_PER_PUBLISHER_X_DEST_IN_SOURCE);
int phOverridingValue =
MEASUREMENT_MAX_DISTINCT_REP_ORIG_PER_PUBLISHER_X_DEST_IN_SOURCE + 10;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_MEASUREMENT_MAX_DISTINCT_REPORTING_ORIGINS_IN_SOURCE,
Integer.toString(phOverridingValue),
/* makeDefault */ false);
assertThat(mPhFlags.getMeasurementMaxDistinctRepOrigPerPublXDestInSource())
.isEqualTo(phOverridingValue);
}
@Test
public void testGetMeasurementEnableAggregatableReportPayloadPadding() {
// Without any overriding, the value is the hard coded constant.
assertThat(mPhFlags.getMeasurementEnableAggregatableReportPayloadPadding())
.isEqualTo(MEASUREMENT_ENABLE_AGGREGATABLE_REPORT_PAYLOAD_PADDING);
boolean phOverridingValue = !MEASUREMENT_ENABLE_AGGREGATABLE_REPORT_PAYLOAD_PADDING;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_MEASUREMENT_ENABLE_AGGREGATABLE_REPORT_PAYLOAD_PADDING,
Boolean.toString(phOverridingValue),
/* makeDefault */ false);
assertThat(mPhFlags.getMeasurementEnableAggregatableReportPayloadPadding())
.isEqualTo(phOverridingValue);
}
@Test
public void testGetMeasurementEnableDestinationRateLimit() {
// Without any overriding, the value is the hard coded constant.
assertThat(mPhFlags.getMeasurementEnableDestinationRateLimit())
.isEqualTo(MEASUREMENT_ENABLE_DESTINATION_RATE_LIMIT);
boolean phOverridingValue = !MEASUREMENT_ENABLE_DESTINATION_RATE_LIMIT;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_MEASUREMENT_ENABLE_DESTINATION_RATE_LIMIT,
Boolean.toString(phOverridingValue),
/* makeDefault */ false);
assertThat(mPhFlags.getMeasurementEnableDestinationRateLimit())
.isEqualTo(phOverridingValue);
}
@Test
public void testGetMeasurementMaxDestinationsPerPublisherPerRateLimitWindow() {
// Without any overriding, the value is the hard coded constant.
assertThat(mPhFlags.getMeasurementMaxDestinationsPerPublisherPerRateLimitWindow())
.isEqualTo(MEASUREMENT_MAX_DESTINATIONS_PER_PUBLISHER_PER_RATE_LIMIT_WINDOW);
int phOverridingValue =
MEASUREMENT_MAX_DESTINATIONS_PER_PUBLISHER_PER_RATE_LIMIT_WINDOW + 10;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_MEASUREMENT_MAX_DESTINATIONS_PER_PUBLISHER_PER_RATE_LIMIT_WINDOW,
Integer.toString(phOverridingValue),
/* makeDefault */ false);
assertThat(mPhFlags.getMeasurementMaxDestinationsPerPublisherPerRateLimitWindow())
.isEqualTo(phOverridingValue);
}
@Test
public void testGetMeasurementMaxDestPerPublisherXEnrollmentPerRateLimitWindow() {
// Without any overriding, the value is the hard coded constant.
assertThat(mPhFlags.getMeasurementMaxDestPerPublisherXEnrollmentPerRateLimitWindow())
.isEqualTo(
MEASUREMENT_MAX_DEST_PER_PUBLISHER_X_ENROLLMENT_PER_RATE_LIMIT_WINDOW);
int phOverridingValue =
MEASUREMENT_MAX_DEST_PER_PUBLISHER_X_ENROLLMENT_PER_RATE_LIMIT_WINDOW + 10;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_MEASUREMENT_MAX_DEST_PER_PUBLISHER_X_ENROLLMENT_PER_RATE_LIMIT_WINDOW,
Integer.toString(phOverridingValue),
/* makeDefault */ false);
assertThat(mPhFlags.getMeasurementMaxDestPerPublisherXEnrollmentPerRateLimitWindow())
.isEqualTo(phOverridingValue);
}
@Test
public void testGetMeasurementDestinationRateLimitWindow() {
// Without any overriding, the value is the hard coded constant.
assertThat(mPhFlags.getMeasurementDestinationRateLimitWindow())
.isEqualTo(MEASUREMENT_DESTINATION_RATE_LIMIT_WINDOW);
long phOverridingValue =
MEASUREMENT_DESTINATION_RATE_LIMIT_WINDOW + 10L;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_MEASUREMENT_DESTINATION_RATE_LIMIT_WINDOW,
Long.toString(phOverridingValue),
/* makeDefault */ false);
assertThat(mPhFlags.getMeasurementDestinationRateLimitWindow())
.isEqualTo(phOverridingValue);
}
@Test
public void testGetFledgeCustomAudienceMaxCount() {
// Without any overriding, the value is the hard coded constant.
assertThat(mPhFlags.getFledgeCustomAudienceMaxCount())
.isEqualTo(FLEDGE_CUSTOM_AUDIENCE_MAX_COUNT);
long phOverridingValue = FLEDGE_CUSTOM_AUDIENCE_MAX_COUNT + 100L;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_FLEDGE_CUSTOM_AUDIENCE_MAX_COUNT,
Long.toString(phOverridingValue),
/* makeDefault */ false);
assertThat(mPhFlags.getFledgeCustomAudienceMaxCount()).isEqualTo(phOverridingValue);
}
@Test
public void testGetFledgeCustomAudiencePerAppMaxCount() {
// Without any overriding, the value is the hard coded constant.
assertThat(mPhFlags.getFledgeCustomAudiencePerAppMaxCount())
.isEqualTo(FLEDGE_CUSTOM_AUDIENCE_PER_APP_MAX_COUNT);
long phOverridingValue = FLEDGE_CUSTOM_AUDIENCE_PER_APP_MAX_COUNT + 100L;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_FLEDGE_CUSTOM_AUDIENCE_PER_APP_MAX_COUNT,
Long.toString(phOverridingValue),
/* makeDefault */ false);
assertThat(mPhFlags.getFledgeCustomAudiencePerAppMaxCount()).isEqualTo(phOverridingValue);
}
@Test
public void testGetFledgeCustomAudienceMaxOwnerCount() {
// Without any overriding, the value is the hard coded constant.
assertThat(mPhFlags.getFledgeCustomAudienceMaxOwnerCount())
.isEqualTo(FLEDGE_CUSTOM_AUDIENCE_MAX_OWNER_COUNT);
long phOverridingValue = FLEDGE_CUSTOM_AUDIENCE_MAX_OWNER_COUNT + 100L;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_FLEDGE_CUSTOM_AUDIENCE_MAX_OWNER_COUNT,
Long.toString(phOverridingValue),
/* makeDefault */ false);
assertThat(mPhFlags.getFledgeCustomAudienceMaxOwnerCount()).isEqualTo(phOverridingValue);
}
@Test
public void testGetFledgeCustomAudienceDefaultExpireInMs() {
// Without any overriding, the value is the hard coded constant.
assertThat(mPhFlags.getFledgeCustomAudienceDefaultExpireInMs())
.isEqualTo(FLEDGE_CUSTOM_AUDIENCE_DEFAULT_EXPIRE_IN_MS);
long phOverridingValue = FLEDGE_CUSTOM_AUDIENCE_DEFAULT_EXPIRE_IN_MS + 100L;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_FLEDGE_CUSTOM_AUDIENCE_DEFAULT_EXPIRE_IN_MS,
Long.toString(phOverridingValue),
/* makeDefault */ false);
assertThat(mPhFlags.getFledgeCustomAudienceDefaultExpireInMs())
.isEqualTo(phOverridingValue);
}
@Test
public void testGetFledgeCustomAudienceMaxActivationDelayInMs() {
// Without any overriding, the value is the hard coded constant.
assertThat(mPhFlags.getFledgeCustomAudienceMaxActivationDelayInMs())
.isEqualTo(FLEDGE_CUSTOM_AUDIENCE_MAX_ACTIVATION_DELAY_IN_MS);
long phOverridingValue = FLEDGE_CUSTOM_AUDIENCE_MAX_ACTIVATION_DELAY_IN_MS + 100L;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_FLEDGE_CUSTOM_AUDIENCE_MAX_ACTIVATION_DELAY_IN_MS,
Long.toString(phOverridingValue),
/* makeDefault */ false);
assertThat(mPhFlags.getFledgeCustomAudienceMaxActivationDelayInMs())
.isEqualTo(phOverridingValue);
}
@Test
public void testGetFledgeCustomAudienceMaxExpireInMs() {
// Without any overriding, the value is the hard coded constant.
assertThat(mPhFlags.getFledgeCustomAudienceMaxExpireInMs())
.isEqualTo(FLEDGE_CUSTOM_AUDIENCE_MAX_EXPIRE_IN_MS);
long phOverridingValue = FLEDGE_CUSTOM_AUDIENCE_MAX_EXPIRE_IN_MS + 100L;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_FLEDGE_CUSTOM_AUDIENCE_MAX_EXPIRE_IN_MS,
Long.toString(phOverridingValue),
/* makeDefault */ false);
assertThat(mPhFlags.getFledgeCustomAudienceMaxExpireInMs()).isEqualTo(phOverridingValue);
}
@Test
public void testGetFledgeCustomAudienceMaxNameSizeB() {
// Without any overriding, the value is the hard coded constant.
assertThat(mPhFlags.getFledgeCustomAudienceMaxNameSizeB())
.isEqualTo(FLEDGE_CUSTOM_AUDIENCE_MAX_NAME_SIZE_B);
int phOverridingValue = FLEDGE_CUSTOM_AUDIENCE_MAX_NAME_SIZE_B + 234;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_FLEDGE_CUSTOM_AUDIENCE_MAX_NAME_SIZE_B,
Integer.toString(phOverridingValue),
/* makeDefault */ false);
assertThat(mPhFlags.getFledgeCustomAudienceMaxNameSizeB()).isEqualTo(phOverridingValue);
}
@Test
public void testGetFledgeCustomAudienceMaxDailyUpdateUriSizeB() {
// Without any overriding, the value is the hard coded constant.
assertThat(mPhFlags.getFledgeCustomAudienceMaxDailyUpdateUriSizeB())
.isEqualTo(FLEDGE_CUSTOM_AUDIENCE_MAX_DAILY_UPDATE_URI_SIZE_B);
int phOverridingValue = FLEDGE_CUSTOM_AUDIENCE_MAX_DAILY_UPDATE_URI_SIZE_B + 234;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_FLEDGE_CUSTOM_AUDIENCE_MAX_DAILY_UPDATE_URI_SIZE_B,
Integer.toString(phOverridingValue),
/* makeDefault */ false);
assertThat(mPhFlags.getFledgeCustomAudienceMaxDailyUpdateUriSizeB())
.isEqualTo(phOverridingValue);
}
@Test
public void testGetFledgeCustomAudienceMaxBiddingLogicUriSizeB() {
// Without any overriding, the value is the hard coded constant.
assertThat(mPhFlags.getFledgeCustomAudienceMaxBiddingLogicUriSizeB())
.isEqualTo(FLEDGE_CUSTOM_AUDIENCE_MAX_BIDDING_LOGIC_URI_SIZE_B);
int phOverridingValue = FLEDGE_CUSTOM_AUDIENCE_MAX_BIDDING_LOGIC_URI_SIZE_B + 234;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_FLEDGE_CUSTOM_AUDIENCE_MAX_BIDDING_LOGIC_URI_SIZE_B,
Integer.toString(phOverridingValue),
/* makeDefault */ false);
assertThat(mPhFlags.getFledgeCustomAudienceMaxBiddingLogicUriSizeB())
.isEqualTo(phOverridingValue);
}
@Test
public void testGetFledgeCustomAudienceMaxUserBiddingSignalsSizeB() {
// Without any overriding, the value is the hard coded constant.
assertThat(mPhFlags.getFledgeCustomAudienceMaxUserBiddingSignalsSizeB())
.isEqualTo(FLEDGE_CUSTOM_AUDIENCE_MAX_USER_BIDDING_SIGNALS_SIZE_B);
int phOverridingValue = FLEDGE_CUSTOM_AUDIENCE_MAX_USER_BIDDING_SIGNALS_SIZE_B + 234;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_FLEDGE_CUSTOM_AUDIENCE_MAX_USER_BIDDING_SIGNALS_SIZE_B,
Integer.toString(phOverridingValue),
/* makeDefault */ false);
assertThat(mPhFlags.getFledgeCustomAudienceMaxUserBiddingSignalsSizeB())
.isEqualTo(phOverridingValue);
}
@Test
public void testGetFledgeCustomAudienceMaxTrustedBiddingDataSizeB() {
// Without any overriding, the value is the hard coded constant.
assertThat(mPhFlags.getFledgeCustomAudienceMaxTrustedBiddingDataSizeB())
.isEqualTo(FLEDGE_CUSTOM_AUDIENCE_MAX_TRUSTED_BIDDING_DATA_SIZE_B);
int phOverridingValue = FLEDGE_CUSTOM_AUDIENCE_MAX_TRUSTED_BIDDING_DATA_SIZE_B + 123;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_FLEDGE_CUSTOM_AUDIENCE_MAX_TRUSTED_BIDDING_DATA_SIZE_B,
Integer.toString(phOverridingValue),
/* makeDefault */ false);
assertThat(mPhFlags.getFledgeCustomAudienceMaxTrustedBiddingDataSizeB())
.isEqualTo(phOverridingValue);
}
@Test
public void testGetFledgeCustomAudienceMaxAdsSizeB() {
// Without any overriding, the value is the hard coded constant.
assertThat(mPhFlags.getFledgeCustomAudienceMaxAdsSizeB())
.isEqualTo(FLEDGE_CUSTOM_AUDIENCE_MAX_ADS_SIZE_B);
int phOverridingValue = FLEDGE_CUSTOM_AUDIENCE_MAX_ADS_SIZE_B + 345;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_FLEDGE_CUSTOM_AUDIENCE_MAX_ADS_SIZE_B,
Integer.toString(phOverridingValue),
/* makeDefault */ false);
assertThat(mPhFlags.getFledgeCustomAudienceMaxAdsSizeB()).isEqualTo(phOverridingValue);
}
@Test
public void testGetFledgeCustomAudienceMaxNumAds() {
// Without any overriding, the value is the hard coded constant.
assertThat(mPhFlags.getFledgeCustomAudienceMaxNumAds())
.isEqualTo(FLEDGE_CUSTOM_AUDIENCE_MAX_NUM_ADS);
int phOverridingValue = FLEDGE_CUSTOM_AUDIENCE_MAX_NUM_ADS + 876;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_FLEDGE_CUSTOM_AUDIENCE_MAX_NUM_ADS,
Integer.toString(phOverridingValue),
/* makeDefault */ false);
assertThat(mPhFlags.getFledgeCustomAudienceMaxNumAds()).isEqualTo(phOverridingValue);
}
@Test
public void testGetFetchCustomAudienceMaxUserBiddingSignalsSizeB() {
// Without any overriding, the value is the hard coded constant.
assertThat(mPhFlags.getFledgeFetchCustomAudienceMaxUserBiddingSignalsSizeB())
.isEqualTo(FLEDGE_FETCH_CUSTOM_AUDIENCE_MAX_USER_BIDDING_SIGNALS_SIZE_B);
int phOverridingValue = FLEDGE_FETCH_CUSTOM_AUDIENCE_MAX_USER_BIDDING_SIGNALS_SIZE_B + 123;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_FLEDGE_FETCH_CUSTOM_AUDIENCE_MAX_USER_BIDDING_SIGNALS_SIZE_B,
Integer.toString(phOverridingValue),
/* makeDefault */ false);
assertThat(mPhFlags.getFledgeFetchCustomAudienceMaxUserBiddingSignalsSizeB())
.isEqualTo(phOverridingValue);
}
@Test
public void testGetFetchCustomAudienceMaxRequestCustomHeaderSizeB() {
// Without any overriding, the value is the hard coded constant.
assertThat(
FlagsFactory.getFlags()
.getFledgeFetchCustomAudienceMaxRequestCustomHeaderSizeB())
.isEqualTo(FLEDGE_FETCH_CUSTOM_AUDIENCE_MAX_REQUEST_CUSTOM_HEADER_SIZE_B);
int phOverridingValue = FLEDGE_FETCH_CUSTOM_AUDIENCE_MAX_REQUEST_CUSTOM_HEADER_SIZE_B + 312;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_FLEDGE_FETCH_CUSTOM_AUDIENCE_MAX_REQUEST_CUSTOM_HEADER_SIZE_B,
Integer.toString(phOverridingValue),
/* makeDefault */ false);
assertThat(mPhFlags.getFledgeFetchCustomAudienceMaxRequestCustomHeaderSizeB())
.isEqualTo(phOverridingValue);
}
@Test
public void testGetFetchCustomAudienceMaxCustomAudienceSizeB() {
// Without any overriding, the value is the hard coded constant.
assertThat(mPhFlags.getFledgeFetchCustomAudienceMaxCustomAudienceSizeB())
.isEqualTo(FLEDGE_FETCH_CUSTOM_AUDIENCE_MAX_CUSTOM_AUDIENCE_SIZE_B);
int phOverridingValue = FLEDGE_FETCH_CUSTOM_AUDIENCE_MAX_CUSTOM_AUDIENCE_SIZE_B + 213;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_FLEDGE_FETCH_CUSTOM_AUDIENCE_MAX_CUSTOM_AUDIENCE_SIZE_B,
Integer.toString(phOverridingValue),
/* makeDefault */ false);
assertThat(mPhFlags.getFledgeFetchCustomAudienceMaxCustomAudienceSizeB())
.isEqualTo(phOverridingValue);
}
@Test
public void testGetFledgeFetchCustomAudienceMinRetryAfterValueMS() {
// Without any overriding, the value is the hard coded constant.
assertThat(mPhFlags.getFledgeFetchCustomAudienceMinRetryAfterValueMs())
.isEqualTo(FLEDGE_FETCH_CUSTOM_AUDIENCE_MIN_RETRY_AFTER_VALUE_MS);
long phOverridingValue = FLEDGE_FETCH_CUSTOM_AUDIENCE_MIN_RETRY_AFTER_VALUE_MS + 213;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_FLEDGE_FETCH_CUSTOM_AUDIENCE_MIN_RETRY_AFTER_VALUE_MS,
Long.toString(phOverridingValue),
/* makeDefault */ false);
assertThat(mPhFlags.getFledgeFetchCustomAudienceMinRetryAfterValueMs())
.isEqualTo(phOverridingValue);
}
@Test
public void testFledgeFetchCustomAudienceMaxRetryAfterValueMS() {
// Without any overriding, the value is the hard coded constant.
assertThat(mPhFlags.getFledgeFetchCustomAudienceMaxRetryAfterValueMs())
.isEqualTo(FLEDGE_FETCH_CUSTOM_AUDIENCE_MAX_RETRY_AFTER_VALUE_MS);
long phOverridingValue = FLEDGE_FETCH_CUSTOM_AUDIENCE_MAX_RETRY_AFTER_VALUE_MS + 213;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_FLEDGE_FETCH_CUSTOM_AUDIENCE_MAX_RETRY_AFTER_VALUE_MS,
Long.toString(phOverridingValue),
/* makeDefault */ false);
assertThat(mPhFlags.getFledgeFetchCustomAudienceMaxRetryAfterValueMs())
.isEqualTo(phOverridingValue);
}
@Test
public void testGetFledgeHttpCachingEnabled() {
// Without any overriding, the value is the hard coded constant.
assertThat(mPhFlags.getFledgeHttpCachingEnabled()).isEqualTo(FLEDGE_HTTP_CACHE_ENABLE);
boolean phOverridingValue = !FLEDGE_HTTP_CACHE_ENABLE;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_FLEDGE_HTTP_CACHE_ENABLE,
Boolean.toString(phOverridingValue),
/* makeDefault */ false);
assertThat(mPhFlags.getFledgeHttpCachingEnabled()).isEqualTo(phOverridingValue);
}
@Test
public void testGetFledgeJsCachingEnabled() {
// Without any overriding, the value is the hard coded constant.
assertThat(mPhFlags.getFledgeHttpJsCachingEnabled())
.isEqualTo(FLEDGE_HTTP_CACHE_ENABLE_JS_CACHING);
boolean phOverridingValue = !FLEDGE_HTTP_CACHE_ENABLE_JS_CACHING;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_FLEDGE_HTTP_CACHE_ENABLE_JS_CACHING,
Boolean.toString(phOverridingValue),
/* makeDefault */ false);
assertThat(mPhFlags.getFledgeHttpJsCachingEnabled()).isEqualTo(phOverridingValue);
}
@Test
public void testGetFledgeHttpCacheMaxEntries() {
// Without any overriding, the value is the hard coded constant.
assertThat(mPhFlags.getFledgeHttpCacheMaxEntries())
.isEqualTo(FLEDGE_HTTP_CACHE_MAX_ENTRIES);
long phOverridingValue = FLEDGE_HTTP_CACHE_MAX_ENTRIES + 100L;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_FLEDGE_HTTP_CACHE_MAX_ENTRIES,
Long.toString(phOverridingValue),
/* makeDefault */ false);
assertThat(mPhFlags.getFledgeHttpCacheMaxEntries()).isEqualTo(phOverridingValue);
}
@Test
public void testGetFledgeOnDeviceAuctionShouldUseUnifiedTables() {
// Without any overriding, the value is the hard coded constant.
assertThat(mPhFlags.getFledgeOnDeviceAuctionShouldUseUnifiedTables())
.isEqualTo(FLEDGE_ON_DEVICE_AUCTION_SHOULD_USE_UNIFIED_TABLES);
boolean phOverridingValue = !FLEDGE_ON_DEVICE_AUCTION_SHOULD_USE_UNIFIED_TABLES;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_FLEDGE_ON_DEVICE_AUCTION_SHOULD_USE_UNIFIED_TABLES,
Boolean.toString(phOverridingValue),
/* makeDefault */ false);
assertThat(mPhFlags.getFledgeOnDeviceAuctionShouldUseUnifiedTables())
.isEqualTo(phOverridingValue);
}
@Test
public void testGetFledgeHttpCacheMaxAgeSeconds() {
// Without any overriding, the value is the hard coded constant.
assertThat(mPhFlags.getFledgeHttpCacheMaxAgeSeconds())
.isEqualTo(FLEDGE_HTTP_CACHE_DEFAULT_MAX_AGE_SECONDS);
long phOverridingValue = FLEDGE_HTTP_CACHE_DEFAULT_MAX_AGE_SECONDS + 3600L;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_FLEDGE_HTTP_CACHE_DEFAULT_MAX_AGE_SECONDS,
Long.toString(phOverridingValue),
/* makeDefault */ false);
assertThat(mPhFlags.getFledgeHttpCacheMaxAgeSeconds()).isEqualTo(phOverridingValue);
}
@Test
public void testGetFledgeAdCounterHistogramAbsoluteMaxTotalEventCount() {
// Without any overriding, the value is the hard coded constant.
assertThat(mPhFlags.getFledgeAdCounterHistogramAbsoluteMaxTotalEventCount())
.isEqualTo(FLEDGE_AD_COUNTER_HISTOGRAM_ABSOLUTE_MAX_TOTAL_EVENT_COUNT);
int phOverridingValue = FLEDGE_AD_COUNTER_HISTOGRAM_ABSOLUTE_MAX_TOTAL_EVENT_COUNT + 1;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_FLEDGE_AD_COUNTER_HISTOGRAM_ABSOLUTE_MAX_TOTAL_EVENT_COUNT,
Integer.toString(phOverridingValue),
/* makeDefault */ false);
assertThat(mPhFlags.getFledgeAdCounterHistogramAbsoluteMaxTotalEventCount())
.isEqualTo(phOverridingValue);
}
@Test
public void testGetFledgeAdCounterHistogramLowerMaxTotalEventCount() {
// Without any overriding, the value is the hard coded constant.
assertThat(mPhFlags.getFledgeAdCounterHistogramLowerMaxTotalEventCount())
.isEqualTo(FLEDGE_AD_COUNTER_HISTOGRAM_LOWER_MAX_TOTAL_EVENT_COUNT);
int phOverridingValue = FLEDGE_AD_COUNTER_HISTOGRAM_LOWER_MAX_TOTAL_EVENT_COUNT + 1;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_FLEDGE_AD_COUNTER_HISTOGRAM_LOWER_MAX_TOTAL_EVENT_COUNT,
Integer.toString(phOverridingValue),
/* makeDefault */ false);
assertThat(mPhFlags.getFledgeAdCounterHistogramLowerMaxTotalEventCount())
.isEqualTo(phOverridingValue);
}
@Test
public void testGetFledgeAdCounterHistogramAbsoluteMaxPerBuyerEventCount() {
// Without any overriding, the value is the hard coded constant.
assertThat(
FlagsFactory.getFlags()
.getFledgeAdCounterHistogramAbsoluteMaxPerBuyerEventCount())
.isEqualTo(FLEDGE_AD_COUNTER_HISTOGRAM_ABSOLUTE_MAX_PER_BUYER_EVENT_COUNT);
int phOverridingValue = FLEDGE_AD_COUNTER_HISTOGRAM_ABSOLUTE_MAX_PER_BUYER_EVENT_COUNT + 1;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_FLEDGE_AD_COUNTER_HISTOGRAM_ABSOLUTE_MAX_PER_BUYER_EVENT_COUNT,
Integer.toString(phOverridingValue),
/* makeDefault */ false);
assertThat(mPhFlags.getFledgeAdCounterHistogramAbsoluteMaxPerBuyerEventCount())
.isEqualTo(phOverridingValue);
}
@Test
public void testGetFledgeAdCounterHistogramLowerMaxPerBuyerEventCount() {
// Without any overriding, the value is the hard coded constant.
assertThat(mPhFlags.getFledgeAdCounterHistogramLowerMaxPerBuyerEventCount())
.isEqualTo(FLEDGE_AD_COUNTER_HISTOGRAM_LOWER_MAX_PER_BUYER_EVENT_COUNT);
int phOverridingValue = FLEDGE_AD_COUNTER_HISTOGRAM_LOWER_MAX_PER_BUYER_EVENT_COUNT + 1;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_FLEDGE_AD_COUNTER_HISTOGRAM_LOWER_MAX_PER_BUYER_EVENT_COUNT,
Integer.toString(phOverridingValue),
/* makeDefault */ false);
assertThat(mPhFlags.getFledgeAdCounterHistogramLowerMaxPerBuyerEventCount())
.isEqualTo(phOverridingValue);
}
@Test
public void testGetFledgeBackgroundFetchJobPeriodMs() {
// Without any overriding, the value is the hard coded constant.
assertThat(mPhFlags.getFledgeBackgroundFetchJobPeriodMs())
.isEqualTo(FLEDGE_BACKGROUND_FETCH_JOB_PERIOD_MS);
long phOverridingValue = FLEDGE_BACKGROUND_FETCH_JOB_PERIOD_MS + 100L;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_FLEDGE_BACKGROUND_FETCH_JOB_PERIOD_MS,
Long.toString(phOverridingValue),
/* makeDefault */ false);
assertThat(mPhFlags.getFledgeBackgroundFetchJobPeriodMs()).isEqualTo(phOverridingValue);
}
@Test
public void testGetFledgeBackgroundFetchEnabled() {
// Without any overriding, the value is the hard coded constant.
assertThat(mPhFlags.getFledgeBackgroundFetchEnabled())
.isEqualTo(FLEDGE_BACKGROUND_FETCH_ENABLED);
boolean phOverridingValue = !FLEDGE_BACKGROUND_FETCH_ENABLED;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_FLEDGE_BACKGROUND_FETCH_ENABLED,
Boolean.toString(phOverridingValue),
/* makeDefault */ false);
assertThat(mPhFlags.getFledgeBackgroundFetchEnabled()).isEqualTo(phOverridingValue);
}
@Test
public void testGetFledgeBackgroundFetchJobFlexMs() {
// Without any overriding, the value is the hard coded constant.
assertThat(mPhFlags.getFledgeBackgroundFetchJobFlexMs())
.isEqualTo(FLEDGE_BACKGROUND_FETCH_JOB_FLEX_MS);
long phOverridingValue = FLEDGE_BACKGROUND_FETCH_JOB_FLEX_MS + 20L;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_FLEDGE_BACKGROUND_FETCH_JOB_FLEX_MS,
Long.toString(phOverridingValue),
/* makeDefault */ false);
assertThat(mPhFlags.getFledgeBackgroundFetchJobFlexMs()).isEqualTo(phOverridingValue);
}
@Test
public void testGetFledgeBackgroundFetchJobMaxRuntimeMs() {
// Without any overriding, the value is the hard coded constant.
assertThat(mPhFlags.getFledgeBackgroundFetchJobMaxRuntimeMs())
.isEqualTo(FLEDGE_BACKGROUND_FETCH_JOB_MAX_RUNTIME_MS);
long phOverridingValue = FLEDGE_BACKGROUND_FETCH_JOB_MAX_RUNTIME_MS + 200L;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_FLEDGE_BACKGROUND_FETCH_JOB_MAX_RUNTIME_MS,
Long.toString(phOverridingValue),
/* makeDefault */ false);
assertThat(mPhFlags.getFledgeBackgroundFetchJobMaxRuntimeMs()).isEqualTo(phOverridingValue);
}
@Test
public void testGetFledgeBackgroundFetchMaxNumUpdated() {
// Without any overriding, the value is the hard coded constant.
assertThat(mPhFlags.getFledgeBackgroundFetchMaxNumUpdated())
.isEqualTo(FLEDGE_BACKGROUND_FETCH_MAX_NUM_UPDATED);
long phOverridingValue = FLEDGE_BACKGROUND_FETCH_MAX_NUM_UPDATED + 25L;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_FLEDGE_BACKGROUND_FETCH_MAX_NUM_UPDATED,
Long.toString(phOverridingValue),
/* makeDefault */ false);
assertThat(mPhFlags.getFledgeBackgroundFetchMaxNumUpdated()).isEqualTo(phOverridingValue);
}
@Test
public void testGetFledgeBackgroundFetchThreadPoolSize() {
// Without any overriding, the value is the hard coded constant.
assertThat(mPhFlags.getFledgeBackgroundFetchThreadPoolSize())
.isEqualTo(FLEDGE_BACKGROUND_FETCH_THREAD_POOL_SIZE);
int phOverridingValue = FLEDGE_BACKGROUND_FETCH_THREAD_POOL_SIZE + 3;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_FLEDGE_BACKGROUND_FETCH_THREAD_POOL_SIZE,
Integer.toString(phOverridingValue),
/* makeDefault */ false);
assertThat(mPhFlags.getFledgeBackgroundFetchThreadPoolSize()).isEqualTo(phOverridingValue);
}
@Test
public void testGetFledgeBackgroundFetchEligibleUpdateBaseIntervalS() {
// Without any overriding, the value is the hard coded constant.
assertThat(mPhFlags.getFledgeBackgroundFetchEligibleUpdateBaseIntervalS())
.isEqualTo(FLEDGE_BACKGROUND_FETCH_ELIGIBLE_UPDATE_BASE_INTERVAL_S);
long phOverridingValue = FLEDGE_BACKGROUND_FETCH_ELIGIBLE_UPDATE_BASE_INTERVAL_S + 54321L;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_FLEDGE_BACKGROUND_FETCH_ELIGIBLE_UPDATE_BASE_INTERVAL_S,
Long.toString(phOverridingValue),
/* makeDefault */ false);
assertThat(mPhFlags.getFledgeBackgroundFetchEligibleUpdateBaseIntervalS())
.isEqualTo(phOverridingValue);
}
@Test
public void testGetFledgeBackgroundFetchNetworkConnectTimeoutMs() {
// Without any overriding, the value is the hard coded constant.
assertThat(mPhFlags.getFledgeBackgroundFetchNetworkConnectTimeoutMs())
.isEqualTo(FLEDGE_BACKGROUND_FETCH_NETWORK_CONNECT_TIMEOUT_MS);
int phOverridingValue = FLEDGE_BACKGROUND_FETCH_NETWORK_CONNECT_TIMEOUT_MS + 99;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_FLEDGE_BACKGROUND_FETCH_NETWORK_CONNECT_TIMEOUT_MS,
Integer.toString(phOverridingValue),
/* makeDefault */ false);
assertThat(mPhFlags.getFledgeBackgroundFetchNetworkConnectTimeoutMs())
.isEqualTo(phOverridingValue);
}
@Test
public void testGetFledgeBackgroundFetchNetworkReadTimeoutMs() {
// Without any overriding, the value is the hard coded constant.
assertThat(mPhFlags.getFledgeBackgroundFetchNetworkReadTimeoutMs())
.isEqualTo(FLEDGE_BACKGROUND_FETCH_NETWORK_READ_TIMEOUT_MS);
int phOverridingValue = FLEDGE_BACKGROUND_FETCH_NETWORK_READ_TIMEOUT_MS + 1111;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_FLEDGE_BACKGROUND_FETCH_NETWORK_READ_TIMEOUT_MS,
Integer.toString(phOverridingValue),
/* makeDefault */ false);
assertThat(mPhFlags.getFledgeBackgroundFetchNetworkReadTimeoutMs())
.isEqualTo(phOverridingValue);
}
@Test
public void testGetFledgeBackgroundFetchMaxResponseSizeB() {
// Without any overriding, the value is the hard coded constant.
assertThat(mPhFlags.getFledgeBackgroundFetchMaxResponseSizeB())
.isEqualTo(FLEDGE_BACKGROUND_FETCH_MAX_RESPONSE_SIZE_B);
int phOverridingValue = FLEDGE_BACKGROUND_FETCH_MAX_RESPONSE_SIZE_B + 9999;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_FLEDGE_BACKGROUND_FETCH_MAX_RESPONSE_SIZE_B,
Integer.toString(phOverridingValue),
/* makeDefault */ false);
assertThat(mPhFlags.getFledgeBackgroundFetchMaxResponseSizeB())
.isEqualTo(phOverridingValue);
}
@Test
public void testGetProtectedSignalsPeriodicEncodingEnabled() {
assertEquals(
PROTECTED_SIGNALS_PERIODIC_ENCODING_ENABLED,
mPhFlags.getProtectedSignalsPeriodicEncodingEnabled());
boolean phOverrideValue = !PROTECTED_SIGNALS_PERIODIC_ENCODING_ENABLED;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_PROTECTED_SIGNALS_PERIODIC_ENCODING_ENABLED,
Boolean.toString(phOverrideValue),
/* makeDefault */ false);
assertThat(mPhFlags.getProtectedSignalsPeriodicEncodingEnabled())
.isEqualTo(phOverrideValue);
}
@Test
public void testGetProtectedSignalPeriodicEncodingJobPeriodMs() {
assertEquals(
PROTECTED_SIGNALS_PERIODIC_ENCODING_JOB_PERIOD_MS,
mPhFlags.getProtectedSignalPeriodicEncodingJobPeriodMs());
long phOverrideValue = PROTECTED_SIGNALS_PERIODIC_ENCODING_JOB_PERIOD_MS + 10;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_PROTECTED_SIGNALS_PERIODIC_ENCODING_JOB_PERIOD_MS,
Long.toString(phOverrideValue),
/* makeDefault */ false);
assertThat(mPhFlags.getProtectedSignalPeriodicEncodingJobPeriodMs())
.isEqualTo(phOverrideValue);
}
@Test
public void testGetProtectedSignalsPeriodicEncodingJobFlexMs() {
assertEquals(
PROTECTED_SIGNALS_PERIODIC_ENCODING_JOB_FLEX_MS,
mPhFlags.getProtectedSignalsPeriodicEncodingJobFlexMs());
long phOverrideValue = PROTECTED_SIGNALS_PERIODIC_ENCODING_JOB_FLEX_MS + 5;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_PROTECTED_SIGNALS_PERIODIC_ENCODING_JOB_FLEX_MS,
Long.toString(phOverrideValue),
/* makeDefault */ false);
assertThat(mPhFlags.getProtectedSignalsPeriodicEncodingJobFlexMs())
.isEqualTo(phOverrideValue);
}
@Test
public void testGetProtectedSignalsEncoderRefreshWindowSeconds() {
assertEquals(
PROTECTED_SIGNALS_ENCODER_REFRESH_WINDOW_SECONDS,
mPhFlags.getProtectedSignalsEncoderRefreshWindowSeconds());
long phOverrideValue = PROTECTED_SIGNALS_ENCODER_REFRESH_WINDOW_SECONDS + 5;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_PROTECTED_SIGNALS_ENCODER_REFRESH_WINDOW_SECONDS,
Long.toString(phOverrideValue),
/* makeDefault */ false);
assertThat(mPhFlags.getProtectedSignalsEncoderRefreshWindowSeconds())
.isEqualTo(phOverrideValue);
}
@Test
public void testGetProtectedSignalsEncodedPayloadMaxSizeBytes() {
assertEquals(
PROTECTED_SIGNALS_ENCODED_PAYLOAD_MAX_SIZE_BYTES,
mPhFlags.getProtectedSignalsEncodedPayloadMaxSizeBytes());
int phOverrideValue = PROTECTED_SIGNALS_ENCODED_PAYLOAD_MAX_SIZE_BYTES + 5;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_PROTECTED_SIGNALS_ENCODED_PAYLOAD_MAX_SIZE_BYTES,
Integer.toString(phOverrideValue),
/* makeDefault */ false);
assertThat(mPhFlags.getProtectedSignalsEncodedPayloadMaxSizeBytes())
.isEqualTo(phOverrideValue);
}
@Test
public void testGetProtectedSignalsFetchSignalUpdatesMaxSizeBytes() {
assertEquals(
PROTECTED_SIGNALS_FETCH_SIGNAL_UPDATES_MAX_SIZE_BYTES,
mPhFlags.getProtectedSignalsFetchSignalUpdatesMaxSizeBytes());
int phOverrideValue = PROTECTED_SIGNALS_FETCH_SIGNAL_UPDATES_MAX_SIZE_BYTES + 5;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_PROTECTED_SIGNALS_FETCH_SIGNAL_UPDATES_MAX_SIZE_BYTES,
Integer.toString(phOverrideValue),
/* makeDefault */ false);
assertThat(mPhFlags.getProtectedSignalsFetchSignalUpdatesMaxSizeBytes())
.isEqualTo(phOverrideValue);
}
@Test
public void testGetFledgeRegisterAdBeaconEnabled() {
// Without any overriding, the value is the hard coded constant.
assertThat(mPhFlags.getFledgeRegisterAdBeaconEnabled())
.isEqualTo(FLEDGE_REGISTER_AD_BEACON_ENABLED);
boolean phOverridingValue = !FLEDGE_REGISTER_AD_BEACON_ENABLED;
PhFlagsFixture.overrideFledgeRegisterAdBeaconEnabled(phOverridingValue);
assertThat(mPhFlags.getFledgeRegisterAdBeaconEnabled()).isEqualTo(phOverridingValue);
}
@Test
public void testGetFledgeCpcBillingEnabled() {
// Without any overriding, the value is the hard coded constant.
assertThat(mPhFlags.getFledgeCpcBillingEnabled()).isEqualTo(FLEDGE_CPC_BILLING_ENABLED);
boolean phOverridingValue = !FLEDGE_CPC_BILLING_ENABLED;
PhFlagsFixture.overrideFledgeCpcBillingEnabled(phOverridingValue);
assertThat(mPhFlags.getFledgeCpcBillingEnabled()).isEqualTo(phOverridingValue);
}
@Test
public void testGetProtectedSignalsCleanupEnabled() {
// Without any overriding, the value is the hard coded constant.
assertThat(mPhFlags.getProtectedSignalsCleanupEnabled())
.isEqualTo(PROTECTED_SIGNALS_CLEANUP_ENABLED);
boolean phOverridingValue = !PROTECTED_SIGNALS_CLEANUP_ENABLED;
PhFlagsFixture.overrideProtectedSignalsCleanupEnabled(phOverridingValue);
assertThat(mPhFlags.getProtectedSignalsCleanupEnabled()).isEqualTo(phOverridingValue);
}
@Test
public void testGetFledgeDataVersionHeaderEnabled() {
// Without any overriding, the value is the hard coded constant.
assertThat(FlagsFactory.getFlags().getFledgeDataVersionHeaderEnabled())
.isEqualTo(FLEDGE_DATA_VERSION_HEADER_ENABLED);
boolean phOverridingValue = !FLEDGE_DATA_VERSION_HEADER_ENABLED;
PhFlagsFixture.overrideFledgeDataVersionHeaderEnabled(phOverridingValue);
Flags phFlags = FlagsFactory.getFlags();
assertThat(phFlags.getFledgeDataVersionHeaderEnabled()).isEqualTo(phOverridingValue);
}
@Test
public void testGetFledgeEventLevelDebugReportingEnabled() {
// Without any overriding, the value is the hard coded constant.
assertThat(mPhFlags.getFledgeEventLevelDebugReportingEnabled())
.isEqualTo(FLEDGE_EVENT_LEVEL_DEBUG_REPORTING_ENABLED);
boolean phOverridingValue = !FLEDGE_EVENT_LEVEL_DEBUG_REPORTING_ENABLED;
PhFlagsFixture.overrideFledgeEventLevelDebugReportingEnabled(phOverridingValue);
assertThat(mPhFlags.getFledgeEventLevelDebugReportingEnabled())
.isEqualTo(phOverridingValue);
}
@Test
public void testGetFledgeEventLevelDebugReportSendImmediately() {
// Without any overriding, the value is the hard coded constant.
assertThat(mPhFlags.getFledgeEventLevelDebugReportSendImmediately())
.isEqualTo(FLEDGE_EVENT_LEVEL_DEBUG_REPORT_SEND_IMMEDIATELY);
boolean phOverridingValue = !FLEDGE_EVENT_LEVEL_DEBUG_REPORT_SEND_IMMEDIATELY;
PhFlagsFixture.overrideFledgeEventLevelDebugReportSendImmediately(phOverridingValue);
assertThat(mPhFlags.getFledgeEventLevelDebugReportSendImmediately())
.isEqualTo(phOverridingValue);
}
@Test
public void testGetFledgeEventLevelDebugReportingDelay() {
// Without any overriding, the value is the hard coded constant.
assertThat(mPhFlags.getFledgeEventLevelDebugReportingBatchDelaySeconds())
.isEqualTo(FLEDGE_EVENT_LEVEL_DEBUG_REPORTING_BATCH_DELAY_SECONDS);
int phOverridingValue = FLEDGE_EVENT_LEVEL_DEBUG_REPORTING_BATCH_DELAY_SECONDS + (60 * 2);
PhFlagsFixture.overrideFledgeEventLevelDebugReportingBatchDelay(phOverridingValue);
assertThat(mPhFlags.getFledgeEventLevelDebugReportingBatchDelaySeconds())
.isEqualTo(phOverridingValue);
}
@Test
public void testGetFledgeEventLevelDebugReportingMaxItemsPerBatch() {
// Without any overriding, the value is the hard coded constant.
assertThat(mPhFlags.getFledgeEventLevelDebugReportingMaxItemsPerBatch())
.isEqualTo(FLEDGE_EVENT_LEVEL_DEBUG_REPORTING_MAX_ITEMS_PER_BATCH);
int phOverridingValue = FLEDGE_EVENT_LEVEL_DEBUG_REPORTING_MAX_ITEMS_PER_BATCH + 10;
PhFlagsFixture.overrideFledgeEventLevelDebugReportingMaxItemsPerBatch(phOverridingValue);
assertThat(mPhFlags.getFledgeEventLevelDebugReportingMaxItemsPerBatch())
.isEqualTo(phOverridingValue);
}
@Test
public void testGetFledgeDebugReportSenderJobNetworkConnectionTimeoutMs() {
// Without any overriding, the value is the hard coded constant.
assertThat(mPhFlags.getFledgeDebugReportSenderJobNetworkConnectionTimeoutMs())
.isEqualTo(FLEDGE_DEBUG_REPORT_SENDER_JOB_NETWORK_CONNECT_TIMEOUT_MS);
int phOverridingValue = FLEDGE_DEBUG_REPORT_SENDER_JOB_NETWORK_CONNECT_TIMEOUT_MS + 60;
PhFlagsFixture.overrideFledgeDebugReportSenderJobNetworkConnectionTimeoutMs(
phOverridingValue);
assertThat(mPhFlags.getFledgeDebugReportSenderJobNetworkConnectionTimeoutMs())
.isEqualTo(phOverridingValue);
}
@Test
public void testGetFledgeDebugReportSenderJobNetworkReadTimeoutMs() {
// Without any overriding, the value is the hard coded constant.
assertThat(mPhFlags.getFledgeDebugReportSenderJobNetworkReadTimeoutMs())
.isEqualTo(FLEDGE_DEBUG_REPORT_SENDER_JOB_NETWORK_READ_TIMEOUT_MS);
int phOverridingValue = FLEDGE_DEBUG_REPORT_SENDER_JOB_NETWORK_READ_TIMEOUT_MS + 60;
PhFlagsFixture.overrideFledgeDebugReportSenderJobNetworkReadTimeoutMs(phOverridingValue);
assertThat(mPhFlags.getFledgeDebugReportSenderJobNetworkReadTimeoutMs())
.isEqualTo(phOverridingValue);
}
@Test
public void testGetFledgeDebugReportSenderJobMaxRuntimeMs() {
// Without any overriding, the value is the hard coded constant.
assertThat(mPhFlags.getFledgeDebugReportSenderJobMaxRuntimeMs())
.isEqualTo(FLEDGE_DEBUG_REPORT_SENDER_JOB_MAX_RUNTIME_MS);
long phOverridingValue = FLEDGE_DEBUG_REPORT_SENDER_JOB_MAX_RUNTIME_MS + 60L;
PhFlagsFixture.overrideFledgeDebugReportSenderJobMaxRuntimeMs(phOverridingValue);
assertThat(mPhFlags.getFledgeDebugReportSenderJobMaxRuntimeMs())
.isEqualTo(phOverridingValue);
}
@Test
public void testGetFledgeDebugReportSenderJobPeriodMs() {
// Without any overriding, the value is the hard coded constant.
assertThat(mPhFlags.getFledgeDebugReportSenderJobPeriodMs())
.isEqualTo(FLEDGE_DEBUG_REPORT_SENDER_JOB_PERIOD_MS);
long phOverridingValue = FLEDGE_DEBUG_REPORT_SENDER_JOB_PERIOD_MS + 60L;
PhFlagsFixture.overrideFledgeDebugReportSenderJobPeriodicMs(phOverridingValue);
assertThat(mPhFlags.getFledgeDebugReportSenderJobPeriodMs()).isEqualTo(phOverridingValue);
}
@Test
public void testGetFledgeDebugReportSenderJobFlexMs() {
// Without any overriding, the value is the hard coded constant.
assertThat(mPhFlags.getFledgeDebugReportSenderJobFlexMs())
.isEqualTo(FLEDGE_DEBUG_REPORT_SENDER_JOB_FLEX_MS);
long phOverridingValue = FLEDGE_DEBUG_REPORT_SENDER_JOB_FLEX_MS + 60L;
PhFlagsFixture.overrideFledgeDebugReportSenderJobFlexMs(phOverridingValue);
assertThat(mPhFlags.getFledgeDebugReportSenderJobFlexMs()).isEqualTo(phOverridingValue);
}
@Test
public void testGetEnforceForegroundStatusForFledgeRunAdSelection() {
// Without any overriding, the value is the hard coded constant.
assertThat(mPhFlags.getEnforceForegroundStatusForFledgeRunAdSelection())
.isEqualTo(ENFORCE_FOREGROUND_STATUS_FLEDGE_RUN_AD_SELECTION);
boolean phOverridingValue = !ENFORCE_FOREGROUND_STATUS_FLEDGE_RUN_AD_SELECTION;
PhFlagsFixture.overrideForegroundStatusForFledgeRunAdSelection(phOverridingValue);
assertThat(mPhFlags.getEnforceForegroundStatusForFledgeRunAdSelection())
.isEqualTo(phOverridingValue);
}
@Test
public void testGetEnforceForegroundStatusForFledgeReportImpression() {
// Without any overriding, the value is the hard coded constant.
assertThat(mPhFlags.getEnforceForegroundStatusForFledgeReportImpression())
.isEqualTo(ENFORCE_FOREGROUND_STATUS_FLEDGE_REPORT_IMPRESSION);
boolean phOverridingValue = !ENFORCE_FOREGROUND_STATUS_FLEDGE_REPORT_IMPRESSION;
PhFlagsFixture.overrideForegroundStatusForFledgeReportImpression(phOverridingValue);
assertThat(mPhFlags.getEnforceForegroundStatusForFledgeReportImpression())
.isEqualTo(phOverridingValue);
}
@Test
public void testGetEnforceForegroundStatusForFledgeReportInteraction() {
// Without any overriding, the value is the hard coded constant.
assertThat(mPhFlags.getEnforceForegroundStatusForFledgeReportInteraction())
.isEqualTo(ENFORCE_FOREGROUND_STATUS_FLEDGE_REPORT_INTERACTION);
boolean phOverridingValue = !ENFORCE_FOREGROUND_STATUS_FLEDGE_REPORT_INTERACTION;
PhFlagsFixture.overrideForegroundStatusForFledgeReportInteraction(phOverridingValue);
assertThat(mPhFlags.getEnforceForegroundStatusForFledgeReportInteraction())
.isEqualTo(phOverridingValue);
}
@Test
public void testEnforceForegroundStatusForFledgeOverrides() {
// Without any overriding, the value is the hard coded constant.
assertThat(mPhFlags.getEnforceForegroundStatusForFledgeOverrides())
.isEqualTo(ENFORCE_FOREGROUND_STATUS_FLEDGE_OVERRIDES);
boolean phOverridingValue = !ENFORCE_FOREGROUND_STATUS_FLEDGE_OVERRIDES;
PhFlagsFixture.overrideForegroundStatusForFledgeOverrides(phOverridingValue);
assertThat(mPhFlags.getEnforceForegroundStatusForFledgeOverrides())
.isEqualTo(phOverridingValue);
}
@Test
public void testEnforceForegroundStatusForFledgeCustomAudience() {
// Without any overriding, the value is the hard coded constant.
assertThat(mPhFlags.getEnforceForegroundStatusForFledgeCustomAudience())
.isEqualTo(ENFORCE_FOREGROUND_STATUS_FLEDGE_CUSTOM_AUDIENCE);
boolean phOverridingValue = !ENFORCE_FOREGROUND_STATUS_FLEDGE_CUSTOM_AUDIENCE;
PhFlagsFixture.overrideForegroundStatusForFledgeCustomAudience(phOverridingValue);
assertThat(mPhFlags.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);
boolean phOverridingValue = !MEASUREMENT_ENFORCE_FOREGROUND_STATUS_DELETE_REGISTRATIONS;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_MEASUREMENT_ENFORCE_FOREGROUND_STATUS_DELETE_REGISTRATIONS,
Boolean.toString(phOverridingValue),
false);
assertThat(mPhFlags.getEnforceForegroundStatusForMeasurementDeleteRegistrations())
.isEqualTo(phOverridingValue);
assertThat(mTestFlags.getEnforceForegroundStatusForMeasurementDeleteRegistrations())
.isEqualTo(MEASUREMENT_ENFORCE_FOREGROUND_STATUS_DELETE_REGISTRATIONS);
}
@Test
public void testGetEnforceForegroundStatusForMeasurementRegisterSource() {
// without any overriding, the value is hard coded constant
assertThat(mPhFlags.getEnforceForegroundStatusForMeasurementRegisterSource())
.isEqualTo(MEASUREMENT_ENFORCE_FOREGROUND_STATUS_REGISTER_SOURCE);
boolean phOverridingValue = !MEASUREMENT_ENFORCE_FOREGROUND_STATUS_REGISTER_SOURCE;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_MEASUREMENT_ENFORCE_FOREGROUND_STATUS_REGISTER_SOURCE,
Boolean.toString(phOverridingValue),
false);
assertThat(mPhFlags.getEnforceForegroundStatusForMeasurementRegisterSource())
.isEqualTo(phOverridingValue);
assertThat(mTestFlags.getEnforceForegroundStatusForMeasurementRegisterSource())
.isEqualTo(MEASUREMENT_ENFORCE_FOREGROUND_STATUS_REGISTER_SOURCE);
}
@Test
public void testGetEnforceForegroundStatusForMeasurementRegisterSources() {
// without any overriding, the value is hard coded constant
assertThat(mPhFlags.getEnforceForegroundStatusForMeasurementRegisterSources())
.isEqualTo(MEASUREMENT_ENFORCE_FOREGROUND_STATUS_REGISTER_SOURCES);
boolean phOverridingValue = !MEASUREMENT_ENFORCE_FOREGROUND_STATUS_REGISTER_SOURCES;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_MEASUREMENT_ENFORCE_FOREGROUND_STATUS_REGISTER_SOURCES,
Boolean.toString(phOverridingValue),
false);
assertThat(mPhFlags.getEnforceForegroundStatusForMeasurementRegisterSources())
.isEqualTo(phOverridingValue);
assertThat(mTestFlags.getEnforceForegroundStatusForMeasurementRegisterSources())
.isEqualTo(MEASUREMENT_ENFORCE_FOREGROUND_STATUS_REGISTER_SOURCES);
}
@Test
public void testGetEnforceForegroundStatusForMeasurementRegisterTrigger() {
// without any overriding, the value is hard coded constant
assertThat(
FlagsFactory.getFlags()
.getEnforceForegroundStatusForMeasurementRegisterTrigger())
.isEqualTo(MEASUREMENT_ENFORCE_FOREGROUND_STATUS_REGISTER_TRIGGER);
boolean phOverridingValue = !MEASUREMENT_ENFORCE_FOREGROUND_STATUS_REGISTER_TRIGGER;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_MEASUREMENT_ENFORCE_FOREGROUND_STATUS_REGISTER_TRIGGER,
Boolean.toString(phOverridingValue),
false);
assertThat(mPhFlags.getEnforceForegroundStatusForMeasurementRegisterTrigger())
.isEqualTo(phOverridingValue);
assertThat(mTestFlags.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);
boolean phOverridingValue = !MEASUREMENT_ENFORCE_FOREGROUND_STATUS_REGISTER_WEB_SOURCE;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_MEASUREMENT_ENFORCE_FOREGROUND_STATUS_REGISTER_WEB_SOURCE,
Boolean.toString(phOverridingValue),
false);
assertThat(mPhFlags.getEnforceForegroundStatusForMeasurementRegisterWebSource())
.isEqualTo(phOverridingValue);
assertThat(mTestFlags.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);
boolean phOverridingValue = !MEASUREMENT_ENFORCE_FOREGROUND_STATUS_REGISTER_WEB_TRIGGER;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_MEASUREMENT_ENFORCE_FOREGROUND_STATUS_REGISTER_WEB_TRIGGER,
Boolean.toString(phOverridingValue),
false);
assertThat(mPhFlags.getEnforceForegroundStatusForMeasurementRegisterWebTrigger())
.isEqualTo(phOverridingValue);
assertThat(mTestFlags.getEnforceForegroundStatusForMeasurementRegisterWebTrigger())
.isEqualTo(MEASUREMENT_ENFORCE_FOREGROUND_STATUS_REGISTER_WEB_TRIGGER);
}
@Test
public void testGetEnforceForegroundStatusForMeasurementStatus() {
// without any overriding, the value is hard coded constant
assertThat(mPhFlags.getEnforceForegroundStatusForMeasurementStatus())
.isEqualTo(MEASUREMENT_ENFORCE_FOREGROUND_STATUS_GET_STATUS);
boolean phOverridingValue = !MEASUREMENT_ENFORCE_FOREGROUND_STATUS_GET_STATUS;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_MEASUREMENT_ENFORCE_FOREGROUND_STATUS_GET_STATUS,
Boolean.toString(phOverridingValue),
false);
assertThat(mPhFlags.getEnforceForegroundStatusForMeasurementStatus())
.isEqualTo(phOverridingValue);
assertThat(mTestFlags.getEnforceForegroundStatusForMeasurementStatus())
.isEqualTo(MEASUREMENT_ENFORCE_FOREGROUND_STATUS_GET_STATUS);
}
@Test
public void testGetGlobalKillSwitch() {
// Without any overriding, the value is the hard coded constant.
assertThat(mPhFlags.getGlobalKillSwitch()).isEqualTo(GLOBAL_KILL_SWITCH);
// Now overriding with the value from PH.
boolean phOverridingValue = true;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_GLOBAL_KILL_SWITCH,
Boolean.toString(phOverridingValue),
/* makeDefault */ false);
assertThat(mPhFlags.getGlobalKillSwitch()).isEqualTo(phOverridingValue);
}
@Test
public void testGetGlobalKillSwitch_killSwitchTrue_onTPlus_enableBackCompatFalse_isTrue() {
testGetGlobalKillSwitchWithSdkLevelBackCompat(true, true, false, true);
}
@Test
public void testGetGlobalKillSwitch_killSwitchFalse_onTPlus_enableBackCompatFalse_isFalse() {
testGetGlobalKillSwitchWithSdkLevelBackCompat(false, true, false, false);
}
@Test
public void testGetGlobalKillSwitch_killSwitchTrue_onTPlus_enableBackCompatTrue_isTrue() {
testGetGlobalKillSwitchWithSdkLevelBackCompat(true, true, true, true);
}
@Test
public void testGetGlobalKillSwitch_killSwitchFalse_onTPlus_enableBackCompatTrue_isFalse() {
testGetGlobalKillSwitchWithSdkLevelBackCompat(false, true, true, false);
}
@Test
public void testGetGlobalKillSwitch_killSwitchTrue_onSMinus_enableBackCompatFalse_isTrue() {
testGetGlobalKillSwitchWithSdkLevelBackCompat(true, false, false, true);
}
@Test
public void testGetGlobalKillSwitch_killSwitchFalse_onSMinus_enableBackCompatFalse_isTrue() {
testGetGlobalKillSwitchWithSdkLevelBackCompat(false, false, false, true);
}
@Test
public void testGetGlobalKillSwitch_killSwitchTrue_onSMinus_enableBackCompatTrue_isFalse() {
testGetGlobalKillSwitchWithSdkLevelBackCompat(true, false, true, false);
}
@Test
public void testGetGlobalKillSwitch_killSwitchFalse_onSMinus_enableBackCompatTrue_isFalse() {
testGetGlobalKillSwitchWithSdkLevelBackCompat(false, false, true, false);
}
private void testGetGlobalKillSwitchWithSdkLevelBackCompat(
boolean globalKillSwitch,
boolean sdkAtleastT,
boolean enableBackCompat,
boolean expected) {
mockIsAtLeastT(sdkAtleastT);
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_GLOBAL_KILL_SWITCH,
Boolean.toString(globalKillSwitch),
/* makeDefault */ true);
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_ENABLE_BACK_COMPAT,
Boolean.toString(enableBackCompat),
/* makeDefault */ false);
assertThat(mPhFlags.getGlobalKillSwitch()).isEqualTo(expected);
}
@Test
public void testGetAdServicesEnabled() {
// Disable global_kill_switch so that this flag can be tested.
disableGlobalKillSwitch();
// Without any overriding, the value is the hard coded constant.
assertThat(mPhFlags.getAdServicesEnabled()).isEqualTo(ADSERVICES_ENABLED);
// Now overriding with the value from PH.
boolean phOverridingValue = !ADSERVICES_ENABLED;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_ADSERVICES_ENABLED,
Boolean.toString(phOverridingValue),
/* makeDefault */ false);
assertThat(mPhFlags.getAdServicesEnabled()).isEqualTo(phOverridingValue);
}
@Test
public void testGetAdServicesErrorLoggingEnabled() {
// Disable global_kill_switch so that this flag can be tested.
disableGlobalKillSwitch();
// Without any overriding, the value is the hard coded constant.
assertThat(mPhFlags.getAdServicesErrorLoggingEnabled())
.isEqualTo(ADSERVICES_ERROR_LOGGING_ENABLED);
// Now overriding with the value from PH.
boolean phOverridingValue = !ADSERVICES_ERROR_LOGGING_ENABLED;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_ADSERVICES_ERROR_LOGGING_ENABLED,
Boolean.toString(phOverridingValue),
/* makeDefault */ false);
assertThat(mPhFlags.getAdServicesErrorLoggingEnabled()).isEqualTo(phOverridingValue);
}
@Test
public void testGetGaUxFeatureEnabled() {
// Without any overriding, the value is the hard coded constant.
assertThat(mPhFlags.getGaUxFeatureEnabled()).isEqualTo(GA_UX_FEATURE_ENABLED);
// Now overriding with the value from PH.
boolean phOverridingValue = !GA_UX_FEATURE_ENABLED;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_GA_UX_FEATURE_ENABLED,
Boolean.toString(phOverridingValue),
/* makeDefault */ false);
assertThat(mPhFlags.getGaUxFeatureEnabled()).isEqualTo(phOverridingValue);
}
@Test
public void testGetDialogFragmentEnabled() {
// Without any overriding, the value is the hard coded constant.
assertThat(mPhFlags.getUiDialogFragmentEnabled()).isEqualTo(UI_DIALOG_FRAGMENT);
// Now overriding with the value from PH.
boolean phOverridingValue = !UI_DIALOG_FRAGMENT;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_UI_DIALOG_FRAGMENT_ENABLED,
Boolean.toString(phOverridingValue),
/* makeDefault */ false);
assertThat(mPhFlags.getUiDialogFragmentEnabled()).isEqualTo(phOverridingValue);
}
@Test
public void testGetToggleSpeedBumpEnabled() {
// Without any overriding, the value is the hard coded constant.
assertThat(mPhFlags.getUiDialogFragmentEnabled()).isEqualTo(TOGGLE_SPEED_BUMP_ENABLED);
// Now overriding with the value from PH.
boolean phOverridingValue = !TOGGLE_SPEED_BUMP_ENABLED;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_UI_TOGGLE_SPEED_BUMP_ENABLED,
Boolean.toString(phOverridingValue),
/* makeDefault */ false);
assertThat(mPhFlags.getToggleSpeedBumpEnabled()).isEqualTo(phOverridingValue);
}
@Test
public void testGetAdServicesEnabledWhenGlobalKillSwitchOn() {
// Without any overriding, the value is the hard coded constant.
assertThat(mPhFlags.getAdServicesEnabled()).isEqualTo(ADSERVICES_ENABLED);
// Now overriding with the value from PH.
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);
assertThat(mPhFlags.getAdServicesEnabled()).isFalse();
}
@Test
public void testMeasurementKillSwitch() {
// Disable global_kill_switch so that this flag can be tested.
disableGlobalKillSwitch();
// Without any overriding, the value is the hard coded constant.
assertThat(mPhFlags.getMeasurementKillSwitch()).isEqualTo(MEASUREMENT_KILL_SWITCH);
// Now overriding with the value from PH.
boolean phOverridingValue = !MEASUREMENT_KILL_SWITCH;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_MEASUREMENT_KILL_SWITCH,
Boolean.toString(phOverridingValue),
/* makeDefault */ false);
assertThat(mPhFlags.getMeasurementKillSwitch()).isEqualTo(phOverridingValue);
}
@Test
public void testMeasurementKillSwitch_globalOverride() {
// Disable global_kill_switch so that this flag can be tested.
disableGlobalKillSwitch();
// Without any overriding, the value is the hard coded constant.
assertThat(mPhFlags.getMeasurementKillSwitch()).isEqualTo(MEASUREMENT_KILL_SWITCH);
boolean phOverridingValue = !MEASUREMENT_KILL_SWITCH;
overrideGlobalKillSwitch(phOverridingValue);
assertThat(mPhFlags.getMeasurementKillSwitch()).isEqualTo(phOverridingValue);
}
@Test
public void testGetMeasurementApiDeleteRegistrationsKillSwitch() {
// Disable global_kill_switch so that this flag can be tested.
disableGlobalKillSwitch();
// without any overriding, the value is hard coded constant
assertThat(mPhFlags.getMeasurementApiDeleteRegistrationsKillSwitch())
.isEqualTo(MEASUREMENT_API_DELETE_REGISTRATIONS_KILL_SWITCH);
boolean phOverridingValue = !MEASUREMENT_API_DELETE_REGISTRATIONS_KILL_SWITCH;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_MEASUREMENT_API_DELETE_REGISTRATIONS_KILL_SWITCH,
Boolean.toString(phOverridingValue),
false);
assertThat(mPhFlags.getMeasurementApiDeleteRegistrationsKillSwitch())
.isEqualTo(phOverridingValue);
}
@Test
public void testGetMeasurementApiDeleteRegistrationsKillSwitch_measurementOverride() {
// Disable global_kill_switch so that this flag can be tested.
disableGlobalKillSwitch();
// without any overriding, the value is hard coded constant
assertThat(mPhFlags.getMeasurementApiDeleteRegistrationsKillSwitch())
.isEqualTo(MEASUREMENT_API_DELETE_REGISTRATIONS_KILL_SWITCH);
boolean phOverridingValue = !MEASUREMENT_API_DELETE_REGISTRATIONS_KILL_SWITCH;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_MEASUREMENT_KILL_SWITCH,
Boolean.toString(phOverridingValue),
false);
assertThat(mPhFlags.getMeasurementApiDeleteRegistrationsKillSwitch())
.isEqualTo(phOverridingValue);
}
@Test
public void testGetMeasurementApiDeleteRegistrationsKillSwitch_globalOverride() {
// Disable global_kill_switch so that this flag can be tested.
disableGlobalKillSwitch();
// without any overriding, the value is hard coded constant
assertThat(mPhFlags.getMeasurementApiDeleteRegistrationsKillSwitch())
.isEqualTo(MEASUREMENT_API_DELETE_REGISTRATIONS_KILL_SWITCH);
boolean phOverridingValue = !MEASUREMENT_API_DELETE_REGISTRATIONS_KILL_SWITCH;
overrideGlobalKillSwitch(phOverridingValue);
assertThat(mPhFlags.getMeasurementApiDeleteRegistrationsKillSwitch())
.isEqualTo(phOverridingValue);
}
@Test
public void testGetMeasurementApiStatusKillSwitch() {
// Disable global_kill_switch so that this flag can be tested.
disableGlobalKillSwitch();
// without any overriding, the value is hard coded constant
assertThat(mPhFlags.getMeasurementApiStatusKillSwitch())
.isEqualTo(MEASUREMENT_API_STATUS_KILL_SWITCH);
boolean phOverridingValue = !MEASUREMENT_API_STATUS_KILL_SWITCH;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_MEASUREMENT_API_STATUS_KILL_SWITCH,
Boolean.toString(phOverridingValue),
false);
assertThat(mPhFlags.getMeasurementApiStatusKillSwitch()).isEqualTo(phOverridingValue);
}
@Test
public void testGetMeasurementApiStatusKillSwitch_measurementOverride() {
// Disable global_kill_switch so that this flag can be tested.
disableGlobalKillSwitch();
// without any overriding, the value is hard coded constant
assertThat(mPhFlags.getMeasurementApiStatusKillSwitch())
.isEqualTo(MEASUREMENT_API_STATUS_KILL_SWITCH);
boolean phOverridingValue = !MEASUREMENT_API_STATUS_KILL_SWITCH;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_MEASUREMENT_KILL_SWITCH,
Boolean.toString(phOverridingValue),
false);
assertThat(mPhFlags.getMeasurementApiStatusKillSwitch()).isEqualTo(phOverridingValue);
}
@Test
public void testGetMeasurementApiStatusKillSwitch_globalOverride() {
// Disable global_kill_switch so that this flag can be tested.
disableGlobalKillSwitch();
// without any overriding, the value is hard coded constant
assertThat(mPhFlags.getMeasurementApiStatusKillSwitch())
.isEqualTo(MEASUREMENT_API_STATUS_KILL_SWITCH);
boolean phOverridingValue = !MEASUREMENT_API_STATUS_KILL_SWITCH;
overrideGlobalKillSwitch(phOverridingValue);
assertThat(mPhFlags.getMeasurementApiStatusKillSwitch()).isEqualTo(phOverridingValue);
}
@Test
public void testGetMeasurementApiRegisterSourceKillSwitch() {
// Disable global_kill_switch so that this flag can be tested.
disableGlobalKillSwitch();
// without any overriding, the value is hard coded constant
assertThat(mPhFlags.getMeasurementApiRegisterSourceKillSwitch())
.isEqualTo(MEASUREMENT_API_REGISTER_SOURCE_KILL_SWITCH);
boolean phOverridingValue = !MEASUREMENT_API_REGISTER_SOURCE_KILL_SWITCH;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_MEASUREMENT_API_REGISTER_SOURCE_KILL_SWITCH,
Boolean.toString(phOverridingValue),
false);
assertThat(mPhFlags.getMeasurementApiRegisterSourceKillSwitch())
.isEqualTo(phOverridingValue);
}
@Test
public void testGetMeasurementApiRegisterSourceKillSwitch_measurementOverride() {
// Disable global_kill_switch so that this flag can be tested.
disableGlobalKillSwitch();
// without any overriding, the value is hard coded constant
assertThat(mPhFlags.getMeasurementApiRegisterSourceKillSwitch())
.isEqualTo(MEASUREMENT_API_REGISTER_SOURCE_KILL_SWITCH);
boolean phOverridingValue = !MEASUREMENT_API_REGISTER_SOURCE_KILL_SWITCH;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_MEASUREMENT_KILL_SWITCH,
Boolean.toString(phOverridingValue),
false);
assertThat(mPhFlags.getMeasurementApiRegisterSourceKillSwitch())
.isEqualTo(phOverridingValue);
}
@Test
public void testGetMeasurementApiRegisterSourceKillSwitch_globalOverride() {
// Disable global_kill_switch so that this flag can be tested.
disableGlobalKillSwitch();
// without any overriding, the value is hard coded constant
assertThat(mPhFlags.getMeasurementApiRegisterSourceKillSwitch())
.isEqualTo(MEASUREMENT_API_REGISTER_SOURCE_KILL_SWITCH);
boolean phOverridingValue = !MEASUREMENT_API_REGISTER_SOURCE_KILL_SWITCH;
overrideGlobalKillSwitch(phOverridingValue);
assertThat(mPhFlags.getMeasurementApiRegisterSourceKillSwitch())
.isEqualTo(phOverridingValue);
}
@Test
public void testGetMeasurementApiRegisterTriggerKillSwitch() {
// Disable global_kill_switch so that this flag can be tested.
disableGlobalKillSwitch();
// without any overriding, the value is hard coded constant
assertThat(mPhFlags.getMeasurementApiRegisterTriggerKillSwitch())
.isEqualTo(MEASUREMENT_API_REGISTER_TRIGGER_KILL_SWITCH);
boolean phOverridingValue = !MEASUREMENT_API_REGISTER_TRIGGER_KILL_SWITCH;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_MEASUREMENT_API_REGISTER_TRIGGER_KILL_SWITCH,
Boolean.toString(phOverridingValue),
false);
assertThat(mPhFlags.getMeasurementApiRegisterTriggerKillSwitch())
.isEqualTo(phOverridingValue);
}
@Test
public void testGetMeasurementApiRegisterTriggerKillSwitch_measurementOverride() {
// Disable global_kill_switch so that this flag can be tested.
disableGlobalKillSwitch();
// without any overriding, the value is hard coded constant
assertThat(mPhFlags.getMeasurementApiRegisterTriggerKillSwitch())
.isEqualTo(MEASUREMENT_API_REGISTER_TRIGGER_KILL_SWITCH);
boolean phOverridingValue = !MEASUREMENT_API_REGISTER_TRIGGER_KILL_SWITCH;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_MEASUREMENT_KILL_SWITCH,
Boolean.toString(phOverridingValue),
false);
assertThat(mPhFlags.getMeasurementApiRegisterTriggerKillSwitch())
.isEqualTo(phOverridingValue);
}
@Test
public void testGetMeasurementApiRegisterTriggerKillSwitch_globalOverride() {
// Disable global_kill_switch so that this flag can be tested.
disableGlobalKillSwitch();
// without any overriding, the value is hard coded constant
assertThat(mPhFlags.getMeasurementApiRegisterTriggerKillSwitch())
.isEqualTo(MEASUREMENT_API_REGISTER_TRIGGER_KILL_SWITCH);
boolean phOverridingValue = !MEASUREMENT_API_REGISTER_TRIGGER_KILL_SWITCH;
overrideGlobalKillSwitch(phOverridingValue);
assertThat(mPhFlags.getMeasurementApiRegisterTriggerKillSwitch())
.isEqualTo(phOverridingValue);
}
@Test
public void testGetMeasurementApiRegisterWebSourceKillSwitch() {
// Disable global_kill_switch so that this flag can be tested.
disableGlobalKillSwitch();
// without any overriding, the value is hard coded constant
assertThat(mPhFlags.getMeasurementApiRegisterWebSourceKillSwitch())
.isEqualTo(MEASUREMENT_API_REGISTER_WEB_SOURCE_KILL_SWITCH);
boolean phOverridingValue = !MEASUREMENT_API_REGISTER_WEB_SOURCE_KILL_SWITCH;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_MEASUREMENT_API_REGISTER_WEB_SOURCE_KILL_SWITCH,
Boolean.toString(phOverridingValue),
false);
assertThat(mPhFlags.getMeasurementApiRegisterWebSourceKillSwitch())
.isEqualTo(phOverridingValue);
}
@Test
public void testGetMeasurementApiRegisterSourcesKillSwitch() {
// Disable global_kill_switch so that this flag can be tested.
disableGlobalKillSwitch();
// without any overriding, the value is hard coded constant
assertThat(mPhFlags.getMeasurementApiRegisterSourcesKillSwitch())
.isEqualTo(MEASUREMENT_API_REGISTER_SOURCES_KILL_SWITCH);
boolean phOverridingValue = !MEASUREMENT_API_REGISTER_SOURCES_KILL_SWITCH;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_MEASUREMENT_API_REGISTER_SOURCES_KILL_SWITCH,
Boolean.toString(phOverridingValue),
false);
assertThat(mPhFlags.getMeasurementApiRegisterSourcesKillSwitch())
.isEqualTo(phOverridingValue);
}
@Test
public void testGetMeasurementApiRegisterWebSourceKillSwitch_measurementOverride() {
// Disable global_kill_switch so that this flag can be tested.
disableGlobalKillSwitch();
// without any overriding, the value is hard coded constant
assertThat(mPhFlags.getMeasurementApiRegisterWebSourceKillSwitch())
.isEqualTo(MEASUREMENT_API_REGISTER_WEB_SOURCE_KILL_SWITCH);
boolean phOverridingValue = !MEASUREMENT_API_REGISTER_WEB_SOURCE_KILL_SWITCH;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_MEASUREMENT_KILL_SWITCH,
Boolean.toString(phOverridingValue),
false);
assertThat(mPhFlags.getMeasurementApiRegisterWebSourceKillSwitch())
.isEqualTo(phOverridingValue);
}
@Test
public void testGetMeasurementApiRegisterWebSourceKillSwitch_globalOverride() {
// Disable global_kill_switch so that this flag can be tested.
disableGlobalKillSwitch();
// without any overriding, the value is hard coded constant
assertThat(mPhFlags.getMeasurementApiRegisterWebSourceKillSwitch())
.isEqualTo(MEASUREMENT_API_REGISTER_WEB_SOURCE_KILL_SWITCH);
boolean phOverridingValue = !MEASUREMENT_API_REGISTER_WEB_SOURCE_KILL_SWITCH;
overrideGlobalKillSwitch(phOverridingValue);
assertThat(mPhFlags.getMeasurementApiRegisterWebSourceKillSwitch())
.isEqualTo(phOverridingValue);
}
@Test
public void testGetMeasurementApiRegisterWebTriggerKillSwitch() {
// Disable global_kill_switch so that this flag can be tested.
disableGlobalKillSwitch();
// without any overriding, the value is hard coded constant
assertThat(mPhFlags.getMeasurementApiRegisterWebTriggerKillSwitch())
.isEqualTo(MEASUREMENT_API_REGISTER_WEB_TRIGGER_KILL_SWITCH);
boolean phOverridingValue = !MEASUREMENT_API_REGISTER_WEB_TRIGGER_KILL_SWITCH;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_MEASUREMENT_API_REGISTER_WEB_TRIGGER_KILL_SWITCH,
Boolean.toString(phOverridingValue),
false);
assertThat(mPhFlags.getMeasurementApiRegisterWebTriggerKillSwitch())
.isEqualTo(phOverridingValue);
}
@Test
public void testGetMeasurementApiRegisterWebTriggerKillSwitch_measurementOverride() {
// Disable global_kill_switch so that this flag can be tested.
disableGlobalKillSwitch();
// without any overriding, the value is hard coded constant
assertThat(mPhFlags.getMeasurementApiRegisterWebTriggerKillSwitch())
.isEqualTo(MEASUREMENT_API_REGISTER_WEB_TRIGGER_KILL_SWITCH);
boolean phOverridingValue = !MEASUREMENT_API_REGISTER_WEB_TRIGGER_KILL_SWITCH;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_MEASUREMENT_KILL_SWITCH,
Boolean.toString(phOverridingValue),
false);
assertThat(mPhFlags.getMeasurementApiRegisterWebTriggerKillSwitch())
.isEqualTo(phOverridingValue);
}
@Test
public void testGetMeasurementApiRegisterWebTriggerKillSwitch_globalOverride() {
// Disable global_kill_switch so that this flag can be tested.
disableGlobalKillSwitch();
// without any overriding, the value is hard coded constant
assertThat(mPhFlags.getMeasurementApiRegisterWebTriggerKillSwitch())
.isEqualTo(MEASUREMENT_API_REGISTER_WEB_TRIGGER_KILL_SWITCH);
boolean phOverridingValue = !MEASUREMENT_API_REGISTER_WEB_TRIGGER_KILL_SWITCH;
overrideGlobalKillSwitch(phOverridingValue);
assertThat(mPhFlags.getMeasurementApiRegisterWebTriggerKillSwitch())
.isEqualTo(phOverridingValue);
}
@Test
public void testGetMeasurementJobAggregateFallbackReportingKillSwitch() {
// Disable global_kill_switch so that this flag can be tested.
disableGlobalKillSwitch();
// without any overriding, the value is hard coded constant
assertThat(mPhFlags.getMeasurementJobAggregateFallbackReportingKillSwitch())
.isEqualTo(MEASUREMENT_JOB_AGGREGATE_FALLBACK_REPORTING_KILL_SWITCH);
boolean phOverridingValue = !MEASUREMENT_JOB_AGGREGATE_FALLBACK_REPORTING_KILL_SWITCH;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_MEASUREMENT_JOB_AGGREGATE_FALLBACK_REPORTING_KILL_SWITCH,
Boolean.toString(phOverridingValue),
false);
assertThat(mPhFlags.getMeasurementJobAggregateFallbackReportingKillSwitch())
.isEqualTo(phOverridingValue);
}
@Test
public void testGetMeasurementJobAggregateFallbackReportingKillSwitch_measurementOverride() {
// Disable global_kill_switch so that this flag can be tested.
disableGlobalKillSwitch();
// without any overriding, the value is hard coded constant
assertThat(mPhFlags.getMeasurementJobAggregateFallbackReportingKillSwitch())
.isEqualTo(MEASUREMENT_JOB_AGGREGATE_FALLBACK_REPORTING_KILL_SWITCH);
boolean phOverridingValue = !MEASUREMENT_JOB_AGGREGATE_FALLBACK_REPORTING_KILL_SWITCH;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_MEASUREMENT_KILL_SWITCH,
Boolean.toString(phOverridingValue),
false);
assertThat(mPhFlags.getMeasurementJobAggregateFallbackReportingKillSwitch())
.isEqualTo(phOverridingValue);
}
@Test
public void testGetMeasurementJobAggregateFallbackReportingKillSwitch_globalOverride() {
// Disable global_kill_switch so that this flag can be tested.
disableGlobalKillSwitch();
// without any overriding, the value is hard coded constant
assertThat(mPhFlags.getMeasurementJobAggregateFallbackReportingKillSwitch())
.isEqualTo(MEASUREMENT_JOB_AGGREGATE_FALLBACK_REPORTING_KILL_SWITCH);
boolean phOverridingValue = !MEASUREMENT_JOB_AGGREGATE_FALLBACK_REPORTING_KILL_SWITCH;
overrideGlobalKillSwitch(phOverridingValue);
assertThat(mPhFlags.getMeasurementJobAggregateFallbackReportingKillSwitch())
.isEqualTo(phOverridingValue);
}
@Test
public void testGetMeasurementJobAggregateReportingKillSwitch() {
// Disable global_kill_switch so that this flag can be tested.
disableGlobalKillSwitch();
// without any overriding, the value is hard coded constant
assertThat(mPhFlags.getMeasurementJobAggregateReportingKillSwitch())
.isEqualTo(MEASUREMENT_JOB_AGGREGATE_REPORTING_KILL_SWITCH);
boolean phOverridingValue = !MEASUREMENT_JOB_AGGREGATE_REPORTING_KILL_SWITCH;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_MEASUREMENT_JOB_AGGREGATE_REPORTING_KILL_SWITCH,
Boolean.toString(phOverridingValue),
false);
assertThat(mPhFlags.getMeasurementJobAggregateReportingKillSwitch())
.isEqualTo(phOverridingValue);
}
@Test
public void testGetMeasurementJobAggregateReportingKillSwitch_measurementOverride() {
// Disable global_kill_switch so that this flag can be tested.
disableGlobalKillSwitch();
// without any overriding, the value is hard coded constant
assertThat(mPhFlags.getMeasurementJobAggregateReportingKillSwitch())
.isEqualTo(MEASUREMENT_JOB_AGGREGATE_REPORTING_KILL_SWITCH);
boolean phOverridingValue = !MEASUREMENT_JOB_AGGREGATE_REPORTING_KILL_SWITCH;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_MEASUREMENT_KILL_SWITCH,
Boolean.toString(phOverridingValue),
false);
assertThat(mPhFlags.getMeasurementJobAggregateReportingKillSwitch())
.isEqualTo(phOverridingValue);
}
@Test
public void testGetMeasurementJobAggregateReportingKillSwitch_globalOverride() {
// Disable global_kill_switch so that this flag can be tested.
disableGlobalKillSwitch();
// without any overriding, the value is hard coded constant
assertThat(mPhFlags.getMeasurementJobAggregateReportingKillSwitch())
.isEqualTo(MEASUREMENT_JOB_AGGREGATE_REPORTING_KILL_SWITCH);
boolean phOverridingValue = !MEASUREMENT_JOB_AGGREGATE_REPORTING_KILL_SWITCH;
overrideGlobalKillSwitch(phOverridingValue);
assertThat(mPhFlags.getMeasurementJobAggregateReportingKillSwitch())
.isEqualTo(phOverridingValue);
}
@Test
public void testGetMeasurementJobAttributionKillSwitch() {
// Disable global_kill_switch so that this flag can be tested.
disableGlobalKillSwitch();
// without any overriding, the value is hard coded constant
assertThat(mPhFlags.getMeasurementJobAttributionKillSwitch())
.isEqualTo(MEASUREMENT_JOB_ATTRIBUTION_KILL_SWITCH);
boolean phOverridingValue = !MEASUREMENT_JOB_ATTRIBUTION_KILL_SWITCH;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_MEASUREMENT_JOB_ATTRIBUTION_KILL_SWITCH,
Boolean.toString(phOverridingValue),
false);
assertThat(mPhFlags.getMeasurementJobAttributionKillSwitch()).isEqualTo(phOverridingValue);
}
@Test
public void testGetMeasurementJobAttributionKillSwitch_measurementOverride() {
// Disable global_kill_switch so that this flag can be tested.
disableGlobalKillSwitch();
// without any overriding, the value is hard coded constant
assertThat(mPhFlags.getMeasurementJobAttributionKillSwitch())
.isEqualTo(MEASUREMENT_JOB_ATTRIBUTION_KILL_SWITCH);
boolean phOverridingValue = !MEASUREMENT_JOB_ATTRIBUTION_KILL_SWITCH;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_MEASUREMENT_KILL_SWITCH,
Boolean.toString(phOverridingValue),
false);
assertThat(mPhFlags.getMeasurementJobAttributionKillSwitch()).isEqualTo(phOverridingValue);
}
@Test
public void testGetMeasurementJobAttributionKillSwitch_globalOverride() {
// Disable global_kill_switch so that this flag can be tested.
disableGlobalKillSwitch();
// without any overriding, the value is hard coded constant
assertThat(mPhFlags.getMeasurementJobAttributionKillSwitch())
.isEqualTo(MEASUREMENT_JOB_ATTRIBUTION_KILL_SWITCH);
boolean phOverridingValue = !MEASUREMENT_JOB_ATTRIBUTION_KILL_SWITCH;
overrideGlobalKillSwitch(phOverridingValue);
assertThat(mPhFlags.getMeasurementJobAttributionKillSwitch()).isEqualTo(phOverridingValue);
}
@Test
public void testGetMeasurementAttributionFallbackJobKillSwitch() {
// Disable global_kill_switch so that this flag can be tested.
disableGlobalKillSwitch();
// without any overrides the Attribution Fallback Job kill switch should be off
assertThat(mPhFlags.getMeasurementAttributionFallbackJobKillSwitch())
.isEqualTo(MEASUREMENT_ATTRIBUTION_FALLBACK_JOB_KILL_SWITCH);
// Now overriding with the value from PH.
boolean phOverridingValue = !MEASUREMENT_ATTRIBUTION_FALLBACK_JOB_KILL_SWITCH;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_MEASUREMENT_ATTRIBUTION_FALLBACK_JOB_KILL_SWITCH,
Boolean.toString(phOverridingValue),
/* makeDefault */ false);
assertThat(mPhFlags.getMeasurementAttributionFallbackJobKillSwitch())
.isEqualTo(phOverridingValue);
}
@Test
public void testGetMeasurementAttributionFallbackJobKillSwitch_measurementOverride() {
// Disable global_kill_switch so that this flag can be tested.
disableGlobalKillSwitch();
// without any overrides the Attribution Fallback Job kill switch should be off
assertThat(mPhFlags.getMeasurementAttributionFallbackJobKillSwitch())
.isEqualTo(MEASUREMENT_ATTRIBUTION_FALLBACK_JOB_KILL_SWITCH);
// Now overriding with the value from PH.
boolean phOverridingValue = !MEASUREMENT_ATTRIBUTION_FALLBACK_JOB_KILL_SWITCH;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_MEASUREMENT_KILL_SWITCH,
Boolean.toString(phOverridingValue),
false);
assertThat(mPhFlags.getMeasurementAttributionFallbackJobKillSwitch())
.isEqualTo(phOverridingValue);
}
@Test
public void testGetMeasurementAttributionFallbackJobKillSwitch_globalOverride() {
// Disable global_kill_switch so that this flag can be tested.
disableGlobalKillSwitch();
// without any overrides the Attribution Fallback Job kill switch should be off
assertThat(mPhFlags.getMeasurementAttributionFallbackJobKillSwitch())
.isEqualTo(MEASUREMENT_ATTRIBUTION_FALLBACK_JOB_KILL_SWITCH);
// Now overriding with the value from PH.
boolean phOverridingValue = !MEASUREMENT_ATTRIBUTION_FALLBACK_JOB_KILL_SWITCH;
overrideGlobalKillSwitch(phOverridingValue);
assertThat(mPhFlags.getMeasurementAttributionFallbackJobKillSwitch())
.isEqualTo(phOverridingValue);
}
@Test
public void testGetMeasurementAttributionFallbackJobPeriodMs() {
// Without any overriding, the value is the hard coded constant.
assertThat(mPhFlags.getMeasurementAttributionFallbackJobPeriodMs())
.isEqualTo(MEASUREMENT_ATTRIBUTION_FALLBACK_JOB_PERIOD_MS);
long phOverridingValue = MEASUREMENT_ATTRIBUTION_FALLBACK_JOB_PERIOD_MS + 10;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_MEASUREMENT_ATTRIBUTION_FALLBACK_JOB_PERIOD_MS,
Long.toString(phOverridingValue),
/* makeDefault */ false);
assertThat(mPhFlags.getMeasurementAttributionFallbackJobPeriodMs())
.isEqualTo(phOverridingValue);
}
@Test
public void testGetMeasurementVerboseDebugReportingFallbackJobKillSwitch() {
// Disable global_kill_switch so that this flag can be tested.
disableGlobalKillSwitch();
// without any overrides the Verbose Debug Reporting Fallback Job kill switch should be off
assertThat(mPhFlags.getMeasurementVerboseDebugReportingFallbackJobKillSwitch())
.isEqualTo(MEASUREMENT_VERBOSE_DEBUG_REPORTING_FALLBACK_JOB_KILL_SWITCH);
// Now overriding with the value from PH.
boolean phOverridingValue = !MEASUREMENT_VERBOSE_DEBUG_REPORTING_FALLBACK_JOB_KILL_SWITCH;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_MEASUREMENT_VERBOSE_DEBUG_REPORTING_FALLBACK_JOB_KILL_SWITCH,
Boolean.toString(phOverridingValue),
false);
assertThat(mPhFlags.getMeasurementVerboseDebugReportingFallbackJobKillSwitch())
.isEqualTo(phOverridingValue);
}
@Test
public void testGetMeasurementVerboseDebugReportingFallbackJobKillSwitch_measurementOverride() {
// Disable global_kill_switch so that this flag can be tested.
disableGlobalKillSwitch();
// without any overrides the Attribution Fallback Job kill switch should be off
assertThat(mPhFlags.getMeasurementVerboseDebugReportingFallbackJobKillSwitch())
.isEqualTo(MEASUREMENT_VERBOSE_DEBUG_REPORTING_FALLBACK_JOB_KILL_SWITCH);
// Now overriding with the value from PH.
boolean phOverridingValue = !MEASUREMENT_VERBOSE_DEBUG_REPORTING_FALLBACK_JOB_KILL_SWITCH;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_MEASUREMENT_KILL_SWITCH,
Boolean.toString(phOverridingValue),
false);
assertThat(mPhFlags.getMeasurementVerboseDebugReportingFallbackJobKillSwitch())
.isEqualTo(phOverridingValue);
}
@Test
public void testGetMeasurementVerboseDebugReportingFallbackJobKillSwitch_globalOverride() {
// Disable global_kill_switch so that this flag can be tested.
disableGlobalKillSwitch();
// without any overrides the Attribution Fallback Job kill switch should be off
assertThat(mPhFlags.getMeasurementVerboseDebugReportingFallbackJobKillSwitch())
.isEqualTo(MEASUREMENT_VERBOSE_DEBUG_REPORTING_FALLBACK_JOB_KILL_SWITCH);
// Now overriding with the value from PH.
boolean phOverridingValue = !MEASUREMENT_VERBOSE_DEBUG_REPORTING_FALLBACK_JOB_KILL_SWITCH;
overrideGlobalKillSwitch(phOverridingValue);
assertThat(mPhFlags.getMeasurementVerboseDebugReportingFallbackJobKillSwitch())
.isEqualTo(phOverridingValue);
}
@Test
public void testGetMeasurementVerboseDebugReportingFallbackJobPeriodMs() {
// Without any overriding, the value is the hard coded constant.
assertThat(mPhFlags.getMeasurementVerboseDebugReportingFallbackJobPeriodMs())
.isEqualTo(MEASUREMENT_VERBOSE_DEBUG_REPORTING_FALLBACK_JOB_PERIOD_MS);
long phOverridingValue = MEASUREMENT_VERBOSE_DEBUG_REPORTING_FALLBACK_JOB_PERIOD_MS + 10;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_MEASUREMENT_VERBOSE_DEBUG_REPORTING_FALLBACK_JOB_PERIOD_MS,
Long.toString(phOverridingValue),
/* makeDefault */ false);
assertThat(mPhFlags.getMeasurementVerboseDebugReportingFallbackJobPeriodMs())
.isEqualTo(phOverridingValue);
}
@Test
public void testGetMeasurementDebugReportingFallbackJobKillSwitch() {
// Disable global_kill_switch so that this flag can be tested.
disableGlobalKillSwitch();
// without any overrides the Verbose Debug Reporting Fallback Job kill switch should be off
assertThat(mPhFlags.getMeasurementDebugReportingFallbackJobKillSwitch())
.isEqualTo(MEASUREMENT_DEBUG_REPORTING_FALLBACK_JOB_KILL_SWITCH);
// Now overriding with the value from PH.
boolean phOverridingValue = !MEASUREMENT_DEBUG_REPORTING_FALLBACK_JOB_KILL_SWITCH;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_MEASUREMENT_DEBUG_REPORTING_FALLBACK_JOB_KILL_SWITCH,
Boolean.toString(phOverridingValue),
false);
assertThat(mPhFlags.getMeasurementDebugReportingFallbackJobKillSwitch())
.isEqualTo(phOverridingValue);
}
@Test
public void testGetMeasurementDebugReportingFallbackJobKillSwitch_measurementOverride() {
// Disable global_kill_switch so that this flag can be tested.
disableGlobalKillSwitch();
// without any overrides the Attribution Fallback Job kill switch should be off
assertThat(mPhFlags.getMeasurementDebugReportingFallbackJobKillSwitch())
.isEqualTo(MEASUREMENT_DEBUG_REPORTING_FALLBACK_JOB_KILL_SWITCH);
// Now overriding with the value from PH.
boolean phOverridingValue = !MEASUREMENT_DEBUG_REPORTING_FALLBACK_JOB_KILL_SWITCH;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_MEASUREMENT_KILL_SWITCH,
Boolean.toString(phOverridingValue),
false);
assertThat(mPhFlags.getMeasurementDebugReportingFallbackJobKillSwitch())
.isEqualTo(phOverridingValue);
}
@Test
public void testGetMeasurementDebugReportingFallbackJobKillSwitch_globalOverride() {
// Disable global_kill_switch so that this flag can be tested.
disableGlobalKillSwitch();
// without any overrides the Attribution Fallback Job kill switch should be off
assertThat(mPhFlags.getMeasurementDebugReportingFallbackJobKillSwitch())
.isEqualTo(MEASUREMENT_DEBUG_REPORTING_FALLBACK_JOB_KILL_SWITCH);
// Now overriding with the value from PH.
boolean phOverridingValue = !MEASUREMENT_DEBUG_REPORTING_FALLBACK_JOB_KILL_SWITCH;
overrideGlobalKillSwitch(phOverridingValue);
assertThat(mPhFlags.getMeasurementDebugReportingFallbackJobKillSwitch())
.isEqualTo(phOverridingValue);
}
@Test
public void testGetMeasurementDebugReportingFallbackJobPeriodMs() {
// Without any overriding, the value is the hard coded constant.
assertThat(mPhFlags.getMeasurementDebugReportingFallbackJobPeriodMs())
.isEqualTo(MEASUREMENT_DEBUG_REPORTING_FALLBACK_JOB_PERIOD_MS);
long phOverridingValue = MEASUREMENT_DEBUG_REPORTING_FALLBACK_JOB_PERIOD_MS + 10;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_MEASUREMENT_DEBUG_REPORTING_FALLBACK_JOB_PERIOD_MS,
Long.toString(phOverridingValue),
/* makeDefault */ false);
assertThat(mPhFlags.getMeasurementDebugReportingFallbackJobPeriodMs())
.isEqualTo(phOverridingValue);
}
@Test
public void testGetMeasurementJobDeleteExpiredKillSwitch() {
// Disable global_kill_switch so that this flag can be tested.
disableGlobalKillSwitch();
// without any overriding, the value is hard coded constant
assertThat(mPhFlags.getMeasurementJobDeleteExpiredKillSwitch())
.isEqualTo(MEASUREMENT_JOB_DELETE_EXPIRED_KILL_SWITCH);
boolean phOverridingValue = !MEASUREMENT_JOB_DELETE_EXPIRED_KILL_SWITCH;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_MEASUREMENT_JOB_DELETE_EXPIRED_KILL_SWITCH,
Boolean.toString(phOverridingValue),
false);
assertThat(mPhFlags.getMeasurementJobDeleteExpiredKillSwitch())
.isEqualTo(phOverridingValue);
}
@Test
public void testGetMeasurementJobDeleteExpiredKillSwitch_measurementOverride() {
// Disable global_kill_switch so that this flag can be tested.
disableGlobalKillSwitch();
// without any overriding, the value is hard coded constant
assertThat(mPhFlags.getMeasurementJobDeleteExpiredKillSwitch())
.isEqualTo(MEASUREMENT_JOB_DELETE_EXPIRED_KILL_SWITCH);
boolean phOverridingValue = !MEASUREMENT_JOB_DELETE_EXPIRED_KILL_SWITCH;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_MEASUREMENT_KILL_SWITCH,
Boolean.toString(phOverridingValue),
false);
assertThat(mPhFlags.getMeasurementJobDeleteExpiredKillSwitch())
.isEqualTo(phOverridingValue);
}
@Test
public void testGetMeasurementJobDeleteExpiredKillSwitch_globalOverride() {
// Disable global_kill_switch so that this flag can be tested.
disableGlobalKillSwitch();
// without any overriding, the value is hard coded constant
assertThat(mPhFlags.getMeasurementJobDeleteExpiredKillSwitch())
.isEqualTo(MEASUREMENT_JOB_DELETE_EXPIRED_KILL_SWITCH);
boolean phOverridingValue = !MEASUREMENT_JOB_DELETE_EXPIRED_KILL_SWITCH;
overrideGlobalKillSwitch(phOverridingValue);
assertThat(mPhFlags.getMeasurementJobDeleteExpiredKillSwitch())
.isEqualTo(phOverridingValue);
}
@Test
public void testGetMeasurementJobDeleteUninstalledKillSwitch() {
// Disable global_kill_switch so that this flag can be tested.
disableGlobalKillSwitch();
// without any overriding, the value is hard coded constant
assertThat(mPhFlags.getMeasurementJobDeleteUninstalledKillSwitch())
.isEqualTo(MEASUREMENT_JOB_DELETE_UNINSTALLED_KILL_SWITCH);
boolean phOverridingValue = !MEASUREMENT_JOB_DELETE_UNINSTALLED_KILL_SWITCH;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_MEASUREMENT_JOB_DELETE_UNINSTALLED_KILL_SWITCH,
Boolean.toString(phOverridingValue),
false);
assertThat(mPhFlags.getMeasurementJobDeleteUninstalledKillSwitch())
.isEqualTo(phOverridingValue);
}
@Test
public void testGetMeasurementJobDeleteUninstalledKillSwitch_measurementOverride() {
// Disable global_kill_switch so that this flag can be tested.
disableGlobalKillSwitch();
// without any overriding, the value is hard coded constant
assertThat(mPhFlags.getMeasurementJobDeleteUninstalledKillSwitch())
.isEqualTo(MEASUREMENT_JOB_DELETE_EXPIRED_KILL_SWITCH);
boolean phOverridingValue = !MEASUREMENT_JOB_DELETE_EXPIRED_KILL_SWITCH;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_MEASUREMENT_KILL_SWITCH,
Boolean.toString(phOverridingValue),
false);
assertThat(mPhFlags.getMeasurementJobDeleteUninstalledKillSwitch())
.isEqualTo(phOverridingValue);
}
@Test
public void testGetMeasurementJobDeleteUninstalledKillSwitch_globalOverride() {
// Disable global_kill_switch so that this flag can be tested.
disableGlobalKillSwitch();
// without any overriding, the value is hard coded constant
assertThat(mPhFlags.getMeasurementJobDeleteUninstalledKillSwitch())
.isEqualTo(MEASUREMENT_JOB_DELETE_EXPIRED_KILL_SWITCH);
boolean phOverridingValue = !MEASUREMENT_JOB_DELETE_EXPIRED_KILL_SWITCH;
overrideGlobalKillSwitch(phOverridingValue);
assertThat(mPhFlags.getMeasurementJobDeleteUninstalledKillSwitch())
.isEqualTo(phOverridingValue);
}
@Test
public void testGetMeasurementJobEventFallbackReportingKillSwitch() {
// Disable global_kill_switch so that this flag can be tested.
disableGlobalKillSwitch();
// without any overriding, the value is hard coded constant
assertThat(mPhFlags.getMeasurementJobEventFallbackReportingKillSwitch())
.isEqualTo(MEASUREMENT_JOB_EVENT_FALLBACK_REPORTING_KILL_SWITCH);
boolean phOverridingValue = !MEASUREMENT_JOB_EVENT_FALLBACK_REPORTING_KILL_SWITCH;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_MEASUREMENT_JOB_EVENT_FALLBACK_REPORTING_KILL_SWITCH,
Boolean.toString(phOverridingValue),
false);
assertThat(mPhFlags.getMeasurementJobEventFallbackReportingKillSwitch())
.isEqualTo(phOverridingValue);
}
@Test
public void testGetMeasurementJobEventFallbackReportingKillSwitch_measurementOverride() {
// Disable global_kill_switch so that this flag can be tested.
disableGlobalKillSwitch();
// without any overriding, the value is hard coded constant
assertThat(mPhFlags.getMeasurementJobEventFallbackReportingKillSwitch())
.isEqualTo(MEASUREMENT_JOB_EVENT_FALLBACK_REPORTING_KILL_SWITCH);
boolean phOverridingValue = !MEASUREMENT_JOB_EVENT_FALLBACK_REPORTING_KILL_SWITCH;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_MEASUREMENT_KILL_SWITCH,
Boolean.toString(phOverridingValue),
false);
assertThat(mPhFlags.getMeasurementJobEventFallbackReportingKillSwitch())
.isEqualTo(phOverridingValue);
}
@Test
public void testGetMeasurementJobEventFallbackReportingKillSwitch_globalOverride() {
// Disable global_kill_switch so that this flag can be tested.
disableGlobalKillSwitch();
// without any overriding, the value is hard coded constant
assertThat(mPhFlags.getMeasurementJobEventFallbackReportingKillSwitch())
.isEqualTo(MEASUREMENT_JOB_EVENT_FALLBACK_REPORTING_KILL_SWITCH);
boolean phOverridingValue = !MEASUREMENT_JOB_EVENT_FALLBACK_REPORTING_KILL_SWITCH;
overrideGlobalKillSwitch(phOverridingValue);
assertThat(mPhFlags.getMeasurementJobEventFallbackReportingKillSwitch())
.isEqualTo(phOverridingValue);
}
@Test
public void testGetMeasurementJobEventReportingKillSwitch() {
// Disable global_kill_switch so that this flag can be tested.
disableGlobalKillSwitch();
// without any overriding, the value is hard coded constant
assertThat(mPhFlags.getMeasurementJobEventReportingKillSwitch())
.isEqualTo(MEASUREMENT_JOB_EVENT_REPORTING_KILL_SWITCH);
boolean phOverridingValue = !MEASUREMENT_JOB_EVENT_REPORTING_KILL_SWITCH;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_MEASUREMENT_JOB_EVENT_REPORTING_KILL_SWITCH,
Boolean.toString(phOverridingValue),
false);
assertThat(mPhFlags.getMeasurementJobEventReportingKillSwitch())
.isEqualTo(phOverridingValue);
}
@Test
public void testGetMeasurementJobEventReportingKillSwitch_measurementOverride() {
// Disable global_kill_switch so that this flag can be tested.
disableGlobalKillSwitch();
// without any overriding, the value is hard coded constant
assertThat(mPhFlags.getMeasurementJobEventReportingKillSwitch())
.isEqualTo(MEASUREMENT_JOB_EVENT_REPORTING_KILL_SWITCH);
boolean phOverridingValue = !MEASUREMENT_JOB_EVENT_REPORTING_KILL_SWITCH;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_MEASUREMENT_KILL_SWITCH,
Boolean.toString(phOverridingValue),
false);
assertThat(mPhFlags.getMeasurementJobEventReportingKillSwitch())
.isEqualTo(phOverridingValue);
}
@Test
public void testGetMeasurementJobEventReportingKillSwitch_globalOverride() {
// Disable global_kill_switch so that this flag can be tested.
disableGlobalKillSwitch();
// without any overriding, the value is hard coded constant
assertThat(mPhFlags.getMeasurementJobEventReportingKillSwitch())
.isEqualTo(MEASUREMENT_JOB_EVENT_REPORTING_KILL_SWITCH);
boolean phOverridingValue = !MEASUREMENT_JOB_EVENT_REPORTING_KILL_SWITCH;
overrideGlobalKillSwitch(phOverridingValue);
assertThat(mPhFlags.getMeasurementJobEventReportingKillSwitch())
.isEqualTo(phOverridingValue);
}
@Test
public void testGetMeasurementReceiverInstallAttributionKillSwitch() {
// Disable global_kill_switch so that this flag can be tested.
disableGlobalKillSwitch();
// without any overriding, the value is hard coded constant
assertThat(mPhFlags.getMeasurementReceiverInstallAttributionKillSwitch())
.isEqualTo(MEASUREMENT_RECEIVER_INSTALL_ATTRIBUTION_KILL_SWITCH);
boolean phOverridingValue = !MEASUREMENT_RECEIVER_INSTALL_ATTRIBUTION_KILL_SWITCH;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_MEASUREMENT_RECEIVER_INSTALL_ATTRIBUTION_KILL_SWITCH,
Boolean.toString(phOverridingValue),
false);
assertThat(mPhFlags.getMeasurementReceiverInstallAttributionKillSwitch())
.isEqualTo(phOverridingValue);
}
@Test
public void testGetMeasurementReceiverInstallAttributionKillSwitch_measurementOverride() {
// Disable global_kill_switch so that this flag can be tested.
disableGlobalKillSwitch();
// without any overriding, the value is hard coded constant
assertThat(mPhFlags.getMeasurementReceiverInstallAttributionKillSwitch())
.isEqualTo(MEASUREMENT_RECEIVER_INSTALL_ATTRIBUTION_KILL_SWITCH);
boolean phOverridingValue = !MEASUREMENT_RECEIVER_INSTALL_ATTRIBUTION_KILL_SWITCH;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_MEASUREMENT_KILL_SWITCH,
Boolean.toString(phOverridingValue),
false);
assertThat(mPhFlags.getMeasurementReceiverInstallAttributionKillSwitch())
.isEqualTo(phOverridingValue);
}
@Test
public void testGetMeasurementReceiverInstallAttributionKillSwitch_globalOverride() {
// Disable global_kill_switch so that this flag can be tested.
disableGlobalKillSwitch();
// without any overriding, the value is hard coded constant
assertThat(mPhFlags.getMeasurementReceiverInstallAttributionKillSwitch())
.isEqualTo(MEASUREMENT_RECEIVER_INSTALL_ATTRIBUTION_KILL_SWITCH);
boolean phOverridingValue = !MEASUREMENT_RECEIVER_INSTALL_ATTRIBUTION_KILL_SWITCH;
overrideGlobalKillSwitch(phOverridingValue);
assertThat(mPhFlags.getMeasurementReceiverInstallAttributionKillSwitch())
.isEqualTo(phOverridingValue);
}
@Test
public void testGetMeasurementReceiverDeletePackagesKillSwitch() {
// Disable global_kill_switch so that this flag can be tested.
disableGlobalKillSwitch();
// without any overriding, the value is hard coded constant
assertThat(mPhFlags.getMeasurementReceiverDeletePackagesKillSwitch())
.isEqualTo(MEASUREMENT_RECEIVER_DELETE_PACKAGES_KILL_SWITCH);
boolean phOverridingValue = !MEASUREMENT_RECEIVER_DELETE_PACKAGES_KILL_SWITCH;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_MEASUREMENT_RECEIVER_DELETE_PACKAGES_KILL_SWITCH,
Boolean.toString(phOverridingValue),
false);
assertThat(mPhFlags.getMeasurementReceiverDeletePackagesKillSwitch())
.isEqualTo(phOverridingValue);
}
@Test
public void testGetMeasurementReceiverDeletePackagesKillSwitch_measurementOverride() {
// Disable global_kill_switch so that this flag can be tested.
disableGlobalKillSwitch();
// without any overriding, the value is hard coded constant
assertThat(mPhFlags.getMeasurementReceiverDeletePackagesKillSwitch())
.isEqualTo(MEASUREMENT_RECEIVER_DELETE_PACKAGES_KILL_SWITCH);
boolean phOverridingValue = !MEASUREMENT_RECEIVER_DELETE_PACKAGES_KILL_SWITCH;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_MEASUREMENT_KILL_SWITCH,
Boolean.toString(phOverridingValue),
false);
assertThat(mPhFlags.getMeasurementReceiverDeletePackagesKillSwitch())
.isEqualTo(phOverridingValue);
}
@Test
public void testGetMeasurementReceiverDeletePackagesKillSwitch_globalOverride() {
// Disable global_kill_switch so that this flag can be tested.
disableGlobalKillSwitch();
// without any overriding, the value is hard coded constant
assertThat(mPhFlags.getMeasurementReceiverDeletePackagesKillSwitch())
.isEqualTo(MEASUREMENT_RECEIVER_DELETE_PACKAGES_KILL_SWITCH);
boolean phOverridingValue = !MEASUREMENT_RECEIVER_DELETE_PACKAGES_KILL_SWITCH;
overrideGlobalKillSwitch(phOverridingValue);
assertThat(mPhFlags.getMeasurementReceiverDeletePackagesKillSwitch())
.isEqualTo(phOverridingValue);
}
@Test
public void testGetMeasurementRollbackDeletionKillSwitch() {
// Disable global_kill_switch so that this flag can be tested.
disableGlobalKillSwitch();
// without any overriding, the value is hard coded constant
assertThat(mPhFlags.getMeasurementRollbackDeletionKillSwitch())
.isEqualTo(MEASUREMENT_ROLLBACK_DELETION_KILL_SWITCH);
boolean phOverridingValue = !MEASUREMENT_ROLLBACK_DELETION_KILL_SWITCH;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_MEASUREMENT_ROLLBACK_DELETION_KILL_SWITCH,
Boolean.toString(phOverridingValue),
false);
assertThat(mPhFlags.getMeasurementRollbackDeletionKillSwitch())
.isEqualTo(phOverridingValue);
}
@Test
public void testGetMeasurementRollbackDeletionKillSwitch_measurementOverride() {
// Disable global_kill_switch so that this flag can be tested.
disableGlobalKillSwitch();
// without any overriding, the value is hard coded constant
assertThat(mPhFlags.getMeasurementRollbackDeletionKillSwitch())
.isEqualTo(MEASUREMENT_ROLLBACK_DELETION_KILL_SWITCH);
boolean phOverridingValue = !MEASUREMENT_ROLLBACK_DELETION_KILL_SWITCH;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_MEASUREMENT_KILL_SWITCH,
Boolean.toString(phOverridingValue),
false);
assertThat(mPhFlags.getMeasurementRollbackDeletionKillSwitch())
.isEqualTo(phOverridingValue);
}
@Test
public void testGetMeasurementEnableConfigurableEventReportingWindows() {
// Without any overriding, the value is the hard coded constant.
assertThat(mPhFlags.getMeasurementEnableConfigurableEventReportingWindows())
.isEqualTo(MEASUREMENT_ENABLE_CONFIGURABLE_EVENT_REPORTING_WINDOWS);
boolean phOverridingValue = !MEASUREMENT_ENABLE_CONFIGURABLE_EVENT_REPORTING_WINDOWS;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_MEASUREMENT_ENABLE_CONFIGURABLE_EVENT_REPORTING_WINDOWS,
Boolean.toString(phOverridingValue),
/* makeDefault */ false);
assertThat(mPhFlags.getMeasurementEnableConfigurableEventReportingWindows())
.isEqualTo(phOverridingValue);
}
@Test
public void testGetMeasurementEventReportsVtcEarlyReportingWindows() {
// Without any overriding, the value is the hard coded constant.
assertThat(mPhFlags.getMeasurementEventReportsVtcEarlyReportingWindows())
.isEqualTo(MEASUREMENT_EVENT_REPORTS_VTC_EARLY_REPORTING_WINDOWS);
String phOverridingValue =
MEASUREMENT_EVENT_REPORTS_VTC_EARLY_REPORTING_WINDOWS + "3600,172800";
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_MEASUREMENT_EVENT_REPORTS_VTC_EARLY_REPORTING_WINDOWS,
phOverridingValue,
/* makeDefault */ false);
assertThat(mPhFlags.getMeasurementEventReportsVtcEarlyReportingWindows())
.isEqualTo(phOverridingValue);
}
@Test
public void testGetMeasurementEventReportsCtcEarlyReportingWindows() {
// Without any overriding, the value is the hard coded constant.
assertThat(mPhFlags.getMeasurementEventReportsCtcEarlyReportingWindows())
.isEqualTo(MEASUREMENT_EVENT_REPORTS_CTC_EARLY_REPORTING_WINDOWS);
String phOverridingValue =
MEASUREMENT_EVENT_REPORTS_CTC_EARLY_REPORTING_WINDOWS
+ "172800,604800"
+ "3600,172800";
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_MEASUREMENT_EVENT_REPORTS_CTC_EARLY_REPORTING_WINDOWS,
phOverridingValue,
/* makeDefault */ false);
assertThat(mPhFlags.getMeasurementEventReportsCtcEarlyReportingWindows())
.isEqualTo(phOverridingValue);
}
@Test
public void testGetMeasurementEnableConfigurableAggregateReportDelay() {
// Without any overriding, the value is the hard coded constant.
assertThat(mPhFlags.getMeasurementEnableConfigurableAggregateReportDelay())
.isEqualTo(MEASUREMENT_ENABLE_CONFIGURABLE_AGGREGATE_REPORT_DELAY);
boolean phOverridingValue = !MEASUREMENT_ENABLE_CONFIGURABLE_AGGREGATE_REPORT_DELAY;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_MEASUREMENT_ENABLE_CONFIGURABLE_AGGREGATE_REPORT_DELAY,
Boolean.toString(phOverridingValue),
/* makeDefault */ false);
assertThat(mPhFlags.getMeasurementEnableConfigurableAggregateReportDelay())
.isEqualTo(phOverridingValue);
}
@Test
public void testGetMeasurementAggregateReportDelay() {
// Without any overriding, the value is the hard coded constant.
assertThat(mPhFlags.getMeasurementAggregateReportDelayConfig())
.isEqualTo(MEASUREMENT_AGGREGATE_REPORT_DELAY_CONFIG);
String phOverridingValue = MEASUREMENT_AGGREGATE_REPORT_DELAY_CONFIG + "1000,1000";
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_MEASUREMENT_AGGREGATE_REPORT_DELAY_CONFIG,
phOverridingValue,
/* makeDefault */ false);
assertThat(mPhFlags.getMeasurementAggregateReportDelayConfig())
.isEqualTo(phOverridingValue);
}
@Test
public void testGetMeasurementEnableLookbackWindowFilter() {
// Without any overriding, the value is the hard coded constant.
assertThat(mPhFlags.getMeasurementEnableLookbackWindowFilter())
.isEqualTo(MEASUREMENT_ENABLE_LOOKBACK_WINDOW_FILTER);
boolean phOverridingValue = !MEASUREMENT_ENABLE_LOOKBACK_WINDOW_FILTER;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_MEASUREMENT_ENABLE_LOOKBACK_WINDOW_FILTER,
Boolean.toString(phOverridingValue),
/* makeDefault */ false);
assertThat(mPhFlags.getMeasurementEnableLookbackWindowFilter())
.isEqualTo(phOverridingValue);
}
@Test
public void testGetMeasurementRollbackDeletionKillSwitch_globalOverride() {
// Disable global_kill_switch so that this flag can be tested.
disableGlobalKillSwitch();
// without any overriding, the value is hard coded constant
assertThat(mPhFlags.getMeasurementRollbackDeletionKillSwitch())
.isEqualTo(MEASUREMENT_ROLLBACK_DELETION_KILL_SWITCH);
boolean phOverridingValue = !MEASUREMENT_ROLLBACK_DELETION_KILL_SWITCH;
overrideGlobalKillSwitch(phOverridingValue);
assertThat(mPhFlags.getMeasurementRollbackDeletionKillSwitch())
.isEqualTo(phOverridingValue);
}
@Test
public void testGetAdIdKillSwitch_globalOverride() {
// test that global killswitch override has no effect on
// AdIdKillswitch.
assertThat(mPhFlags.getAdIdKillSwitch()).isEqualTo(ADID_KILL_SWITCH);
boolean phOverridingValue = !ADID_KILL_SWITCH;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_GLOBAL_KILL_SWITCH,
Boolean.toString(phOverridingValue),
false);
assertThat(mPhFlags.getAdIdKillSwitch()).isEqualTo(ADID_KILL_SWITCH);
}
@Test
public void testGetMeasurementRegistrationJobQueueKillSwitch() {
// Disable global_kill_switch so that this flag can be tested.
disableGlobalKillSwitch();
// without any overrides the Registration Job Queue kill switch should be off
assertThat(mPhFlags.getAsyncRegistrationJobQueueKillSwitch())
.isEqualTo(MEASUREMENT_REGISTRATION_JOB_QUEUE_KILL_SWITCH);
// Now overriding with the value from PH.
boolean phOverridingValue = !MEASUREMENT_REGISTRATION_JOB_QUEUE_KILL_SWITCH;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_MEASUREMENT_REGISTRATION_JOB_QUEUE_KILL_SWITCH,
Boolean.toString(phOverridingValue),
/* makeDefault */ false);
assertThat(mPhFlags.getAsyncRegistrationJobQueueKillSwitch()).isEqualTo(phOverridingValue);
}
@Test
public void testGetMeasurementRegistrationJobQueueKillSwitch_measurementOverride() {
// Disable global_kill_switch so that this flag can be tested.
disableGlobalKillSwitch();
// without any overrides the Registration Job Queue kill switch should be off
assertThat(mPhFlags.getAsyncRegistrationJobQueueKillSwitch())
.isEqualTo(MEASUREMENT_REGISTRATION_JOB_QUEUE_KILL_SWITCH);
// Now overriding with the value from PH.
boolean phOverridingValue = !MEASUREMENT_REGISTRATION_JOB_QUEUE_KILL_SWITCH;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_MEASUREMENT_KILL_SWITCH,
Boolean.toString(phOverridingValue),
false);
assertThat(mPhFlags.getAsyncRegistrationJobQueueKillSwitch()).isEqualTo(phOverridingValue);
}
@Test
public void testGetMeasurementRegistrationJobQueueKillSwitch_globalOverride() {
// Disable global_kill_switch so that this flag can be tested.
disableGlobalKillSwitch();
// without any overrides the Registration Job Queue kill switch should be off
assertThat(mPhFlags.getAsyncRegistrationJobQueueKillSwitch())
.isEqualTo(MEASUREMENT_REGISTRATION_JOB_QUEUE_KILL_SWITCH);
// Now overriding with the value from PH.
boolean phOverridingValue = !MEASUREMENT_REGISTRATION_JOB_QUEUE_KILL_SWITCH;
overrideGlobalKillSwitch(phOverridingValue);
assertThat(mPhFlags.getAsyncRegistrationJobQueueKillSwitch()).isEqualTo(phOverridingValue);
}
@Test
public void testGetMeasurementRegistrationFallbackJobKillSwitch() {
// Disable global_kill_switch so that this flag can be tested.
disableGlobalKillSwitch();
// without any overrides the Registration Job Queue kill switch should be off
assertThat(mPhFlags.getAsyncRegistrationJobQueueKillSwitch())
.isEqualTo(MEASUREMENT_REGISTRATION_FALLBACK_JOB_KILL_SWITCH);
// Now overriding with the value from PH.
boolean phOverridingValue = !MEASUREMENT_REGISTRATION_FALLBACK_JOB_KILL_SWITCH;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_MEASUREMENT_REGISTRATION_FALLBACK_JOB_KILL_SWITCH,
Boolean.toString(phOverridingValue),
/* makeDefault */ false);
assertThat(mPhFlags.getAsyncRegistrationFallbackJobKillSwitch())
.isEqualTo(phOverridingValue);
}
@Test
public void testGetMeasurementRegistrationFallbackJobKillSwitch_measurementOverride() {
// Disable global_kill_switch so that this flag can be tested.
disableGlobalKillSwitch();
// without any overrides the Registration Job Queue kill switch should be off
assertThat(mPhFlags.getAsyncRegistrationJobQueueKillSwitch())
.isEqualTo(MEASUREMENT_REGISTRATION_FALLBACK_JOB_KILL_SWITCH);
// Now overriding with the value from PH.
boolean phOverridingValue = !MEASUREMENT_REGISTRATION_FALLBACK_JOB_KILL_SWITCH;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_MEASUREMENT_KILL_SWITCH,
Boolean.toString(phOverridingValue),
false);
assertThat(mPhFlags.getAsyncRegistrationFallbackJobKillSwitch())
.isEqualTo(phOverridingValue);
}
@Test
public void testGetMeasurementRegistrationFallbackJobKillSwitch_globalOverride() {
// Disable global_kill_switch so that this flag can be tested.
disableGlobalKillSwitch();
// without any overrides the Registration Job Queue kill switch should be off
assertThat(mPhFlags.getAsyncRegistrationJobQueueKillSwitch())
.isEqualTo(MEASUREMENT_REGISTRATION_JOB_QUEUE_KILL_SWITCH);
// Now overriding with the value from PH.
boolean phOverridingValue = !MEASUREMENT_REGISTRATION_JOB_QUEUE_KILL_SWITCH;
overrideGlobalKillSwitch(phOverridingValue);
assertThat(mPhFlags.getAsyncRegistrationFallbackJobKillSwitch())
.isEqualTo(phOverridingValue);
}
@Test
public void testGetMeasurementMaxSourcesPerPublisher() {
assertThat(mPhFlags.getMeasurementMaxSourcesPerPublisher())
.isEqualTo(MEASUREMENT_MAX_SOURCES_PER_PUBLISHER);
// Now overriding with the value from PH.
int phOverridingValue = MEASUREMENT_MAX_SOURCES_PER_PUBLISHER + 20;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_MEASUREMENT_MAX_SOURCES_PER_PUBLISHER,
Integer.toString(phOverridingValue),
/* makeDefault */ false);
assertThat(mPhFlags.getMeasurementMaxSourcesPerPublisher()).isEqualTo(phOverridingValue);
}
@Test
public void testGetMeasurementMaxTriggersPerDestination() {
assertThat(mPhFlags.getMeasurementMaxTriggersPerDestination())
.isEqualTo(MEASUREMENT_MAX_TRIGGERS_PER_DESTINATION);
// Now overriding with the value from PH.
int phOverridingValue = MEASUREMENT_MAX_TRIGGERS_PER_DESTINATION + 21;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_MEASUREMENT_MAX_TRIGGERS_PER_DESTINATION,
Integer.toString(phOverridingValue),
/* makeDefault */ false);
assertThat(mPhFlags.getMeasurementMaxTriggersPerDestination()).isEqualTo(phOverridingValue);
}
@Test
public void testGetMeasurementMaxAggregateReportsPerDestination() {
assertThat(mPhFlags.getMeasurementMaxAggregateReportsPerDestination())
.isEqualTo(MEASUREMENT_MAX_AGGREGATE_REPORTS_PER_DESTINATION);
// Now overriding with the value from PH.
int phOverridingValue = MEASUREMENT_MAX_AGGREGATE_REPORTS_PER_DESTINATION + 22;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_MEASUREMENT_MAX_AGGREGATE_REPORTS_PER_DESTINATION,
Integer.toString(phOverridingValue),
/* makeDefault */ false);
assertThat(mPhFlags.getMeasurementMaxAggregateReportsPerDestination())
.isEqualTo(phOverridingValue);
}
@Test
public void testGetMeasurementMaxEventReportsPerDestination() {
assertThat(mPhFlags.getMeasurementMaxEventReportsPerDestination())
.isEqualTo(MEASUREMENT_MAX_EVENT_REPORTS_PER_DESTINATION);
// Now overriding with the value from PH.
int phOverridingValue = MEASUREMENT_MAX_EVENT_REPORTS_PER_DESTINATION + 23;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_MEASUREMENT_MAX_EVENT_REPORTS_PER_DESTINATION,
Integer.toString(phOverridingValue),
/* makeDefault */ false);
assertThat(mPhFlags.getMeasurementMaxEventReportsPerDestination())
.isEqualTo(phOverridingValue);
}
@Test
public void testGetMeasurementMaxAggregateKeysPerSourceRegistration() {
assertThat(FlagsFactory.getFlags().getMeasurementMaxAggregateKeysPerSourceRegistration())
.isEqualTo(MEASUREMENT_MAX_AGGREGATE_KEYS_PER_SOURCE_REGISTRATION);
// Now overriding with the value from PH.
int phOverridingValue = 10;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_MEASUREMENT_MAX_AGGREGATE_KEYS_PER_SOURCE_REGISTRATION,
Integer.toString(phOverridingValue),
/* makeDefault */ false);
Flags phFlags = FlagsFactory.getFlags();
assertThat(phFlags.getMeasurementMaxAggregateKeysPerSourceRegistration())
.isEqualTo(phOverridingValue);
}
@Test
public void testGetMeasurementMaxAggregateKeysPerTriggerRegistration() {
assertThat(FlagsFactory.getFlags().getMeasurementMaxAggregateKeysPerTriggerRegistration())
.isEqualTo(MEASUREMENT_MAX_AGGREGATE_KEYS_PER_TRIGGER_REGISTRATION);
// Now overriding with the value from PH.
int phOverridingValue = 10;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_MEASUREMENT_MAX_AGGREGATE_KEYS_PER_TRIGGER_REGISTRATION,
Integer.toString(phOverridingValue),
/* makeDefault */ false);
Flags phFlags = FlagsFactory.getFlags();
assertThat(phFlags.getMeasurementMaxAggregateKeysPerTriggerRegistration())
.isEqualTo(phOverridingValue);
}
@Test
public void testGetMeasurementMinEventReportDelayMillis() {
assertThat(mPhFlags.getMeasurementMinEventReportDelayMillis())
.isEqualTo(MEASUREMENT_MIN_EVENT_REPORT_DELAY_MILLIS);
// Now overriding with the value from PH.
long phOverrideValue = MEASUREMENT_MIN_EVENT_REPORT_DELAY_MILLIS + 2300L;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_MEASUREMENT_MIN_EVENT_REPORT_DELAY_MILLIS,
Long.toString(phOverrideValue),
/* makeDefault */ false);
assertThat(mPhFlags.getMeasurementMinEventReportDelayMillis()).isEqualTo(phOverrideValue);
}
@Test
public void testGetAdIdKillSwitch() {
// Without any overriding, the value is the hard coded constant.
assertThat(mPhFlags.getAdIdKillSwitch()).isEqualTo(ADID_KILL_SWITCH);
// Now overriding with the value from PH.
boolean phOverridingValue = !ADID_KILL_SWITCH;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_ADID_KILL_SWITCH,
Boolean.toString(phOverridingValue),
/* makeDefault */ false);
assertThat(mPhFlags.getAdIdKillSwitch()).isEqualTo(phOverridingValue);
}
@Test
public void testGetAppSetIdKillSwitch() {
// Without any overriding, the value is the hard coded constant.
assertThat(mPhFlags.getAppSetIdKillSwitch()).isEqualTo(APPSETID_KILL_SWITCH);
// Now overriding with the value from PH.
boolean phOverridingValue = !APPSETID_KILL_SWITCH;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_APPSETID_KILL_SWITCH,
Boolean.toString(phOverridingValue),
/* makeDefault */ false);
assertThat(mPhFlags.getAppSetIdKillSwitch()).isEqualTo(phOverridingValue);
}
@Test
public void testGetTopicsKillSwitch() {
// Disable global_kill_switch so that this flag can be tested.
disableGlobalKillSwitch();
// Without any overriding, the value is the hard coded constant.
assertThat(mPhFlags.getTopicsKillSwitch()).isEqualTo(TOPICS_KILL_SWITCH);
// Now overriding with the value from PH.
boolean phOverridingValue = !TOPICS_KILL_SWITCH;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_TOPICS_KILL_SWITCH,
Boolean.toString(phOverridingValue),
/* makeDefault */ false);
assertThat(mPhFlags.getTopicsKillSwitch()).isEqualTo(phOverridingValue);
}
@Test
public void testGetOnDeviceClassifierKillSwitch() {
// Disable global_kill_switch so that this flag can be tested.
disableGlobalKillSwitch();
// Without any overriding, the value is the hard coded constant.
assertThat(mPhFlags.getTopicsOnDeviceClassifierKillSwitch())
.isEqualTo(TOPICS_ON_DEVICE_CLASSIFIER_KILL_SWITCH);
// Now overriding with the value from PH.
boolean phOverridingValue = !TOPICS_ON_DEVICE_CLASSIFIER_KILL_SWITCH;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_TOPICS_ON_DEVICE_CLASSIFIER_KILL_SWITCH,
Boolean.toString(phOverridingValue),
/* makeDefault */ false);
assertThat(mPhFlags.getTopicsOnDeviceClassifierKillSwitch()).isEqualTo(phOverridingValue);
}
@Test
public void testGetMddBackgroundTaskKillSwitch() {
// Disable global_kill_switch so that this flag can be tested.
disableGlobalKillSwitch();
// Without any overriding, the value is the hard coded constant.
assertThat(mPhFlags.getMddBackgroundTaskKillSwitch())
.isEqualTo(MDD_BACKGROUND_TASK_KILL_SWITCH);
// Now overriding with the value from PH.
boolean phOverridingValue = !MDD_BACKGROUND_TASK_KILL_SWITCH;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_MDD_BACKGROUND_TASK_KILL_SWITCH,
Boolean.toString(phOverridingValue),
/* makeDefault */ false);
assertThat(mPhFlags.getMddBackgroundTaskKillSwitch()).isEqualTo(phOverridingValue);
}
@Test
public void test_globalKillswitchOverrides_getAdIdKillSwitch() {
// Without any overriding, AdId Killswitch is off.
assertThat(mPhFlags.getAdIdKillSwitch()).isEqualTo(ADID_KILL_SWITCH);
// Without any overriding, Global Killswitch is off.
assertThat(mPhFlags.getGlobalKillSwitch()).isEqualTo(GLOBAL_KILL_SWITCH);
// Now overriding with the value from PH.
boolean phOverridingValue = true;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_GLOBAL_KILL_SWITCH,
Boolean.toString(phOverridingValue),
/* makeDefault */ false);
// Now Global Killswitch is on.
assertThat(mPhFlags.getGlobalKillSwitch()).isTrue();
// Global Killswitch is on, but is ignored by the getAdIdKillswitch.
assertThat(mPhFlags.getAdIdKillSwitch()).isFalse();
}
@Test
public void testGetAppSetIdKillSwitch_globalOverride() {
// test that global killswitch override has no effect on
// AppSetIdKillswitch.
assertThat(mPhFlags.getAppSetIdKillSwitch()).isEqualTo(APPSETID_KILL_SWITCH);
boolean phOverridingValue = !APPSETID_KILL_SWITCH;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_GLOBAL_KILL_SWITCH,
Boolean.toString(phOverridingValue),
false);
assertThat(mPhFlags.getAppSetIdKillSwitch()).isEqualTo(APPSETID_KILL_SWITCH);
}
@Test
public void test_globalKillswitchOverrides_getAppSetIdKillSwitch() {
// Without any overriding, AppSetId Killswitch is off.
assertThat(mPhFlags.getAppSetIdKillSwitch()).isEqualTo(APPSETID_KILL_SWITCH);
// Without any overriding, Global Killswitch is off.
assertThat(mPhFlags.getGlobalKillSwitch()).isEqualTo(GLOBAL_KILL_SWITCH);
// Now overriding with the value from PH.
boolean phOverridingValue = true;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_GLOBAL_KILL_SWITCH,
Boolean.toString(phOverridingValue),
/* makeDefault */ false);
// Now Global Killswitch is on.
assertThat(mPhFlags.getGlobalKillSwitch()).isTrue();
// Global Killswitch is on, but is ignored by getAppSetIdKillswitch.
assertThat(mPhFlags.getAppSetIdKillSwitch()).isFalse();
}
@Test
public void test_globalKillswitchOverrides_getTopicsKillSwitch() {
// Disable global_kill_switch so that this flag can be tested.
disableGlobalKillSwitch();
// Without any overriding, Topics Killswitch is off.
assertThat(mPhFlags.getTopicsKillSwitch()).isEqualTo(TOPICS_KILL_SWITCH);
// Now overriding with the value from PH.
boolean phOverridingValue = !TOPICS_KILL_SWITCH;
overrideGlobalKillSwitch(phOverridingValue);
// Now Global Killswitch is on.
assertThat(mPhFlags.getGlobalKillSwitch()).isEqualTo(phOverridingValue);
// Global Killswitch is on and overrides the getTopicsKillswitch.
assertThat(mPhFlags.getTopicsKillSwitch()).isEqualTo(true);
}
@Test
public void testGetFledgeSelectAdsKillSwitch() {
// Disable global_kill_switch so that this flag can be tested.
disableGlobalKillSwitch();
// without any overrides the Ad Selection Service kill switch should be off
assertThat(mPhFlags.getFledgeSelectAdsKillSwitch())
.isEqualTo(FLEDGE_SELECT_ADS_KILL_SWITCH);
// Now overriding with the value from PH.
boolean phOverridingValue = !FLEDGE_SELECT_ADS_KILL_SWITCH;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_FLEDGE_SELECT_ADS_KILL_SWITCH,
Boolean.toString(phOverridingValue),
/* makeDefault */ false);
assertThat(mPhFlags.getFledgeSelectAdsKillSwitch()).isEqualTo(phOverridingValue);
}
@Test
public void testGetFledgeCustomAudienceServiceKillSwitch() {
// Disable global_kill_switch so that this flag can be tested.
disableGlobalKillSwitch();
// without any overrides the Custom Audience Service kill switch should be off
assertThat(mPhFlags.getFledgeCustomAudienceServiceKillSwitch())
.isEqualTo(FLEDGE_CUSTOM_AUDIENCE_SERVICE_KILL_SWITCH);
// Now overriding with the value from PH.
boolean phOverridingValue = !FLEDGE_CUSTOM_AUDIENCE_SERVICE_KILL_SWITCH;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_FLEDGE_CUSTOM_AUDIENCE_SERVICE_KILL_SWITCH,
Boolean.toString(phOverridingValue),
/* makeDefault */ false);
assertThat(mPhFlags.getFledgeCustomAudienceServiceKillSwitch())
.isEqualTo(phOverridingValue);
}
@Test
public void testGetProtectedSignalsServiceKillSwitch() {
// Disable global_kill_switch so that this flag can be tested.
disableGlobalKillSwitch();
// without any overrides the Protected Signals Service kill switch should be equal to the
// set constant.
assertThat(mPhFlags.getProtectedSignalsServiceKillSwitch())
.isEqualTo(PROTECTED_SIGNALS_SERVICE_KILL_SWITCH);
// Now overriding with the value from PH.
boolean phOverridingValue = !PROTECTED_SIGNALS_SERVICE_KILL_SWITCH;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_PROTECTED_SIGNALS_SERVICE_KILL_SWITCH,
Boolean.toString(phOverridingValue),
/* makeDefault */ false);
assertThat(mPhFlags.getProtectedSignalsServiceKillSwitch()).isEqualTo(phOverridingValue);
}
@Test
public void testGetEncryptionKeyNewEnrollmentFetchKillSwitch() {
// Disable global_kill_switch so that this flag can be tested.
disableGlobalKillSwitch();
// without any overriding, the value is the hard coded constant.
assertThat(mPhFlags.getEncryptionKeyNewEnrollmentFetchKillSwitch())
.isEqualTo(ENCRYPTION_KEY_NEW_ENROLLMENT_FETCH_KILL_SWITCH);
// Now overriding with the value from PH.
boolean phOverridingValue = !ENCRYPTION_KEY_NEW_ENROLLMENT_FETCH_KILL_SWITCH;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_ENCRYPTION_KEY_NEW_ENROLLMENT_FETCH_KILL_SWITCH,
Boolean.toString(phOverridingValue),
/* makeDefault */ false);
assertThat(mPhFlags.getEncryptionKeyNewEnrollmentFetchKillSwitch())
.isEqualTo(phOverridingValue);
}
@Test
public void testGetEncryptionKeyPeriodicFetchKillSwitch() {
// Disable global_kill_switch so that this flag can be tested.
disableGlobalKillSwitch();
// without any overriding, the value is the hard coded constant.
assertThat(mPhFlags.getEncryptionKeyPeriodicFetchKillSwitch())
.isEqualTo(ENCRYPTION_KEY_PERIODIC_FETCH_KILL_SWITCH);
// Now overriding with the value from PH.
boolean phOverridingValue = !ENCRYPTION_KEY_PERIODIC_FETCH_KILL_SWITCH;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_ENCRYPTION_KEY_PERIODIC_FETCH_KILL_SWITCH,
Boolean.toString(phOverridingValue),
/* makeDefault */ false);
assertThat(mPhFlags.getEncryptionKeyPeriodicFetchKillSwitch()).isEqualTo(phOverridingValue);
}
@Test
public void testGetFledgeAuctionServerKillSwitch() {
// Disable global_kill_switch so that this flag can be tested.
disableGlobalKillSwitch();
// without any overrides the Auction Server kill switch should be off
assertThat(mPhFlags.getFledgeAuctionServerKillSwitch())
.isEqualTo(FLEDGE_AUCTION_SERVER_KILL_SWITCH);
// Now overriding with the value from PH.
boolean phOverridingValue = !FLEDGE_AUCTION_SERVER_KILL_SWITCH;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_FLEDGE_AUCTION_SERVER_KILL_SWITCH,
Boolean.toString(phOverridingValue),
/* makeDefault */ false);
assertThat(mPhFlags.getFledgeAuctionServerKillSwitch()).isEqualTo(phOverridingValue);
}
@Test
public void test_getFledgeOnDeviceAuctionKillSwitch_setsCorrectValue() {
// Disable global_kill_switch so that this flag can be tested.
disableGlobalKillSwitch();
disableSelectAdsKillSwitch();
// without any overrides the Auction Server kill switch should be off
assertThat(mPhFlags.getFledgeOnDeviceAuctionKillSwitch())
.isEqualTo(FLEDGE_ON_DEVICE_AUCTION_KILL_SWITCH);
// Now overriding with the value from PH.
boolean phOverridingValue = !FLEDGE_ON_DEVICE_AUCTION_KILL_SWITCH;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_FLEDGE_ON_DEVICE_AUCTION_KILL_SWITCH,
Boolean.toString(phOverridingValue),
/* makeDefault */ false);
assertThat(mPhFlags.getFledgeOnDeviceAuctionKillSwitch()).isEqualTo(phOverridingValue);
}
@Test
public void test_fledgeSelectAdsServiceKillSwitch_shouldOverrideOtherKillSwitches() {
// Disable global_kill_switch so that this flag can be tested.
disableGlobalKillSwitch();
disableSelectAdsKillSwitch();
assertThat(mPhFlags.getFledgeOnDeviceAuctionKillSwitch())
.isEqualTo(FLEDGE_ON_DEVICE_AUCTION_KILL_SWITCH);
assertThat(mPhFlags.getFledgeAuctionServerKillSwitch())
.isEqualTo(FLEDGE_AUCTION_SERVER_KILL_SWITCH);
// Now overriding with the value from PH.
boolean phOverridingValue = !FLEDGE_SELECT_ADS_KILL_SWITCH;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_FLEDGE_SELECT_ADS_KILL_SWITCH,
Boolean.toString(phOverridingValue),
/* makeDefault */ false);
assertThat(mPhFlags.getFledgeOnDeviceAuctionKillSwitch()).isEqualTo(phOverridingValue);
assertThat(mPhFlags.getFledgeAuctionServerKillSwitch()).isEqualTo(phOverridingValue);
}
@Test
public void testGetFledgeGlobalKillSwitchOverridesOtherFledgeKillSwitches() {
// Disable global_kill_switch so that this flag can be tested.
disableGlobalKillSwitch();
// without any overrides the Fledge API kill switch should be off
assertThat(mPhFlags.getFledgeSelectAdsKillSwitch())
.isEqualTo(FLEDGE_SELECT_ADS_KILL_SWITCH);
assertThat(mPhFlags.getFledgeCustomAudienceServiceKillSwitch())
.isEqualTo(FLEDGE_CUSTOM_AUDIENCE_SERVICE_KILL_SWITCH);
assertThat(mPhFlags.getFledgeAuctionServerKillSwitch())
.isEqualTo(FLEDGE_AUCTION_SERVER_KILL_SWITCH);
assertThat(mPhFlags.getFledgeOnDeviceAuctionKillSwitch())
.isEqualTo(FLEDGE_ON_DEVICE_AUCTION_KILL_SWITCH);
// Now overriding with the value from PH.
boolean phOverridingValue = !FLEDGE_CUSTOM_AUDIENCE_SERVICE_KILL_SWITCH;
overrideGlobalKillSwitch(phOverridingValue);
assertThat(mPhFlags.getFledgeSelectAdsKillSwitch()).isEqualTo(phOverridingValue);
assertThat(mPhFlags.getFledgeCustomAudienceServiceKillSwitch())
.isEqualTo(phOverridingValue);
assertThat(mPhFlags.getFledgeAuctionServerKillSwitch()).isEqualTo(phOverridingValue);
assertThat(mPhFlags.getFledgeOnDeviceAuctionKillSwitch()).isEqualTo(phOverridingValue);
}
@Test
public void testGlobalKillSwitchOverridesProtectedSignalsKillSwitch() {
// Disable global_kill_switch so that this flag can be tested.
disableGlobalKillSwitch();
// without any overrides the protected signals API kill switch equal to the constant
assertThat(mPhFlags.getProtectedSignalsServiceKillSwitch())
.isEqualTo(PROTECTED_SIGNALS_SERVICE_KILL_SWITCH);
// Now overriding with the value from PH.
boolean phOverridingValue = !PROTECTED_SIGNALS_SERVICE_KILL_SWITCH;
overrideGlobalKillSwitch(phOverridingValue);
assertThat(mPhFlags.getProtectedSignalsServiceKillSwitch()).isEqualTo(phOverridingValue);
}
@Test
public void testGetEncryptionKeyJobRequiredNetworkType() {
// Without any overriding, the value is the hard coded constant.
assertThat(mPhFlags.getEncryptionKeyJobRequiredNetworkType())
.isEqualTo(ENCRYPTION_KEY_JOB_REQUIRED_NETWORK_TYPE);
// Now overriding with the value from PH.
int phOverridingValue = ENCRYPTION_KEY_JOB_REQUIRED_NETWORK_TYPE + 1;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_ENCRYPTION_KEY_JOB_REQUIRED_NETWORK_TYPE,
Integer.toString(phOverridingValue),
/* makeDefault */ false);
assertThat(mPhFlags.getEncryptionKeyJobRequiredNetworkType()).isEqualTo(phOverridingValue);
}
@Test
public void testGetEncryptionKeyJobPeriodMs() {
// Assert the value before override.
assertThat(mPhFlags.getEncryptionKeyJobPeriodMs()).isEqualTo(ENCRYPTION_KEY_JOB_PERIOD_MS);
// Now overriding with the value from PH.
long phOverridingValue = ENCRYPTION_KEY_JOB_PERIOD_MS + 1;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_ENCRYPTION_KEY_JOB_PERIOD_MS,
Long.toString(phOverridingValue),
false);
assertThat(mPhFlags.getEncryptionKeyJobPeriodMs()).isEqualTo(phOverridingValue);
}
@Test
public void testGetPpapiAppAllowList() {
// Without any overriding, the value is the hard coded constant.
assertThat(mPhFlags.getPpapiAppAllowList()).isEqualTo(PPAPI_APP_ALLOW_LIST);
// Now overriding with the value from PH.
String phOverridingValue = PPAPI_APP_ALLOW_LIST + "SomePackageName,AnotherPackageName";
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_PPAPI_APP_ALLOW_LIST,
phOverridingValue,
/* makeDefault */ false);
assertThat(mPhFlags.getPpapiAppAllowList()).isEqualTo(phOverridingValue);
}
@Test
public void testGetMsmtApiAppAllowList() {
// Without any overriding, the value is the hard coded constant.
assertThat(FlagsFactory.getFlags().getMsmtApiAppAllowList())
.isEqualTo(MSMT_API_APP_ALLOW_LIST);
// Now overriding with the value from PH.
String phOverridingValue = MSMT_API_APP_ALLOW_LIST + "SomePackageName,AnotherPackageName";
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_MSMT_API_APP_ALLOW_LIST,
phOverridingValue,
/* makeDefault */ false);
Flags phFlags = FlagsFactory.getFlags();
assertThat(phFlags.getMsmtApiAppAllowList()).isEqualTo(phOverridingValue);
}
@Test
public void testGetMsmtApiAppBlockList() {
// Without any overriding, the value is the hard coded constant.
assertThat(FlagsFactory.getFlags().getMsmtApiAppBlockList())
.isEqualTo(MSMT_API_APP_BLOCK_LIST);
// Now overriding with the value from PH.
String phOverridingValue = MSMT_API_APP_BLOCK_LIST + "SomePackageName,AnotherPackageName";
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_MSMT_API_APP_BLOCK_LIST,
phOverridingValue,
/* makeDefault */ false);
Flags phFlags = FlagsFactory.getFlags();
assertThat(phFlags.getMsmtApiAppBlockList()).isEqualTo(phOverridingValue);
}
@Test
public void testGetPpapiAppSignatureAllowList() {
// Without any overriding, the value is the hard coded constant.
assertThat(mPhFlags.getPpapiAppSignatureAllowList())
.isEqualTo(PPAPI_APP_SIGNATURE_ALLOW_LIST);
// Now overriding with the value from PH.
String phOverridingValue =
PPAPI_APP_SIGNATURE_ALLOW_LIST + "SomePackageName,AnotherPackageName";
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_PPAPI_APP_SIGNATURE_ALLOW_LIST,
phOverridingValue,
/* makeDefault */ false);
assertThat(mPhFlags.getPpapiAppSignatureAllowList()).isEqualTo(phOverridingValue);
}
@Test
public void testGetAppsearchWriterAllowListOverride() {
// Without any overriding, the value is the hard coded constant.
assertThat(mPhFlags.getAppsearchWriterAllowListOverride())
.isEqualTo(APPSEARCH_WRITER_ALLOW_LIST_OVERRIDE);
// Now overriding with the value from PH.
String phOverridingValue =
APPSEARCH_WRITER_ALLOW_LIST_OVERRIDE + "SomePackageName,AnotherPackageName";
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_APPSEARCH_WRITER_ALLOW_LIST_OVERRIDE,
phOverridingValue,
/* makeDefault */ false);
assertThat(mPhFlags.getAppsearchWriterAllowListOverride()).isEqualTo(phOverridingValue);
}
@Test
public void testGetAdServicesApksShaCerts() {
// Without any overriding, the value is the hard coded constant.
assertThat(mPhFlags.getAdservicesApkShaCertificate())
.isEqualTo(ADSERVICES_APK_SHA_CERTIFICATE);
// Now overriding with the value from PH.
String phOverridingValue =
ADSERVICES_APK_SHA_CERTIFICATE + "SomePackageName,AnotherPackageName";
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_ADSERVICES_APK_SHA_CERTS,
phOverridingValue,
/* makeDefault */ false);
assertThat(mPhFlags.getAdservicesApkShaCertificate()).isEqualTo(phOverridingValue);
}
@Test
public void testGetSdkRequestPermitsPerSecond() {
// Without any overriding, the value is the hard coded constant.
assertThat(mPhFlags.getSdkRequestPermitsPerSecond())
.isEqualTo(SDK_REQUEST_PERMITS_PER_SECOND);
float phOverridingValue = SDK_REQUEST_PERMITS_PER_SECOND + 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.
assertThat(mPhFlags.getSdkRequestPermitsPerSecond()).isEqualTo(phOverridingValue);
assertThat(mTestFlags.getSdkRequestPermitsPerSecond())
.isEqualTo(SDK_REQUEST_PERMITS_PER_SECOND);
}
@Test
public void testGetAdIdRequestPermitsPerSecond() {
// Without any overriding, the value is the hard coded constant.
assertThat(mPhFlags.getAdIdRequestPermitsPerSecond())
.isEqualTo(ADID_REQUEST_PERMITS_PER_SECOND);
float phOverridingValue = ADID_REQUEST_PERMITS_PER_SECOND + 7;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_ADID_REQUEST_PERMITS_PER_SECOND,
Float.toString(phOverridingValue),
/* makeDefault */ false);
// Now verify that the PhFlag value was overridden.
assertThat(mPhFlags.getAdIdRequestPermitsPerSecond()).isEqualTo(phOverridingValue);
assertThat(mTestFlags.getAdIdRequestPermitsPerSecond())
.isEqualTo(ADID_REQUEST_PERMITS_PER_SECOND);
}
@Test
public void testGetAppSetIdRequestPermitsPerSecond() {
// Without any overriding, the value is the hard coded constant.
assertThat(mPhFlags.getAppSetIdRequestPermitsPerSecond())
.isEqualTo(APPSETID_REQUEST_PERMITS_PER_SECOND);
float phOverridingValue = APPSETID_REQUEST_PERMITS_PER_SECOND + 7;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_APPSETID_REQUEST_PERMITS_PER_SECOND,
Float.toString(phOverridingValue),
/* makeDefault */ false);
// Now verify that the PhFlag value was overridden.
assertThat(mPhFlags.getAppSetIdRequestPermitsPerSecond()).isEqualTo(phOverridingValue);
assertThat(mTestFlags.getAppSetIdRequestPermitsPerSecond())
.isEqualTo(APPSETID_REQUEST_PERMITS_PER_SECOND);
}
@Test
public void testGetMeasurementRegisterSourceRequestPermitsPerSecond() {
// Without any overriding, the value is the hard coded constant.
assertThat(mPhFlags.getMeasurementRegisterSourceRequestPermitsPerSecond())
.isEqualTo(MEASUREMENT_REGISTER_SOURCE_REQUEST_PERMITS_PER_SECOND);
float phOverridingValue = MEASUREMENT_REGISTER_SOURCE_REQUEST_PERMITS_PER_SECOND + 7;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_MEASUREMENT_REGISTER_SOURCE_REQUEST_PERMITS_PER_SECOND,
Float.toString(phOverridingValue),
/* makeDefault */ false);
// Now verify that the PhFlag value was overridden.
assertThat(mPhFlags.getMeasurementRegisterSourceRequestPermitsPerSecond())
.isEqualTo(phOverridingValue);
assertThat(mTestFlags.getMeasurementRegisterSourceRequestPermitsPerSecond())
.isEqualTo(MEASUREMENT_REGISTER_SOURCE_REQUEST_PERMITS_PER_SECOND);
}
@Test
public void testGetMeasurementRegisterSourcesRequestPermitsPerSecond() {
// Without any overriding, the value is the hard coded constant.
assertThat(FlagsFactory.getFlags().getMeasurementRegisterSourcesRequestPermitsPerSecond())
.isEqualTo(MEASUREMENT_REGISTER_SOURCES_REQUEST_PERMITS_PER_SECOND);
final float phOverridingValue = 7;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_MEASUREMENT_REGISTER_SOURCES_REQUEST_PERMITS_PER_SECOND,
Float.toString(phOverridingValue),
/* makeDefault */ false);
// Now verify that the PhFlag value was overridden.
final Flags phFlags = FlagsFactory.getFlags();
assertThat(phFlags.getMeasurementRegisterSourcesRequestPermitsPerSecond())
.isEqualTo(phOverridingValue);
final Flags flags = FlagsFactory.getFlagsForTest();
assertThat(flags.getMeasurementRegisterSourcesRequestPermitsPerSecond())
.isEqualTo(MEASUREMENT_REGISTER_SOURCES_REQUEST_PERMITS_PER_SECOND);
}
@Test
public void testGetMeasurementRegisterWebSourceRequestPermitsPerSecond() {
// Without any overriding, the value is the hard coded constant.
assertThat(mPhFlags.getMeasurementRegisterWebSourceRequestPermitsPerSecond())
.isEqualTo(MEASUREMENT_REGISTER_WEB_SOURCE_REQUEST_PERMITS_PER_SECOND);
float phOverridingValue = MEASUREMENT_REGISTER_WEB_SOURCE_REQUEST_PERMITS_PER_SECOND + 8;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_MEASUREMENT_REGISTER_WEB_SOURCE_REQUEST_PERMITS_PER_SECOND,
Float.toString(phOverridingValue),
/* makeDefault */ false);
// Now verify that the PhFlag value was overridden.
assertThat(mPhFlags.getMeasurementRegisterWebSourceRequestPermitsPerSecond())
.isEqualTo(phOverridingValue);
assertThat(mTestFlags.getMeasurementRegisterWebSourceRequestPermitsPerSecond())
.isEqualTo(MEASUREMENT_REGISTER_WEB_SOURCE_REQUEST_PERMITS_PER_SECOND);
}
@Test
public void testGetMeasurementRegisterTriggerRequestPermitsPerSecond() {
// Without any overriding, the value is the hard coded constant.
assertThat(mPhFlags.getMeasurementRegisterTriggerRequestPermitsPerSecond())
.isEqualTo(MEASUREMENT_REGISTER_TRIGGER_REQUEST_PERMITS_PER_SECOND);
float phOverridingValue = MEASUREMENT_REGISTER_TRIGGER_REQUEST_PERMITS_PER_SECOND + 9;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_MEASUREMENT_REGISTER_TRIGGER_REQUEST_PERMITS_PER_SECOND,
Float.toString(phOverridingValue),
/* makeDefault */ false);
// Now verify that the PhFlag value was overridden.
assertThat(mPhFlags.getMeasurementRegisterTriggerRequestPermitsPerSecond())
.isEqualTo(phOverridingValue);
assertThat(mTestFlags.getMeasurementRegisterTriggerRequestPermitsPerSecond())
.isEqualTo(MEASUREMENT_REGISTER_TRIGGER_REQUEST_PERMITS_PER_SECOND);
}
@Test
public void testGetMeasurementRegisterWebTriggerRequestPermitsPerSecond() {
// Without any overriding, the value is the hard coded constant.
assertThat(
FlagsFactory.getFlags()
.getMeasurementRegisterWebTriggerRequestPermitsPerSecond())
.isEqualTo(MEASUREMENT_REGISTER_WEB_TRIGGER_REQUEST_PERMITS_PER_SECOND);
float phOverridingValue = MEASUREMENT_REGISTER_WEB_TRIGGER_REQUEST_PERMITS_PER_SECOND + 10;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_MEASUREMENT_REGISTER_WEB_TRIGGER_REQUEST_PERMITS_PER_SECOND,
Float.toString(phOverridingValue),
/* makeDefault */ false);
// Now verify that the PhFlag value was overridden.
assertThat(mPhFlags.getMeasurementRegisterWebTriggerRequestPermitsPerSecond())
.isEqualTo(phOverridingValue);
assertThat(mTestFlags.getMeasurementRegisterWebTriggerRequestPermitsPerSecond())
.isEqualTo(MEASUREMENT_REGISTER_WEB_TRIGGER_REQUEST_PERMITS_PER_SECOND);
}
@Test
public void testGetTopicsApiAppRequestPermitsPerSecond() {
// Without any overriding, the value is the hard coded constant.
assertThat(mPhFlags.getTopicsApiAppRequestPermitsPerSecond())
.isEqualTo(TOPICS_API_APP_REQUEST_PERMITS_PER_SECOND);
float phOverridingValue = TOPICS_API_APP_REQUEST_PERMITS_PER_SECOND + 7;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_TOPICS_API_APP_REQUEST_PERMITS_PER_SECOND,
Float.toString(phOverridingValue),
/* makeDefault */ false);
// Now verify that the PhFlag value was overridden.
assertThat(mPhFlags.getTopicsApiAppRequestPermitsPerSecond()).isEqualTo(phOverridingValue);
assertThat(mTestFlags.getTopicsApiAppRequestPermitsPerSecond())
.isEqualTo(TOPICS_API_APP_REQUEST_PERMITS_PER_SECOND);
}
@Test
public void testGetTopicsApiSdkRequestPermitsPerSecond() {
// Without any overriding, the value is the hard coded constant.
assertThat(mPhFlags.getTopicsApiSdkRequestPermitsPerSecond())
.isEqualTo(TOPICS_API_SDK_REQUEST_PERMITS_PER_SECOND);
float phOverridingValue = TOPICS_API_SDK_REQUEST_PERMITS_PER_SECOND + 7;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_TOPICS_API_SDK_REQUEST_PERMITS_PER_SECOND,
Float.toString(phOverridingValue),
/* makeDefault */ false);
// Now verify that the PhFlag value was overridden.
assertThat(mPhFlags.getTopicsApiSdkRequestPermitsPerSecond()).isEqualTo(phOverridingValue);
assertThat(mTestFlags.getTopicsApiSdkRequestPermitsPerSecond())
.isEqualTo(TOPICS_API_SDK_REQUEST_PERMITS_PER_SECOND);
}
@Test
public void testGetFledgeReportInteractionRequestPermitsPerSecond() {
// Without any overriding, the value is the hard coded constant.
assertThat(mPhFlags.getFledgeReportInteractionRequestPermitsPerSecond())
.isEqualTo(FLEDGE_REPORT_INTERACTION_REQUEST_PERMITS_PER_SECOND);
float phOverridingValue = FLEDGE_REPORT_INTERACTION_REQUEST_PERMITS_PER_SECOND + 7;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_FLEDGE_REPORT_INTERACTION_REQUEST_PERMITS_PER_SECOND,
Float.toString(phOverridingValue),
/* makeDefault */ false);
// Now verify that the PhFlag value was overridden.
assertThat(mPhFlags.getFledgeReportInteractionRequestPermitsPerSecond())
.isEqualTo(phOverridingValue);
assertThat(mTestFlags.getFledgeReportInteractionRequestPermitsPerSecond())
.isEqualTo(FLEDGE_REPORT_INTERACTION_REQUEST_PERMITS_PER_SECOND);
}
@Test
public void testGetNumberOfEpochsToKeepInHistory() {
// Without any overriding, the value is the hard coded constant.
assertThat(mPhFlags.getNumberOfEpochsToKeepInHistory())
.isEqualTo(NUMBER_OF_EPOCHS_TO_KEEP_IN_HISTORY);
long phOverridingValue = NUMBER_OF_EPOCHS_TO_KEEP_IN_HISTORY + 1;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_NUMBER_OF_EPOCHS_TO_KEEP_IN_HISTORY,
Long.toString(phOverridingValue),
/* makeDefault */ false);
assertThat(mPhFlags.getNumberOfEpochsToKeepInHistory()).isEqualTo(phOverridingValue);
long illegalPhOverridingValue = -1;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_NUMBER_OF_EPOCHS_TO_KEEP_IN_HISTORY,
Long.toString(illegalPhOverridingValue),
/* makeDefault */ false);
assertThrows(IllegalArgumentException.class, mPhFlags::getNumberOfEpochsToKeepInHistory);
}
@Test
public void testGetForegroundStatuslLevelForValidation() {
// Without any overriding, the value is the hard coded constant.
assertThat(mPhFlags.getForegroundStatuslLevelForValidation())
.isEqualTo(FOREGROUND_STATUS_LEVEL);
int phOverridingValue = FOREGROUND_STATUS_LEVEL + 6;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_FOREGROUND_STATUS_LEVEL,
Integer.toString(phOverridingValue),
/* makeDefault */ false);
assertThat(mPhFlags.getForegroundStatuslLevelForValidation()).isEqualTo(phOverridingValue);
}
@Test
public void testGetEnforceIsolateMaxHeapSize() {
// Without any overriding, the value is the hard coded constant.
assertThat(mPhFlags.getEnforceIsolateMaxHeapSize())
.isEqualTo(ENFORCE_ISOLATE_MAX_HEAP_SIZE);
// Now overriding with the value from PH.
boolean phOverridingValue = !ENFORCE_ISOLATE_MAX_HEAP_SIZE;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_ENFORCE_ISOLATE_MAX_HEAP_SIZE,
Boolean.toString(phOverridingValue),
/* makeDefault */ false);
assertThat(mPhFlags.getEnforceIsolateMaxHeapSize()).isEqualTo(phOverridingValue);
}
@Test
public void testGetIsolateMaxHeapSizeBytes() {
// Without any overriding, the value is the hard coded constant.
assertThat(mPhFlags.getIsolateMaxHeapSizeBytes()).isEqualTo(ISOLATE_MAX_HEAP_SIZE_BYTES);
// Now overriding with the value from PH.
long phOverridingValue = ISOLATE_MAX_HEAP_SIZE_BYTES + 1000;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_ISOLATE_MAX_HEAP_SIZE_BYTES,
Long.toString(phOverridingValue),
/* makeDefault */ false);
assertThat(mPhFlags.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(mPhFlags.getReportImpressionOverallTimeoutMs())
.isEqualTo(FLEDGE_REPORT_IMPRESSION_OVERALL_TIMEOUT_MS);
long phOverridingValue = FLEDGE_REPORT_IMPRESSION_OVERALL_TIMEOUT_MS + 4;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_FLEDGE_REPORT_IMPRESSION_OVERALL_TIMEOUT_MS,
Long.toString(phOverridingValue),
false);
assertThat(mPhFlags.getReportImpressionOverallTimeoutMs()).isEqualTo(phOverridingValue);
}
@Test
public void testGetReportImpressionMaxRegisteredAdBeaconsTotalCount() {
// without any overriding, the value is hard coded constant
assertThat(
FlagsFactory.getFlags()
.getFledgeReportImpressionMaxRegisteredAdBeaconsTotalCount())
.isEqualTo(FLEDGE_REPORT_IMPRESSION_MAX_REGISTERED_AD_BEACONS_TOTAL_COUNT);
long phOverridingValue = FLEDGE_REPORT_IMPRESSION_MAX_REGISTERED_AD_BEACONS_TOTAL_COUNT + 4;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_FLEDGE_REPORT_IMPRESSION_MAX_REGISTERED_AD_BEACONS_TOTAL_COUNT,
Long.toString(phOverridingValue),
false);
assertThat(mPhFlags.getFledgeReportImpressionMaxRegisteredAdBeaconsTotalCount())
.isEqualTo(phOverridingValue);
}
@Test
public void testGetFledgeReportImpressionRegisteredAdBeaconsMaxInteractionKeySize_B() {
// without any overriding, the value is hard coded constant
assertThat(
FlagsFactory.getFlags()
.getFledgeReportImpressionRegisteredAdBeaconsMaxInteractionKeySizeB())
.isEqualTo(
FLEDGE_REPORT_IMPRESSION_REGISTERED_AD_BEACONS_MAX_INTERACTION_KEY_SIZE_B);
long phOverridingValue =
FLEDGE_REPORT_IMPRESSION_REGISTERED_AD_BEACONS_MAX_INTERACTION_KEY_SIZE_B + 4;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_FLEDGE_REPORT_IMPRESSION_REGISTERED_AD_BEACONS_MAX_INTERACTION_KEY_SIZE_B,
Long.toString(phOverridingValue),
false);
assertThat(mPhFlags.getFledgeReportImpressionRegisteredAdBeaconsMaxInteractionKeySizeB())
.isEqualTo(phOverridingValue);
}
@Test
public void testGetFledgeReportImpressionMaxInteractionReportingUriSizeB() {
// without any overriding, the value is hard coded constant
assertThat(
FlagsFactory.getFlags()
.getFledgeReportImpressionMaxInteractionReportingUriSizeB())
.isEqualTo(FLEDGE_REPORT_IMPRESSION_MAX_INTERACTION_REPORTING_URI_SIZE_B);
long phOverridingValue = FLEDGE_REPORT_IMPRESSION_MAX_INTERACTION_REPORTING_URI_SIZE_B + 4;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_FLEDGE_REPORT_IMPRESSION_MAX_INTERACTION_REPORTING_URI_SIZE_B,
Long.toString(phOverridingValue),
false);
Flags phFlags = FlagsFactory.getFlags();
assertThat(phFlags.getFledgeReportImpressionMaxInteractionReportingUriSizeB())
.isEqualTo(phOverridingValue);
}
@Test
public void testGetFledgeReportImpressionMaxRegisteredAdBeaconsPerAdTechCount() {
// without any overriding, the value is hard coded constant
assertThat(
FlagsFactory.getFlags()
.getFledgeReportImpressionMaxRegisteredAdBeaconsPerAdTechCount())
.isEqualTo(FLEDGE_REPORT_IMPRESSION_MAX_REGISTERED_AD_BEACONS_PER_AD_TECH_COUNT);
long phOverridingValue =
FLEDGE_REPORT_IMPRESSION_MAX_REGISTERED_AD_BEACONS_PER_AD_TECH_COUNT + 4;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_FLEDGE_REPORT_IMPRESSION_MAX_REGISTERED_AD_BEACONS_PER_AD_TECH_COUNT,
Long.toString(phOverridingValue),
false);
assertThat(mPhFlags.getFledgeReportImpressionMaxRegisteredAdBeaconsPerAdTechCount())
.isEqualTo(phOverridingValue);
}
@Test
public void testIsDisableTopicsEnrollmentCheck() {
// Without any overriding, the value is the hard coded constant.
assertThat(mPhFlags.isDisableTopicsEnrollmentCheck())
.isEqualTo(DISABLE_TOPICS_ENROLLMENT_CHECK);
boolean phOverridingValue = !DISABLE_TOPICS_ENROLLMENT_CHECK;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_DISABLE_TOPICS_ENROLLMENT_CHECK,
Boolean.toString(phOverridingValue),
/* makeDefault */ false);
assertThat(mPhFlags.isDisableTopicsEnrollmentCheck()).isEqualTo(phOverridingValue);
}
@Test
public void testGetDisableFledgeEnrollmentCheck() {
// Without any overriding, the value is the hard coded constant.
assertThat(mPhFlags.getDisableFledgeEnrollmentCheck())
.isEqualTo(DISABLE_FLEDGE_ENROLLMENT_CHECK);
boolean phOverridingValue = !DISABLE_FLEDGE_ENROLLMENT_CHECK;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_DISABLE_FLEDGE_ENROLLMENT_CHECK,
Boolean.toString(phOverridingValue),
/* makeDefault */ false);
assertThat(mPhFlags.getDisableFledgeEnrollmentCheck()).isEqualTo(phOverridingValue);
}
@Test
public void testIsDisableMeasurementEnrollmentCheck() {
// Without any overriding, the value is the hard coded constant.
assertThat(mPhFlags.isDisableMeasurementEnrollmentCheck())
.isEqualTo(DISABLE_MEASUREMENT_ENROLLMENT_CHECK);
boolean phOverridingValue = !DISABLE_MEASUREMENT_ENROLLMENT_CHECK;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_DISABLE_MEASUREMENT_ENROLLMENT_CHECK,
Boolean.toString(phOverridingValue),
/* makeDefault */ false);
assertThat(mPhFlags.isDisableMeasurementEnrollmentCheck()).isEqualTo(phOverridingValue);
}
@Test
public void testIsEnableEnrollmentTestSeed() {
// Without any overriding, the value is the hard coded constant.
assertThat(mPhFlags.isEnableEnrollmentTestSeed()).isEqualTo(ENABLE_ENROLLMENT_TEST_SEED);
boolean phOverridingValue = !ENABLE_ENROLLMENT_TEST_SEED;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_ENABLE_ENROLLMENT_TEST_SEED,
Boolean.toString(phOverridingValue),
/* makeDefault */ false);
assertThat(mPhFlags.isEnableEnrollmentTestSeed()).isEqualTo(phOverridingValue);
}
@Test
public void testGetEnrollmentMddRecordDeletionEnabled() {
// Without any overriding, the value is the hard coded constant.
assertThat(mPhFlags.getEnrollmentMddRecordDeletionEnabled())
.isEqualTo(ENROLLMENT_MDD_RECORD_DELETION_ENABLED);
boolean phOverridingValue = !ENROLLMENT_MDD_RECORD_DELETION_ENABLED;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_ENROLLMENT_MDD_RECORD_DELETION_ENABLED,
Boolean.toString(phOverridingValue),
/* makeDefault */ false);
assertThat(mPhFlags.getEnrollmentMddRecordDeletionEnabled()).isEqualTo(phOverridingValue);
}
@Test
public void testGetEnforceForegroundStatusForTopics() {
// Without any overriding, the value is the hard coded constant.
assertThat(mPhFlags.getEnforceForegroundStatusForTopics())
.isEqualTo(ENFORCE_FOREGROUND_STATUS_TOPICS);
// Now overriding with the value from PH.
boolean phOverridingValue = !ENFORCE_FOREGROUND_STATUS_TOPICS;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_ENFORCE_FOREGROUND_STATUS_TOPICS,
Boolean.toString(phOverridingValue),
/* makeDefault */ false);
assertThat(mPhFlags.getEnforceForegroundStatusForTopics()).isEqualTo(phOverridingValue);
}
@Test
public void testGetEnforceForegroundStatusForSignals() {
// Without any overriding, the value is the hard coded constant.
assertThat(mPhFlags.getEnforceForegroundStatusForSignals())
.isEqualTo(ENFORCE_FOREGROUND_STATUS_SIGNALS);
// Now overriding with the value from PH.
boolean phOverridingValue = !ENFORCE_FOREGROUND_STATUS_SIGNALS;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_ENFORCE_FOREGROUND_STATUS_SIGNALS,
Boolean.toString(phOverridingValue),
/* makeDefault */ false);
assertThat(mPhFlags.getEnforceForegroundStatusForSignals()).isEqualTo(phOverridingValue);
}
@Test
public void testGetOffDeviceAdSelectionEnabled() {
assertThat(mPhFlags.getAdSelectionOffDeviceEnabled())
.isEqualTo(FLEDGE_AD_SELECTION_OFF_DEVICE_ENABLED);
boolean phOverridingValue = !FLEDGE_AD_SELECTION_OFF_DEVICE_ENABLED;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_FLEDGE_AD_SELECTION_OFF_DEVICE_ENABLED,
Boolean.toString(phOverridingValue),
/* makeDefault */ false);
assertThat(mPhFlags.getAdSelectionOffDeviceEnabled()).isEqualTo(phOverridingValue);
}
@Test
public void testGetAdSelectionPrebuiltUriEnabled() {
assertThat(mPhFlags.getFledgeAdSelectionPrebuiltUriEnabled())
.isEqualTo(FLEDGE_AD_SELECTION_PREBUILT_URI_ENABLED);
boolean phOverridingValue = !FLEDGE_AD_SELECTION_PREBUILT_URI_ENABLED;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_FLEDGE_AD_SELECTION_PREBUILT_URI_ENABLED,
Boolean.toString(phOverridingValue),
/* makeDefault */ false);
assertThat(mPhFlags.getFledgeAdSelectionPrebuiltUriEnabled()).isEqualTo(phOverridingValue);
}
@Test
public void testGetFledgeAuctionServerPayloadBucketSizes() {
assertThat(mPhFlags.getFledgeAuctionServerPayloadBucketSizes())
.isEqualTo(FLEDGE_AUCTION_SERVER_PAYLOAD_BUCKET_SIZES);
ImmutableList<Integer> phOverridingValue = ImmutableList.of(-2, -3);
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_FLEDGE_AUCTION_SERVER_PAYLOAD_BUCKET_SIZES,
phOverridingValue.stream().map(Object::toString).collect(Collectors.joining(",")),
/* makeDefault */ false);
assertThat(mPhFlags.getFledgeAuctionServerPayloadBucketSizes())
.isEqualTo(phOverridingValue);
}
@Test
public void testGetFledgeAuctionServerForceContinueWhenOwnerIsNullEnabled() {
assertThat(mPhFlags.getFledgeAuctionServerForceSearchWhenOwnerIsAbsentEnabled())
.isEqualTo(FLEDGE_AUCTION_SERVER_FORCE_SEARCH_WHEN_OWNER_IS_ABSENT_ENABLED);
boolean phOverridingValue =
!FLEDGE_AUCTION_SERVER_FORCE_SEARCH_WHEN_OWNER_IS_ABSENT_ENABLED;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_FLEDGE_AUCTION_SERVER_FORCE_SEARCH_WHEN_OWNER_IS_ABSENT_ENABLED,
Boolean.toString(phOverridingValue),
/* makeDefault */ false);
assertThat(mPhFlags.getFledgeAuctionServerForceSearchWhenOwnerIsAbsentEnabled())
.isEqualTo(phOverridingValue);
}
@Test
public void testGetFledgeAuctionServerPayloadBucketSizes_invalidFlagString() {
assertThat(mPhFlags.getFledgeAuctionServerPayloadBucketSizes())
.isEqualTo(FLEDGE_AUCTION_SERVER_PAYLOAD_BUCKET_SIZES);
ImmutableList<Integer> phOverridingValue = ImmutableList.of(-2, -3);
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_FLEDGE_AUCTION_SERVER_PAYLOAD_BUCKET_SIZES,
"Non,sense,list",
/* makeDefault */ false);
assertThrows(
IllegalArgumentException.class, mPhFlags::getFledgeAuctionServerPayloadBucketSizes);
}
@Test
public void testgetFledgeAdselectionExpirationWindow() {
// Without any overriding, the value is the hard coded constant.
assertThat(mPhFlags.getAdSelectionExpirationWindowS())
.isEqualTo(FLEDGE_AD_SELECTION_EXPIRATION_WINDOW_S);
long phOverridingValue = FLEDGE_AD_SELECTION_EXPIRATION_WINDOW_S + 4;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_FLEDGE_AD_SELECTION_EXPIRATION_WINDOW_S,
Long.toString(phOverridingValue),
/* makeDefault */ false);
assertThat(mPhFlags.getAdSelectionExpirationWindowS()).isEqualTo(phOverridingValue);
}
@Test
public void testGetRegistrationJobQueueIntervalMs() {
assertThat(mPhFlags.getAsyncRegistrationJobQueueIntervalMs())
.isEqualTo(ASYNC_REGISTRATION_JOB_QUEUE_INTERVAL_MS);
long phOverridingValue = ASYNC_REGISTRATION_JOB_QUEUE_INTERVAL_MS + 1L;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_ASYNC_REGISTRATION_JOB_QUEUE_INTERVAL_MS,
Long.toString(phOverridingValue),
/* makeDefault */ false);
assertThat(mPhFlags.getAsyncRegistrationJobQueueIntervalMs()).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[] {};
mPhFlags.dump(printWriter, args);
}
@Test
public void testGetMaxResponseBasedRegistrationPayloadSizeBytes_measurementOverride() {
// without any overriding, the value is hard coded constant
assertThat(mPhFlags.getMaxResponseBasedRegistrationPayloadSizeBytes())
.isEqualTo(MAX_RESPONSE_BASED_REGISTRATION_SIZE_BYTES);
long phOverridingValue = MAX_RESPONSE_BASED_REGISTRATION_SIZE_BYTES + 5L;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_MAX_RESPONSE_BASED_REGISTRATION_SIZE_BYTES,
Long.toString(phOverridingValue),
false);
assertThat(mPhFlags.getMaxResponseBasedRegistrationPayloadSizeBytes())
.isEqualTo(phOverridingValue);
}
@Test
public void testGetOffDeviceAdSelectionRequestCompressionEnabled() {
assertThat(mPhFlags.getAdSelectionOffDeviceRequestCompressionEnabled())
.isEqualTo(FLEDGE_AD_SELECTION_OFF_DEVICE_REQUEST_COMPRESSION_ENABLED);
boolean phOverridingValue = !FLEDGE_AD_SELECTION_OFF_DEVICE_REQUEST_COMPRESSION_ENABLED;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_FLEDGE_AD_SELECTION_OFF_DEVICE_REQUEST_COMPRESSION_ENABLED,
Boolean.toString(phOverridingValue),
false);
assertThat(mPhFlags.getAdSelectionOffDeviceRequestCompressionEnabled())
.isEqualTo(phOverridingValue);
}
@Test
public void testFledgeCompressionAlgorithmVersionBits() {
assertThat(mPhFlags.getFledgeAuctionServerCompressionAlgorithmVersion())
.isEqualTo(FLEDGE_AUCTION_SERVER_COMPRESSION_ALGORITHM_VERSION);
int phOverridingValue = FLEDGE_AUCTION_SERVER_COMPRESSION_ALGORITHM_VERSION + 2;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_FLEDGE_AUCTION_SERVER_COMPRESSION_ALGORITHM_VERSION,
String.valueOf(phOverridingValue),
false);
assertThat(mPhFlags.getFledgeAuctionServerCompressionAlgorithmVersion())
.isEqualTo(phOverridingValue);
}
@Test
public void testFledgePayloadFormatVersionBits() {
assertThat(mPhFlags.getFledgeAuctionServerPayloadFormatVersion())
.isEqualTo(FLEDGE_AUCTION_SERVER_PAYLOAD_FORMAT_VERSION);
int phOverridingValue = FLEDGE_AUCTION_SERVER_PAYLOAD_FORMAT_VERSION + 2;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_FLEDGE_AUCTION_SERVER_PAYLOAD_FORMAT_VERSION,
String.valueOf(phOverridingValue),
false);
assertThat(mPhFlags.getFledgeAuctionServerPayloadFormatVersion())
.isEqualTo(phOverridingValue);
}
@Test
public void testFledgeAuctionServerEnableDebugReporting() {
assertThat(mPhFlags.getFledgeAuctionServerEnableDebugReporting())
.isEqualTo(FLEDGE_AUCTION_SERVER_ENABLE_DEBUG_REPORTING);
boolean phOverridingValue = !FLEDGE_AUCTION_SERVER_ENABLE_DEBUG_REPORTING;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_FLEDGE_AUCTION_SERVER_ENABLE_DEBUG_REPORTING,
String.valueOf(phOverridingValue),
false);
assertThat(mPhFlags.getFledgeAuctionServerEnableDebugReporting())
.isEqualTo(phOverridingValue);
}
@Test
public void testEnrollmentBlocklist_singleEnrollment() {
String blocklistedEnrollmentId = "enrollmentId1";
setEnrollmentBlocklist(blocklistedEnrollmentId);
assertThat(mPhFlags.getEnrollmentBlocklist()).contains(blocklistedEnrollmentId);
}
@Test
public void testEnrollmentBlocklist_multipleEnrollments() {
Flags phFlags = PhFlags.getInstance();
String enrollmentId1 = "enrollmentId1";
String enrollmentId2 = "enrollmentId2";
String enrollmentId3 = "enrollmentId3";
String blocklistedEnrollmentId =
String.format("%s,%s,%s", enrollmentId1, enrollmentId2, enrollmentId3);
setEnrollmentBlocklist(blocklistedEnrollmentId);
assertThat(mPhFlags.getEnrollmentBlocklist())
.containsExactly(enrollmentId1, enrollmentId2, enrollmentId3);
}
@Test
public void testEnrollmentBlocklist_malformedList() {
String enrollmentId1 = "enrollmentId1";
String enrollmentId2 = "enrollmentId2";
String enrollmentId3 = "enrollmentId3";
String blocklistedEnrollmentId =
String.format("%s%s%s", enrollmentId1, enrollmentId2, enrollmentId3);
setEnrollmentBlocklist(blocklistedEnrollmentId);
assertThat(mPhFlags.getEnrollmentBlocklist())
.containsNoneOf(enrollmentId1, enrollmentId2, enrollmentId3);
}
@Test
public void testGetEnrollmentEnableLimitedLogging() {
assertThat(mPhFlags.getEnrollmentEnableLimitedLogging())
.isEqualTo(ENROLLMENT_ENABLE_LIMITED_LOGGING);
boolean phOverridingValue = !ENROLLMENT_ENABLE_LIMITED_LOGGING;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_ENROLLMENT_ENABLE_LIMITED_LOGGING,
Boolean.toString(phOverridingValue),
/* makeDefault */ false);
assertThat(mPhFlags.getEnrollmentEnableLimitedLogging()).isEqualTo(phOverridingValue);
}
@Test
public void testDefaultConsentSourceOfTruth_isAtLeastT() {
Assume.assumeTrue(SdkLevel.isAtLeastT());
// On T+, default is PPAPI_AND_SYSTEM_SERVER.
assertThat(DEFAULT_CONSENT_SOURCE_OF_TRUTH).isEqualTo(PPAPI_AND_SYSTEM_SERVER);
}
@Test
public void testDefaultConsentSourceOfTruth_isS() {
Assume.assumeTrue(SdkLevel.isAtLeastS() && !SdkLevel.isAtLeastT());
// On S, default is APPSEARCH_ONLY.
assertThat(DEFAULT_CONSENT_SOURCE_OF_TRUTH).isEqualTo(APPSEARCH_ONLY);
}
@Test
public void testDefaultConsentSourceOfTruth_isR() {
Assume.assumeFalse(SdkLevel.isAtLeastS());
// On R, default is PPAPI_AND_ADEXT_SERVICE.
assertThat(DEFAULT_CONSENT_SOURCE_OF_TRUTH).isEqualTo(PPAPI_AND_ADEXT_SERVICE);
}
@Test
public void testGetConsentSourceOfTruth() {
assertThat(mPhFlags.getConsentSourceOfTruth()).isEqualTo(DEFAULT_CONSENT_SOURCE_OF_TRUTH);
int phOverridingValue = DEFAULT_CONSENT_SOURCE_OF_TRUTH + 42;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_CONSENT_SOURCE_OF_TRUTH,
Integer.toString(phOverridingValue),
/* makeDefault */ false);
assertThat(mPhFlags.getConsentSourceOfTruth()).isEqualTo(phOverridingValue);
}
@Test
public void testDefaultBlockedTopicsConsentSourceOfTruth_isAtLeastT() {
Assume.assumeTrue(SdkLevel.isAtLeastT());
// On T+, default is PPAPI_AND_SYSTEM_SERVER.
assertThat(DEFAULT_BLOCKED_TOPICS_SOURCE_OF_TRUTH).isEqualTo(PPAPI_AND_SYSTEM_SERVER);
}
@Test
public void testDefaultBlockedTopicsConsentSourceOfTruth_isS() {
Assume.assumeTrue(SdkLevel.isAtLeastS() && !SdkLevel.isAtLeastT());
// On S, default is APPSEARCH_ONLY.
assertThat(DEFAULT_BLOCKED_TOPICS_SOURCE_OF_TRUTH).isEqualTo(APPSEARCH_ONLY);
}
@Test
public void testDefaultBlockedTopicsConsentSourceOfTruth_isR() {
Assume.assumeFalse(SdkLevel.isAtLeastS());
// On R, default is PPAPI_AND_ADEXT_SERVICE.
assertThat(DEFAULT_BLOCKED_TOPICS_SOURCE_OF_TRUTH).isEqualTo(PPAPI_AND_ADEXT_SERVICE);
}
@Test
public void testGetBlockedTopicsSourceOfTruth() {
assertThat(mPhFlags.getBlockedTopicsSourceOfTruth())
.isEqualTo(DEFAULT_BLOCKED_TOPICS_SOURCE_OF_TRUTH);
int phOverridingValue = DEFAULT_BLOCKED_TOPICS_SOURCE_OF_TRUTH + 42;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_BLOCKED_TOPICS_SOURCE_OF_TRUTH,
Integer.toString(phOverridingValue),
/* makeDefault */ false);
assertThat(mPhFlags.getBlockedTopicsSourceOfTruth()).isEqualTo(phOverridingValue);
}
@Test
public void testGetGlobalBlockedTopicIds() {
// Without any overriding, the list is empty
assertThat(mPhFlags.getGlobalBlockedTopicIds()).isEmpty();
// Valid values passed as part of the PhFlag
setGlobalBlockedTopicIds("10, 11, 12");
assertThat(mPhFlags.getGlobalBlockedTopicIds()).isEqualTo(ImmutableList.of(10, 11, 12));
setGlobalBlockedTopicIds(" 10, 11, 12");
assertThat(mPhFlags.getGlobalBlockedTopicIds()).isEqualTo(ImmutableList.of(10, 11, 12));
setGlobalBlockedTopicIds(" ");
assertThat(mPhFlags.getGlobalBlockedTopicIds()).isEqualTo(ImmutableList.of());
setGlobalBlockedTopicIds("");
assertThat(mPhFlags.getGlobalBlockedTopicIds()).isEqualTo(ImmutableList.of());
// Invalid values passed as part of PhFlag.
setGlobalBlockedTopicIds("1,a");
assertThat(mPhFlags.getGlobalBlockedTopicIds()).isEmpty();
}
private void setGlobalBlockedTopicIds(String blockedTopicIds) {
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_GLOBAL_BLOCKED_TOPIC_IDS,
blockedTopicIds,
/* makeDefault= */ false);
}
@Test
public void testGetErrorCodeLoggingDenyList() {
// Without any overriding, the list is empty
assertThat(mPhFlags.getErrorCodeLoggingDenyList()).isEmpty();
// Valid values passed as part of the PhFlag
setErrorCodeLoggingDenyList("10, 11, 12");
assertThat(mPhFlags.getErrorCodeLoggingDenyList()).isEqualTo(ImmutableList.of(10, 11, 12));
setErrorCodeLoggingDenyList(" 10, 11, 12");
assertThat(mPhFlags.getErrorCodeLoggingDenyList()).isEqualTo(ImmutableList.of(10, 11, 12));
setErrorCodeLoggingDenyList(" ");
assertThat(mPhFlags.getErrorCodeLoggingDenyList()).isEqualTo(ImmutableList.of());
setErrorCodeLoggingDenyList("");
assertThat(mPhFlags.getErrorCodeLoggingDenyList()).isEqualTo(ImmutableList.of());
// Invalid values passed as part of PhFlag.
setErrorCodeLoggingDenyList("1,a, 34");
assertThat(mPhFlags.getErrorCodeLoggingDenyList()).isEqualTo(ImmutableList.of(1, 34));
}
private void setErrorCodeLoggingDenyList(String errorCodeLoggingDenyList) {
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_ERROR_CODE_LOGGING_DENY_LIST,
errorCodeLoggingDenyList,
/* makeDefault= */ false);
}
private void disableGlobalKillSwitch() {
// Override the global_kill_switch to test other flag values.
overrideGlobalKillSwitch(false);
}
private void disableSelectAdsKillSwitch() {
// Override the select adds kill switch to test other flag values.
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_FLEDGE_SELECT_ADS_KILL_SWITCH,
Boolean.toString(false),
/* makeDefault */ false);
}
private void setEnrollmentBlocklist(String blocklistFlag) {
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_ENROLLMENT_BLOCKLIST_IDS,
blocklistFlag,
false);
}
@Test
public void testGetUiOtaStringsManifestFileUrl() {
assertThat(mPhFlags.getUiOtaStringsManifestFileUrl())
.isEqualTo(UI_OTA_STRINGS_MANIFEST_FILE_URL);
String phOverridingValue = UI_OTA_STRINGS_MANIFEST_FILE_URL + "testFileUrl";
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_UI_OTA_STRINGS_MANIFEST_FILE_URL,
phOverridingValue,
/* makeDefault */ false);
assertThat(mPhFlags.getUiOtaStringsManifestFileUrl()).isEqualTo(phOverridingValue);
}
@Test
public void testIsEeaDeviceFeatureEnabled() {
assertThat(mPhFlags.isEeaDeviceFeatureEnabled()).isEqualTo(IS_EEA_DEVICE_FEATURE_ENABLED);
boolean phOverridingValue = !IS_EEA_DEVICE_FEATURE_ENABLED;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_IS_EEA_DEVICE_FEATURE_ENABLED,
Boolean.toString(phOverridingValue),
/* makeDefault */ false);
assertThat(mPhFlags.isEeaDeviceFeatureEnabled()).isEqualTo(phOverridingValue);
}
@Test
public void testIsEeaDevice() {
assertThat(mPhFlags.isEeaDevice()).isEqualTo(IS_EEA_DEVICE);
boolean phOverridingValue = !IS_EEA_DEVICE;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_IS_EEA_DEVICE,
Boolean.toString(phOverridingValue),
/* makeDefault */ false);
assertThat(mPhFlags.isEeaDevice()).isEqualTo(phOverridingValue);
}
@Test
public void testIsUiFeatureTypeLoggingEnabled() {
assertThat(mPhFlags.isUiFeatureTypeLoggingEnabled())
.isEqualTo(UI_FEATURE_TYPE_LOGGING_ENABLED);
boolean phOverridingValue = !UI_FEATURE_TYPE_LOGGING_ENABLED;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_UI_FEATURE_TYPE_LOGGING_ENABLED,
Boolean.toString(phOverridingValue),
/* makeDefault */ false);
assertThat(mPhFlags.isUiFeatureTypeLoggingEnabled()).isEqualTo(phOverridingValue);
}
@Test
public void testGetUiEeaCountries() {
assertThat(mPhFlags.getUiEeaCountries()).isEqualTo(UI_EEA_COUNTRIES);
String phOverridingValue = UI_EEA_COUNTRIES + "US,PL,GB";
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_UI_EEA_COUNTRIES,
phOverridingValue,
/* makeDefault */ false);
assertThat(mPhFlags.getUiEeaCountries()).isEqualTo(phOverridingValue);
}
@Test
public void testCompatLoggingKillSwitch() {
// Without any overriding, the value is the hard coded constant.
assertThat(mPhFlags.getCompatLoggingKillSwitch()).isEqualTo(COMPAT_LOGGING_KILL_SWITCH);
boolean phOverridingValue = !COMPAT_LOGGING_KILL_SWITCH;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_COMPAT_LOGGING_KILL_SWITCH,
Boolean.toString(phOverridingValue),
/* makeDefault */ false);
assertThat(mPhFlags.getCompatLoggingKillSwitch()).isEqualTo(phOverridingValue);
}
@Test
public void testBackgroundJobsLoggingKillSwitch() {
// Without any overriding, the value is the hard coded constant.
assertThat(mPhFlags.getBackgroundJobsLoggingKillSwitch())
.isEqualTo(BACKGROUND_JOBS_LOGGING_KILL_SWITCH);
boolean phOverridingValue = !BACKGROUND_JOBS_LOGGING_KILL_SWITCH;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_BACKGROUND_JOBS_LOGGING_KILL_SWITCH,
Boolean.toString(phOverridingValue),
/* makeDefault */ false);
assertThat(mPhFlags.getBackgroundJobsLoggingKillSwitch()).isEqualTo(phOverridingValue);
}
@Test
public void testEnableBackCompat_sdkIsAtleastT_enableBackCompatTrue_isFalse() {
testEnableBackCompat(
/* isSdkAtleastT */ true, /* enableBackCompat */ true, /* expected */ false);
}
@Test
public void testEnableBackCompat_sdkIsSMinus_enableBackCompatTrue_isTrue() {
testEnableBackCompat(
/* isSdkAtleastT */ false, /* enableBackCompat */ true, /* expected */ true);
}
@Test
public void testEnableBackCompat_sdkIsAtleastT_enableBackCompatFalse_isFalse() {
testEnableBackCompat(
/* isSdkAtleastT */ true, /* enableBackCompat */ false, /* expected */ false);
}
@Test
public void testEnableBackCompat_sdkIsSMinus_enableBackCompatFalse_isFalse() {
testEnableBackCompat(
/* isSdkAtleastT */ false, /* enableBackCompat */ false, /* expected */ false);
}
private void testEnableBackCompat(
boolean sdkAtleastT, boolean enableBackCompat, boolean expected) {
mockIsAtLeastT(sdkAtleastT);
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_ENABLE_BACK_COMPAT,
Boolean.toString(enableBackCompat),
/* makeDefault */ false);
assertThat(mPhFlags.getEnableBackCompat()).isEqualTo(expected);
}
@Test
public void testDefaultEnableAppsearchConsentData_isAtLeastT() {
Assume.assumeTrue(SdkLevel.isAtLeastT());
// On T+, default is false.
assertWithMessage("%s on T", FlagsConstants.KEY_ENABLE_APPSEARCH_CONSENT_DATA)
.that(ENABLE_APPSEARCH_CONSENT_DATA)
.isFalse();
}
@Test
public void testDefaultEnableAppsearchConsentData_isS() {
Assume.assumeTrue(SdkLevel.isAtLeastS() && !SdkLevel.isAtLeastT());
// On S, default is true.
assertWithMessage("%s on S", FlagsConstants.KEY_ENABLE_APPSEARCH_CONSENT_DATA)
.that(ENABLE_APPSEARCH_CONSENT_DATA)
.isTrue();
}
@Test
public void testDefaultEnableAppsearchConsentData_isR() {
Assume.assumeFalse(SdkLevel.isAtLeastS());
// On R, default is true.
assertWithMessage("%s on R", FlagsConstants.KEY_ENABLE_APPSEARCH_CONSENT_DATA)
.that(ENABLE_APPSEARCH_CONSENT_DATA)
.isFalse();
}
@Test
public void testEnableBackCompatAppsearch() {
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_ENABLE_BACK_COMPAT,
Boolean.toString(true),
/* makeDefault */ false);
mockIsAtLeastT(false);
// Without any overriding, the value is the hard coded constant.
assertThat(mPhFlags.getEnableAppsearchConsentData())
.isEqualTo(ENABLE_APPSEARCH_CONSENT_DATA);
boolean phOverridingValue = !ENABLE_APPSEARCH_CONSENT_DATA;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_ENABLE_APPSEARCH_CONSENT_DATA,
Boolean.toString(phOverridingValue),
/* makeDefault */ false);
assertThat(mPhFlags.getEnableAppsearchConsentData()).isEqualTo(phOverridingValue);
}
@Test
public void testDefaultEnableAdExtServiceConsentData_isAtLeastS() {
Assume.assumeTrue(SdkLevel.isAtLeastS());
// On S+, default is false.
assertWithMessage("%s on S", KEY_ENABLE_ADEXT_SERVICE_CONSENT_DATA)
.that(ENABLE_ADEXT_SERVICE_CONSENT_DATA)
.isFalse();
}
@Test
public void testDefaultEnableAdExtServiceConsentData_isR() {
Assume.assumeFalse(SdkLevel.isAtLeastR());
// On R, default is true.
assertWithMessage("%s on R", KEY_ENABLE_ADEXT_SERVICE_CONSENT_DATA)
.that(ENABLE_ADEXT_SERVICE_CONSENT_DATA)
.isTrue();
}
@Test
public void testOverrideEnableAdExtServiceConsentData() {
// Without any overriding, the value is the hard coded constant.
assertThat(mPhFlags.getEnableAdExtServiceConsentData())
.isEqualTo(ENABLE_ADEXT_SERVICE_CONSENT_DATA);
boolean phOverridingValue = !ENABLE_ADEXT_SERVICE_CONSENT_DATA;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_ENABLE_ADEXT_SERVICE_CONSENT_DATA,
Boolean.toString(phOverridingValue),
/* makeDefault */ false);
assertThat(mPhFlags.getEnableAdExtServiceConsentData()).isEqualTo(phOverridingValue);
}
@Test
public void testEuNotifFlowChangeEnabled() {
// Without any overriding, the value is the hard coded constant.
assertThat(mPhFlags.getEuNotifFlowChangeEnabled())
.isEqualTo(DEFAULT_EU_NOTIF_FLOW_CHANGE_ENABLED);
boolean phOverridingValue = !DEFAULT_EU_NOTIF_FLOW_CHANGE_ENABLED;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_EU_NOTIF_FLOW_CHANGE_ENABLED,
Boolean.toString(phOverridingValue),
/* makeDefault */ false);
assertThat(mPhFlags.getEuNotifFlowChangeEnabled()).isEqualTo(phOverridingValue);
}
@Test
public void testGetRecordManualInteractionEnabled() {
// Without any overriding, the value is the hard coded constant.
assertThat(mPhFlags.getRecordManualInteractionEnabled())
.isEqualTo(RECORD_MANUAL_INTERACTION_ENABLED);
boolean phOverridingValue = !RECORD_MANUAL_INTERACTION_ENABLED;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_RECORD_MANUAL_INTERACTION_ENABLED,
Boolean.toString(phOverridingValue),
/* makeDefault */ true);
assertThat(mPhFlags.getRecordManualInteractionEnabled()).isEqualTo(phOverridingValue);
}
@Test
public void testNotificationDismissedOnClick() {
// Without any overriding, the value is the hard coded constant.
assertThat(mPhFlags.getNotificationDismissedOnClick())
.isEqualTo(DEFAULT_NOTIFICATION_DISMISSED_ON_CLICK);
boolean phOverridingValue = !DEFAULT_NOTIFICATION_DISMISSED_ON_CLICK;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_NOTIFICATION_DISMISSED_ON_CLICK,
Boolean.toString(phOverridingValue),
/* makeDefault */ false);
assertThat(mPhFlags.getNotificationDismissedOnClick()).isEqualTo(phOverridingValue);
}
@Test
public void testIsBackCompatActivityFeatureEnabled() {
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_ENABLE_BACK_COMPAT,
Boolean.toString(true),
/* makeDefault */ false);
mockIsAtLeastT(false);
assertThat(mPhFlags.isBackCompatActivityFeatureEnabled())
.isEqualTo(IS_BACK_COMPACT_ACTIVITY_FEATURE_ENABLED);
boolean phOverridingValue = !IS_BACK_COMPACT_ACTIVITY_FEATURE_ENABLED;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_IS_BACK_COMPACT_ACTIVITY_FEATURE_ENABLED,
Boolean.toString(phOverridingValue),
/* makeDefault */ false);
assertThat(mPhFlags.isBackCompatActivityFeatureEnabled()).isEqualTo(phOverridingValue);
}
@Test
public void testGetMeasurementRollbackDeletionAppSearchKillSwitch() {
// Disable global_kill_switch so that this flag can be tested.
disableGlobalKillSwitch();
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_ENABLE_BACK_COMPAT,
Boolean.toString(true),
/* makeDefault */ false);
mockIsAtLeastT(false);
// Without any overriding, the value is the hard coded constant.
assertThat(mPhFlags.getMeasurementRollbackDeletionAppSearchKillSwitch())
.isEqualTo(MEASUREMENT_ROLLBACK_DELETION_APP_SEARCH_KILL_SWITCH);
boolean phOverridingValue = !MEASUREMENT_ROLLBACK_DELETION_APP_SEARCH_KILL_SWITCH;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_MEASUREMENT_ROLLBACK_DELETION_APP_SEARCH_KILL_SWITCH,
Boolean.toString(phOverridingValue),
/* makeDefault */ false);
assertThat(mPhFlags.getMeasurementRollbackDeletionAppSearchKillSwitch())
.isEqualTo(phOverridingValue);
}
@Test
public void testGetMeasurementRollbackDeletionAppSearchKillSwitch_globalOverride() {
// Disable global_kill_switch so that this flag can be tested.
disableGlobalKillSwitch();
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_ENABLE_BACK_COMPAT,
Boolean.toString(true),
/* makeDefault */ false);
mockIsAtLeastT(false);
// Without any overriding, the value is the hard coded constant.
assertThat(mPhFlags.getMeasurementRollbackDeletionAppSearchKillSwitch())
.isEqualTo(MEASUREMENT_ROLLBACK_DELETION_APP_SEARCH_KILL_SWITCH);
boolean phOverridingValue = !MEASUREMENT_ROLLBACK_DELETION_APP_SEARCH_KILL_SWITCH;
overrideGlobalKillSwitch(phOverridingValue);
assertThat(mPhFlags.getMeasurementRollbackDeletionAppSearchKillSwitch())
.isEqualTo(phOverridingValue);
}
@Test
public void testGetMeasurementRollbackDeletionAppSearchKillSwitch_measurementOverride() {
// Disable global_kill_switch so that this flag can be tested.
disableGlobalKillSwitch();
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_ENABLE_BACK_COMPAT,
Boolean.toString(true),
/* makeDefault */ false);
mockIsAtLeastT(false);
// Without any overriding, the value is the hard coded constant.
assertThat(mPhFlags.getMeasurementRollbackDeletionAppSearchKillSwitch())
.isEqualTo(MEASUREMENT_ROLLBACK_DELETION_APP_SEARCH_KILL_SWITCH);
boolean phOverridingValue = !MEASUREMENT_ROLLBACK_DELETION_APP_SEARCH_KILL_SWITCH;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_MEASUREMENT_KILL_SWITCH,
Boolean.toString(true),
/* makeDefault */ false);
assertThat(mPhFlags.getMeasurementRollbackDeletionAppSearchKillSwitch())
.isEqualTo(phOverridingValue);
}
// CHECKSTYLE:ON IndentationCheck
@Test
public void testU18UxEnabled() {
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_ENABLE_AD_SERVICES_SYSTEM_API,
Boolean.toString(true),
/* makeDefault */ false);
// Without any overriding, the value is the hard coded constant.
assertThat(mPhFlags.getU18UxEnabled()).isEqualTo(DEFAULT_U18_UX_ENABLED);
boolean phOverridingValue = !DEFAULT_U18_UX_ENABLED;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_U18_UX_ENABLED,
Boolean.toString(phOverridingValue),
/* makeDefault */ false);
assertThat(mPhFlags.getU18UxEnabled()).isEqualTo(phOverridingValue);
}
@Test
public void testRvcUxEnabled_adServicesSystemApiTrue_rvcUxTrue() {
testRvcUxEnabled(true, true, true);
}
@Test
public void testRvcUxEnabled_adServicesSystemApiTrue_rvcUxFalse() {
testRvcUxEnabled(true, false, false);
}
@Test
public void testRvcUxEnabled_adServicesSystemApiFalse_rvcUxTrue() {
testRvcUxEnabled(false, true, false);
}
@Test
public void testRvcUxEnabled_adServicesSystemApiFalse_rvcUxFalse() {
testRvcUxEnabled(false, false, false);
}
private void testRvcUxEnabled(
boolean adServicesSystemApi, boolean phOverridingValue, boolean expected) {
// Without any overriding, the value is the hard coded constant.
assertThat(mPhFlags.getEnableRvcUx()).isEqualTo(DEFAULT_RVC_UX_ENABLED);
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_ENABLE_AD_SERVICES_SYSTEM_API,
Boolean.toString(adServicesSystemApi),
/* makeDefault */ false);
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_RVC_UX_ENABLED,
Boolean.toString(phOverridingValue),
/* makeDefault */ false);
assertThat(mPhFlags.getEnableRvcUx()).isEqualTo(expected);
}
@Test
public void testRvcNotificationEnabled_adServicesSystemApiTrue_rvcNotificationTrue() {
testRvcNotificationEnabled(true, true, true);
}
@Test
public void testRvcNotificationEnabled_adServicesSystemApiTrue_rvcNotificationFalse() {
testRvcNotificationEnabled(true, false, false);
}
@Test
public void testRvcNotificationEnabled_adServicesSystemApiFalse_rvcNotificationTrue() {
testRvcNotificationEnabled(false, true, false);
}
@Test
public void testRvcNotificationEnabled_adServicesSystemApiFalse_rvcNotificationFalse() {
testRvcNotificationEnabled(false, false, false);
}
private void testRvcNotificationEnabled(
boolean adServicesSystemApi, boolean phOverridingValue, boolean expected) {
// Without any overriding, the value is the hard coded constant.
assertThat(mPhFlags.getEnableRvcNotification()).isEqualTo(DEFAULT_RVC_NOTIFICATION_ENABLED);
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_ENABLE_AD_SERVICES_SYSTEM_API,
Boolean.toString(adServicesSystemApi),
/* makeDefault */ false);
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_RVC_NOTIFICATION_ENABLED,
Boolean.toString(phOverridingValue),
/* makeDefault */ false);
assertThat(mPhFlags.getEnableRvcNotification()).isEqualTo(expected);
}
@Test
public void testDebugUx() {
// Without any overriding, the value is the hard coded constant.
assertThat(mPhFlags.getDebugUx()).isEqualTo(DEBUG_UX);
String phOverridingValue = DEBUG_UX + "GA_UX";
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_DEBUG_UX,
phOverridingValue,
/* makeDefault */ false);
assertThat(mPhFlags.getDebugUx()).isEqualTo(phOverridingValue);
}
@Test
public void testEnableAdServicesSystemApi() {
// Without any overriding, the value is the hard coded constant.
assertThat(mPhFlags.getEnableAdServicesSystemApi())
.isEqualTo(DEFAULT_ENABLE_AD_SERVICES_SYSTEM_API);
boolean phOverridingValue = !DEFAULT_ENABLE_AD_SERVICES_SYSTEM_API;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_ENABLE_AD_SERVICES_SYSTEM_API,
Boolean.toString(phOverridingValue),
/* makeDefault */ false);
assertThat(mPhFlags.getEnableAdServicesSystemApi()).isEqualTo(phOverridingValue);
}
@Test
public void testGetMeasurementEnableCoarseEventReportDestinations() {
// Without any overriding, the value is the hard coded constant.
assertThat(mPhFlags.getMeasurementEnableCoarseEventReportDestinations())
.isEqualTo(DEFAULT_MEASUREMENT_ENABLE_COARSE_EVENT_REPORT_DESTINATIONS);
boolean phOverridingValue = !DEFAULT_MEASUREMENT_ENABLE_COARSE_EVENT_REPORT_DESTINATIONS;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_MEASUREMENT_ENABLE_COARSE_EVENT_REPORT_DESTINATIONS,
Boolean.toString(phOverridingValue),
/* makeDefault */ false);
assertThat(mPhFlags.getMeasurementEnableCoarseEventReportDestinations())
.isEqualTo(phOverridingValue);
}
@Test
public void testGetMeasurementMaxDistinctWebDestinationsInSourceRegistration() {
assertThat(mPhFlags.getMeasurementMaxDistinctWebDestinationsInSourceRegistration())
.isEqualTo(MEASUREMENT_MAX_DISTINCT_WEB_DESTINATIONS_IN_SOURCE_REGISTRATION);
// Now overriding with the value from PH.
int phOverridingValue =
MEASUREMENT_MAX_DISTINCT_WEB_DESTINATIONS_IN_SOURCE_REGISTRATION + 20;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_MEASUREMENT_MAX_DISTINCT_WEB_DESTINATIONS_IN_SOURCE_REGISTRATION,
Integer.toString(phOverridingValue),
/* makeDefault */ false);
assertThat(mPhFlags.getMeasurementMaxDistinctWebDestinationsInSourceRegistration())
.isEqualTo(phOverridingValue);
}
@Test
public void testGetMeasurementMaxReportingRegisterSourceExpirationInSeconds() {
assertThat(mPhFlags.getMeasurementMaxReportingRegisterSourceExpirationInSeconds())
.isEqualTo(MEASUREMENT_MAX_REPORTING_REGISTER_SOURCE_EXPIRATION_IN_SECONDS);
// Now overriding with the value from PH.
long phOverridingValue =
MEASUREMENT_MAX_REPORTING_REGISTER_SOURCE_EXPIRATION_IN_SECONDS
+ TimeUnit.DAYS.toSeconds(2);
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_MEASUREMENT_MAX_REPORTING_REGISTER_SOURCE_EXPIRATION_IN_SECONDS,
Long.toString(phOverridingValue),
/* makeDefault */ false);
assertThat(mPhFlags.getMeasurementMaxReportingRegisterSourceExpirationInSeconds())
.isEqualTo(phOverridingValue);
}
@Test
public void testGetMeasurementMinReportingRegisterSourceExpirationInSeconds() {
assertThat(mPhFlags.getMeasurementMinReportingRegisterSourceExpirationInSeconds())
.isEqualTo(MEASUREMENT_MIN_REPORTING_REGISTER_SOURCE_EXPIRATION_IN_SECONDS);
// Now overriding with the value from PH.
long phOverridingValue =
MEASUREMENT_MIN_REPORTING_REGISTER_SOURCE_EXPIRATION_IN_SECONDS
+ TimeUnit.DAYS.toSeconds(2);
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_MEASUREMENT_MIN_REPORTING_REGISTER_SOURCE_EXPIRATION_IN_SECONDS,
Long.toString(phOverridingValue),
/* makeDefault */ false);
assertThat(mPhFlags.getMeasurementMinReportingRegisterSourceExpirationInSeconds())
.isEqualTo(phOverridingValue);
}
@Test
public void testGetMeasurementMaxInstallAttributionWindow() {
assertThat(mPhFlags.getMeasurementMaxInstallAttributionWindow())
.isEqualTo(MEASUREMENT_MAX_INSTALL_ATTRIBUTION_WINDOW);
// Now overriding with the value from PH.
long phOverridingValue = MEASUREMENT_MAX_INSTALL_ATTRIBUTION_WINDOW + 20;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_MEASUREMENT_MAX_INSTALL_ATTRIBUTION_WINDOW,
Long.toString(phOverridingValue),
/* makeDefault */ false);
assertThat(mPhFlags.getMeasurementMaxInstallAttributionWindow())
.isEqualTo(phOverridingValue);
}
@Test
public void testGetMeasurementMinInstallAttributionWindow() {
assertThat(mPhFlags.getMeasurementMinInstallAttributionWindow())
.isEqualTo(MEASUREMENT_MIN_INSTALL_ATTRIBUTION_WINDOW);
// Now overriding with the value from PH.
long phOverridingValue = MEASUREMENT_MIN_INSTALL_ATTRIBUTION_WINDOW + 20;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_MEASUREMENT_MIN_INSTALL_ATTRIBUTION_WINDOW,
Long.toString(phOverridingValue),
/* makeDefault */ false);
assertThat(mPhFlags.getMeasurementMinInstallAttributionWindow())
.isEqualTo(phOverridingValue);
}
@Test
public void testGetMeasurementMaxPostInstallExclusivityWindow() {
assertThat(mPhFlags.getMeasurementMaxPostInstallExclusivityWindow())
.isEqualTo(MEASUREMENT_MAX_POST_INSTALL_EXCLUSIVITY_WINDOW);
// Now overriding with the value from PH.
long phOverridingValue = MEASUREMENT_MAX_POST_INSTALL_EXCLUSIVITY_WINDOW + 20;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_MEASUREMENT_MAX_POST_INSTALL_EXCLUSIVITY_WINDOW,
Long.toString(phOverridingValue),
/* makeDefault */ false);
assertThat(mPhFlags.getMeasurementMaxPostInstallExclusivityWindow())
.isEqualTo(phOverridingValue);
}
@Test
public void testGetMeasurementMinPostInstallExclusivityWindow() {
assertThat(mPhFlags.getMeasurementMinPostInstallExclusivityWindow())
.isEqualTo(MEASUREMENT_MIN_POST_INSTALL_EXCLUSIVITY_WINDOW);
// Now overriding with the value from PH.
long phOverridingValue = MEASUREMENT_MIN_POST_INSTALL_EXCLUSIVITY_WINDOW + 20;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_MEASUREMENT_MIN_POST_INSTALL_EXCLUSIVITY_WINDOW,
Long.toString(phOverridingValue),
/* makeDefault */ false);
assertThat(mPhFlags.getMeasurementMinPostInstallExclusivityWindow())
.isEqualTo(phOverridingValue);
}
@Test
public void testGetMeasurementMaxSumOfAggregateValuesPerSource() {
assertThat(mPhFlags.getMeasurementMaxSumOfAggregateValuesPerSource())
.isEqualTo(MEASUREMENT_MAX_SUM_OF_AGGREGATE_VALUES_PER_SOURCE);
// Now overriding with the value from PH.
int phOverridingValue = MEASUREMENT_MAX_SUM_OF_AGGREGATE_VALUES_PER_SOURCE + 23;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_MEASUREMENT_MAX_SUM_OF_AGGREGATE_VALUES_PER_SOURCE,
Integer.toString(phOverridingValue),
/* makeDefault */ false);
assertThat(mPhFlags.getMeasurementMaxSumOfAggregateValuesPerSource())
.isEqualTo(phOverridingValue);
}
@Test
public void testGetMeasurementRateLimitWindowMilliseconds() {
assertThat(mPhFlags.getMeasurementRateLimitWindowMilliseconds())
.isEqualTo(MEASUREMENT_RATE_LIMIT_WINDOW_MILLISECONDS);
// Now overriding with the value from PH.
long phOverridingValue = MEASUREMENT_RATE_LIMIT_WINDOW_MILLISECONDS + 20;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_MEASUREMENT_RATE_LIMIT_WINDOW_MILLISECONDS,
Long.toString(phOverridingValue),
/* makeDefault */ false);
assertThat(mPhFlags.getMeasurementRateLimitWindowMilliseconds())
.isEqualTo(phOverridingValue);
}
@Test
public void testGetMeasurementMinReportingOriginUpdateWindow() {
assertThat(mPhFlags.getMeasurementMinReportingOriginUpdateWindow())
.isEqualTo(MEASUREMENT_MIN_REPORTING_ORIGIN_UPDATE_WINDOW);
// Now overriding with the value from PH.
long phOverridingValue =
MEASUREMENT_MIN_REPORTING_ORIGIN_UPDATE_WINDOW + TimeUnit.DAYS.toSeconds(2);
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_MEASUREMENT_MIN_REPORTING_ORIGIN_UPDATE_WINDOW,
Long.toString(phOverridingValue),
/* makeDefault */ false);
assertThat(mPhFlags.getMeasurementMinReportingOriginUpdateWindow())
.isEqualTo(phOverridingValue);
}
@Test
public void testGetMeasurementInstallAttrDualDestinationEventNoiseProbability() {
assertThat(mPhFlags.getMeasurementInstallAttrDualDestinationEventNoiseProbability())
.isEqualTo(MEASUREMENT_INSTALL_ATTR_DUAL_DESTINATION_EVENT_NOISE_PROBABILITY);
// Now overriding with the value from PH.
float phOverridingValue =
MEASUREMENT_INSTALL_ATTR_DUAL_DESTINATION_EVENT_NOISE_PROBABILITY + .0001f;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_MEASUREMENT_INSTALL_ATTR_DUAL_DESTINATION_EVENT_NOISE_PROBABILITY,
Float.toString(phOverridingValue),
/* makeDefault */ false);
assertThat(mPhFlags.getMeasurementInstallAttrDualDestinationEventNoiseProbability())
.isEqualTo(phOverridingValue);
}
@Test
public void testGetMeasurementDualDestinationNavigationNoiseProbability() {
assertThat(mPhFlags.getMeasurementDualDestinationNavigationNoiseProbability())
.isEqualTo(MEASUREMENT_DUAL_DESTINATION_NAVIGATION_NOISE_PROBABILITY);
// Now overriding with the value from PH.
float phOverridingValue =
MEASUREMENT_DUAL_DESTINATION_NAVIGATION_NOISE_PROBABILITY + .0001f;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_MEASUREMENT_DUAL_DESTINATION_NAVIGATION_NOISE_PROBABILITY,
Float.toString(phOverridingValue),
/* makeDefault */ false);
assertThat(mPhFlags.getMeasurementDualDestinationNavigationNoiseProbability())
.isEqualTo(phOverridingValue);
}
@Test
public void testGetMeasurementInstallAttrDualDestinationNavigationNoiseProbability() {
assertThat(mPhFlags.getMeasurementInstallAttrDualDestinationNavigationNoiseProbability())
.isEqualTo(MEASUREMENT_INSTALL_ATTR_DUAL_DESTINATION_NAVIGATION_NOISE_PROBABILITY);
// Now overriding with the value from PH.
float phOverridingValue =
MEASUREMENT_INSTALL_ATTR_DUAL_DESTINATION_NAVIGATION_NOISE_PROBABILITY + .0001f;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_MEASUREMENT_INSTALL_ATTR_DUAL_DESTINATION_NAVIGATION_NOISE_PROBABILITY,
Float.toString(phOverridingValue),
/* makeDefault */ false);
assertThat(mPhFlags.getMeasurementInstallAttrDualDestinationNavigationNoiseProbability())
.isEqualTo(phOverridingValue);
}
@Test
public void testGetMeasurementDualDestinationEventNoiseProbability() {
assertThat(mPhFlags.getMeasurementDualDestinationEventNoiseProbability())
.isEqualTo(MEASUREMENT_DUAL_DESTINATION_EVENT_NOISE_PROBABILITY);
// Now overriding with the value from PH.
float phOverridingValue = MEASUREMENT_DUAL_DESTINATION_EVENT_NOISE_PROBABILITY + .0001f;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_MEASUREMENT_DUAL_DESTINATION_EVENT_NOISE_PROBABILITY,
Float.toString(phOverridingValue),
/* makeDefault */ false);
assertThat(mPhFlags.getMeasurementDualDestinationEventNoiseProbability())
.isEqualTo(phOverridingValue);
}
@Test
public void testGetMeasurementInstallAttrEventNoiseProbability() {
assertThat(mPhFlags.getMeasurementInstallAttrEventNoiseProbability())
.isEqualTo(MEASUREMENT_INSTALL_ATTR_EVENT_NOISE_PROBABILITY);
// Now overriding with the value from PH.
float phOverridingValue = MEASUREMENT_INSTALL_ATTR_EVENT_NOISE_PROBABILITY + .0001f;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_MEASUREMENT_INSTALL_ATTR_EVENT_NOISE_PROBABILITY,
Float.toString(phOverridingValue),
/* makeDefault */ false);
assertThat(mPhFlags.getMeasurementInstallAttrEventNoiseProbability())
.isEqualTo(phOverridingValue);
}
@Test
public void testGetMeasurementInstallAttrNavigationNoiseProbability() {
assertThat(mPhFlags.getMeasurementInstallAttrNavigationNoiseProbability())
.isEqualTo(MEASUREMENT_INSTALL_ATTR_NAVIGATION_NOISE_PROBABILITY);
// Now overriding with the value from PH.
float phOverridingValue = MEASUREMENT_INSTALL_ATTR_NAVIGATION_NOISE_PROBABILITY + .0001f;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_MEASUREMENT_INSTALL_ATTR_NAVIGATION_NOISE_PROBABILITY,
Float.toString(phOverridingValue),
/* makeDefault */ false);
assertThat(mPhFlags.getMeasurementInstallAttrNavigationNoiseProbability())
.isEqualTo(phOverridingValue);
}
@Test
public void testGetMeasurementEventNoiseProbability() {
assertThat(mPhFlags.getMeasurementEventNoiseProbability())
.isEqualTo(MEASUREMENT_EVENT_NOISE_PROBABILITY);
// Now overriding with the value from PH.
float phOverridingValue = MEASUREMENT_EVENT_NOISE_PROBABILITY + .0001f;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_MEASUREMENT_EVENT_NOISE_PROBABILITY,
Float.toString(phOverridingValue),
/* makeDefault */ false);
assertThat(mPhFlags.getMeasurementEventNoiseProbability()).isEqualTo(phOverridingValue);
}
@Test
public void testGetMeasurementNavigationNoiseProbability() {
assertThat(mPhFlags.getMeasurementNavigationNoiseProbability())
.isEqualTo(MEASUREMENT_NAVIGATION_NOISE_PROBABILITY);
// Now overriding with the value from PH.
float phOverridingValue = MEASUREMENT_NAVIGATION_NOISE_PROBABILITY + .0001f;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_MEASUREMENT_NAVIGATION_NOISE_PROBABILITY,
Float.toString(phOverridingValue),
/* makeDefault */ false);
assertThat(mPhFlags.getMeasurementNavigationNoiseProbability())
.isEqualTo(phOverridingValue);
}
@Test
public void testGetMeasurementEnablePreinstallCheck() {
// The priority of applying the flag values: PH (DeviceConfig) and then hard-coded value.
assertThat(mPhFlags.getMeasurementEnablePreinstallCheck())
.isEqualTo(MEASUREMENT_ENABLE_PREINSTALL_CHECK);
// Now overriding with the value from PH.
boolean phOverridingValue = !MEASUREMENT_ENABLE_PREINSTALL_CHECK;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_MEASUREMENT_ENABLE_PREINSTALL_CHECK,
Boolean.toString(phOverridingValue),
/* makeDefault */ false);
assertThat(mPhFlags.getMeasurementEnablePreinstallCheck()).isEqualTo(phOverridingValue);
}
@Test
public void testGetMeasurementEnableAraParsingAlignmentV1() {
// Without any overriding, the value is the hard coded constant.
assertThat(mPhFlags.getMeasurementEnableAraParsingAlignmentV1())
.isEqualTo(MEASUREMENT_ENABLE_ARA_PARSING_ALIGNMENT_V1);
boolean phOverridingValue = !MEASUREMENT_ENABLE_ARA_PARSING_ALIGNMENT_V1;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_MEASUREMENT_ENABLE_ARA_PARSING_ALIGNMENT_V1,
Boolean.toString(phOverridingValue),
/* makeDefault */ false);
assertThat(mPhFlags.getMeasurementEnableAraParsingAlignmentV1())
.isEqualTo(phOverridingValue);
}
@Test
public void testGetMeasurementEnableAraDeduplicationAlignmentV1() {
// Without any overriding, the value is the hard coded constant.
assertThat(mPhFlags.getMeasurementEnableAraDeduplicationAlignmentV1())
.isEqualTo(MEASUREMENT_ENABLE_ARA_DEDUPLICATION_ALIGNMENT_V1);
final boolean phOverridingValue = !MEASUREMENT_ENABLE_ARA_DEDUPLICATION_ALIGNMENT_V1;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_MEASUREMENT_ENABLE_ARA_DEDUPLICATION_ALIGNMENT_V1,
Boolean.toString(phOverridingValue),
/* makeDefault */ false);
assertThat(mPhFlags.getMeasurementEnableAraDeduplicationAlignmentV1())
.isEqualTo(phOverridingValue);
}
@Test
public void testGetMeasurementEnableSourceDeactivationAfterFiltering() {
// Without any overriding, the value is the hard coded constant.
assertThat(mPhFlags.getMeasurementEnableSourceDeactivationAfterFiltering())
.isEqualTo(MEASUREMENT_ENABLE_SOURCE_DEACTIVATION_AFTER_FILTERING);
final boolean phOverridingValue = !MEASUREMENT_ENABLE_SOURCE_DEACTIVATION_AFTER_FILTERING;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_MEASUREMENT_ENABLE_SOURCE_DEACTIVATION_AFTER_FILTERING,
Boolean.toString(phOverridingValue),
/* makeDefault */ false);
assertThat(mPhFlags.getMeasurementEnableSourceDeactivationAfterFiltering())
.isEqualTo(phOverridingValue);
}
@Test
public void testGetMeasurementEnableSharedSourceDebugKey() {
// Without any overriding, the value is the hard coded constant.
assertThat(mPhFlags.getMeasurementEnableSharedSourceDebugKey())
.isEqualTo(MEASUREMENT_ENABLE_SHARED_SOURCE_DEBUG_KEY);
boolean phOverridingValue = !MEASUREMENT_ENABLE_SHARED_SOURCE_DEBUG_KEY;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_MEASUREMENT_ENABLE_SHARED_SOURCE_DEBUG_KEY,
Boolean.toString(phOverridingValue),
/* makeDefault */ false);
assertThat(mPhFlags.getMeasurementEnableSharedSourceDebugKey())
.isEqualTo(phOverridingValue);
}
@Test
public void testGetMeasurementEnableSharedFilterDataKeysXNA() {
// Without any overriding, the value is the hard coded constant.
assertThat(mPhFlags.getMeasurementEnableSharedFilterDataKeysXNA())
.isEqualTo(MEASUREMENT_ENABLE_SHARED_FILTER_DATA_KEYS_XNA);
final boolean phOverridingValue = !MEASUREMENT_ENABLE_SHARED_FILTER_DATA_KEYS_XNA;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_MEASUREMENT_ENABLE_SHARED_FILTER_DATA_KEYS_XNA,
Boolean.toString(phOverridingValue),
/* makeDefault */ false);
assertThat(mPhFlags.getMeasurementEnableSharedFilterDataKeysXNA())
.isEqualTo(phOverridingValue);
}
@Test
public void testGetMeasurementEnableVtcConfigurableMaxEventReports() {
// Without any overriding, the value is the hard coded constant.
assertThat(mPhFlags.getMeasurementEnableVtcConfigurableMaxEventReports())
.isEqualTo(DEFAULT_MEASUREMENT_ENABLE_VTC_CONFIGURABLE_MAX_EVENT_REPORTS);
boolean phOverridingValue = !DEFAULT_MEASUREMENT_ENABLE_VTC_CONFIGURABLE_MAX_EVENT_REPORTS;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_MEASUREMENT_ENABLE_VTC_CONFIGURABLE_MAX_EVENT_REPORTS,
Boolean.toString(phOverridingValue),
/* makeDefault */ false);
assertThat(mPhFlags.getMeasurementEnableVtcConfigurableMaxEventReports())
.isEqualTo(phOverridingValue);
}
@Test
public void testGetMeasurementVtcConfigurableMaxEventReportsCount() {
// Without any overriding, the value is the hard coded constant.
assertThat(mPhFlags.getMeasurementVtcConfigurableMaxEventReportsCount())
.isEqualTo(DEFAULT_MEASUREMENT_VTC_CONFIGURABLE_MAX_EVENT_REPORTS_COUNT);
int phOverridingValue = DEFAULT_MEASUREMENT_VTC_CONFIGURABLE_MAX_EVENT_REPORTS_COUNT + 3;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_MEASUREMENT_VTC_CONFIGURABLE_MAX_EVENT_REPORTS_COUNT,
Integer.toString(phOverridingValue),
/* makeDefault */ false);
assertThat(mPhFlags.getMeasurementVtcConfigurableMaxEventReportsCount())
.isEqualTo(phOverridingValue);
}
@Test
public void testGetMeasurementEnableReportingJobsThrowUnaccountedException() {
// Assert the value before override.
assertThat(mPhFlags.getMeasurementEnableReportingJobsThrowUnaccountedException())
.isEqualTo(MEASUREMENT_ENABLE_REPORTING_JOBS_THROW_UNACCOUNTED_EXCEPTION);
// Now overriding with the value from PH.
boolean phOverridingValue = !MEASUREMENT_ENABLE_REPORTING_JOBS_THROW_UNACCOUNTED_EXCEPTION;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_MEASUREMENT_ENABLE_REPORTING_JOBS_THROW_UNACCOUNTED_EXCEPTION,
Boolean.toString(phOverridingValue),
false);
assertThat(mPhFlags.getMeasurementEnableReportingJobsThrowUnaccountedException())
.isEqualTo(phOverridingValue);
}
@Test
public void testGetMeasurementEnableReportingJobsThrowJsonException() {
// Assert the value before override.
assertThat(mPhFlags.getMeasurementEnableReportingJobsThrowJsonException())
.isEqualTo(MEASUREMENT_ENABLE_REPORTING_JOBS_THROW_JSON_EXCEPTION);
// Now overriding with the value from PH.
boolean phOverridingValue = !MEASUREMENT_ENABLE_REPORTING_JOBS_THROW_JSON_EXCEPTION;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_MEASUREMENT_ENABLE_REPORTING_JOBS_THROW_JSON_EXCEPTION,
Boolean.toString(phOverridingValue),
false);
assertThat(mPhFlags.getMeasurementEnableReportingJobsThrowJsonException())
.isEqualTo(phOverridingValue);
}
@Test
public void testGetMeasurementEnableReportDeletionOnUnrecoverableException() {
// Assert the value before override.
assertThat(mPhFlags.getMeasurementEnableReportDeletionOnUnrecoverableException())
.isEqualTo(MEASUREMENT_ENABLE_DELETE_REPORTS_ON_UNRECOVERABLE_EXCEPTION);
// Now overriding with the value from PH.
boolean phOverridingValue = !MEASUREMENT_ENABLE_DELETE_REPORTS_ON_UNRECOVERABLE_EXCEPTION;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_MEASUREMENT_ENABLE_DELETE_REPORTS_ON_UNRECOVERABLE_EXCEPTION,
Boolean.toString(phOverridingValue),
false);
assertThat(mPhFlags.getMeasurementEnableReportDeletionOnUnrecoverableException())
.isEqualTo(phOverridingValue);
}
@Test
public void testGetMeasurementEnableReportingJobsThrowCryptoException() {
// Assert the value before override.
assertThat(mPhFlags.getMeasurementEnableReportingJobsThrowCryptoException())
.isEqualTo(MEASUREMENT_ENABLE_REPORTING_JOBS_THROW_JSON_EXCEPTION);
// Now overriding with the value from PH.
boolean phOverridingValue = !MEASUREMENT_ENABLE_REPORTING_JOBS_THROW_JSON_EXCEPTION;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_MEASUREMENT_ENABLE_REPORTING_JOBS_THROW_CRYPTO_EXCEPTION,
Boolean.toString(phOverridingValue),
false);
assertThat(mPhFlags.getMeasurementEnableReportingJobsThrowCryptoException())
.isEqualTo(phOverridingValue);
}
@Test
public void testGetMeasurementEnableDatastoreManagerThrowDataStoreException() {
// Assert the value before override.
assertThat(mPhFlags.getMeasurementEnableDatastoreManagerThrowDatastoreException())
.isEqualTo(MEASUREMENT_ENABLE_DATASTORE_MANAGER_THROW_DATASTORE_EXCEPTION);
// Now overriding with the value from PH.
boolean phOverridingValue = !MEASUREMENT_ENABLE_DATASTORE_MANAGER_THROW_DATASTORE_EXCEPTION;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_MEASUREMENT_ENABLE_DATASTORE_MANAGER_THROW_DATASTORE_EXCEPTION,
Boolean.toString(phOverridingValue),
false);
assertThat(mPhFlags.getMeasurementEnableDatastoreManagerThrowDatastoreException())
.isEqualTo(phOverridingValue);
}
@Test
public void testGetMeasurementThrowUnknownExceptionSamplingRate() {
// Assert the value before override.
assertThat(mPhFlags.getMeasurementThrowUnknownExceptionSamplingRate())
.isEqualTo(MEASUREMENT_THROW_UNKNOWN_EXCEPTION_SAMPLING_RATE);
// Now overriding with the value from PH.
float phOverridingValue = 0.5f;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_MEASUREMENT_THROW_UNKNOWN_EXCEPTION_SAMPLING_RATE,
Float.toString(phOverridingValue),
false);
assertThat(mPhFlags.getMeasurementThrowUnknownExceptionSamplingRate())
.isEqualTo(phOverridingValue);
}
@Test
public void testGetMeasurementDeleteUninstalledJobPersisted() {
// Assert the value before override.
assertThat(mPhFlags.getMeasurementDeleteUninstalledJobPersisted())
.isEqualTo(MEASUREMENT_DELETE_UNINSTALLED_JOB_PERSISTED);
// Now overriding with the value from PH.
boolean phOverridingValue = !MEASUREMENT_DELETE_UNINSTALLED_JOB_PERSISTED;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_MEASUREMENT_DELETE_UNINSTALLED_JOB_PERSISTED,
Boolean.toString(phOverridingValue),
false);
assertThat(mPhFlags.getMeasurementDeleteUninstalledJobPersisted())
.isEqualTo(phOverridingValue);
}
@Test
public void testGetMeasurementDeleteUninstalledJobPeriodMs() {
// Assert the value before override.
assertThat(mPhFlags.getMeasurementDeleteUninstalledJobPeriodMs())
.isEqualTo(MEASUREMENT_DELETE_UNINSTALLED_JOB_PERIOD_MS);
// Now overriding with the value from PH.
long phOverridingValue = MEASUREMENT_DELETE_UNINSTALLED_JOB_PERIOD_MS + 1;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_MEASUREMENT_DELETE_UNINSTALLED_JOB_PERIOD_MS,
Long.toString(phOverridingValue),
false);
assertThat(mPhFlags.getMeasurementDeleteUninstalledJobPeriodMs())
.isEqualTo(phOverridingValue);
}
@Test
public void testGetMeasurementDeleteExpiredJobPersisted() {
// Assert the value before override.
assertThat(mPhFlags.getMeasurementDeleteExpiredJobPersisted())
.isEqualTo(MEASUREMENT_DELETE_EXPIRED_JOB_PERSISTED);
// Now overriding with the value from PH.
boolean phOverridingValue = !MEASUREMENT_DELETE_EXPIRED_JOB_PERSISTED;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_MEASUREMENT_DELETE_EXPIRED_JOB_PERSISTED,
Boolean.toString(phOverridingValue),
false);
assertThat(mPhFlags.getMeasurementDeleteExpiredJobPersisted()).isEqualTo(phOverridingValue);
}
@Test
public void testGetMeasurementDeleteExpiredJobRequiresDeviceIdle() {
// Assert the value before override.
assertThat(mPhFlags.getMeasurementDeleteExpiredJobRequiresDeviceIdle())
.isEqualTo(MEASUREMENT_DELETE_EXPIRED_JOB_REQUIRES_DEVICE_IDLE);
// Now overriding with the value from PH.
boolean phOverridingValue = !MEASUREMENT_DELETE_EXPIRED_JOB_REQUIRES_DEVICE_IDLE;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_MEASUREMENT_DELETE_EXPIRED_JOB_REQUIRES_DEVICE_IDLE,
Boolean.toString(phOverridingValue),
false);
assertThat(mPhFlags.getMeasurementDeleteExpiredJobRequiresDeviceIdle())
.isEqualTo(phOverridingValue);
}
@Test
public void testGetMeasurementDeleteExpiredJobPeriodMs() {
// Assert the value before override.
assertThat(mPhFlags.getMeasurementDeleteExpiredJobPeriodMs())
.isEqualTo(MEASUREMENT_DELETE_EXPIRED_JOB_PERIOD_MS);
// Now overriding with the value from PH.
long phOverridingValue = MEASUREMENT_DELETE_EXPIRED_JOB_PERIOD_MS + 1;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_MEASUREMENT_DELETE_EXPIRED_JOB_PERIOD_MS,
Long.toString(phOverridingValue),
false);
assertThat(mPhFlags.getMeasurementDeleteExpiredJobPeriodMs()).isEqualTo(phOverridingValue);
}
@Test
public void testGetMeasurementEventReportingJobRequiredBatteryNotLow() {
// Assert the value before override.
assertThat(mPhFlags.getMeasurementEventReportingJobRequiredBatteryNotLow())
.isEqualTo(MEASUREMENT_EVENT_REPORTING_JOB_REQUIRED_BATTERY_NOT_LOW);
// Now overriding with the value from PH.
boolean phOverridingValue = !MEASUREMENT_EVENT_REPORTING_JOB_REQUIRED_BATTERY_NOT_LOW;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_MEASUREMENT_EVENT_REPORTING_JOB_REQUIRED_BATTERY_NOT_LOW,
Boolean.toString(phOverridingValue),
false);
assertThat(mPhFlags.getMeasurementEventReportingJobRequiredBatteryNotLow())
.isEqualTo(phOverridingValue);
}
@Test
public void testGetMeasurementEventReportingJobRequiredNetworkType() {
// Assert the value before override.
assertThat(mPhFlags.getMeasurementEventReportingJobRequiredNetworkType())
.isEqualTo(MEASUREMENT_EVENT_REPORTING_JOB_REQUIRED_NETWORK_TYPE);
// Now overriding with the value from PH.
int phOverridingValue = MEASUREMENT_EVENT_REPORTING_JOB_REQUIRED_NETWORK_TYPE + 1;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_MEASUREMENT_EVENT_REPORTING_JOB_REQUIRED_NETWORK_TYPE,
Integer.toString(phOverridingValue),
false);
assertThat(mPhFlags.getMeasurementEventReportingJobRequiredNetworkType())
.isEqualTo(phOverridingValue);
}
@Test
public void testGetMeasurementEventReportingJobPersisted() {
// Assert the value before override.
assertThat(mPhFlags.getMeasurementEventReportingJobPersisted())
.isEqualTo(MEASUREMENT_EVENT_REPORTING_JOB_PERSISTED);
// Now overriding with the value from PH.
boolean phOverridingValue = !MEASUREMENT_EVENT_REPORTING_JOB_PERSISTED;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_MEASUREMENT_EVENT_REPORTING_JOB_PERSISTED,
Boolean.toString(phOverridingValue),
false);
assertThat(mPhFlags.getMeasurementEventReportingJobPersisted())
.isEqualTo(phOverridingValue);
}
@Test
public void testGetMeasurementEventFallbackReportingJobRequiredBatteryNotLow() {
// Assert the value before override.
assertThat(mPhFlags.getMeasurementEventFallbackReportingJobRequiredBatteryNotLow())
.isEqualTo(MEASUREMENT_EVENT_FALLBACK_REPORTING_JOB_REQUIRED_BATTERY_NOT_LOW);
// Now overriding with the value from PH.
boolean phOverridingValue =
!MEASUREMENT_EVENT_FALLBACK_REPORTING_JOB_REQUIRED_BATTERY_NOT_LOW;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_MEASUREMENT_EVENT_FALLBACK_REPORTING_JOB_REQUIRED_BATTERY_NOT_LOW,
Boolean.toString(phOverridingValue),
false);
assertThat(mPhFlags.getMeasurementEventFallbackReportingJobRequiredBatteryNotLow())
.isEqualTo(phOverridingValue);
}
@Test
public void testGetMeasurementEventFallbackReportingJobRequiredNetworkType() {
// Assert the value before override.
assertThat(mPhFlags.getMeasurementEventFallbackReportingJobRequiredNetworkType())
.isEqualTo(MEASUREMENT_EVENT_FALLBACK_REPORTING_JOB_REQUIRED_NETWORK_TYPE);
// Now overriding with the value from PH.
int phOverridingValue = MEASUREMENT_EVENT_FALLBACK_REPORTING_JOB_REQUIRED_NETWORK_TYPE + 1;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_MEASUREMENT_EVENT_FALLBACK_REPORTING_JOB_REQUIRED_NETWORK_TYPE,
Integer.toString(phOverridingValue),
false);
assertThat(mPhFlags.getMeasurementEventFallbackReportingJobRequiredNetworkType())
.isEqualTo(phOverridingValue);
}
@Test
public void testGetMeasurementEventFallbackReportingJobPersisted() {
// Assert the value before override.
assertThat(mPhFlags.getMeasurementEventFallbackReportingJobPersisted())
.isEqualTo(MEASUREMENT_EVENT_FALLBACK_REPORTING_JOB_PERSISTED);
// Now overriding with the value from PH.
boolean phOverridingValue = !MEASUREMENT_EVENT_FALLBACK_REPORTING_JOB_PERSISTED;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_MEASUREMENT_EVENT_FALLBACK_REPORTING_JOB_PERSISTED,
Boolean.toString(phOverridingValue),
false);
assertThat(mPhFlags.getMeasurementEventFallbackReportingJobPersisted())
.isEqualTo(phOverridingValue);
}
@Test
public void testGetMeasurementDebugReportingJobRequiredNetworkType() {
// Assert the value before override.
assertThat(mPhFlags.getMeasurementDebugReportingJobRequiredNetworkType())
.isEqualTo(MEASUREMENT_DEBUG_REPORTING_JOB_REQUIRED_NETWORK_TYPE);
// Now overriding with the value from PH.
int phOverridingValue = MEASUREMENT_DEBUG_REPORTING_JOB_REQUIRED_NETWORK_TYPE + 1;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_MEASUREMENT_DEBUG_REPORTING_JOB_REQUIRED_NETWORK_TYPE,
Integer.toString(phOverridingValue),
false);
assertThat(mPhFlags.getMeasurementDebugReportingJobRequiredNetworkType())
.isEqualTo(phOverridingValue);
}
@Test
public void testGetMeasurementDebugReportingFallbackJobRequiredNetworkType() {
// Assert the value before override.
assertThat(mPhFlags.getMeasurementDebugReportingFallbackJobRequiredNetworkType())
.isEqualTo(MEASUREMENT_DEBUG_REPORTING_FALLBACK_JOB_REQUIRED_NETWORK_TYPE);
// Now overriding with the value from PH.
int phOverridingValue = MEASUREMENT_DEBUG_REPORTING_FALLBACK_JOB_REQUIRED_NETWORK_TYPE + 1;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_MEASUREMENT_DEBUG_REPORTING_FALLBACK_JOB_REQUIRED_NETWORK_TYPE,
Integer.toString(phOverridingValue),
false);
assertThat(mPhFlags.getMeasurementDebugReportingFallbackJobRequiredNetworkType())
.isEqualTo(phOverridingValue);
}
@Test
public void testGetMeasurementDebugReportingFallbackJobPersisted() {
// Assert the value before override.
assertThat(mPhFlags.getMeasurementDebugReportingFallbackJobPersisted())
.isEqualTo(MEASUREMENT_DEBUG_REPORTING_FALLBACK_JOB_PERSISTED);
// Now overriding with the value from PH.
boolean phOverridingValue = !MEASUREMENT_DEBUG_REPORTING_FALLBACK_JOB_PERSISTED;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_MEASUREMENT_DEBUG_REPORTING_FALLBACK_JOB_PERSISTED,
Boolean.toString(phOverridingValue),
false);
assertThat(mPhFlags.getMeasurementDebugReportingFallbackJobPersisted())
.isEqualTo(phOverridingValue);
}
@Test
public void testGetMeasurementVerboseDebugReportingJobRequiredNetworkType() {
// Assert the value before override.
assertThat(mPhFlags.getMeasurementVerboseDebugReportingJobRequiredNetworkType())
.isEqualTo(MEASUREMENT_VERBOSE_DEBUG_REPORTING_JOB_REQUIRED_NETWORK_TYPE);
// Now overriding with the value from PH.
int phOverridingValue = MEASUREMENT_VERBOSE_DEBUG_REPORTING_JOB_REQUIRED_NETWORK_TYPE + 1;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_MEASUREMENT_VERBOSE_DEBUG_REPORTING_JOB_REQUIRED_NETWORK_TYPE,
Integer.toString(phOverridingValue),
false);
assertThat(mPhFlags.getMeasurementVerboseDebugReportingJobRequiredNetworkType())
.isEqualTo(phOverridingValue);
}
@Test
public void testGetMeasurementVerboseDebugReportingFallbackJobPersisted() {
// Assert the value before override.
assertThat(mPhFlags.getMeasurementVerboseDebugReportingFallbackJobPersisted())
.isEqualTo(MEASUREMENT_VERBOSE_DEBUG_REPORTING_FALLBACK_JOB_PERSISTED);
// Now overriding with the value from PH.
boolean phOverridingValue = !MEASUREMENT_VERBOSE_DEBUG_REPORTING_FALLBACK_JOB_PERSISTED;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_MEASUREMENT_VERBOSE_DEBUG_REPORTING_FALLBACK_JOB_PERSISTED,
Boolean.toString(phOverridingValue),
false);
assertThat(mPhFlags.getMeasurementVerboseDebugReportingFallbackJobPersisted())
.isEqualTo(phOverridingValue);
}
@Test
public void testGetMeasurementAttributionJobPersisted() {
// Assert the value before override.
assertThat(mPhFlags.getMeasurementAttributionJobPersisted())
.isEqualTo(MEASUREMENT_ATTRIBUTION_JOB_PERSISTED);
// Now overriding with the value from PH.
boolean phOverridingValue = !MEASUREMENT_ATTRIBUTION_JOB_PERSISTED;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_MEASUREMENT_ATTRIBUTION_JOB_PERSISTED,
Boolean.toString(phOverridingValue),
false);
assertThat(mPhFlags.getMeasurementAttributionJobPersisted()).isEqualTo(phOverridingValue);
}
@Test
public void testGetMeasurementAttributionFallbackJobPersisted() {
// Assert the value before override.
assertThat(mPhFlags.getMeasurementAttributionFallbackJobPersisted())
.isEqualTo(MEASUREMENT_ATTRIBUTION_FALLBACK_JOB_PERSISTED);
// Now overriding with the value from PH.
boolean phOverridingValue = !MEASUREMENT_ATTRIBUTION_FALLBACK_JOB_PERSISTED;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_MEASUREMENT_ATTRIBUTION_FALLBACK_JOB_PERSISTED,
Boolean.toString(phOverridingValue),
false);
assertThat(mPhFlags.getMeasurementAttributionFallbackJobPersisted())
.isEqualTo(phOverridingValue);
}
@Test
public void testGetMeasurementAttributionJobTriggeringDelayMs() {
// Assert the value before override.
assertThat(mPhFlags.getMeasurementAttributionJobTriggeringDelayMs())
.isEqualTo(MEASUREMENT_ATTRIBUTION_JOB_TRIGGERING_DELAY_MS);
// Now overriding with the value from PH.
long phOverridingValue = MEASUREMENT_ATTRIBUTION_JOB_TRIGGERING_DELAY_MS + 1;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_MEASUREMENT_ATTRIBUTION_JOB_TRIGGERING_DELAY_MS,
Long.toString(phOverridingValue),
false);
assertThat(mPhFlags.getMeasurementAttributionJobTriggeringDelayMs())
.isEqualTo(phOverridingValue);
}
@Test
public void testGetMeasurementAsyncRegistrationQueueJobRequiredNetworkType() {
// Assert the value before override.
assertThat(mPhFlags.getMeasurementAsyncRegistrationQueueJobRequiredNetworkType())
.isEqualTo(MEASUREMENT_ASYNC_REGISTRATION_QUEUE_JOB_REQUIRED_NETWORK_TYPE);
// Now overriding with the value from PH.
int phOverridingValue = MEASUREMENT_ASYNC_REGISTRATION_QUEUE_JOB_REQUIRED_NETWORK_TYPE + 1;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_MEASUREMENT_ASYNC_REGISTRATION_QUEUE_JOB_REQUIRED_NETWORK_TYPE,
Integer.toString(phOverridingValue),
false);
assertThat(mPhFlags.getMeasurementAsyncRegistrationQueueJobRequiredNetworkType())
.isEqualTo(phOverridingValue);
}
@Test
public void testGetMeasurementAsyncRegistrationQueueJobPersisted() {
// Assert the value before override.
assertThat(mPhFlags.getMeasurementAsyncRegistrationQueueJobPersisted())
.isEqualTo(MEASUREMENT_ASYNC_REGISTRATION_QUEUE_JOB_PERSISTED);
// Now overriding with the value from PH.
boolean phOverridingValue = !MEASUREMENT_ASYNC_REGISTRATION_QUEUE_JOB_PERSISTED;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_MEASUREMENT_ASYNC_REGISTRATION_QUEUE_JOB_PERSISTED,
Boolean.toString(phOverridingValue),
false);
assertThat(mPhFlags.getMeasurementAsyncRegistrationQueueJobPersisted())
.isEqualTo(phOverridingValue);
}
@Test
public void testGetMeasurementAsyncRegistrationFallbackJobRequiredNetworkType() {
// Assert the value before override.
assertThat(mPhFlags.getMeasurementAsyncRegistrationFallbackJobRequiredNetworkType())
.isEqualTo(MEASUREMENT_ASYNC_REGISTRATION_FALLBACK_JOB_REQUIRED_NETWORK_TYPE);
// Now overriding with the value from PH.
int phOverridingValue =
MEASUREMENT_ASYNC_REGISTRATION_FALLBACK_JOB_REQUIRED_NETWORK_TYPE + 1;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_MEASUREMENT_ASYNC_REGISTRATION_FALLBACK_JOB_REQUIRED_NETWORK_TYPE,
Integer.toString(phOverridingValue),
false);
assertThat(mPhFlags.getMeasurementAsyncRegistrationFallbackJobRequiredNetworkType())
.isEqualTo(phOverridingValue);
}
@Test
public void testGetMeasurementAsyncRegistrationFallbackJobPersisted() {
// Assert the value before override.
assertThat(mPhFlags.getMeasurementAsyncRegistrationFallbackJobPersisted())
.isEqualTo(MEASUREMENT_ASYNC_REGISTRATION_FALLBACK_JOB_PERSISTED);
// Now overriding with the value from PH.
boolean phOverridingValue = !MEASUREMENT_ASYNC_REGISTRATION_FALLBACK_JOB_PERSISTED;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_MEASUREMENT_ASYNC_REGISTRATION_FALLBACK_JOB_PERSISTED,
Boolean.toString(phOverridingValue),
false);
assertThat(mPhFlags.getMeasurementAsyncRegistrationFallbackJobPersisted())
.isEqualTo(phOverridingValue);
}
@Test
public void testGetMeasurementAsyncRegistrationFallbackJobRequiredBatteryNotLow() {
// Assert the value before override.
assertThat(mPhFlags.getMeasurementAsyncRegistrationFallbackJobRequiredBatteryNotLow())
.isEqualTo(MEASUREMENT_ASYNC_REGISTRATION_FALLBACK_JOB_REQUIRED_BATTERY_NOT_LOW);
// Now overriding with the value from PH.
boolean phOverridingValue =
!MEASUREMENT_ASYNC_REGISTRATION_FALLBACK_JOB_REQUIRED_BATTERY_NOT_LOW;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_MEASUREMENT_ASYNC_REGISTRATION_FALLBACK_JOB_REQUIRED_BATTERY_NOT_LOW,
Boolean.toString(phOverridingValue),
false);
assertThat(mPhFlags.getMeasurementAsyncRegistrationFallbackJobRequiredBatteryNotLow())
.isEqualTo(phOverridingValue);
}
@Test
public void testgetMeasurementAggregateReportingJobRequiredBatteryNotLow() {
// Assert the value before override.
assertThat(mPhFlags.getMeasurementAggregateReportingJobRequiredBatteryNotLow())
.isEqualTo(MEASUREMENT_AGGREGATE_REPORTING_JOB_REQUIRED_BATTERY_NOT_LOW);
// Now overriding with the value from PH.
boolean phOverridingValue = !MEASUREMENT_AGGREGATE_REPORTING_JOB_REQUIRED_BATTERY_NOT_LOW;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_MEASUREMENT_AGGREGATE_REPORTING_JOB_REQUIRED_BATTERY_NOT_LOW,
Boolean.toString(phOverridingValue),
false);
assertThat(mPhFlags.getMeasurementAggregateReportingJobRequiredBatteryNotLow())
.isEqualTo(phOverridingValue);
}
@Test
public void testgetMeasurementAggregateReportingJobRequiredNetworkType() {
// Assert the value before override.
assertThat(mPhFlags.getMeasurementAggregateReportingJobRequiredNetworkType())
.isEqualTo(MEASUREMENT_AGGREGATE_REPORTING_JOB_REQUIRED_NETWORK_TYPE);
// Now overriding with the value from PH.
int phOverridingValue = MEASUREMENT_AGGREGATE_REPORTING_JOB_REQUIRED_NETWORK_TYPE + 1;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_MEASUREMENT_AGGREGATE_REPORTING_JOB_REQUIRED_NETWORK_TYPE,
Integer.toString(phOverridingValue),
false);
assertThat(mPhFlags.getMeasurementAggregateReportingJobRequiredNetworkType())
.isEqualTo(phOverridingValue);
}
@Test
public void testgetMeasurementAggregateReportingJobPersisted() {
// Assert the value before override.
assertThat(mPhFlags.getMeasurementAggregateReportingJobPersisted())
.isEqualTo(MEASUREMENT_AGGREGATE_REPORTING_JOB_PERSISTED);
// Now overriding with the value from PH.
boolean phOverridingValue = !MEASUREMENT_AGGREGATE_REPORTING_JOB_PERSISTED;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_MEASUREMENT_AGGREGATE_REPORTING_JOB_PERSISTED,
Boolean.toString(phOverridingValue),
false);
assertThat(mPhFlags.getMeasurementAggregateReportingJobPersisted())
.isEqualTo(phOverridingValue);
}
@Test
public void testGetMeasurementAggregateFallbackReportingJobRequiredBatteryNotLow() {
// Assert the value before override.
assertThat(mPhFlags.getMeasurementAggregateFallbackReportingJobRequiredBatteryNotLow())
.isEqualTo(MEASUREMENT_AGGREGATE_FALLBACK_REPORTING_JOB_REQUIRED_BATTERY_NOT_LOW);
// Now overriding with the value from PH.
boolean phOverridingValue =
!MEASUREMENT_AGGREGATE_FALLBACK_REPORTING_JOB_REQUIRED_BATTERY_NOT_LOW;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_MEASUREMENT_AGGREGATE_FALLBACK_REPORTING_JOB_REQUIRED_BATTERY_NOT_LOW,
Boolean.toString(phOverridingValue),
false);
assertThat(mPhFlags.getMeasurementAggregateFallbackReportingJobRequiredBatteryNotLow())
.isEqualTo(phOverridingValue);
}
@Test
public void testGetMeasurementAggregateFallbackReportingJobRequiredNetworkType() {
// Assert the value before override.
assertThat(mPhFlags.getMeasurementAggregateFallbackReportingJobRequiredNetworkType())
.isEqualTo(MEASUREMENT_AGGREGATE_FALLBACK_REPORTING_JOB_REQUIRED_NETWORK_TYPE);
// Now overriding with the value from PH.
int phOverridingValue =
MEASUREMENT_AGGREGATE_FALLBACK_REPORTING_JOB_REQUIRED_NETWORK_TYPE + 1;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_MEASUREMENT_AGGREGATE_FALLBACK_REPORTING_JOB_REQUIRED_NETWORK_TYPE,
Integer.toString(phOverridingValue),
false);
assertThat(mPhFlags.getMeasurementAggregateFallbackReportingJobRequiredNetworkType())
.isEqualTo(phOverridingValue);
}
@Test
public void testGetMeasurementAggregateFallbackReportingJobPersisted() {
// Assert the value before override.
assertThat(mPhFlags.getMeasurementAggregateFallbackReportingJobPersisted())
.isEqualTo(MEASUREMENT_AGGREGATE_FALLBACK_REPORTING_JOB_PERSISTED);
// Now overriding with the value from PH.
boolean phOverridingValue = !MEASUREMENT_AGGREGATE_FALLBACK_REPORTING_JOB_PERSISTED;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_MEASUREMENT_AGGREGATE_FALLBACK_REPORTING_JOB_PERSISTED,
Boolean.toString(phOverridingValue),
false);
assertThat(mPhFlags.getMeasurementAggregateFallbackReportingJobPersisted())
.isEqualTo(phOverridingValue);
}
@Test
public void testGetFlexibleEventReportingAPIEnabled() {
// Without any overriding, the value is the hard coded constant.
assertThat(mPhFlags.getMeasurementFlexibleEventReportingApiEnabled())
.isEqualTo(MEASUREMENT_FLEXIBLE_EVENT_REPORTING_API_ENABLED);
boolean phOverridingValue = !MEASUREMENT_FLEXIBLE_EVENT_REPORTING_API_ENABLED;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_MEASUREMENT_FLEXIBLE_EVENT_REPORTING_API_ENABLED,
Boolean.toString(phOverridingValue),
/* makeDefault */ true);
assertThat(mPhFlags.getMeasurementFlexibleEventReportingApiEnabled())
.isEqualTo(phOverridingValue);
}
@Test
public void testGetFlexLiteAPIEnabled() {
// Without any overriding, the value is the hard coded constant.
assertThat(mPhFlags.getMeasurementFlexLiteAPIEnabled())
.isEqualTo(MEASUREMENT_FLEX_LITE_API_ENABLED);
boolean phOverridingValue = !MEASUREMENT_FLEX_LITE_API_ENABLED;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_MEASUREMENT_FLEX_LITE_API_ENABLED,
Boolean.toString(phOverridingValue),
/* makeDefault */ true);
assertThat(mPhFlags.getMeasurementFlexLiteAPIEnabled()).isEqualTo(phOverridingValue);
}
@Test
public void testGetMeasurementFlexApiMaxInformationGainEvent() {
// Without any overriding, the value is the hard coded constant.
assertThat(mPhFlags.getMeasurementFlexApiMaxInformationGainEvent())
.isEqualTo(MEASUREMENT_FLEX_API_MAX_INFO_GAIN_EVENT);
float phOverridingValue = MEASUREMENT_FLEX_API_MAX_INFO_GAIN_EVENT + 6.4f;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_MEASUREMENT_FLEX_API_MAX_INFORMATION_GAIN_EVENT,
Float.toString(phOverridingValue),
/* makeDefault */ true);
assertThat(phOverridingValue)
.isWithin(0.000000001f)
.of(mPhFlags.getMeasurementFlexApiMaxInformationGainEvent());
}
@Test
public void testGetMeasurementFlexApiMaxInformationGainNavigation() {
// Without any overriding, the value is the hard coded constant.
assertThat(mPhFlags.getMeasurementFlexApiMaxInformationGainNavigation())
.isEqualTo(MEASUREMENT_FLEX_API_MAX_INFO_GAIN_NAVIGATION);
float phOverridingValue = MEASUREMENT_FLEX_API_MAX_INFO_GAIN_NAVIGATION + 6.4f;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_MEASUREMENT_FLEX_API_MAX_INFORMATION_GAIN_NAVIGATION,
Float.toString(phOverridingValue),
/* makeDefault */ true);
assertThat(phOverridingValue)
.isWithin(0.000000001f)
.of(mPhFlags.getMeasurementFlexApiMaxInformationGainNavigation());
}
@Test
public void testGetMeasurementFlexApiMaxEventReports() {
// Without any overriding, the value is the hard coded constant.
assertThat(mPhFlags.getMeasurementFlexApiMaxEventReports())
.isEqualTo(MEASUREMENT_FLEX_API_MAX_EVENT_REPORTS);
int phOverridingValue = MEASUREMENT_FLEX_API_MAX_EVENT_REPORTS + 7;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_MEASUREMENT_FLEX_API_MAX_EVENT_REPORTS,
Integer.toString(phOverridingValue),
/* makeDefault */ false);
assertThat(mPhFlags.getMeasurementFlexApiMaxEventReports()).isEqualTo(phOverridingValue);
}
@Test
public void testGetMeasurementFlexApiMaxEventReportWindows() {
// Without any overriding, the value is the hard coded constant.
assertThat(mPhFlags.getMeasurementFlexApiMaxEventReportWindows())
.isEqualTo(MEASUREMENT_FLEX_API_MAX_EVENT_REPORT_WINDOWS);
int phOverridingValue = MEASUREMENT_FLEX_API_MAX_EVENT_REPORT_WINDOWS + 8;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_MEASUREMENT_FLEX_API_MAX_EVENT_REPORT_WINDOWS,
Integer.toString(phOverridingValue),
/* makeDefault */ false);
assertThat(mPhFlags.getMeasurementFlexApiMaxEventReportWindows())
.isEqualTo(phOverridingValue);
}
@Test
public void testGetMeasurementFlexApiMaxTriggerDataCardinality() {
// Without any overriding, the value is the hard coded constant.
assertThat(mPhFlags.getMeasurementFlexApiMaxTriggerDataCardinality())
.isEqualTo(MEASUREMENT_FLEX_API_MAX_TRIGGER_DATA_CARDINALITY);
int phOverridingValue = MEASUREMENT_FLEX_API_MAX_TRIGGER_DATA_CARDINALITY + 11;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_MEASUREMENT_FLEX_API_MAX_TRIGGER_DATA_CARDINALITY,
Integer.toString(phOverridingValue),
/* makeDefault */ false);
assertThat(mPhFlags.getMeasurementFlexApiMaxTriggerDataCardinality())
.isEqualTo(phOverridingValue);
}
@Test
public void testGetMeasurementMinimumEventReportWindowInSeconds() {
// Without any overriding, the value is the hard coded constant.
assertThat(mPhFlags.getMeasurementMinimumEventReportWindowInSeconds())
.isEqualTo(MEASUREMENT_MINIMUM_EVENT_REPORT_WINDOW_IN_SECONDS);
long phOverridingValue = MEASUREMENT_MINIMUM_EVENT_REPORT_WINDOW_IN_SECONDS + 7200L;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_MEASUREMENT_MINIMUM_EVENT_REPORT_WINDOW_IN_SECONDS,
Long.toString(phOverridingValue),
/* makeDefault */ false);
assertThat(mPhFlags.getMeasurementMinimumEventReportWindowInSeconds())
.isEqualTo(phOverridingValue);
}
@Test
public void testGetMeasurementMinimumAggregatableReportWindowInSeconds() {
// Without any overriding, the value is the hard coded constant.
assertThat(mPhFlags.getMeasurementMinimumAggregatableReportWindowInSeconds())
.isEqualTo(MEASUREMENT_MINIMUM_AGGREGATABLE_REPORT_WINDOW_IN_SECONDS);
long phOverridingValue = MEASUREMENT_MINIMUM_AGGREGATABLE_REPORT_WINDOW_IN_SECONDS + 7200L;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_MEASUREMENT_MINIMUM_AGGREGATABLE_REPORT_WINDOW_IN_SECONDS,
Long.toString(phOverridingValue),
/* makeDefault */ false);
assertThat(mPhFlags.getMeasurementMinimumAggregatableReportWindowInSeconds())
.isEqualTo(phOverridingValue);
}
@Test
public void testFledgeAuctionServerAuctionKeyFetchUri() {
assertThat(mPhFlags.getFledgeAuctionServerAuctionKeyFetchUri())
.isEqualTo(FLEDGE_AUCTION_SERVER_AUCTION_KEY_FETCH_URI);
String phOverridingValue = FLEDGE_AUCTION_SERVER_AUCTION_KEY_FETCH_URI + "http://test/uri";
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_FLEDGE_AUCTION_SERVER_AUCTION_KEY_FETCH_URI,
phOverridingValue,
/* makeDefault */ false);
assertThat(mPhFlags.getFledgeAuctionServerAuctionKeyFetchUri())
.isEqualTo(phOverridingValue);
}
@Test
public void testFledgeAuctionServerEnabled() {
assertThat(mPhFlags.getFledgeAuctionServerEnabled())
.isEqualTo(FLEDGE_AUCTION_SERVER_ENABLED);
boolean phOverridingValue = !FLEDGE_AUCTION_SERVER_ENABLED;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_FLEDGE_AUCTION_SERVER_ENABLED,
Boolean.toString(phOverridingValue),
/* makeDefault */ false);
assertThat(mPhFlags.getFledgeAuctionServerEnabled()).isEqualTo(phOverridingValue);
}
@Test
public void testFledgeAuctionServerEnabledForReportImpression_overriddenByBaseFeatureFlag() {
disableAuctionServerBaseFlag();
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_FLEDGE_AUCTION_SERVER_ENABLED_FOR_REPORT_IMPRESSION,
Boolean.toString(true),
/* makeDefault */ false);
assertThat(mPhFlags.getFledgeAuctionServerEnabledForReportImpression()).isEqualTo(false);
}
@Test
public void testFledgeAuctionServerEnabledForReportImpression() {
enableAuctionServerBaseFlag();
boolean phOverridingValue = !FLEDGE_AUCTION_SERVER_ENABLED_FOR_REPORT_IMPRESSION;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_FLEDGE_AUCTION_SERVER_ENABLED_FOR_REPORT_IMPRESSION,
Boolean.toString(phOverridingValue),
/* makeDefault */ false);
assertThat(mPhFlags.getFledgeAuctionServerEnabledForReportImpression())
.isEqualTo(phOverridingValue);
}
@Test
public void testFledgeAuctionServerEnabledForReportEvent_overriddenByBaseFeatureFlag() {
disableAuctionServerBaseFlag();
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_FLEDGE_AUCTION_SERVER_ENABLED_FOR_REPORT_EVENT,
Boolean.toString(true),
/* makeDefault */ false);
assertThat(mPhFlags.getFledgeAuctionServerEnabledForReportEvent()).isEqualTo(false);
}
@Test
public void testFledgeAuctionServerEnabledForReportEvent() {
enableAuctionServerBaseFlag();
boolean phOverridingValue = !FLEDGE_AUCTION_SERVER_ENABLED_FOR_REPORT_EVENT;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_FLEDGE_AUCTION_SERVER_ENABLED_FOR_REPORT_EVENT,
Boolean.toString(phOverridingValue),
/* makeDefault */ false);
assertThat(mPhFlags.getFledgeAuctionServerEnabledForReportEvent())
.isEqualTo(phOverridingValue);
}
@Test
public void testFledgeAuctionServerEnabledForUpdateHistogram_overriddenByBaseFeatureFlag() {
disableAuctionServerBaseFlag();
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_FLEDGE_AUCTION_SERVER_ENABLED_FOR_UPDATE_HISTOGRAM,
Boolean.toString(true),
/* makeDefault */ false);
assertThat(mPhFlags.getFledgeAuctionServerEnabledForUpdateHistogram()).isEqualTo(false);
}
@Test
public void testFledgeAuctionServerEnabledForUpdateHistogram() {
enableAuctionServerBaseFlag();
boolean phOverridingValue = !FLEDGE_AUCTION_SERVER_ENABLED_FOR_UPDATE_HISTOGRAM;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_FLEDGE_AUCTION_SERVER_ENABLED_FOR_UPDATE_HISTOGRAM,
Boolean.toString(phOverridingValue),
/* makeDefault */ false);
assertThat(mPhFlags.getFledgeAuctionServerEnabledForUpdateHistogram())
.isEqualTo(phOverridingValue);
}
@Test
public void testFledgeAuctionServerEnabledForSelectAdsMediation_overriddenByBaseFeatureFlag() {
disableAuctionServerBaseFlag();
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_FLEDGE_AUCTION_SERVER_ENABLED_FOR_SELECT_ADS_MEDIATION,
Boolean.toString(true),
/* makeDefault */ false);
assertThat(mPhFlags.getFledgeAuctionServerEnabledForSelectAdsMediation()).isEqualTo(false);
}
@Test
public void testFledgeAuctionServerEnabledForSelectAdsMediation() {
enableAuctionServerBaseFlag();
boolean phOverridingValue = !FLEDGE_AUCTION_SERVER_ENABLED_FOR_SELECT_ADS_MEDIATION;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_FLEDGE_AUCTION_SERVER_ENABLED_FOR_SELECT_ADS_MEDIATION,
Boolean.toString(phOverridingValue),
/* makeDefault */ false);
assertThat(mPhFlags.getFledgeAuctionServerEnabledForSelectAdsMediation())
.isEqualTo(phOverridingValue);
}
@Test
public void testFledgeAuctionServerEnableAdFilteringInGetAdSelectionData() {
boolean phOverridingValue =
!FLEDGE_AUCTION_SERVER_ENABLE_AD_FILTER_IN_GET_AD_SELECTION_DATA;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_FLEDGE_AUCTION_SERVER_ENABLE_AD_FILTER_IN_GET_AD_SELECTION_DATA,
Boolean.toString(phOverridingValue),
/* makeDefault */ false);
assertThat(mPhFlags.getFledgeAuctionServerEnableAdFilterInGetAdSelectionData())
.isEqualTo(phOverridingValue);
}
private void disableAuctionServerBaseFlag() {
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_FLEDGE_AUCTION_SERVER_ENABLED,
Boolean.toString(false),
/* makeDefault */ false);
}
private void enableAuctionServerBaseFlag() {
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_FLEDGE_AUCTION_SERVER_ENABLED,
Boolean.toString(true),
/* makeDefault */ false);
}
@Test
public void testFledgeAuctionServerJoinKeyFetchUri() {
assertThat(mPhFlags.getFledgeAuctionServerJoinKeyFetchUri())
.isEqualTo(FLEDGE_AUCTION_SERVER_JOIN_KEY_FETCH_URI);
String phOverridingValue = FLEDGE_AUCTION_SERVER_JOIN_KEY_FETCH_URI + "http://test/uri";
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_FLEDGE_AUCTION_SERVER_JOIN_KEY_FETCH_URI,
phOverridingValue,
/* makeDefault */ false);
assertThat(mPhFlags.getFledgeAuctionServerJoinKeyFetchUri()).isEqualTo(phOverridingValue);
}
@Test
public void testFledgeAuctionServerAuctionKeySharding() {
assertThat(mPhFlags.getFledgeAuctionServerAuctionKeySharding())
.isEqualTo(FLEDGE_AUCTION_SERVER_AUCTION_KEY_SHARDING);
int phOverridingValue = FLEDGE_AUCTION_SERVER_AUCTION_KEY_SHARDING + 1;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_FLEDGE_AUCTION_SERVER_AUCTION_KEY_SHARDING,
String.valueOf(phOverridingValue),
/* makeDefault */ false);
assertThat(mPhFlags.getFledgeAuctionServerAuctionKeySharding())
.isEqualTo(phOverridingValue);
}
@Test
public void testFledgeAuctionServerEncryptionKeyAgeMaxSeconds() {
assertThat(mPhFlags.getFledgeAuctionServerEncryptionKeyMaxAgeSeconds())
.isEqualTo(FLEDGE_AUCTION_SERVER_ENCRYPTION_KEY_MAX_AGE_SECONDS);
long phOverridingValue = FLEDGE_AUCTION_SERVER_ENCRYPTION_KEY_MAX_AGE_SECONDS + 1000;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_FLEDGE_AUCTION_SERVER_ENCRYPTION_KEY_MAX_AGE_SECONDS,
String.valueOf(phOverridingValue),
/* makeDefault */ false);
assertThat(mPhFlags.getFledgeAuctionServerEncryptionKeyMaxAgeSeconds())
.isEqualTo(phOverridingValue);
}
@Test
public void testFledgeAuctionServerEncryptionKemId() {
assertThat(mPhFlags.getFledgeAuctionServerEncryptionAlgorithmKemId())
.isEqualTo(FLEDGE_AUCTION_SERVER_ENCRYPTION_ALGORITHM_KEM_ID);
int phOverridingValue = FLEDGE_AUCTION_SERVER_ENCRYPTION_ALGORITHM_KEM_ID + 42;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_FLEDGE_AUCTION_SERVER_ENCRYPTION_ALGORITHM_KEM_ID,
String.valueOf(phOverridingValue),
/* makeDefault */ false);
assertThat(mPhFlags.getFledgeAuctionServerEncryptionAlgorithmKemId())
.isEqualTo(phOverridingValue);
}
@Test
public void testFledgeAuctionServerEncryptionKdfId() {
assertThat(mPhFlags.getFledgeAuctionServerEncryptionAlgorithmKdfId())
.isEqualTo(FLEDGE_AUCTION_SERVER_ENCRYPTION_ALGORITHM_KDF_ID);
int phOverridingValue = FLEDGE_AUCTION_SERVER_ENCRYPTION_ALGORITHM_KDF_ID + 42;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_FLEDGE_AUCTION_SERVER_ENCRYPTION_ALGORITHM_KDF_ID,
String.valueOf(phOverridingValue),
/* makeDefault */ false);
assertThat(mPhFlags.getFledgeAuctionServerEncryptionAlgorithmKdfId())
.isEqualTo(phOverridingValue);
}
@Test
public void testFledgeAuctionServerEncryptionAeadId() {
assertThat(mPhFlags.getFledgeAuctionServerEncryptionAlgorithmAeadId())
.isEqualTo(FLEDGE_AUCTION_SERVER_ENCRYPTION_ALGORITHM_AEAD_ID);
int phOverridingValue = FLEDGE_AUCTION_SERVER_ENCRYPTION_ALGORITHM_AEAD_ID + 42;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_FLEDGE_AUCTION_SERVER_ENCRYPTION_ALGORITHM_AEAD_ID,
String.valueOf(phOverridingValue),
/* makeDefault */ false);
assertThat(mPhFlags.getFledgeAuctionServerEncryptionAlgorithmAeadId())
.isEqualTo(phOverridingValue);
}
@Test
public void testGetAdServicesConsentMigrationDisabled() {
// Without any overriding, the value is the hard coded constant.
assertThat(mPhFlags.getAdservicesConsentMigrationLoggingEnabled())
.isEqualTo(DEFAULT_ADSERVICES_CONSENT_MIGRATION_LOGGING_ENABLED);
boolean phOverridingValue = !DEFAULT_ADSERVICES_CONSENT_MIGRATION_LOGGING_ENABLED;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
ADSERVICES_CONSENT_MIGRATION_LOGGING_ENABLED,
Boolean.toString(phOverridingValue),
/* makeDefault */ false);
assertThat(mPhFlags.getAdservicesConsentMigrationLoggingEnabled())
.isEqualTo(phOverridingValue);
}
@Test
public void testGetAdServicesConsentMigrationEnabled() {
// Without any overriding, the value is the hard coded constant.
assertThat(mPhFlags.getAdservicesConsentMigrationLoggingEnabled())
.isEqualTo(DEFAULT_ADSERVICES_CONSENT_MIGRATION_LOGGING_ENABLED);
boolean phOverridingValue = !DEFAULT_ADSERVICES_CONSENT_MIGRATION_LOGGING_ENABLED;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
ADSERVICES_CONSENT_MIGRATION_LOGGING_ENABLED,
Boolean.toString(phOverridingValue),
/* makeDefault */ true);
assertThat(mPhFlags.getAdservicesConsentMigrationLoggingEnabled())
.isEqualTo(phOverridingValue);
}
@Test
public void testEnableFledgeAuctionServerKeyFetch() {
// Without any overriding, the value is the hard coded constant.
assertThat(mPhFlags.getFledgeAuctionServerBackgroundKeyFetchJobEnabled())
.isEqualTo(FLEDGE_AUCTION_SERVER_BACKGROUND_KEY_FETCH_JOB_ENABLED);
boolean phOverridingValue = !FLEDGE_AUCTION_SERVER_BACKGROUND_KEY_FETCH_JOB_ENABLED;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_FLEDGE_AUCTION_SERVER_BACKGROUND_KEY_FETCH_JOB_ENABLED,
Boolean.toString(phOverridingValue),
/* makeDefault */ true);
assertThat(mPhFlags.getFledgeAuctionServerBackgroundKeyFetchJobEnabled())
.isEqualTo(phOverridingValue);
}
@Test
public void testEnableFledgeAuctionServerAuctionKeyFetch() {
// Without any overriding, the value is the hard coded constant.
assertThat(mPhFlags.getFledgeAuctionServerBackgroundAuctionKeyFetchEnabled())
.isEqualTo(FLEDGE_AUCTION_SERVER_BACKGROUND_AUCTION_KEY_FETCH_ENABLED);
boolean phOverridingValue = !FLEDGE_AUCTION_SERVER_BACKGROUND_AUCTION_KEY_FETCH_ENABLED;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_FLEDGE_AUCTION_SERVER_BACKGROUND_AUCTION_KEY_FETCH_ENABLED,
Boolean.toString(phOverridingValue),
/* makeDefault */ true);
assertThat(mPhFlags.getFledgeAuctionServerBackgroundAuctionKeyFetchEnabled())
.isEqualTo(phOverridingValue);
}
@Test
public void testEnableFledgeAuctionServerJoinKeyFetch() {
// Without any overriding, the value is the hard coded constant.
assertThat(mPhFlags.getFledgeAuctionServerBackgroundJoinKeyFetchEnabled())
.isEqualTo(FLEDGE_AUCTION_SERVER_BACKGROUND_JOIN_KEY_FETCH_ENABLED);
boolean phOverridingValue = !FLEDGE_AUCTION_SERVER_BACKGROUND_JOIN_KEY_FETCH_ENABLED;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_FLEDGE_AUCTION_SERVER_BACKGROUND_JOIN_KEY_FETCH_ENABLED,
Boolean.toString(phOverridingValue),
/* makeDefault */ true);
assertThat(mPhFlags.getFledgeAuctionServerBackgroundJoinKeyFetchEnabled())
.isEqualTo(phOverridingValue);
}
@Test
public void testFledgeAuctionServerKeyFetchNetworkConnectTimeoutMs() {
// Without any overriding, the value is the hard coded constant.
assertThat(mPhFlags.getFledgeBackgroundFetchNetworkConnectTimeoutMs())
.isEqualTo(FLEDGE_AUCTION_SERVER_BACKGROUND_KEY_FETCH_NETWORK_CONNECT_TIMEOUT_MS);
long phOverridingValue = FLEDGE_BACKGROUND_FETCH_NETWORK_CONNECT_TIMEOUT_MS + 1000;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_FLEDGE_BACKGROUND_FETCH_NETWORK_CONNECT_TIMEOUT_MS,
Long.toString(phOverridingValue),
/* makeDefault */ false);
assertThat(mPhFlags.getFledgeBackgroundFetchNetworkConnectTimeoutMs())
.isEqualTo(phOverridingValue);
}
@Test
public void testFledgeAuctionServerKeyFetchNetworkReadTimeoutMs() {
// Without any overriding, the value is the hard coded constant.
assertThat(mPhFlags.getFledgeBackgroundFetchNetworkReadTimeoutMs())
.isEqualTo(FLEDGE_AUCTION_SERVER_BACKGROUND_KEY_FETCH_NETWORK_READ_TIMEOUT_MS);
long phOverridingValue =
FLEDGE_AUCTION_SERVER_BACKGROUND_KEY_FETCH_NETWORK_READ_TIMEOUT_MS + 1000;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_FLEDGE_BACKGROUND_FETCH_NETWORK_READ_TIMEOUT_MS,
Long.toString(phOverridingValue),
/* makeDefault */ false);
assertThat(mPhFlags.getFledgeBackgroundFetchNetworkReadTimeoutMs())
.isEqualTo(phOverridingValue);
}
@Test
public void testFledgeAuctionServerKeyFetchMaxResponseSize() {
// Without any overriding, the value is the hard coded constant.
assertThat(
FlagsFactory.getFlags()
.getFledgeAuctionServerBackgroundKeyFetchMaxResponseSizeB())
.isEqualTo(FLEDGE_AUCTION_SERVER_BACKGROUND_KEY_FETCH_MAX_RESPONSE_SIZE_B);
long phOverridingValue =
FLEDGE_AUCTION_SERVER_BACKGROUND_KEY_FETCH_MAX_RESPONSE_SIZE_B + 1000;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_FLEDGE_AUCTION_SERVER_BACKGROUND_KEY_FETCH_MAX_RESPONSE_SIZE_B,
Long.toString(phOverridingValue),
/* makeDefault */ false);
assertThat(mPhFlags.getFledgeAuctionServerBackgroundKeyFetchMaxResponseSizeB())
.isEqualTo(phOverridingValue);
}
@Test
public void testFledgeAuctionServerKeyFetchMaxRuntimeMs() {
// Without any overriding, the value is the hard coded constant.
assertThat(
FlagsFactory.getFlags()
.getFledgeAuctionServerBackgroundKeyFetchJobMaxRuntimeMs())
.isEqualTo(FLEDGE_AUCTION_SERVER_BACKGROUND_KEY_FETCH_MAX_RUNTIME_MS);
long phOverridingValue = FLEDGE_AUCTION_SERVER_BACKGROUND_KEY_FETCH_MAX_RUNTIME_MS + 1000;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_FLEDGE_AUCTION_SERVER_BACKGROUND_KEY_FETCH_MAX_RUNTIME_MS,
Long.toString(phOverridingValue),
/* makeDefault */ false);
assertThat(mPhFlags.getFledgeAuctionServerBackgroundKeyFetchJobMaxRuntimeMs())
.isEqualTo(phOverridingValue);
}
@Test
public void testFledgeAuctionServerKeyFetchJobPeriodMs() {
// Without any overriding, the value is the hard coded constant.
assertThat(mPhFlags.getFledgeAuctionServerBackgroundKeyFetchJobPeriodMs())
.isEqualTo(FLEDGE_AUCTION_SERVER_BACKGROUND_KEY_FETCH_JOB_PERIOD_MS);
long phOverridingValue = FLEDGE_AUCTION_SERVER_BACKGROUND_KEY_FETCH_JOB_PERIOD_MS + 1000;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_FLEDGE_AUCTION_SERVER_BACKGROUND_KEY_FETCH_JOB_PERIOD_MS,
Long.toString(phOverridingValue),
/* makeDefault */ false);
assertThat(mPhFlags.getFledgeAuctionServerBackgroundKeyFetchJobPeriodMs())
.isEqualTo(phOverridingValue);
}
@Test
public void testFledgeAuctionServerKeyFetchJobFlexMs() {
// Without any overriding, the value is the hard coded constant.
assertThat(mPhFlags.getFledgeAuctionServerBackgroundKeyFetchJobFlexMs())
.isEqualTo(FLEDGE_AUCTION_SERVER_BACKGROUND_KEY_FETCH_JOB_FLEX_MS);
long phOverridingValue = FLEDGE_AUCTION_SERVER_BACKGROUND_KEY_FETCH_JOB_FLEX_MS + 1000;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_FLEDGE_AUCTION_SERVER_BACKGROUND_KEY_FETCH_JOB_FLEX_MS,
Long.toString(phOverridingValue),
/* makeDefault */ false);
assertThat(mPhFlags.getFledgeAuctionServerBackgroundKeyFetchJobFlexMs())
.isEqualTo(phOverridingValue);
}
@Test
public void testFledgeAuctionServerAuctionKeyFetchTimeoutMs() {
// Without any overriding, the value is the hard coded constant.
assertThat(mPhFlags.getFledgeAuctionServerAuctionKeyFetchTimeoutMs())
.isEqualTo(FLEDGE_AUCTION_SERVER_AUCTION_KEY_FETCH_TIMEOUT_MS);
long phOverridingValue = FLEDGE_AUCTION_SERVER_AUCTION_KEY_FETCH_TIMEOUT_MS + 1000;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_FLEDGE_AUCTION_SERVER_AUCTION_KEY_FETCH_TIMEOUT_MS,
Long.toString(phOverridingValue),
/* makeDefault */ false);
assertThat(mPhFlags.getFledgeAuctionServerAuctionKeyFetchTimeoutMs())
.isEqualTo(phOverridingValue);
}
@Test
public void testFledgeAuctionServerOverallTimeoutMs() {
// Without any overriding, the value is the hard coded constant.
assertThat(mPhFlags.getFledgeAuctionServerOverallTimeoutMs())
.isEqualTo(FLEDGE_AUCTION_SERVER_OVERALL_TIMEOUT_MS);
long phOverridingValue = FLEDGE_AUCTION_SERVER_OVERALL_TIMEOUT_MS + 1000;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_FLEDGE_AUCTION_SERVER_OVERALL_TIMEOUT_MS,
Long.toString(phOverridingValue),
/* makeDefault */ false);
assertThat(mPhFlags.getFledgeAuctionServerOverallTimeoutMs()).isEqualTo(phOverridingValue);
}
@Test
public void testConsentNotificationActivityDebugMode() {
// Without any overriding, the value is the hard coded constant.
assertThat(mPhFlags.getConsentNotificationActivityDebugMode())
.isEqualTo(CONSENT_NOTIFICATION_ACTIVITY_DEBUG_MODE);
boolean phOverridingValue = !CONSENT_NOTIFICATION_ACTIVITY_DEBUG_MODE;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_CONSENT_NOTIFICATION_ACTIVITY_DEBUG_MODE,
Boolean.toString(phOverridingValue),
/* makeDefault */ !CONSENT_NOTIFICATION_ACTIVITY_DEBUG_MODE);
assertThat(mPhFlags.getConsentNotificationActivityDebugMode()).isEqualTo(phOverridingValue);
}
@Test
public void testConsentNotifiedDebugMode() {
// Without any overriding, the value is the hard coded constant.
assertThat(mPhFlags.getConsentNotifiedDebugMode()).isEqualTo(CONSENT_NOTIFIED_DEBUG_MODE);
boolean phOverridingValue = !CONSENT_NOTIFIED_DEBUG_MODE;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_CONSENT_NOTIFIED_DEBUG_MODE,
Boolean.toString(phOverridingValue),
/* makeDefault */ false);
assertThat(mPhFlags.getConsentNotifiedDebugMode()).isEqualTo(phOverridingValue);
}
@Test
public void testU18UxDetentionChannel() {
// Without any overriding, the value is the hard coded constant.
assertThat(mPhFlags.isU18UxDetentionChannelEnabled())
.isEqualTo(IS_U18_UX_DETENTION_CHANNEL_ENABLED_DEFAULT);
boolean phOverridingValue = !IS_U18_UX_DETENTION_CHANNEL_ENABLED_DEFAULT;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_IS_U18_UX_DETENTION_CHANNEL_ENABLED,
Boolean.toString(phOverridingValue),
/* makeDefault */ !IS_U18_UX_DETENTION_CHANNEL_ENABLED_DEFAULT);
assertThat(mPhFlags.isU18UxDetentionChannelEnabled()).isEqualTo(phOverridingValue);
}
@Test
public void testConsentNotificationResetToken() {
// Without any overriding, the value is the hard coded constant.
assertThat(mPhFlags.getConsentNotificationResetToken())
.isEqualTo(CONSENT_NOTIFICATION_RESET_TOKEN);
String phOverridingValue = CONSENT_NOTIFICATION_RESET_TOKEN + UUID.randomUUID().toString();
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_CONSENT_NOTIFICATION_RESET_TOKEN,
phOverridingValue,
/* makeDefault */ false);
assertThat(mPhFlags.getConsentNotificationResetToken()).isEqualTo(phOverridingValue);
}
@Test
public void testGetEnableLoggedTopic() {
assertThat(mPhFlags.getEnableLoggedTopic()).isEqualTo(ENABLE_LOGGED_TOPIC);
boolean phOverridingValue = !ENABLE_LOGGED_TOPIC;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_ENABLE_LOGGED_TOPIC,
Boolean.toString(phOverridingValue),
/* makeDefault */ false);
assertThat(mPhFlags.getEnableLoggedTopic()).isEqualTo(phOverridingValue);
}
@Test
public void testGetEnableDatabaseSchemaVersion8() {
assertThat(mPhFlags.getEnableDatabaseSchemaVersion8())
.isEqualTo(ENABLE_DATABASE_SCHEMA_VERSION_8);
boolean phOverridingValue = !ENABLE_DATABASE_SCHEMA_VERSION_8;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_ENABLE_DATABASE_SCHEMA_VERSION_8,
Boolean.toString(phOverridingValue),
/* makeDefault */ false);
assertThat(mPhFlags.getEnableDatabaseSchemaVersion8()).isEqualTo(phOverridingValue);
}
@Test
public void testGetEnableDatabaseSchemaVersion9() {
assertThat(mPhFlags.getEnableDatabaseSchemaVersion9())
.isEqualTo(ENABLE_DATABASE_SCHEMA_VERSION_9);
boolean phOverridingValue = !ENABLE_DATABASE_SCHEMA_VERSION_9;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_ENABLE_DATABASE_SCHEMA_VERSION_9,
Boolean.toString(phOverridingValue),
/* makeDefault */ false);
assertThat(mPhFlags.getEnableDatabaseSchemaVersion9()).isEqualTo(phOverridingValue);
}
@Test
public void testGetMsmtEnableApiStatusAllowListCheck() {
assertThat(mPhFlags.getMsmtEnableApiStatusAllowListCheck())
.isEqualTo(MEASUREMENT_ENABLE_API_STATUS_ALLOW_LIST_CHECK);
boolean phOverridingValue = !MEASUREMENT_ENABLE_API_STATUS_ALLOW_LIST_CHECK;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_MEASUREMENT_ENABLE_API_STATUS_ALLOW_LIST_CHECK,
Boolean.toString(phOverridingValue),
/* makeDefault */ false);
assertThat(mPhFlags.getMsmtEnableApiStatusAllowListCheck()).isEqualTo(phOverridingValue);
}
@Test
public void testGetMeasurementEnableMaxAggregateReportsPerSource() {
assertThat(mPhFlags.getMeasurementEnableMaxAggregateReportsPerSource())
.isEqualTo(MEASUREMENT_ENABLE_MAX_AGGREGATE_REPORTS_PER_SOURCE);
// Now overriding with the value from PH.
boolean phOverridingValue = !MEASUREMENT_ENABLE_MAX_AGGREGATE_REPORTS_PER_SOURCE;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_MEASUREMENT_ENABLE_MAX_AGGREGATE_REPORTS_PER_SOURCE,
Boolean.toString(phOverridingValue),
/* makeDefault */ false);
assertThat(mPhFlags.getMeasurementEnableMaxAggregateReportsPerSource())
.isEqualTo(phOverridingValue);
}
@Test
public void testGetMeasurementMaxAggregateReportsPerSource() {
assertThat(mPhFlags.getMeasurementMaxAggregateReportsPerSource())
.isEqualTo(MEASUREMENT_MAX_AGGREGATE_REPORTS_PER_SOURCE);
// Now overriding with the value from PH.
int phOverridingValue = MEASUREMENT_MAX_AGGREGATE_REPORTS_PER_SOURCE + 10;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_MEASUREMENT_MAX_AGGREGATE_REPORTS_PER_SOURCE,
Integer.toString(phOverridingValue),
/* makeDefault */ false);
assertThat(mPhFlags.getMeasurementMaxAggregateReportsPerSource())
.isEqualTo(phOverridingValue);
}
@Test
public void testGetMeasurementRegisterInteractionApiEnabled() {
assertThat(mPhFlags.getFledgeMeasurementReportAndRegisterEventApiEnabled())
.isEqualTo(FLEDGE_MEASUREMENT_REPORT_AND_REGISTER_EVENT_API_ENABLED);
boolean phOverridingValue = !FLEDGE_MEASUREMENT_REPORT_AND_REGISTER_EVENT_API_ENABLED;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_FLEDGE_MEASUREMENT_REPORT_AND_REGISTER_EVENT_API_ENABLED,
Boolean.toString(phOverridingValue),
/* makeDefault */ false);
assertThat(mPhFlags.getFledgeMeasurementReportAndRegisterEventApiEnabled())
.isEqualTo(phOverridingValue);
}
@Test
public void testGetMeasurementRegisterInteractionApiFallbackEnabled_featureDisabled() {
// Disable the feature.
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_FLEDGE_MEASUREMENT_REPORT_AND_REGISTER_EVENT_API_ENABLED,
Boolean.toString(false),
/* makeDefault */ false);
assertThat(mPhFlags.getFledgeMeasurementReportAndRegisterEventApiEnabled())
.isEqualTo(false);
// Assert fallback is disabled.
assertThat(mPhFlags.getFledgeMeasurementReportAndRegisterEventApiFallbackEnabled())
.isEqualTo(false);
// Assert overriding Ph value has no effect, as long as the feature is disabled.
boolean phOverridingValue =
!FLEDGE_MEASUREMENT_REPORT_AND_REGISTER_EVENT_API_FALLBACK_ENABLED;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_FLEDGE_MEASUREMENT_REPORT_AND_REGISTER_EVENT_API_FALLBACK_ENABLED,
Boolean.toString(phOverridingValue),
/* makeDefault */ false);
assertThat(mPhFlags.getFledgeMeasurementReportAndRegisterEventApiFallbackEnabled())
.isEqualTo(false);
}
@Test
public void testGetMeasurementRegisterInteractionApiFallbackEnabled_featureEnabled() {
// Enable the feature.
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_FLEDGE_MEASUREMENT_REPORT_AND_REGISTER_EVENT_API_ENABLED,
Boolean.toString(true),
/* makeDefault */ false);
assertThat(mPhFlags.getFledgeMeasurementReportAndRegisterEventApiEnabled()).isEqualTo(true);
// Assert fallback is set to default behavior.
assertThat(mPhFlags.getFledgeMeasurementReportAndRegisterEventApiFallbackEnabled())
.isEqualTo(FLEDGE_MEASUREMENT_REPORT_AND_REGISTER_EVENT_API_FALLBACK_ENABLED);
// Assert overriding Ph value has an effect, since the feature is enabled.
boolean phOverridingValue =
!FLEDGE_MEASUREMENT_REPORT_AND_REGISTER_EVENT_API_FALLBACK_ENABLED;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_FLEDGE_MEASUREMENT_REPORT_AND_REGISTER_EVENT_API_FALLBACK_ENABLED,
Boolean.toString(phOverridingValue),
/* makeDefault */ false);
assertThat(mPhFlags.getFledgeMeasurementReportAndRegisterEventApiFallbackEnabled())
.isEqualTo(phOverridingValue);
}
@Test
public void testGetMeasurementEnableAppPackageNameLogging() {
assertThat(mPhFlags.getMeasurementEnableAppPackageNameLogging())
.isEqualTo(MEASUREMENT_ENABLE_APP_PACKAGE_NAME_LOGGING);
boolean phOverridingValue = !MEASUREMENT_ENABLE_APP_PACKAGE_NAME_LOGGING;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_MEASUREMENT_ENABLE_APP_PACKAGE_NAME_LOGGING,
Boolean.toString(phOverridingValue),
/* makeDefault */ false);
assertThat(mPhFlags.getMeasurementEnableAppPackageNameLogging())
.isEqualTo(phOverridingValue);
}
@Test
public void testGetMeasurementJobDebugReportingKillSwitch() {
// Disable global_kill_switch so that this flag can be tested.
disableGlobalKillSwitch();
// without any overriding, the value is hard coded constant
assertThat(mPhFlags.getMeasurementJobDebugReportingKillSwitch())
.isEqualTo(MEASUREMENT_JOB_DEBUG_REPORTING_KILL_SWITCH);
boolean phOverridingValue = !MEASUREMENT_JOB_DEBUG_REPORTING_KILL_SWITCH;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_MEASUREMENT_JOB_DEBUG_REPORTING_KILL_SWITCH,
Boolean.toString(phOverridingValue),
false);
assertThat(mPhFlags.getMeasurementJobDebugReportingKillSwitch())
.isEqualTo(phOverridingValue);
}
@Test
public void testGetMeasurementJobDebugReportingKillSwitch_measurementOverride() {
// Disable global_kill_switch so that this flag can be tested.
disableGlobalKillSwitch();
// without any overriding, the value is hard coded constant
assertThat(mPhFlags.getMeasurementJobDebugReportingKillSwitch())
.isEqualTo(MEASUREMENT_JOB_DEBUG_REPORTING_KILL_SWITCH);
boolean phOverridingValue = !MEASUREMENT_JOB_DEBUG_REPORTING_KILL_SWITCH;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_MEASUREMENT_KILL_SWITCH,
Boolean.toString(phOverridingValue),
false);
assertThat(mPhFlags.getMeasurementJobDebugReportingKillSwitch())
.isEqualTo(phOverridingValue);
}
@Test
public void testGetMeasurementJobDebugReportingKillSwitch_globalOverride() {
// Disable global_kill_switch so that this flag can be tested.
disableGlobalKillSwitch();
// without any overriding, the value is hard coded constant
assertThat(mPhFlags.getMeasurementJobDebugReportingKillSwitch())
.isEqualTo(MEASUREMENT_JOB_DEBUG_REPORTING_KILL_SWITCH);
boolean phOverridingValue = !MEASUREMENT_JOB_DEBUG_REPORTING_KILL_SWITCH;
overrideGlobalKillSwitch(phOverridingValue);
assertThat(mPhFlags.getMeasurementJobDebugReportingKillSwitch())
.isEqualTo(phOverridingValue);
}
@Test
public void testGetMeasurementJobVerboseDebugReportingKillSwitch() {
// Disable global_kill_switch so that this flag can be tested.
disableGlobalKillSwitch();
// without any overriding, the value is hard coded constant
assertThat(mPhFlags.getMeasurementJobVerboseDebugReportingKillSwitch())
.isEqualTo(MEASUREMENT_JOB_VERBOSE_DEBUG_REPORTING_KILL_SWITCH);
boolean phOverridingValue = !MEASUREMENT_JOB_VERBOSE_DEBUG_REPORTING_KILL_SWITCH;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_MEASUREMENT_JOB_VERBOSE_DEBUG_REPORTING_KILL_SWITCH,
Boolean.toString(phOverridingValue),
false);
assertThat(mPhFlags.getMeasurementJobVerboseDebugReportingKillSwitch())
.isEqualTo(phOverridingValue);
}
@Test
public void testGetMeasurementJobVerboseDebugReportingKillSwitch_measurementOverride() {
// Disable global_kill_switch so that this flag can be tested.
disableGlobalKillSwitch();
// without any overriding, the value is hard coded constant
assertThat(mPhFlags.getMeasurementJobVerboseDebugReportingKillSwitch())
.isEqualTo(MEASUREMENT_JOB_VERBOSE_DEBUG_REPORTING_KILL_SWITCH);
boolean phOverridingValue = !MEASUREMENT_JOB_VERBOSE_DEBUG_REPORTING_KILL_SWITCH;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_MEASUREMENT_KILL_SWITCH,
Boolean.toString(phOverridingValue),
false);
assertThat(mPhFlags.getMeasurementJobVerboseDebugReportingKillSwitch())
.isEqualTo(phOverridingValue);
}
@Test
public void testGetMeasurementJobVerboseDebugReportingKillSwitch_globalOverride() {
// Disable global_kill_switch so that this flag can be tested.
disableGlobalKillSwitch();
// without any overriding, the value is hard coded constant
assertThat(mPhFlags.getMeasurementJobVerboseDebugReportingKillSwitch())
.isEqualTo(MEASUREMENT_JOB_VERBOSE_DEBUG_REPORTING_KILL_SWITCH);
boolean phOverridingValue = !MEASUREMENT_JOB_VERBOSE_DEBUG_REPORTING_KILL_SWITCH;
overrideGlobalKillSwitch(phOverridingValue);
assertThat(mPhFlags.getMeasurementJobVerboseDebugReportingKillSwitch())
.isEqualTo(phOverridingValue);
}
@Test
public void testGetMeasurementAppPackageNameLoggingAllowlist() {
assertThat(mPhFlags.getMeasurementAppPackageNameLoggingAllowlist())
.isEqualTo(MEASUREMENT_APP_PACKAGE_NAME_LOGGING_ALLOWLIST);
String phOverridingValue = "test app package name";
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_MEASUREMENT_APP_PACKAGE_NAME_LOGGING_ALLOWLIST,
phOverridingValue,
/* makeDefault */ false);
assertThat(mPhFlags.getMeasurementAppPackageNameLoggingAllowlist())
.isEqualTo(phOverridingValue);
}
@Test
public void testU18SupervisedAccountEnabled() {
// Without any overriding, the value is the hard coded constant.
assertThat(mPhFlags.isU18SupervisedAccountEnabled())
.isEqualTo(IS_U18_SUPERVISED_ACCOUNT_ENABLED_DEFAULT);
boolean phOverridingValue = !IS_U18_SUPERVISED_ACCOUNT_ENABLED_DEFAULT;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_IS_U18_SUPERVISED_ACCOUNT_ENABLED,
Boolean.toString(phOverridingValue),
/* makeDefault */ false);
assertThat(mPhFlags.isU18SupervisedAccountEnabled()).isEqualTo(phOverridingValue);
}
@Test
public void testGetAdIdCacheEnabled() {
assertThat(mPhFlags.getAdIdCacheEnabled()).isEqualTo(DEFAULT_ADID_CACHE_ENABLED);
boolean phOverridingValue = !DEFAULT_ADID_CACHE_ENABLED;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_AD_ID_CACHE_ENABLED,
Boolean.toString(phOverridingValue),
/* makeDefault */ false);
assertThat(mPhFlags.getAdIdCacheEnabled()).isEqualTo(phOverridingValue);
}
@Test
public void testGetAdIdFetcherTimeout() {
assertThat(mPhFlags.getAdIdFetcherTimeoutMs()).isEqualTo(DEFAULT_AD_ID_FETCHER_TIMEOUT_MS);
long phOverridingValue = 5000;
PhFlagsFixture.overrideAdIdFetcherTimeoutMs(phOverridingValue);
assertThat(mPhFlags.getAdIdFetcherTimeoutMs()).isEqualTo(phOverridingValue);
}
@Test
public void testGetAppConfigReturnsEnabledByDefault() {
// Without any overriding, the value is the hard coded constant.
assertThat(mPhFlags.getAppConfigReturnsEnabledByDefault())
.isEqualTo(Flags.APP_CONFIG_RETURNS_ENABLED_BY_DEFAULT);
boolean phOverridingValue = !Flags.APP_CONFIG_RETURNS_ENABLED_BY_DEFAULT;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
FlagsConstants.KEY_APP_CONFIG_RETURNS_ENABLED_BY_DEFAULT,
Boolean.toString(phOverridingValue),
/* makeDefault */ false);
assertThat(mPhFlags.getAppConfigReturnsEnabledByDefault()).isEqualTo(phOverridingValue);
}
@Test
public void testGetEnableAdExtDataServiceApis() {
assertThat(mPhFlags.getEnableAdExtDataServiceApis())
.isEqualTo(DEFAULT_ENABLE_ADEXT_DATA_SERVICE_APIS);
boolean phOverridingValue = !DEFAULT_ENABLE_ADEXT_DATA_SERVICE_APIS;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_ENABLE_ADEXT_DATA_SERVICE_APIS,
Boolean.toString(phOverridingValue),
/* makeDefault */ false);
assertThat(mPhFlags.getEnableAdExtDataServiceApis()).isEqualTo(phOverridingValue);
}
@Test
public void testGetEnableAdservicesApiEnabled() {
assertThat(mPhFlags.getEnableAdservicesApiEnabled())
.isEqualTo(DEFAULT_ENABLE_ADSERVICES_API_ENABLED);
boolean phOverridingValue = !DEFAULT_ENABLE_ADSERVICES_API_ENABLED;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_ENABLE_ADSERVICES_API_ENABLED,
Boolean.toString(phOverridingValue),
/* makeDefault */ false);
assertThat(mPhFlags.getEnableAdservicesApiEnabled()).isEqualTo(phOverridingValue);
}
@Test
public void testGetAdservicesEnablementCheckEnabled() {
assertThat(mPhFlags.getAdservicesEnablementCheckEnabled())
.isEqualTo(DEFAULT_ADSERVICES_ENABLEMENT_CHECK_ENABLED);
boolean phOverridingValue = !DEFAULT_ADID_CACHE_ENABLED;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_ADSERVICES_ENABLEMENT_CHECK_ENABLED,
Boolean.toString(phOverridingValue),
/* makeDefault */ false);
assertThat(mPhFlags.getAdservicesEnablementCheckEnabled()).isEqualTo(phOverridingValue);
}
private void overrideGlobalKillSwitch(boolean phOverridingValue) {
if (SdkLevel.isAtLeastT()) {
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_GLOBAL_KILL_SWITCH,
Boolean.toString(phOverridingValue),
false);
} else {
// For S minus use enable_back_compat as global kill switch
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
KEY_ENABLE_BACK_COMPAT,
Boolean.toString(!phOverridingValue),
true);
}
}
}