blob: 09b1ec8d02fa1d8dfcc8b95caf699d7c4f8f0626 [file] [log] [blame]
// Copyright 2025 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_DOWNLOAD_UI_DOWNLOAD_EGTEST_UTIL_H_
#define IOS_CHROME_BROWSER_DOWNLOAD_UI_DOWNLOAD_EGTEST_UTIL_H_
#import <memory>
@protocol GREYMatcher;
namespace net::test_server {
struct HttpRequest;
class HttpResponse;
} // namespace net::test_server
namespace download {
// Matcher for "Download" button on Download Manager UI.
id<GREYMatcher> DownloadButton();
// Provides downloads landing page with download link.
std::unique_ptr<net::test_server::HttpResponse> GetResponse(
const net::test_server::HttpRequest& request);
// Provides test page for new page downloads with content disposition.
std::unique_ptr<net::test_server::HttpResponse>
GetLinkToContentDispositionResponse(
const net::test_server::HttpRequest& request);
// Provides test page for downloads with content disposition.
std::unique_ptr<net::test_server::HttpResponse>
GetContentDispositionPDFResponse(const net::test_server::HttpRequest& request);
// Waits until Open in... button is shown.
[[nodiscard]] bool WaitForOpenInButton();
// Waits until `OPEN` button is shown.
[[nodiscard]] bool WaitForOpenPDFButton();
// Waits until Download button is shown.
[[nodiscard]] bool WaitForDownloadButton(bool loading);
} // namespace download
#endif // IOS_CHROME_BROWSER_DOWNLOAD_UI_DOWNLOAD_EGTEST_UTIL_H_