18#include "gmock/gmock.h"
19#include "gtest/gtest.h"
27using ::testing::NiceMock;
31class MockFlutterWindowsView :
public FlutterWindowsView {
34 std::unique_ptr<WindowBindingHandler>
window)
53 TestBinaryMessenger*
messenger() {
return &messenger_; }
59 engine_ = builder.Build();
61 auto window = std::make_unique<NiceMock<MockWindowBindingHandler>>();
62 view_ = std::make_unique<NiceMock<MockFlutterWindowsView>>(
63 engine_.get(), std::move(
window));
66 modifier.SetSemanticsEnabled(
true);
67 modifier.SetImplicitView(view_.get());
69 plugin_ = std::make_unique<AccessibilityPlugin>(engine_.get());
85 bool handled = messenger_.SimulateEngineMessage(
87 [](
const uint8_t* reply,
size_t reply_size) {});
90 <<
"Message was not handled by the accessibility channel";
93 MockFlutterWindowsView*
view() {
return view_.get(); }
96 std::unique_ptr<FlutterWindowsEngine> engine_;
97 std::unique_ptr<MockFlutterWindowsView> view_;
98 std::unique_ptr<AccessibilityPlugin> plugin_;
99 TestBinaryMessenger messenger_;
104 EXPECT_CALL(*
view(), AnnounceAlert(::testing::Eq(L
"Direct"))).Times(1);
109 ::testing::Mock::VerifyAndClearExpectations(
view());
113 EXPECT_CALL(*
view(), AnnounceAlert(::testing::Eq(L
"Hello"))).Times(1);
115 SendAnnounceMessage(
"Hello",
EncodableValue{
static_cast<int32_t
>(0)});
118 ::testing::Mock::VerifyAndClearExpectations(
view());
122 EXPECT_CALL(*
view(), AnnounceAlert(::testing::Eq(L
"Hello World"))).Times(1);
124 SendAnnounceMessage(
"Hello World",
EncodableValue{
static_cast<int64_t
>(0)});
127 ::testing::Mock::VerifyAndClearExpectations(
view());
132 EXPECT_CALL(*
view(), AnnounceAlert(_)).Times(0);
138 EXPECT_CALL(*
view(), AnnounceAlert(_)).Times(0);
150 messenger()->SimulateEngineMessage(
152 [](
const uint8_t* reply,
size_t reply_size) {});
static void SetUp(BinaryMessenger *binary_messenger, AccessibilityPlugin *plugin)
virtual void Announce(const FlutterViewId view_id, const std::string_view message)
FlutterWindowsView(FlutterViewId view_id, FlutterWindowsEngine *engine, std::unique_ptr< WindowBindingHandler > window_binding, bool is_sized_to_content, const BoxConstraints &box_constraints, FlutterWindowsViewSizingDelegate *sizing_delegate=nullptr, std::shared_ptr< WindowsProcTable > windows_proc_table=nullptr)
std::unique_ptr< std::vector< uint8_t > > EncodeMessage(const T &message) const
static const StandardMessageCodec & GetInstance(const StandardCodecSerializer *serializer=nullptr)
FlutterWindowsEngine * engine()
AccessibilityPluginTest()=default
TestBinaryMessenger * messenger()
virtual ~AccessibilityPluginTest()=default
MockFlutterWindowsView * view()
void SendAnnounceMessage(const std::string &message, EncodableValue view_id)
MOCK_METHOD(void, NotifyWinEventWrapper,(ui::AXPlatformNodeWin *, ax::mojom::Event),(override))
MockFlutterWindowsView(FlutterWindowsEngine *engine, std::unique_ptr< WindowBindingHandler > wbh)
WindowsTestContext & GetContext()
G_BEGIN_DECLS FlutterViewId view_id
static constexpr char kAccessibilityChannelName[]
TEST_F(DisplayListTest, Defaults)
constexpr int64_t kImplicitViewId
DEF_SWITCHES_START aot vmservice shared library Name of the *so containing AOT compiled Dart assets for launching the service isolate vm snapshot data
std::map< EncodableValue, EncodableValue > EncodableMap