| Index: ios/chrome/browser/ui/settings/settings_egtest.mm
|
| diff --git a/ios/chrome/browser/ui/settings/settings_egtest.mm b/ios/chrome/browser/ui/settings/settings_egtest.mm
|
| index 8bcf82e7d2f54a54967bd05959d7fd4e0f8897e3..0bdaae46d911773475948bf56685bfad6d830b1d 100644
|
| --- a/ios/chrome/browser/ui/settings/settings_egtest.mm
|
| +++ b/ios/chrome/browser/ui/settings/settings_egtest.mm
|
| @@ -463,6 +463,17 @@ bool IsCertificateCleared() {
|
| performAction:grey_tap()];
|
| }
|
|
|
| +- (void)setMetricsReportingEnabled:(BOOL)reportingEnabled
|
| + wifiOnly:(BOOL)wifiOnly {
|
| + chrome_test_util::SetBooleanLocalStatePref(
|
| + metrics::prefs::kMetricsReportingEnabled, reportingEnabled);
|
| + chrome_test_util::SetBooleanLocalStatePref(prefs::kMetricsReportingWifiOnly,
|
| + wifiOnly);
|
| + // Breakpad uses dispatch_async to update its state. Wait to get to a
|
| + // consistent state.
|
| + [[GREYUIThreadExecutor sharedInstance] drainUntilIdle];
|
| +}
|
| +
|
| // Checks for a given service that it is both recording and uploading, where
|
| // appropriate.
|
| - (void)assertMetricsServiceEnabled:(MetricsServiceType)serviceType {
|
| @@ -558,19 +569,13 @@ bool IsCertificateCleared() {
|
| // - Services record data and upload data.
|
|
|
| // kMetricsReportingEnabled OFF and kMetricsReportingWifiOnly OFF
|
| - chrome_test_util::SetBooleanLocalStatePref(
|
| - metrics::prefs::kMetricsReportingEnabled, NO);
|
| - chrome_test_util::SetBooleanLocalStatePref(prefs::kMetricsReportingWifiOnly,
|
| - NO);
|
| + [self setMetricsReportingEnabled:NO wifiOnly:NO];
|
| // Service should be completely disabled.
|
| // I.e. no recording of data, and no uploading of what's been recorded.
|
| [self assertMetricsServiceDisabled:serviceType];
|
|
|
| // kMetricsReportingEnabled OFF and kMetricsReportingWifiOnly ON
|
| - chrome_test_util::SetBooleanLocalStatePref(
|
| - metrics::prefs::kMetricsReportingEnabled, NO);
|
| - chrome_test_util::SetBooleanLocalStatePref(prefs::kMetricsReportingWifiOnly,
|
| - YES);
|
| + [self setMetricsReportingEnabled:NO wifiOnly:YES];
|
| // If kMetricsReportingEnabled is OFF, any service should remain completely
|
| // disabled, i.e. no uploading even if kMetricsReportingWifiOnly is ON.
|
| [self assertMetricsServiceDisabled:serviceType];
|
| @@ -584,10 +589,7 @@ bool IsCertificateCleared() {
|
| // the services, turning on and off according to the rules laid out above.
|
|
|
| // kMetricsReportingEnabled ON and kMetricsReportingWifiOnly ON.
|
| - chrome_test_util::SetBooleanLocalStatePref(
|
| - metrics::prefs::kMetricsReportingEnabled, YES);
|
| - chrome_test_util::SetBooleanLocalStatePref(prefs::kMetricsReportingWifiOnly,
|
| - YES);
|
| + [self setMetricsReportingEnabled:YES wifiOnly:YES];
|
| // Service should be enabled.
|
| [self assertMetricsServiceEnabled:serviceType];
|
|
|
| @@ -601,10 +603,7 @@ bool IsCertificateCleared() {
|
| [self assertMetricsServiceEnabled:serviceType];
|
|
|
| // kMetricsReportingEnabled ON and kMetricsReportingWifiOnly OFF
|
| - chrome_test_util::SetBooleanLocalStatePref(
|
| - metrics::prefs::kMetricsReportingEnabled, YES);
|
| - chrome_test_util::SetBooleanLocalStatePref(prefs::kMetricsReportingWifiOnly,
|
| - NO);
|
| + [self setMetricsReportingEnabled:YES wifiOnly:NO];
|
| [self assertMetricsServiceEnabled:serviceType];
|
| #else
|
| // Development build. Do not allow any recording or uploading of data.
|
| @@ -615,18 +614,12 @@ bool IsCertificateCleared() {
|
| // services remain disabled.
|
|
|
| // kMetricsReportingEnabled ON and kMetricsReportingWifiOnly ON
|
| - chrome_test_util::SetBooleanLocalStatePref(
|
| - metrics::prefs::kMetricsReportingEnabled, YES);
|
| - chrome_test_util::SetBooleanLocalStatePref(prefs::kMetricsReportingWifiOnly,
|
| - YES);
|
| + [self setMetricsReportingEnabled:YES wifiOnly:YES];
|
| // Service should remain disabled.
|
| [self assertMetricsServiceDisabled:serviceType];
|
|
|
| // kMetricsReportingEnabled ON and kMetricsReportingWifiOnly OFF
|
| - chrome_test_util::SetBooleanLocalStatePref(
|
| - metrics::prefs::kMetricsReportingEnabled, YES);
|
| - chrome_test_util::SetBooleanLocalStatePref(prefs::kMetricsReportingWifiOnly,
|
| - NO);
|
| + [self setMetricsReportingEnabled:YES wifiOnly:NO];
|
| // Service should remain disabled.
|
| [self assertMetricsServiceDisabled:serviceType];
|
| #endif
|
|
|