• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright 2022 Google LLC
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  *      http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16 package com.google.android.libraries.mobiledatadownload.testing;
17 
18 import com.google.android.libraries.mobiledatadownload.Flags;
19 import com.google.common.base.Optional;
20 
21 /** Default {@link Flags} with simple overrides for ease of testing. */
22 public final class TestFlags implements Flags {
23 
24   public Optional<Boolean> clearStateOnMddDisabled = Optional.absent();
25   public Optional<Boolean> mddDeleteGroupsRemovedAccounts = Optional.absent();
26   public Optional<Boolean> broadcastNewlyDownloadedGroups = Optional.absent();
27   public Optional<Boolean> logFileGroupsWithFilesMissing = Optional.absent();
28   public Optional<Boolean> deleteFileGroupsWithFilesMissing = Optional.absent();
29   public Optional<Boolean> dumpMddInfo = Optional.absent();
30   public Optional<Boolean> enableDebugUi = Optional.absent();
31   public Optional<Boolean> enableClientErrorLogging = Optional.absent();
32   public Optional<Integer> fileKeyVersion = Optional.absent();
33   public Optional<Boolean> testOnlyFileKeyVersion = Optional.absent();
34   public Optional<Boolean> enableCompressedFile = Optional.absent();
35   public Optional<Boolean> enableZipFolder = Optional.absent();
36   public Optional<Boolean> enableDeltaDownload = Optional.absent();
37   public Optional<Boolean> enableMddGcmService = Optional.absent();
38   public Optional<Boolean> enableSilentFeedback = Optional.absent();
39   public Optional<Boolean> migrateToNewFileKey = Optional.absent();
40   public Optional<Boolean> migrateFileExpirationPolicy = Optional.absent();
41   public Optional<Boolean> downloadFirstOnWifiThenOnAnyNetwork = Optional.absent();
42   public Optional<Boolean> logStorageStats = Optional.absent();
43   public Optional<Boolean> logNetworkStats = Optional.absent();
44   public Optional<Boolean> removeGroupkeysWithDownloadedFieldNotSet = Optional.absent();
45   public Optional<Boolean> cacheLastLocation = Optional.absent();
46   public Optional<Integer> locationCustomParamS2Level = Optional.absent();
47   public Optional<Integer> locationTaskTimeoutSec = Optional.absent();
48   public Optional<Boolean> addConfigsFromPhenotype = Optional.absent();
49   public Optional<Boolean> enableMobileDataDownload = Optional.absent();
50   public Optional<Integer> mddResetTrigger = Optional.absent();
51   public Optional<Boolean> mddEnableDownloadPendingGroups = Optional.absent();
52   public Optional<Boolean> mddEnableVerifyPendingGroups = Optional.absent();
53   public Optional<Boolean> mddEnableGarbageCollection = Optional.absent();
54   public Optional<Boolean> mddDeleteUninstalledApps = Optional.absent();
55   public Optional<Boolean> enableMobstoreFileService = Optional.absent();
56   public Optional<Boolean> enableDelayedDownload = Optional.absent();
57   public Optional<Boolean> gcmRescheduleOnlyOncePerProcessStart = Optional.absent();
58   public Optional<Boolean> gmsMddSwitchToCronet = Optional.absent();
59   public Optional<Boolean> enableDaysSinceLastMaintenanceTracking = Optional.absent();
60   public Optional<Boolean> enableSideloading = Optional.absent();
61   public Optional<Boolean> enableDownloadStageExperimentIdPropagation = Optional.absent();
62   public Optional<Boolean> enableIsolatedStructureVerification = Optional.absent();
63   public Optional<Boolean> enableRngBasedDeviceStableSampling = Optional.absent();
64   public Optional<Boolean> enableFileDownloadDedupByFileKey = Optional.absent();
65   public Optional<Long> maintenanceGcmTaskPeriod = Optional.absent();
66   public Optional<Long> chargingGcmTaskPeriod = Optional.absent();
67   public Optional<Long> cellularChargingGcmTaskPeriod = Optional.absent();
68   public Optional<Long> wifiChargingGcmTaskPeriod = Optional.absent();
69   public Optional<Integer> mddDefaultSampleInterval = Optional.absent();
70   public Optional<Integer> mddDownloadEventsSampleInterval = Optional.absent();
71   public Optional<Integer> groupStatsLoggingSampleInterval = Optional.absent();
72   public Optional<Integer> apiLoggingSampleInterval = Optional.absent();
73   public Optional<Integer> cleanupLogLoggingSampleInterval = Optional.absent();
74   public Optional<Integer> silentFeedbackSampleInterval = Optional.absent();
75   public Optional<Integer> storageStatsLoggingSampleInterval = Optional.absent();
76   public Optional<Integer> networkStatsLoggingSampleInterval = Optional.absent();
77   public Optional<Integer> mobstoreFileServiceStatsSampleInterval = Optional.absent();
78   public Optional<Integer> mddAndroidSharingSampleInterval = Optional.absent();
79   public Optional<Boolean> downloaderEnforceHttps = Optional.absent();
80   public Optional<Boolean> enforceLowStorageBehavior = Optional.absent();
81   public Optional<Integer> absFreeSpaceAfterDownload = Optional.absent();
82   public Optional<Integer> absFreeSpaceAfterDownloadLowStorageAllowed = Optional.absent();
83   public Optional<Integer> absFreeSpaceAfterDownloadExtremelyLowStorageAllowed = Optional.absent();
84   public Optional<Float> fractionFreeSpaceAfterDownload = Optional.absent();
85   public Optional<Integer> timeToWaitForDownloader = Optional.absent();
86   public Optional<Integer> downloaderMaxThreads = Optional.absent();
87   public Optional<Integer> downloaderMaxRetryOnChecksumMismatchCount = Optional.absent();
88 
89   private final Flags delegate = new Flags() {};
90 
91   @Override
clearStateOnMddDisabled()92   public boolean clearStateOnMddDisabled() {
93     return clearStateOnMddDisabled.or(delegate.clearStateOnMddDisabled());
94   }
95 
96   @Override
mddDeleteGroupsRemovedAccounts()97   public boolean mddDeleteGroupsRemovedAccounts() {
98     return mddDeleteGroupsRemovedAccounts.or(delegate.mddDeleteGroupsRemovedAccounts());
99   }
100 
101   @Override
broadcastNewlyDownloadedGroups()102   public boolean broadcastNewlyDownloadedGroups() {
103     return broadcastNewlyDownloadedGroups.or(delegate.broadcastNewlyDownloadedGroups());
104   }
105 
106   @Override
logFileGroupsWithFilesMissing()107   public boolean logFileGroupsWithFilesMissing() {
108     return logFileGroupsWithFilesMissing.or(delegate.logFileGroupsWithFilesMissing());
109   }
110 
111   @Override
deleteFileGroupsWithFilesMissing()112   public boolean deleteFileGroupsWithFilesMissing() {
113     return deleteFileGroupsWithFilesMissing.or(delegate.deleteFileGroupsWithFilesMissing());
114   }
115 
116   @Override
dumpMddInfo()117   public boolean dumpMddInfo() {
118     return dumpMddInfo.or(delegate.dumpMddInfo());
119   }
120 
121   @Override
enableDebugUi()122   public boolean enableDebugUi() {
123     return enableDebugUi.or(delegate.enableDebugUi());
124   }
125 
126   @Override
enableClientErrorLogging()127   public boolean enableClientErrorLogging() {
128     return enableClientErrorLogging.or(delegate.enableClientErrorLogging());
129   }
130 
131   @Override
fileKeyVersion()132   public int fileKeyVersion() {
133     return fileKeyVersion.or(delegate.fileKeyVersion());
134   }
135 
136   @Override
testOnlyFileKeyVersion()137   public boolean testOnlyFileKeyVersion() {
138     return testOnlyFileKeyVersion.or(delegate.testOnlyFileKeyVersion());
139   }
140 
141   @Override
enableCompressedFile()142   public boolean enableCompressedFile() {
143     return enableCompressedFile.or(delegate.enableCompressedFile());
144   }
145 
146   @Override
enableZipFolder()147   public boolean enableZipFolder() {
148     return enableZipFolder.or(delegate.enableZipFolder());
149   }
150 
151   @Override
enableDeltaDownload()152   public boolean enableDeltaDownload() {
153     return enableDeltaDownload.or(delegate.enableDeltaDownload());
154   }
155 
156   @Override
enableMddGcmService()157   public boolean enableMddGcmService() {
158     return enableMddGcmService.or(delegate.enableMddGcmService());
159   }
160 
161   @Override
enableSilentFeedback()162   public boolean enableSilentFeedback() {
163     return enableSilentFeedback.or(delegate.enableSilentFeedback());
164   }
165 
166   @Override
migrateToNewFileKey()167   public boolean migrateToNewFileKey() {
168     return migrateToNewFileKey.or(delegate.migrateToNewFileKey());
169   }
170 
171   @Override
migrateFileExpirationPolicy()172   public boolean migrateFileExpirationPolicy() {
173     return migrateFileExpirationPolicy.or(delegate.migrateFileExpirationPolicy());
174   }
175 
176   @Override
downloadFirstOnWifiThenOnAnyNetwork()177   public boolean downloadFirstOnWifiThenOnAnyNetwork() {
178     return downloadFirstOnWifiThenOnAnyNetwork.or(delegate.downloadFirstOnWifiThenOnAnyNetwork());
179   }
180 
181   @Override
logStorageStats()182   public boolean logStorageStats() {
183     return logStorageStats.or(delegate.logStorageStats());
184   }
185 
186   @Override
logNetworkStats()187   public boolean logNetworkStats() {
188     return logNetworkStats.or(delegate.logNetworkStats());
189   }
190 
191   @Override
removeGroupkeysWithDownloadedFieldNotSet()192   public boolean removeGroupkeysWithDownloadedFieldNotSet() {
193     return removeGroupkeysWithDownloadedFieldNotSet.or(
194         delegate.removeGroupkeysWithDownloadedFieldNotSet());
195   }
196 
197   @Override
cacheLastLocation()198   public boolean cacheLastLocation() {
199     return cacheLastLocation.or(delegate.cacheLastLocation());
200   }
201 
202   @Override
locationCustomParamS2Level()203   public int locationCustomParamS2Level() {
204     return locationCustomParamS2Level.or(delegate.locationCustomParamS2Level());
205   }
206 
207   @Override
locationTaskTimeoutSec()208   public int locationTaskTimeoutSec() {
209     return locationTaskTimeoutSec.or(delegate.locationTaskTimeoutSec());
210   }
211 
212   @Override
addConfigsFromPhenotype()213   public boolean addConfigsFromPhenotype() {
214     return addConfigsFromPhenotype.or(delegate.addConfigsFromPhenotype());
215   }
216 
217   @Override
enableMobileDataDownload()218   public boolean enableMobileDataDownload() {
219     return enableMobileDataDownload.or(delegate.enableMobileDataDownload());
220   }
221 
222   @Override
mddResetTrigger()223   public int mddResetTrigger() {
224     return mddResetTrigger.or(delegate.mddResetTrigger());
225   }
226 
227   @Override
mddEnableDownloadPendingGroups()228   public boolean mddEnableDownloadPendingGroups() {
229     return mddEnableDownloadPendingGroups.or(delegate.mddEnableDownloadPendingGroups());
230   }
231 
232   @Override
mddEnableVerifyPendingGroups()233   public boolean mddEnableVerifyPendingGroups() {
234     return mddEnableVerifyPendingGroups.or(delegate.mddEnableVerifyPendingGroups());
235   }
236 
237   @Override
mddEnableGarbageCollection()238   public boolean mddEnableGarbageCollection() {
239     return mddEnableGarbageCollection.or(delegate.mddEnableGarbageCollection());
240   }
241 
242   @Override
mddDeleteUninstalledApps()243   public boolean mddDeleteUninstalledApps() {
244     return mddDeleteUninstalledApps.or(delegate.mddDeleteUninstalledApps());
245   }
246 
247   @Override
enableMobstoreFileService()248   public boolean enableMobstoreFileService() {
249     return enableMobstoreFileService.or(delegate.enableMobstoreFileService());
250   }
251 
252   @Override
enableDelayedDownload()253   public boolean enableDelayedDownload() {
254     return enableDelayedDownload.or(delegate.enableDelayedDownload());
255   }
256 
257   @Override
gcmRescheduleOnlyOncePerProcessStart()258   public boolean gcmRescheduleOnlyOncePerProcessStart() {
259     return gcmRescheduleOnlyOncePerProcessStart.or(delegate.gcmRescheduleOnlyOncePerProcessStart());
260   }
261 
262   @Override
gmsMddSwitchToCronet()263   public boolean gmsMddSwitchToCronet() {
264     return gmsMddSwitchToCronet.or(delegate.gmsMddSwitchToCronet());
265   }
266 
267   @Override
enableDaysSinceLastMaintenanceTracking()268   public boolean enableDaysSinceLastMaintenanceTracking() {
269     return enableDaysSinceLastMaintenanceTracking.or(
270         delegate.enableDaysSinceLastMaintenanceTracking());
271   }
272 
273   @Override
enableSideloading()274   public boolean enableSideloading() {
275     return enableSideloading.or(delegate.enableSideloading());
276   }
277 
278   @Override
enableDownloadStageExperimentIdPropagation()279   public boolean enableDownloadStageExperimentIdPropagation() {
280     return enableDownloadStageExperimentIdPropagation.or(
281         delegate.enableDownloadStageExperimentIdPropagation());
282   }
283 
284   @Override
enableIsolatedStructureVerification()285   public boolean enableIsolatedStructureVerification() {
286     return enableIsolatedStructureVerification.or(delegate.enableIsolatedStructureVerification());
287   }
288 
289   @Override
enableRngBasedDeviceStableSampling()290   public boolean enableRngBasedDeviceStableSampling() {
291     return enableRngBasedDeviceStableSampling.or(delegate.enableRngBasedDeviceStableSampling());
292   }
293 
294   @Override
enableFileDownloadDedupByFileKey()295   public boolean enableFileDownloadDedupByFileKey() {
296     return enableFileDownloadDedupByFileKey.or(delegate.enableRngBasedDeviceStableSampling());
297   }
298 
299   @Override
maintenanceGcmTaskPeriod()300   public long maintenanceGcmTaskPeriod() {
301     return maintenanceGcmTaskPeriod.or(delegate.maintenanceGcmTaskPeriod());
302   }
303 
304   @Override
chargingGcmTaskPeriod()305   public long chargingGcmTaskPeriod() {
306     return chargingGcmTaskPeriod.or(delegate.chargingGcmTaskPeriod());
307   }
308 
309   @Override
cellularChargingGcmTaskPeriod()310   public long cellularChargingGcmTaskPeriod() {
311     return cellularChargingGcmTaskPeriod.or(delegate.cellularChargingGcmTaskPeriod());
312   }
313 
314   @Override
wifiChargingGcmTaskPeriod()315   public long wifiChargingGcmTaskPeriod() {
316     return wifiChargingGcmTaskPeriod.or(delegate.wifiChargingGcmTaskPeriod());
317   }
318 
319   @Override
mddDefaultSampleInterval()320   public int mddDefaultSampleInterval() {
321     return mddDefaultSampleInterval.or(delegate.mddDefaultSampleInterval());
322   }
323 
324   @Override
mddDownloadEventsSampleInterval()325   public int mddDownloadEventsSampleInterval() {
326     return mddDownloadEventsSampleInterval.or(delegate.mddDownloadEventsSampleInterval());
327   }
328 
329   @Override
groupStatsLoggingSampleInterval()330   public int groupStatsLoggingSampleInterval() {
331     return groupStatsLoggingSampleInterval.or(delegate.groupStatsLoggingSampleInterval());
332   }
333 
334   @Override
apiLoggingSampleInterval()335   public int apiLoggingSampleInterval() {
336     return apiLoggingSampleInterval.or(delegate.apiLoggingSampleInterval());
337   }
338 
339   @Override
cleanupLogLoggingSampleInterval()340   public int cleanupLogLoggingSampleInterval() {
341     return cleanupLogLoggingSampleInterval.or(delegate.cleanupLogLoggingSampleInterval());
342   }
343 
344   @Override
silentFeedbackSampleInterval()345   public int silentFeedbackSampleInterval() {
346     return silentFeedbackSampleInterval.or(delegate.silentFeedbackSampleInterval());
347   }
348 
349   @Override
storageStatsLoggingSampleInterval()350   public int storageStatsLoggingSampleInterval() {
351     return storageStatsLoggingSampleInterval.or(delegate.storageStatsLoggingSampleInterval());
352   }
353 
354   @Override
networkStatsLoggingSampleInterval()355   public int networkStatsLoggingSampleInterval() {
356     return networkStatsLoggingSampleInterval.or(delegate.networkStatsLoggingSampleInterval());
357   }
358 
359   @Override
mobstoreFileServiceStatsSampleInterval()360   public int mobstoreFileServiceStatsSampleInterval() {
361     return mobstoreFileServiceStatsSampleInterval.or(
362         delegate.mobstoreFileServiceStatsSampleInterval());
363   }
364 
365   @Override
mddAndroidSharingSampleInterval()366   public int mddAndroidSharingSampleInterval() {
367     return mddAndroidSharingSampleInterval.or(delegate.mddAndroidSharingSampleInterval());
368   }
369 
370   @Override
downloaderEnforceHttps()371   public boolean downloaderEnforceHttps() {
372     return downloaderEnforceHttps.or(delegate.downloaderEnforceHttps());
373   }
374 
375   @Override
enforceLowStorageBehavior()376   public boolean enforceLowStorageBehavior() {
377     return enforceLowStorageBehavior.or(delegate.enforceLowStorageBehavior());
378   }
379 
380   @Override
absFreeSpaceAfterDownload()381   public int absFreeSpaceAfterDownload() {
382     return absFreeSpaceAfterDownload.or(delegate.absFreeSpaceAfterDownload());
383   }
384 
385   @Override
absFreeSpaceAfterDownloadLowStorageAllowed()386   public int absFreeSpaceAfterDownloadLowStorageAllowed() {
387     return absFreeSpaceAfterDownloadLowStorageAllowed.or(
388         delegate.absFreeSpaceAfterDownloadLowStorageAllowed());
389   }
390 
391   @Override
absFreeSpaceAfterDownloadExtremelyLowStorageAllowed()392   public int absFreeSpaceAfterDownloadExtremelyLowStorageAllowed() {
393     return absFreeSpaceAfterDownloadExtremelyLowStorageAllowed.or(
394         delegate.absFreeSpaceAfterDownloadExtremelyLowStorageAllowed());
395   }
396 
397   @Override
fractionFreeSpaceAfterDownload()398   public float fractionFreeSpaceAfterDownload() {
399     return fractionFreeSpaceAfterDownload.or(delegate.fractionFreeSpaceAfterDownload());
400   }
401 
402   @Override
timeToWaitForDownloader()403   public int timeToWaitForDownloader() {
404     return timeToWaitForDownloader.or(delegate.timeToWaitForDownloader());
405   }
406 
407   @Override
downloaderMaxThreads()408   public int downloaderMaxThreads() {
409     return downloaderMaxThreads.or(delegate.downloaderMaxThreads());
410   }
411 
412   @Override
downloaderMaxRetryOnChecksumMismatchCount()413   public int downloaderMaxRetryOnChecksumMismatchCount() {
414     return downloaderMaxRetryOnChecksumMismatchCount.or(
415         delegate.downloaderMaxRetryOnChecksumMismatchCount());
416   }
417 }
418