1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73
|
// 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 CHROME_BROWSER_UI_AUTOFILL_PAYMENTS_DESKTOP_PAYMENTS_WINDOW_MANAGER_TEST_API_H_
#define CHROME_BROWSER_UI_AUTOFILL_PAYMENTS_DESKTOP_PAYMENTS_WINDOW_MANAGER_TEST_API_H_
#include "base/check_deref.h"
#include "chrome/browser/ui/autofill/payments/desktop_payments_window_manager.h"
#include "ui/gfx/geometry/rect.h"
namespace autofill::payments {
class DesktopPaymentsWindowManagerTestApi {
public:
explicit DesktopPaymentsWindowManagerTestApi(
DesktopPaymentsWindowManager* window_manager)
: window_manager_(CHECK_DEREF(window_manager)) {}
DesktopPaymentsWindowManagerTestApi(
const DesktopPaymentsWindowManagerTestApi&) = delete;
DesktopPaymentsWindowManagerTestApi& operator=(
const DesktopPaymentsWindowManagerTestApi&) = delete;
~DesktopPaymentsWindowManagerTestApi() = default;
void CreatePopup(const GURL& url, gfx::Rect popup_size) {
window_manager_->CreatePopup(url, std::move(popup_size));
}
void OnVcn3dsAuthenticationResponseReceived(
PaymentsAutofillClient::PaymentsRpcResult result,
const UnmaskResponseDetails& response_details) {
window_manager_->OnVcn3dsAuthenticationResponseReceived(result,
response_details);
}
void OnVcn3dsAuthenticationProgressDialogCancelled() {
window_manager_->OnVcn3dsAuthenticationProgressDialogCancelled();
}
const std::optional<PaymentsWindowManager::Vcn3dsContext>&
GetVcn3dsContext() {
return window_manager_->vcn_3ds_context_;
}
const std::optional<PaymentsWindowManager::BnplContext>& GetBnplContext() {
return window_manager_->bnpl_context_;
}
bool NoOngoingFlow() {
return window_manager_->flow_type_ ==
DesktopPaymentsWindowManager::FlowType::kNoFlow;
}
GURL GetMostRecentUrlNavigation() {
return window_manager_->most_recent_url_navigation_;
}
void SetPopupClosedClosure(base::RepeatingClosure popup_closed_closure) {
window_manager_->popup_closed_closure_for_testing_ = popup_closed_closure;
}
private:
const raw_ref<DesktopPaymentsWindowManager> window_manager_;
};
inline DesktopPaymentsWindowManagerTestApi test_api(
DesktopPaymentsWindowManager& manager) {
return DesktopPaymentsWindowManagerTestApi(&manager);
}
} // namespace autofill::payments
#endif // CHROME_BROWSER_UI_AUTOFILL_PAYMENTS_DESKTOP_PAYMENTS_WINDOW_MANAGER_TEST_API_H_
|