18#include "gmock/gmock.h"
19#include "gtest/gtest.h"
27using ::testing::NiceMock;
31class MockFlutterWindowsView :
public FlutterWindowsView {
34 std::unique_ptr<WindowBindingHandler>
window)
49 TestBinaryMessenger*
messenger() {
return &messenger_; }
55 engine_ = builder.Build();
57 auto window = std::make_unique<NiceMock<MockWindowBindingHandler>>();
58 view_ = std::make_unique<NiceMock<MockFlutterWindowsView>>(
59 engine_.get(), std::move(
window));
62 modifier.SetSemanticsEnabled(
true);
63 modifier.SetImplicitView(view_.get());
65 plugin_ = std::make_unique<AccessibilityPlugin>(engine_.get());
81 bool handled = messenger_.SimulateEngineMessage(
83 [](
const uint8_t* reply,
size_t reply_size) {});
86 <<
"Message was not handled by the accessibility channel";
89 MockFlutterWindowsView*
view() {
return view_.get(); }
92 std::unique_ptr<FlutterWindowsEngine> engine_;
93 std::unique_ptr<MockFlutterWindowsView> view_;
94 std::unique_ptr<AccessibilityPlugin> plugin_;
95 TestBinaryMessenger messenger_;
100 EXPECT_CALL(*
view(), AnnounceAlert(::testing::Eq(L
"Direct"))).Times(1);
105 ::testing::Mock::VerifyAndClearExpectations(
view());
109 EXPECT_CALL(*
view(), AnnounceAlert(::testing::Eq(L
"Hello"))).Times(1);
111 SendAnnounceMessage(
"Hello",
EncodableValue{
static_cast<int32_t
>(0)});
114 ::testing::Mock::VerifyAndClearExpectations(
view());
118 EXPECT_CALL(*
view(), AnnounceAlert(::testing::Eq(L
"Hello World"))).Times(1);
120 SendAnnounceMessage(
"Hello World",
EncodableValue{
static_cast<int64_t
>(0)});
123 ::testing::Mock::VerifyAndClearExpectations(
view());
128 EXPECT_CALL(*
view(), AnnounceAlert(_)).Times(0);
134 EXPECT_CALL(*
view(), AnnounceAlert(_)).Times(0);
146 messenger()->SimulateEngineMessage(
148 [](
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, 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