blob: 99ba41b46f9ccfaea7837d3e68c9fbf38b671ef5 [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_WEB_MOCK_WEB_CONTROLLER_H_
#define COMPONENTS_AUTOFILL_ASSISTANT_BROWSER_WEB_MOCK_WEB_CONTROLLER_H_
#include <string>
#include <vector>
#include "base/callback.h"
#include "base/time/time.h"
#include "components/autofill_assistant/browser/top_padding.h"
#include "components/autofill_assistant/browser/web/element_finder.h"
#include "components/autofill_assistant/browser/web/element_rect_getter.h"
#include "components/autofill_assistant/browser/web/web_controller.h"
#include "testing/gmock/include/gmock/gmock.h"
namespace autofill_assistant {
struct RectF;
class MockWebController : public WebController {
public:
MockWebController();
~MockWebController() override;
MOCK_METHOD1(LoadURL, void(const GURL&));
void FindElement(const Selector& selector,
bool strict_mode,
ElementFinder::Callback callback) override {
OnFindElement(selector, callback);
}
MOCK_METHOD2(OnFindElement,
void(const Selector& selector,
ElementFinder::Callback& callback));
MOCK_METHOD3(ScrollIntoView,
void(bool,
const ElementFinder::Result&,
base::OnceCallback<void(const ClientStatus&)>));
MOCK_METHOD2(CheckOnTop,
void(const ElementFinder::Result&,
base::OnceCallback<void(const ClientStatus&)>));
MOCK_METHOD5(SelectOption,
void(const std::string& re2,
bool case_sensitive,
SelectOptionProto::OptionComparisonAttribute
option_comparison_attribute,
const ElementFinder::Result& element,
base::OnceCallback<void(const ClientStatus&)> callback));
MOCK_METHOD3(CheckSelectedOptionElement,
void(const ElementFinder::Result& option,
const ElementFinder::Result& element,
base::OnceCallback<void(const ClientStatus&)> callback));
MOCK_METHOD2(HighlightElement,
void(const ElementFinder::Result&,
base::OnceCallback<void(const ClientStatus&)>));
MOCK_METHOD2(SelectFieldValue,
void(const ElementFinder::Result& element,
base::OnceCallback<void(const ClientStatus&)> callback));
MOCK_METHOD2(FocusField,
void(const ElementFinder::Result& element,
base::OnceCallback<void(const ClientStatus&)> callback));
MOCK_METHOD4(SendKeyboardInput,
void(const std::vector<UChar32>& codepoints,
int delay_in_millisecond,
const ElementFinder::Result& element,
base::OnceCallback<void(const ClientStatus&)> callback));
MOCK_METHOD2(GetOuterHtml,
void(const ElementFinder::Result& element,
base::OnceCallback<void(const ClientStatus&,
const std::string&)> callback));
MOCK_METHOD2(GetElementTag,
void(const ElementFinder::Result& element,
base::OnceCallback<void(const ClientStatus&,
const std::string&)> callback));
MOCK_METHOD2(
GetDocumentReadyState,
void(const ElementFinder::Result&,
base::OnceCallback<void(const ClientStatus&, DocumentReadyState)>));
MOCK_METHOD2(
GetOuterHtmls,
void(const ElementFinder::Result& elements,
base::OnceCallback<void(const ClientStatus&,
const std::vector<std::string>&)> callback));
MOCK_METHOD4(WaitUntilElementIsStable,
void(int,
base::TimeDelta wait_time,
const ElementFinder::Result& element,
base::OnceCallback<void(const ClientStatus&,
base::TimeDelta)> callback));
MOCK_METHOD2(JsClickElement,
void(const ElementFinder::Result& element,
base::OnceCallback<void(const ClientStatus&)> callback));
MOCK_METHOD3(ClickOrTapElement,
void(ClickType click_type,
const ElementFinder::Result& element,
base::OnceCallback<void(const ClientStatus&)> callback));
MOCK_METHOD2(GetFieldValue,
void(const ElementFinder::Result& element,
base::OnceCallback<void(const ClientStatus&,
const std::string&)> callback));
MOCK_METHOD3(
GetStringAttribute,
void(const std::vector<std::string>&,
const ElementFinder::Result&,
base::OnceCallback<void(const ClientStatus&, const std::string&)>));
MOCK_METHOD3(SetValueAttribute,
void(const std::string& value,
const ElementFinder::Result& element,
base::OnceCallback<void(const ClientStatus&)> callback));
MOCK_METHOD4(SetAttribute,
void(const std::vector<std::string>&,
const std::string&,
const ElementFinder::Result&,
base::OnceCallback<void(const ClientStatus&)>));
MOCK_METHOD1(GetVisualViewport,
void(base::OnceCallback<void(const ClientStatus&, const RectF&)>
callback));
MOCK_METHOD2(GetElementRect,
void(const ElementFinder::Result& element,
ElementRectGetter::ElementRectCallback callback));
MOCK_METHOD3(WaitForDocumentReadyState,
void(const ElementFinder::Result& optional_frame_element,
DocumentReadyState min_ready_state,
base::OnceCallback<void(const ClientStatus&,
DocumentReadyState,
base::TimeDelta)> callback));
base::WeakPtr<WebController> GetWeakPtr() const override {
return weak_ptr_factory_.GetWeakPtr();
}
base::WeakPtrFactory<MockWebController> weak_ptr_factory_{this};
};
} // namespace autofill_assistant
#endif // COMPONENTS_AUTOFILL_ASSISTANT_BROWSER_WEB_MOCK_WEB_CONTROLLER_H_