0

Refactor overflow menu destination matchers.

This change:

1. Moves all overfow-menu-carousel-related matchers into one location:
chrome_matchers.

2. Updates carousel matchers' names to use new "...Destination..."
naming convention.

3. Removes unnecessary, duplicate construction of matchers throughout
codebase, instead using the newly-refactored, localized set of matchers
in chrome_matchers.

Bug: 1339367
Change-Id: I87c2a0a6063e88e2697772c32e962772bd16881e
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3722366
Reviewed-by: Mark Cogan <marq@chromium.org>
Reviewed-by: Olivier Robin <olivierrobin@chromium.org>
Reviewed-by: Robbie Gibson <rkgibson@google.com>
Commit-Queue: Benjamin Williams <bwwilliams@google.com>
Cr-Commit-Position: refs/heads/main@{#1018208}
This commit is contained in:
Benjamin Williams
2022-06-27 13:55:52 +00:00
committed by Chromium LUCI CQ
parent fb6722eec1
commit 26d955d078
19 changed files with 172 additions and 97 deletions

@ -233,14 +233,14 @@ For example, the following code:
[EarlGrey setRootMatcherForSubsequentInteractions:
chrome_test_util::WindowWithNumber(windowNumber)];
[ChromeEarlGreyUI openToolsMenu];
[ChromeEarlGreyUI tapToolsMenuButton:HistoryButton()];
[ChromeEarlGreyUI tapToolsMenuButton:HistoryDestinationButton()];
```
Can be reduced to:
```
[ChromeEarlGreyUI openToolsMenuInWindowWithNumber:windowNumber];
[ChromeEarlGreyUI tapToolsMenuButton:HistoryButton()];
[ChromeEarlGreyUI tapToolsMenuButton:HistoryDestinationButton()];
```
## Actions

@ -31,8 +31,8 @@
#endif
using chrome_test_util::OpenLinkInNewTabButton;
using chrome_test_util::SettingsDestinationButton;
using chrome_test_util::SettingsDoneButton;
using chrome_test_util::SettingsMenuButton;
using chrome_test_util::SettingsMenuPrivacyButton;
using chrome_test_util::TabGridCellAtIndex;
using chrome_test_util::WebViewMatcher;

@ -302,7 +302,8 @@ void WaitForSettingDoneButton() {
[SigninEarlGrey addFakeIdentity:fakeIdentity];
[ChromeEarlGreyUI openToolsMenu];
[ChromeEarlGreyUI tapToolsMenuButton:chrome_test_util::BookmarksMenuButton()];
[ChromeEarlGreyUI
tapToolsMenuButton:chrome_test_util::BookmarksDestinationButton()];
[[EarlGrey selectElementWithMatcher:PrimarySignInButton()]
performAction:grey_tap()];
[[EarlGrey selectElementWithMatcher:SettingsLink()] performAction:grey_tap()];

@ -327,7 +327,8 @@ void ExpectSyncConsentHistogram(
// Open Bookmarks and tap on Sign In promo button.
[ChromeEarlGreyUI openToolsMenu];
[ChromeEarlGreyUI tapToolsMenuButton:chrome_test_util::BookmarksMenuButton()];
[ChromeEarlGreyUI
tapToolsMenuButton:chrome_test_util::BookmarksDestinationButton()];
[ChromeEarlGreyUI tapSettingsMenuButton:SecondarySignInButton()];
// Assert sign-in screen was shown.
@ -347,7 +348,8 @@ void ExpectSyncConsentHistogram(
// Re-open the sign-in screen. If it wasn't correctly dismissed previously,
// this will fail.
[ChromeEarlGreyUI openToolsMenu];
[ChromeEarlGreyUI tapToolsMenuButton:chrome_test_util::BookmarksMenuButton()];
[ChromeEarlGreyUI
tapToolsMenuButton:chrome_test_util::BookmarksDestinationButton()];
[ChromeEarlGreyUI tapSettingsMenuButton:SecondarySignInButton()];
[[EarlGrey selectElementWithMatcher:IdentityCellMatcherForEmail(
fakeIdentity.userEmail)]
@ -509,7 +511,7 @@ void ExpectSyncConsentHistogram(
case OpenSigninMethodFromBookmarks:
[ChromeEarlGreyUI openToolsMenu];
[ChromeEarlGreyUI
tapToolsMenuButton:chrome_test_util::BookmarksMenuButton()];
tapToolsMenuButton:chrome_test_util::BookmarksDestinationButton()];
[[EarlGrey selectElementWithMatcher:PrimarySignInButton()]
performAction:grey_tap()];
break;

@ -258,7 +258,7 @@ void CloseSigninManagedAccountDialogIfAny(FakeChromeIdentity* fakeIdentity) {
+ (void)tapPrimarySignInButtonInRecentTabs {
[ChromeEarlGreyUI openToolsMenu];
[ChromeEarlGreyUI
tapToolsMenuButton:chrome_test_util::RecentTabsMenuButton()];
tapToolsMenuButton:chrome_test_util::RecentTabsDestinationButton()];
[[[EarlGrey
selectElementWithMatcher:grey_allOf(PrimarySignInButton(),
grey_sufficientlyVisible(), nil)]

@ -34,7 +34,7 @@
#define EarlGrey [self earlGrey]
#pragma clang diagnostic pop
using chrome_test_util::BookmarksMenuButton;
using chrome_test_util::BookmarksDestinationButton;
using chrome_test_util::BookmarksSaveEditDoneButton;
using chrome_test_util::BookmarksSaveEditFolderButton;
using chrome_test_util::ButtonWithAccessibilityLabelId;
@ -43,12 +43,12 @@ using chrome_test_util::ContextBarLeadingButtonWithLabel;
using chrome_test_util::ContextBarTrailingButtonWithLabel;
using chrome_test_util::ContextMenuCopyButton;
using chrome_test_util::CopyLinkButton;
using chrome_test_util::DeleteButton;
using chrome_test_util::EditButton;
using chrome_test_util::MoveButton;
using chrome_test_util::ShareButton;
using chrome_test_util::DeleteButton;
using chrome_test_util::OpenLinkInNewTabButton;
using chrome_test_util::OpenLinkInIncognitoButton;
using chrome_test_util::OpenLinkInNewTabButton;
using chrome_test_util::ShareButton;
using chrome_test_util::TabGridEditButton;
using chrome_test_util::TappableBookmarkNodeWithLabel;
@ -120,20 +120,20 @@ id<GREYMatcher> SearchIconButton() {
- (void)openBookmarks {
// Opens the bookmark manager.
[ChromeEarlGreyUI openToolsMenu];
[ChromeEarlGreyUI tapToolsMenuButton:BookmarksMenuButton()];
[ChromeEarlGreyUI tapToolsMenuButton:BookmarksDestinationButton()];
// Assert the menu is gone.
[[EarlGrey selectElementWithMatcher:BookmarksMenuButton()]
[[EarlGrey selectElementWithMatcher:BookmarksDestinationButton()]
assertWithMatcher:grey_nil()];
}
- (void)openBookmarksInWindowWithNumber:(int)windowNumber {
// Opens the bookmark manager.
[ChromeEarlGreyUI openToolsMenuInWindowWithNumber:windowNumber];
[ChromeEarlGreyUI tapToolsMenuButton:BookmarksMenuButton()];
[ChromeEarlGreyUI tapToolsMenuButton:BookmarksDestinationButton()];
// Assert the menu is gone.
[[EarlGrey selectElementWithMatcher:BookmarksMenuButton()]
[[EarlGrey selectElementWithMatcher:BookmarksDestinationButton()]
assertWithMatcher:grey_nil()];
}

@ -48,10 +48,6 @@ char kResponse1[] = "Test Page 1 content";
char kResponse2[] = "Test Page 2 content";
char kResponse3[] = "Test Page 3 content";
// Matcher for the history button in the tools menu.
id<GREYMatcher> HistoryButton() {
return grey_accessibilityID(kToolsMenuHistoryId);
}
// Matcher for the edit button in the navigation bar.
id<GREYMatcher> NavigationEditButton() {
return grey_accessibilityID(kHistoryToolbarEditButtonIdentifier);
@ -856,12 +852,14 @@ std::unique_ptr<net::test_server::HttpResponse> StandardResponse(
- (void)openHistoryPanel {
[ChromeEarlGreyUI openToolsMenu];
[ChromeEarlGreyUI tapToolsMenuButton:HistoryButton()];
[ChromeEarlGreyUI
tapToolsMenuButton:chrome_test_util::HistoryDestinationButton()];
}
- (void)openHistoryPanelInWindowWithNumber:(int)windowNumber {
[ChromeEarlGreyUI openToolsMenuInWindowWithNumber:windowNumber];
[ChromeEarlGreyUI tapToolsMenuButton:HistoryButton()];
[ChromeEarlGreyUI
tapToolsMenuButton:chrome_test_util::HistoryDestinationButton()];
}
@end

@ -21,7 +21,7 @@
#endif
using chrome_test_util::BookmarksNavigationBarDoneButton;
using chrome_test_util::RecentTabsMenuButton;
using chrome_test_util::RecentTabsDestinationButton;
using chrome_test_util::SettingsDoneButton;
// Test cases to verify that keyboard commands are and are not registered when
@ -143,7 +143,8 @@ using chrome_test_util::SettingsDoneButton;
- (void)testKeyboardCommandsNotRegistered_BookmarksPresented {
// Open Bookmarks
[ChromeEarlGreyUI openToolsMenu];
[ChromeEarlGreyUI tapToolsMenuButton:chrome_test_util::BookmarksMenuButton()];
[ChromeEarlGreyUI
tapToolsMenuButton:chrome_test_util::BookmarksDestinationButton()];
[ChromeEarlGreyUI waitForAppToIdle];
[self verifyNoKeyboardCommandsAreRegistered];
@ -157,7 +158,7 @@ using chrome_test_util::SettingsDoneButton;
- (void)testKeyboardCommands_RecentTabsPresented {
// Open Recent Tabs
[ChromeEarlGreyUI openToolsMenu];
[ChromeEarlGreyUI tapToolsMenuButton:RecentTabsMenuButton()];
[ChromeEarlGreyUI tapToolsMenuButton:RecentTabsDestinationButton()];
[ChromeEarlGreyUI waitForAppToIdle];
[self verifyNoKeyboardCommandsAreRegistered];

@ -451,7 +451,7 @@ OverflowMenuFooter* CreateOverflowMenuManagedFooter(int nameID,
[self createOverflowMenuDestination:passwordTitleID
destination:overflow_menu::Destination::Passwords
imageName:passwordIconImageName
accessibilityID:@""
accessibilityID:kToolsMenuPasswordsId
handler:^{
[weakSelf openPasswords];
}];

@ -42,6 +42,8 @@ extern NSString* const kToolsMenuReadingListId;
extern NSString* const kToolsMenuOtherDevicesId;
// History item accessibility Identifier.
extern NSString* const kToolsMenuHistoryId;
// Passwords item accessibility Identifier.
extern NSString* const kToolsMenuPasswordsId;
// Report an issue item accessibility Identifier.
extern NSString* const kToolsMenuReportAnIssueId;
// Translate item accessibility Identifier.

@ -32,6 +32,7 @@ NSString* const kToolsMenuBookmarksId = @"kToolsMenuBookmarksId";
NSString* const kToolsMenuReadingListId = @"kToolsMenuReadingListId";
NSString* const kToolsMenuOtherDevicesId = @"kToolsMenuOtherDevicesId";
NSString* const kToolsMenuHistoryId = @"kToolsMenuHistoryId";
NSString* const kToolsMenuPasswordsId = @"kToolsMenuPasswordsId";
NSString* const kToolsMenuReportAnIssueId = @"kToolsMenuReportAnIssueId";
NSString* const kToolsMenuTranslateId = @"kToolsMenuTranslateId";
NSString* const kToolsMenuFindInPageId = @"kToolsMenuFindInPageId";

@ -236,7 +236,7 @@ void AssertHeaderNotVisible(NSString* header) {
void OpenReadingList() {
[ChromeEarlGreyUI openToolsMenu];
[ChromeEarlGreyUI
tapToolsMenuButton:chrome_test_util::ReadingListMenuButton()];
tapToolsMenuButton:chrome_test_util::ReadingListDestinationButton()];
// It seems that sometimes there is a delay before the ReadingList is
// displayed. See https://crbug.com/1109202 .
GREYAssert(base::test::ios::WaitUntilConditionOrTimeout(
@ -453,7 +453,7 @@ void OpenPageSecurityInfoBubble() {
[ChromeEarlGreyUI openToolsMenu];
// Tap on the Page Info button.
[ChromeEarlGreyUI
tapToolsMenuButton:grey_accessibilityID(kToolsMenuSiteInformation)];
tapToolsMenuButton:chrome_test_util::SiteInfoDestinationButton()];
}
// Tests that the correct version of kDistillableURL is displayed.

@ -36,7 +36,7 @@
#error "This file requires ARC support."
#endif
using chrome_test_util::RecentTabsMenuButton;
using chrome_test_util::RecentTabsDestinationButton;
namespace {
const char kURLOfTestPage[] = "http://testPage";
@ -56,7 +56,7 @@ void OpenRecentTabsPanel() {
}
[ChromeEarlGreyUI openToolsMenu];
[ChromeEarlGreyUI tapToolsMenuButton:RecentTabsMenuButton()];
[ChromeEarlGreyUI tapToolsMenuButton:RecentTabsDestinationButton()];
}
// Returns the matcher for the Recent Tabs table.

@ -29,11 +29,6 @@ NSString* const kLearnMoreIdentifier = @"Learn more";
// URL of the help center page.
char kHelpCenterURL[] = "support.google.com";
// Matcher for the history button in the tools menu.
id<GREYMatcher> HistoryButton() {
return grey_accessibilityID(kToolsMenuHistoryId);
}
// Matcher for an element with or without the
// UIAccessibilityTraitSelected accessibility trait depending on `selected`.
id<GREYMatcher> ElementIsSelected(BOOL selected) {
@ -281,7 +276,8 @@ using chrome_test_util::WindowWithNumber;
// the "Learn more" link opens the help center.
- (void)testTapLearnMoreFromHistory {
[ChromeEarlGreyUI openToolsMenu];
[ChromeEarlGreyUI tapToolsMenuButton:HistoryButton()];
[ChromeEarlGreyUI
tapToolsMenuButton:chrome_test_util::HistoryDestinationButton()];
[[EarlGrey selectElementWithMatcher:chrome_test_util::
HistoryClearBrowsingDataButton()]
performAction:grey_tap()];

@ -28,17 +28,17 @@
#define EarlGrey [self earlGrey]
#pragma clang diagnostic pop
using base::test::ios::kWaitForUIElementTimeout;
using base::test::ios::WaitUntilConditionOrTimeout;
using chrome_test_util::ButtonWithAccessibilityLabelId;
using chrome_test_util::ClearAutofillButton;
using chrome_test_util::ClearBrowsingDataButton;
using chrome_test_util::ClearBrowsingDataView;
using chrome_test_util::ClearSavedPasswordsButton;
using chrome_test_util::ConfirmClearBrowsingDataButton;
using chrome_test_util::SettingsDestinationButton;
using chrome_test_util::SettingsMenuBackButton;
using chrome_test_util::SettingsMenuButton;
using chrome_test_util::ToolsMenuView;
using base::test::ios::kWaitForUIElementTimeout;
using base::test::ios::WaitUntilConditionOrTimeout;
namespace {
@ -168,12 +168,12 @@ class ScopedDisableTimerTracking {
- (void)openSettingsMenu {
[self openToolsMenu];
[self tapToolsMenuButton:SettingsMenuButton()];
[self tapToolsMenuButton:SettingsDestinationButton()];
}
- (void)openSettingsMenuInWindowWithNumber:(int)windowNumber {
[self openToolsMenuInWindowWithNumber:windowNumber];
[self tapToolsMenuButton:SettingsMenuButton()];
[self tapToolsMenuButton:SettingsDestinationButton()];
}
- (void)openNewTabMenu {

@ -212,9 +212,6 @@ id<GREYMatcher> ClearBrowsingDataView();
// Returns a matcher for the clear browsing data action sheet item.
id<GREYMatcher> ConfirmClearBrowsingDataButton();
// Returns a matcher for the settings button in the tools menu.
id<GREYMatcher> SettingsMenuButton();
// Returns a matcher for the "Done" button in the settings' navigation bar.
id<GREYMatcher> SettingsDoneButton();
@ -380,15 +377,6 @@ id<GREYMatcher> PaymentRequestPickerSearchBar();
// Returns a matcher for the New Window button on the Tools menu.
id<GREYMatcher> OpenNewWindowMenuButton();
// Returns a matcher for the reading list on the Tools menu.
id<GREYMatcher> ReadingListMenuButton();
// Returns a matcher for the bookmarks button on the Tools menu.
id<GREYMatcher> BookmarksMenuButton();
// Returns a matcher for the recent tabs button on the Tools menu.
id<GREYMatcher> RecentTabsMenuButton();
// Returns a matcher for the system selection callout.
id<GREYMatcher> SystemSelectionCallout();
@ -624,6 +612,34 @@ id<GREYMatcher> ManualFallbackSuggestPasswordMatcher();
// Returns a matcher for the button to accept the generated password.
id<GREYMatcher> UseSuggestedPasswordMatcher();
#pragma mark - Overflow Menu Destinations
// Returns a matcher for the bookmarks destination button in the overflow menu.
id<GREYMatcher> BookmarksDestinationButton();
// Returns a matcher for the history destination button in the overflow menu.
id<GREYMatcher> HistoryDestinationButton();
// Returns a matcher for the reading list destination button in the overflow
// menu.
id<GREYMatcher> ReadingListDestinationButton();
// Returns a matcher for the passwords destination button in the overflow menu.
id<GREYMatcher> PasswordsDestinationButton();
// Returns a matcher for the downloads destination button in the overflow menu.
id<GREYMatcher> DownloadsDestinationButton();
// Returns a matcher for the recent tabs destination button in the overflow
// menu.
id<GREYMatcher> RecentTabsDestinationButton();
// Returns a matcher for the site info destination button in the overflow menu.
id<GREYMatcher> SiteInfoDestinationButton();
// Returns a matcher for the settings destination button in the overflow menu.
id<GREYMatcher> SettingsDestinationButton();
#pragma mark - Tab Grid Edit Mode
// Returns a matcher for the button to open the context menu for edit actions.

@ -276,10 +276,6 @@ id<GREYMatcher> ConfirmClearBrowsingDataButton() {
return [ChromeMatchersAppInterface confirmClearBrowsingDataButton];
}
id<GREYMatcher> SettingsMenuButton() {
return [ChromeMatchersAppInterface settingsMenuButton];
}
id<GREYMatcher> SettingsDoneButton() {
return [ChromeMatchersAppInterface settingsDoneButton];
}
@ -477,18 +473,6 @@ id<GREYMatcher> OpenNewWindowMenuButton() {
return [ChromeMatchersAppInterface openNewWindowMenuButton];
}
id<GREYMatcher> ReadingListMenuButton() {
return [ChromeMatchersAppInterface readingListMenuButton];
}
id<GREYMatcher> BookmarksMenuButton() {
return [ChromeMatchersAppInterface bookmarksMenuButton];
}
id<GREYMatcher> RecentTabsMenuButton() {
return [ChromeMatchersAppInterface recentTabsMenuButton];
}
id<GREYMatcher> SystemSelectionCallout() {
return [ChromeMatchersAppInterface systemSelectionCallout];
}
@ -680,6 +664,40 @@ id<GREYMatcher> SettingsToolbarAddButton() {
return [ChromeMatchersAppInterface settingsToolbarAddButton];
}
#pragma mark - Overflow Menu Destinations
id<GREYMatcher> BookmarksDestinationButton() {
return [ChromeMatchersAppInterface bookmarksDestinationButton];
}
id<GREYMatcher> HistoryDestinationButton() {
return [ChromeMatchersAppInterface historyDestinationButton];
}
id<GREYMatcher> ReadingListDestinationButton() {
return [ChromeMatchersAppInterface readingListDestinationButton];
}
id<GREYMatcher> PasswordsDestinationButton() {
return [ChromeMatchersAppInterface passwordsDestinationButton];
}
id<GREYMatcher> DownloadsDestinationButton() {
return [ChromeMatchersAppInterface downloadsDestinationButton];
}
id<GREYMatcher> RecentTabsDestinationButton() {
return [ChromeMatchersAppInterface recentTabsDestinationButton];
}
id<GREYMatcher> SiteInfoDestinationButton() {
return [ChromeMatchersAppInterface siteInfoDestinationButton];
}
id<GREYMatcher> SettingsDestinationButton() {
return [ChromeMatchersAppInterface settingsDestinationButton];
}
#pragma mark - Manual Fallback
id<GREYMatcher> ManualFallbackFormSuggestionViewMatcher() {

@ -198,9 +198,6 @@
// Matcher for the clear browsing data action sheet item.
+ (id<GREYMatcher>)confirmClearBrowsingDataButton;
// Returns matcher for the settings button in the tools menu.
+ (id<GREYMatcher>)settingsMenuButton;
// Returns matcher for the "Done" button in the settings' navigation bar.
+ (id<GREYMatcher>)settingsDoneButton;
@ -369,15 +366,6 @@
// Returns matcher for the New Window button on the Tools menu.
+ (id<GREYMatcher>)openNewWindowMenuButton;
// Returns matcher for the reading list button on the Tools menu.
+ (id<GREYMatcher>)readingListMenuButton;
// Returns matcher for the bookmarks button on the Tools menu.
+ (id<GREYMatcher>)bookmarksMenuButton;
// Returns matcher for the recent tabs button on the Tools menu.
+ (id<GREYMatcher>)recentTabsMenuButton;
// Returns matcher for the system selection callout.
+ (id<GREYMatcher>)systemSelectionCallout;
@ -536,6 +524,40 @@
// Returns a matcher to the add button in the toolbar of the settings view.
+ (id<GREYMatcher>)settingsToolbarAddButton;
#pragma mark - Overflow Menu Destinations
// Returns matcher for the bookmarks destination button in the overflow menu
// carousel.
+ (id<GREYMatcher>)bookmarksDestinationButton;
// Returns matcher for the history destination button in the overflow menu
// carousel.
+ (id<GREYMatcher>)historyDestinationButton;
// Returns matcher for the passwords destination button in the overflow menu
// carousel.
+ (id<GREYMatcher>)passwordsDestinationButton;
// Returns matcher for the reading list destination button in the overflow menu
// carousel.
+ (id<GREYMatcher>)readingListDestinationButton;
// Returns matcher for the recent tabs destination button in the overflow menu
// carousel.
+ (id<GREYMatcher>)recentTabsDestinationButton;
// Returns matcher for the settings destination button in the overflow menu
// carousel.
+ (id<GREYMatcher>)settingsDestinationButton;
// Returns matcher for the site info destination button in the overflow menu
// carousel.
+ (id<GREYMatcher>)siteInfoDestinationButton;
// Returns matcher for the downloads destination button in the overflow menu
// carousel.
+ (id<GREYMatcher>)downloadsDestinationButton;
#pragma mark - Manual Fallback
// Returns a matcher for the scroll view in keyboard accessory bar.

@ -507,10 +507,6 @@ UIWindow* WindowWithAccessibilityIdentifier(NSString* accessibility_id) {
grey_userInteractionEnabled(), nil);
}
+ (id<GREYMatcher>)settingsMenuButton {
return grey_accessibilityID(kToolsMenuSettingsId);
}
+ (id<GREYMatcher>)settingsDoneButton {
return grey_accessibilityID(kSettingsDoneButtonId);
}
@ -793,18 +789,6 @@ UIWindow* WindowWithAccessibilityIdentifier(NSString* accessibility_id) {
return grey_accessibilityID(kToolsMenuNewWindowId);
}
+ (id<GREYMatcher>)readingListMenuButton {
return grey_accessibilityID(kToolsMenuReadingListId);
}
+ (id<GREYMatcher>)bookmarksMenuButton {
return grey_accessibilityID(kToolsMenuBookmarksId);
}
+ (id<GREYMatcher>)recentTabsMenuButton {
return grey_accessibilityID(kToolsMenuOtherDevicesId);
}
+ (id<GREYMatcher>)systemSelectionCallout {
if (@available(iOS 16.0, *)) {
return grey_kindOfClass(NSClassFromString(@"_UIEditMenuListViewCell"));
@ -1068,6 +1052,40 @@ UIWindow* WindowWithAccessibilityIdentifier(NSString* accessibility_id) {
return grey_accessibilityID(kSettingsToolbarAddButtonId);
}
#pragma mark - Overflow Menu Destinations
+ (id<GREYMatcher>)bookmarksDestinationButton {
return grey_accessibilityID(kToolsMenuBookmarksId);
}
+ (id<GREYMatcher>)downloadsDestinationButton {
return grey_accessibilityID(kToolsMenuDownloadsId);
}
+ (id<GREYMatcher>)historyDestinationButton {
return grey_accessibilityID(kToolsMenuHistoryId);
}
+ (id<GREYMatcher>)passwordsDestinationButton {
return grey_accessibilityID(kToolsMenuPasswordsId);
}
+ (id<GREYMatcher>)readingListDestinationButton {
return grey_accessibilityID(kToolsMenuReadingListId);
}
+ (id<GREYMatcher>)recentTabsDestinationButton {
return grey_accessibilityID(kToolsMenuOtherDevicesId);
}
+ (id<GREYMatcher>)settingsDestinationButton {
return grey_accessibilityID(kToolsMenuSettingsId);
}
+ (id<GREYMatcher>)siteInfoDestinationButton {
return grey_accessibilityID(kToolsMenuSiteInformation);
}
#pragma mark - Manual Fallback
+ (id<GREYMatcher>)manualFallbackFormSuggestionViewMatcher {