blob: aeaf8755d56615f086c79aeb013c73c939a068c4 [file] [log] [blame]
// Copyright 2013 The Flutter 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 FLUTTER_SHELL_PLATFORM_FUCHSIA_TESTS_FAKES_FOCUSER_H_
#define FLUTTER_SHELL_PLATFORM_FUCHSIA_TESTS_FAKES_FOCUSER_H_
#include <fuchsia/ui/views/cpp/fidl.h>
#include <fuchsia/ui/views/cpp/fidl_test_base.h>
#include <string>
#include "flutter/fml/logging.h"
using Focuser = fuchsia::ui::views::Focuser;
namespace flutter_runner::testing {
class FakeFocuser : public fuchsia::ui::views::testing::Focuser_TestBase {
public:
bool request_focus_called() const { return request_focus_called_; }
void fail_request_focus(bool fail_request = true) {
fail_request_focus_ = fail_request;
}
private:
void RequestFocus(fuchsia::ui::views::ViewRef view_ref,
RequestFocusCallback callback) override {
request_focus_called_ = true;
auto result =
fail_request_focus_
? fuchsia::ui::views::Focuser_RequestFocus_Result::WithErr(
fuchsia::ui::views::Error::DENIED)
: fuchsia::ui::views::Focuser_RequestFocus_Result::WithResponse(
fuchsia::ui::views::Focuser_RequestFocus_Response());
callback(std::move(result));
}
void NotImplemented_(const std::string& name) {
FML_LOG(FATAL) << "flutter_runner::Testing::FakeFocuser does not implement "
<< name;
}
bool request_focus_called_ = false;
bool fail_request_focus_ = false;
};
} // namespace flutter_runner::testing
#endif // FLUTTER_SHELL_PLATFORM_FUCHSIA_TESTS_FAKES_FOCUSER_H_