| // Copyright 2023 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_OMNIBOX_EG_TESTS_OMNIBOX_EARL_GREY_H_ |
| #define IOS_CHROME_BROWSER_OMNIBOX_EG_TESTS_OMNIBOX_EARL_GREY_H_ |
| |
| #import <Foundation/Foundation.h> |
| |
| #import "ios/chrome/browser/omnibox/eg_tests/omnibox_test_util.h" |
| #import "ios/testing/earl_grey/base_eg_test_helper_impl.h" |
| |
| namespace net { |
| namespace test_server { |
| class EmbeddedTestServer; |
| } |
| } // namespace net |
| |
| #define OmniboxEarlGrey \ |
| [OmniboxEarlGreyImpl invokedFromFile:@"" __FILE__ lineNumber:__LINE__] |
| |
| /// Methods used for the EarlGrey tests. |
| @interface OmniboxEarlGreyImpl : BaseEGTestHelperImpl |
| |
| /// Wait for the shortcuts backend to initialize. |
| - (void)waitForShortcutsBackendInitialization; |
| |
| /// Wait for the number of shortcuts in the database to be equal to |
| /// `numberOfShortcuts`. |
| - (void)waitForNumberOfShortcutsInDatabase:(NSInteger)numberOfShortcuts; |
| |
| /// Navigates to `page` using `testServer`. |
| - (void)openPage:(omnibox::Page)page |
| testServer:(net::test_server::EmbeddedTestServer*)testServer; |
| |
| /// Populates history by navigating to `numberOfPages` pages. |
| - (void)populateHistory:(net::test_server::EmbeddedTestServer*)testServer |
| numberOfPages:(NSUInteger)numberOfPages; |
| |
| /// Add `shortcutCount`. |
| // List of shortcuts <input> -> <URL>: |
| // - <omnibox::PageTitle(1)> -> <omnibox::PageURL(1)> |
| // - ... |
| // - <omnibox::PageTitle(N)> -> <omnibox::PageURL(N)> |
| // N = `shortcutCount`. |
| - (void)addShorcuts:(NSUInteger)shortcutCount |
| toTestServer:(net::test_server::EmbeddedTestServer*)testServer; |
| |
| /// Returns a matcher for a valid URL. |
| - (id<GREYMatcher>)isURLMatcher; |
| |
| /// Defocus the omnibox. |
| - (void)defocusOmnibox; |
| |
| /// Accepts the current omnibox input. |
| - (void)acceptOmniboxText; |
| |
| @end |
| |
| #endif // IOS_CHROME_BROWSER_OMNIBOX_EG_TESTS_OMNIBOX_EARL_GREY_H_ |