chromium/ios/chrome/browser/ui/settings/settings_app_interface.h

// Copyright 2019 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#ifndef IOS_CHROME_BROWSER_UI_SETTINGS_SETTINGS_APP_INTERFACE_H_
#define IOS_CHROME_BROWSER_UI_SETTINGS_SETTINGS_APP_INTERFACE_H_

#import <Foundation/Foundation.h>

// Test specific helpers for settings_egtest.mm.
@interface SettingsAppInterface : NSObject

// Restore the Clear Browsing Data checkmarks prefs to their default state.
+ (void)restoreClearBrowsingDataCheckmarksToDefault;

// Returns YES if recording is active for metric service. Recording means
// store locally.
+ (BOOL)isMetricsRecordingEnabled [[nodiscard]];

// Returns YES if reporting is active for metric service. Reporting means
// upload what has been stored locally.
+ (BOOL)isMetricsReportingEnabled [[nodiscard]];

// Allows turning on and off metrics reporting.
+ (void)setMetricsReportingEnabled:(BOOL)reportingEnabled;

// YES if crashpad crash collection is enabled.
+ (BOOL)isCrashpadEnabled;

// YES if collected crashes get uploaded.
+ (BOOL)isCrashpadReportingEnabled;

// Returns YES if keyboard commands were seen.
+ (BOOL)settingsRegisteredKeyboardCommands;

// Override the default search engine with the given search engine URL.
+ (void)overrideSearchEngineWithURL:(NSString*)searchEngineURL;

// Restores the default search engine to Google, and wipes search engine choice
// prefs.
+ (void)resetSearchEngine;

// Adds a URL rewriter to replace all requests having their host containing a
// string `host` from `hosts`. Those URL are rewritten to
// 127.0.0.1:<port>/<host>.
+ (void)addURLRewriterForHosts:(NSArray<NSString*>*)hosts
                        onPort:(NSString*)port;

@end

#endif  // IOS_CHROME_BROWSER_UI_SETTINGS_SETTINGS_APP_INTERFACE_H_