blob: 85132a41ae5c456868f1202aa5affafa5bb8e07d [file] [log] [blame]
// Copyright 2018 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef COMPONENTS_AUTOFILL_ASSISTANT_BROWSER_ACTIONS_MOCK_ACTION_DELEGATE_H_
#define COMPONENTS_AUTOFILL_ASSISTANT_BROWSER_ACTIONS_MOCK_ACTION_DELEGATE_H_
#include <memory>
#include <string>
#include <vector>
#include "base/callback.h"
#include "components/autofill/core/browser/data_model/credit_card.h"
#include "components/autofill_assistant/browser/actions/action_delegate.h"
#include "components/autofill_assistant/browser/client_settings.h"
#include "components/autofill_assistant/browser/service.pb.h"
#include "components/autofill_assistant/browser/top_padding.h"
#include "components/autofill_assistant/browser/user_action.h"
#include "components/autofill_assistant/browser/user_data.h"
#include "testing/gmock/include/gmock/gmock.h"
namespace autofill_assistant {
class EventHandler;
class UserModel;
class MockActionDelegate : public ActionDelegate {
public:
MockActionDelegate();
~MockActionDelegate() override;
MOCK_METHOD1(RunElementChecks, void(BatchElementChecker*));
void ShortWaitForElement(
const Selector& selector,
base::OnceCallback<void(const ClientStatus&)> callback) override {
OnShortWaitForElement(selector, callback);
}
MOCK_METHOD2(OnShortWaitForElement,
void(const Selector& selector,
base::OnceCallback<void(const ClientStatus&)>&));
void WaitForDom(
base::TimeDelta max_wait_time,
bool allow_interrupt,
base::RepeatingCallback<
void(BatchElementChecker*,
base::OnceCallback<void(const ClientStatus&)>)> check_elements,
base::OnceCallback<void(const ClientStatus&)> callback) override {
OnWaitForDom(max_wait_time, allow_interrupt, check_elements, callback);
}
MOCK_METHOD4(OnWaitForDom,
void(base::TimeDelta,
bool,
base::RepeatingCallback<
void(BatchElementChecker*,
base::OnceCallback<void(const ClientStatus&)>)>&,
base::OnceCallback<void(const ClientStatus&)>&));
MOCK_METHOD1(SetStatusMessage, void(const std::string& message));
MOCK_METHOD0(GetStatusMessage, std::string());
MOCK_METHOD1(SetBubbleMessage, void(const std::string& message));
MOCK_METHOD0(GetBubbleMessage, std::string());
MOCK_METHOD3(ClickOrTapElement,
void(const Selector& selector,
ClickAction::ClickType click_type,
base::OnceCallback<void(const ClientStatus&)> callback));
MOCK_METHOD1(Prompt,
void(std::unique_ptr<std::vector<UserAction>> user_actions));
MOCK_METHOD0(CancelPrompt, void());
void FillAddressForm(
const autofill::AutofillProfile* profile,
const Selector& selector,
base::OnceCallback<void(const ClientStatus&)> callback) override {
OnFillAddressForm(profile, selector, callback);
}
MOCK_METHOD3(OnFillAddressForm,
void(const autofill::AutofillProfile* profile,
const Selector& selector,
base::OnceCallback<void(const ClientStatus&)>& callback));
void FillCardForm(
std::unique_ptr<autofill::CreditCard> card,
const base::string16& cvc,
const Selector& selector,
base::OnceCallback<void(const ClientStatus&)> callback) override {
OnFillCardForm(card.get(), cvc, selector, callback);
}
MOCK_METHOD4(OnFillCardForm,
void(const autofill::CreditCard* card,
const base::string16& cvc,
const Selector& selector,
base::OnceCallback<void(const ClientStatus&)>& callback));
MOCK_METHOD3(SelectOption,
void(const Selector& selector,
const std::string& selected_option,
base::OnceCallback<void(const ClientStatus&)> callback));
MOCK_METHOD3(FocusElement,
void(const Selector& selector,
const TopPadding& top_padding,
base::OnceCallback<void(const ClientStatus&)> callback));
MOCK_METHOD1(SetTouchableElementArea,
void(const ElementAreaProto& touchable_element_area));
MOCK_METHOD2(HighlightElement,
void(const Selector& selector,
base::OnceCallback<void(const ClientStatus&)> callback));
MOCK_METHOD1(CollectUserData,
void(CollectUserDataOptions* collect_user_data_options));
MOCK_METHOD1(
WriteUserData,
void(base::OnceCallback<void(UserData*, UserData::FieldChange*)>));
MOCK_METHOD1(OnGetFullCard,
void(base::OnceCallback<void(const autofill::CreditCard& card,
const base::string16& cvc)>&));
void GetFullCard(GetFullCardCallback callback) override {
// A local variable is necessary to allow OnGetFullCard to get a reference.
base::OnceCallback<void(const autofill::CreditCard& card,
const base::string16& cvc)>
transformed_callback = base::BindOnce(
[](GetFullCardCallback real_callback,
const autofill::CreditCard& card, const base::string16& cvc) {
std::move(real_callback)
.Run(std::make_unique<autofill::CreditCard>(card), cvc);
},
std::move(callback));
OnGetFullCard(transformed_callback);
}
void GetFieldValue(const Selector& selector,
base::OnceCallback<void(const ClientStatus&,
const std::string&)> callback) {
OnGetFieldValue(selector, callback);
}
MOCK_METHOD2(OnGetFieldValue,
void(const Selector& selector,
base::OnceCallback<void(const ClientStatus&,
const std::string&)>& callback));
void SetFieldValue(const Selector& selector,
const std::string& value,
bool simulate_key_presses,
int delay_in_millisecond,
base::OnceCallback<void(const ClientStatus&)> callback) {
OnSetFieldValue(selector, value, callback);
OnSetFieldValue(selector, value, simulate_key_presses, delay_in_millisecond,
callback);
}
MOCK_METHOD3(OnSetFieldValue,
void(const Selector& selector,
const std::string& value,
base::OnceCallback<void(const ClientStatus&)>& callback));
MOCK_METHOD5(OnSetFieldValue,
void(const Selector& selector,
const std::string& value,
bool simulate_key_presses,
int delay_in_millisecond,
base::OnceCallback<void(const ClientStatus&)>& callback));
MOCK_METHOD4(SetAttribute,
void(const Selector& selector,
const std::vector<std::string>& attribute,
const std::string& value,
base::OnceCallback<void(const ClientStatus&)> callback));
void SendKeyboardInput(
const Selector& selector,
const std::vector<UChar32>& codepoints,
int delay_in_millisecond,
base::OnceCallback<void(const ClientStatus&)> callback) {
OnSendKeyboardInput(selector, codepoints, delay_in_millisecond, callback);
}
MOCK_METHOD4(OnSendKeyboardInput,
void(const Selector& selector,
const std::vector<UChar32>& codepoints,
int delay_in_millisecond,
base::OnceCallback<void(const ClientStatus&)>& callback));
MOCK_METHOD2(GetOuterHtml,
void(const Selector& selector,
base::OnceCallback<void(const ClientStatus&,
const std::string&)> callback));
MOCK_METHOD0(ExpectNavigation, void());
MOCK_METHOD0(ExpectedNavigationHasStarted, bool());
MOCK_METHOD1(WaitForNavigation,
bool(base::OnceCallback<void(bool)> callback));
MOCK_METHOD1(LoadURL, void(const GURL& url));
MOCK_METHOD0(Shutdown, void());
MOCK_METHOD0(Close, void());
MOCK_METHOD0(Restart, void());
MOCK_METHOD0(GetClientMemory, ClientMemory*());
MOCK_METHOD0(GetPersonalDataManager, autofill::PersonalDataManager*());
MOCK_METHOD0(GetWebsiteLoginFetcher, WebsiteLoginFetcher*());
MOCK_METHOD0(GetWebContents, content::WebContents*());
MOCK_METHOD0(GetAccountEmailAddress, std::string());
MOCK_METHOD0(GetLocale, std::string());
MOCK_METHOD1(SetDetails, void(std::unique_ptr<Details> details));
MOCK_METHOD1(SetInfoBox, void(const InfoBox& info_box));
MOCK_METHOD0(ClearInfoBox, void());
MOCK_METHOD1(SetProgress, void(int progress));
MOCK_METHOD1(SetProgressVisible, void(bool visible));
MOCK_METHOD1(SetUserActions,
void(std::unique_ptr<std::vector<UserAction>> user_action));
MOCK_METHOD1(SetViewportMode, void(ViewportMode mode));
MOCK_METHOD0(GetViewportMode, ViewportMode());
MOCK_METHOD1(SetPeekMode,
void(ConfigureBottomSheetProto::PeekMode peek_mode));
MOCK_METHOD0(GetPeekMode, ConfigureBottomSheetProto::PeekMode());
MOCK_METHOD3(
SetForm,
bool(std::unique_ptr<FormProto> form,
base::RepeatingCallback<void(const FormProto::Result*)>
changed_callback,
base::OnceCallback<void(const ClientStatus&)> cancel_callback));
MOCK_METHOD0(GetUserModel, UserModel*());
MOCK_METHOD0(GetEventHandler, EventHandler*());
void WaitForWindowHeightChange(
base::OnceCallback<void(const ClientStatus&)> callback) override {
OnWaitForWindowHeightChange(callback);
}
MOCK_METHOD1(OnWaitForWindowHeightChange,
void(base::OnceCallback<void(const ClientStatus&)>& callback));
MOCK_METHOD2(
OnGetDocumentReadyState,
void(const Selector&,
base::OnceCallback<void(const ClientStatus&, DocumentReadyState)>&));
void GetDocumentReadyState(
const Selector& frame,
base::OnceCallback<void(const ClientStatus&, DocumentReadyState)>
callback) override {
OnGetDocumentReadyState(frame, callback);
}
MOCK_METHOD3(
OnWaitForDocumentReadyState,
void(const Selector&,
DocumentReadyState min_ready_state,
base::OnceCallback<void(const ClientStatus&, DocumentReadyState)>&));
void WaitForDocumentReadyState(
const Selector& frame,
DocumentReadyState min_ready_state,
base::OnceCallback<void(const ClientStatus&, DocumentReadyState)>
callback) override {
OnWaitForDocumentReadyState(frame, min_ready_state, callback);
}
MOCK_METHOD0(RequireUI, void());
const ClientSettings& GetSettings() override { return client_settings_; }
ClientSettings client_settings_;
};
} // namespace autofill_assistant
#endif // COMPONENTS_AUTOFILL_ASSISTANT_BROWSER_ACTIONS_MOCK_ACTION_DELEGATE_H_