chromium/ios/chrome/browser/autofill/ui_bundled/manual_fill/manual_fill_matchers.h

// Copyright 2024 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_AUTOFILL_UI_BUNDLED_MANUAL_FILL_MANUAL_FILL_MATCHERS_H_
#define IOS_CHROME_BROWSER_AUTOFILL_UI_BUNDLED_MANUAL_FILL_MANUAL_FILL_MATCHERS_H_

#import <Foundation/Foundation.h>

#import "base/strings/utf_string_conversions.h"

@protocol GREYMatcher;

namespace manual_fill {

// Returns a matcher for the scroll view in keyboard accessory bar.
id<GREYMatcher> FormSuggestionViewMatcher();

// Returns a matcher for the keyboard icon in the keyboard accessory bar.
id<GREYMatcher> KeyboardIconMatcher();

// Returns a matcher for the password icon in the keyboard accessory bar.
id<GREYMatcher> PasswordIconMatcher();

// Returns a matcher for the password table view in manual fallback.
id<GREYMatcher> PasswordTableViewMatcher();

// Returns a matcher for the password search bar in manual fallback.
id<GREYMatcher> PasswordSearchBarMatcher();

// Returns a matcher for the button to open Password Manager in manual
// fallback.
id<GREYMatcher> ManagePasswordsMatcher();

// Returns a matcher for the button to open password settings in manual
// fallback.
id<GREYMatcher> ManageSettingsMatcher();

// Returns a matcher for the button to open all passwords in manual fallback.
id<GREYMatcher> OtherPasswordsMatcher();

// Returns a matcher for the button to dismiss all passwords in manual fallback.
id<GREYMatcher> OtherPasswordsDismissMatcher();

// Returns a matcher for the a password in the manual fallback list.
id<GREYMatcher> PasswordButtonMatcher();

// Returns a matcher for the profiles icon in the keyboard accessory bar.
id<GREYMatcher> ProfilesIconMatcher();

// Returns a matcher for the profiles table view in manual fallback.
id<GREYMatcher> ProfilesTableViewMatcher();

// Returns a matcher for the button to open profile settings in manual
// fallback.
id<GREYMatcher> ManageProfilesMatcher();

// Returns a matcher for the ProfileTableView window.
id<GREYMatcher> ProfileTableViewWindowMatcher();

// Returns a matcher for the credit card icon in the keyboard accessory bar.
id<GREYMatcher> CreditCardIconMatcher();

// Returns a matcher for the credit card table view in manual fallback.
id<GREYMatcher> CreditCardTableViewMatcher();

// Returns a matcher for the button to open payment method settings in manual
// fallback.
id<GREYMatcher> ManagePaymentMethodsMatcher();

// Returns a matcher for the button to add a payment method in manual
// fallback.
id<GREYMatcher> AddPaymentMethodMatcher();

// Returns a matcher for the CreditCardTableView window.
id<GREYMatcher> CreditCardTableViewWindowMatcher();

// Returns a matcher for the button to trigger password generation on manual
// fallback.
id<GREYMatcher> SuggestPasswordMatcher();

// Returns a matcher for the header view in the fallback view.
id<GREYMatcher> ExpandedManualFillHeaderView();

// Matcher for the expanded manual fill view.
id<GREYMatcher> ExpandedManualFillView();

// Matcher for the keyboard accessory's manual fill button.
id<GREYMatcher> KeyboardAccessoryManualFillButton();

// Matcher for the segmented control's address tab.
id<GREYMatcher> SegmentedControlAddressTab();

// Matcher for the segmented control's password tab.
id<GREYMatcher> SegmentedControlPasswordTab();

// Matcher for the chip button with the given `title`.
id<GREYMatcher> ChipButton(std::u16string title);

}  // namespace manual_fill

#endif  // IOS_CHROME_BROWSER_AUTOFILL_UI_BUNDLED_MANUAL_FILL_MANUAL_FILL_MATCHERS_H_