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 |