10 #include "flutter/shell/platform/linux/testing/fl_test.h"
11 #include "flutter/shell/platform/linux/testing/mock_binary_messenger.h"
12 #include "flutter/testing/testing.h"
14 #include "gmock/gmock.h"
15 #include "gtest/gtest.h"
19 g_autoptr(FlMethodResponse) response =
25 *result_listener << ::testing::PrintToString(response);
34 ::testing::Matcher<FlValue*>
args)
35 : name_(std::move(name)), args_(std::move(
args)) {}
38 ::testing::MatchResultListener* result_listener)
const {
40 g_autoptr(GError)
error =
nullptr;
41 g_autofree gchar* name =
nullptr;
46 *result_listener << ::testing::PrintToString(
error->message);
49 if (!name_.MatchAndExplain(name, result_listener)) {
50 *result_listener <<
" where the name doesn't match: \"" << name <<
"\"";
53 if (!args_.MatchAndExplain(
args, result_listener)) {
54 *result_listener <<
" where the args don't match: "
55 << ::testing::PrintToString(
args);
62 *os <<
"method name ";
69 *os <<
"method name ";
70 name_.DescribeNegationTo(os);
72 args_.DescribeNegationTo(os);
76 ::testing::Matcher<std::string> name_;
77 ::testing::Matcher<FlValue*> args_;
81 const std::string& name,
82 ::testing::Matcher<FlValue*>
args) {
90 TEST(FlPlatformPluginTest, PlaySound) {
91 ::testing::NiceMock<flutter::testing::MockBinaryMessenger> messenger;
94 EXPECT_NE(plugin,
nullptr);
99 FL_METHOD_CODEC(codec),
"SystemSound.play",
args,
nullptr);
103 ::testing::Eq<FlBinaryMessenger*>(messenger),
104 ::testing::_, SuccessResponse(
null), ::testing::_))
105 .WillOnce(::testing::Return(
true));
107 messenger.ReceiveMessage(
"flutter/platform", message);
110 TEST(FlPlatformPluginTest, ExitApplication) {
111 ::testing::NiceMock<flutter::testing::MockBinaryMessenger> messenger;
114 EXPECT_NE(plugin,
nullptr);
119 ::testing::Eq<FlBinaryMessenger*>(messenger),
120 ::testing::_, SuccessResponse(
null), ::testing::_))
121 .WillByDefault(testing::Return(
TRUE));
124 g_autoptr(GError)
error =
nullptr;
126 FL_METHOD_CODEC(codec),
"System.initializationComplete",
nullptr, &
error);
127 messenger.ReceiveMessage(
"flutter/platform", init_message);
132 EXPECT_CALL(messenger,
134 ::testing::Eq<FlBinaryMessenger*>(messenger),
135 ::testing::StrEq(
"flutter/platform"),
136 MethodCall(
"System.requestAppExit", FlValueEq(request_args)),
137 ::testing::_, ::testing::_, ::testing::_));
142 FL_METHOD_CODEC(codec),
"System.exitApplication",
args,
nullptr);
143 messenger.ReceiveMessage(
"flutter/platform", message);