Revert "Add tests for FlBinaryMessenger, FlBasicMessageChannel, FlMethodChannel (#18597)"
This reverts commit a095cc23d8d5a539fd6179846875d7218c60bdff.
diff --git a/ci/licenses_golden/licenses_flutter b/ci/licenses_golden/licenses_flutter
index 9cde267..ba413f5 100755
--- a/ci/licenses_golden/licenses_flutter
+++ b/ci/licenses_golden/licenses_flutter
@@ -1191,12 +1191,10 @@
FILE: ../../../flutter/shell/platform/glfw/text_input_plugin.cc
FILE: ../../../flutter/shell/platform/glfw/text_input_plugin.h
FILE: ../../../flutter/shell/platform/linux/fl_basic_message_channel.cc
-FILE: ../../../flutter/shell/platform/linux/fl_basic_message_channel_test.cc
FILE: ../../../flutter/shell/platform/linux/fl_binary_codec.cc
FILE: ../../../flutter/shell/platform/linux/fl_binary_codec_test.cc
FILE: ../../../flutter/shell/platform/linux/fl_binary_messenger.cc
FILE: ../../../flutter/shell/platform/linux/fl_binary_messenger_private.h
-FILE: ../../../flutter/shell/platform/linux/fl_binary_messenger_test.cc
FILE: ../../../flutter/shell/platform/linux/fl_dart_project.cc
FILE: ../../../flutter/shell/platform/linux/fl_dart_project_test.cc
FILE: ../../../flutter/shell/platform/linux/fl_engine.cc
@@ -1213,7 +1211,6 @@
FILE: ../../../flutter/shell/platform/linux/fl_method_call_private.h
FILE: ../../../flutter/shell/platform/linux/fl_method_channel.cc
FILE: ../../../flutter/shell/platform/linux/fl_method_channel_private.h
-FILE: ../../../flutter/shell/platform/linux/fl_method_channel_test.cc
FILE: ../../../flutter/shell/platform/linux/fl_method_codec.cc
FILE: ../../../flutter/shell/platform/linux/fl_method_codec_private.h
FILE: ../../../flutter/shell/platform/linux/fl_method_codec_test.cc
diff --git a/shell/platform/embedder/BUILD.gn b/shell/platform/embedder/BUILD.gn
index 6093371..f4b5be5 100644
--- a/shell/platform/embedder/BUILD.gn
+++ b/shell/platform/embedder/BUILD.gn
@@ -24,6 +24,7 @@
source_set(target_name) {
sources = [
"embedder.cc",
+ "embedder.h",
"embedder_engine.cc",
"embedder_engine.h",
"embedder_external_texture_gl.cc",
@@ -74,10 +75,6 @@
"//third_party/skia",
]
- public_deps = [
- ":embedder_headers",
- ]
-
public_configs += [ "//flutter:config" ]
}
}
@@ -90,14 +87,6 @@
public_configs = [ ":embedder_prefix_config" ]
}
-source_set("embedder_headers") {
- public = [
- "embedder.h",
- ]
-
- public_configs = [ "//flutter:config" ]
-}
-
config("embedder_prefix_config") {
defines = [ "FLUTTER_API_SYMBOL_PREFIX=Embedder" ]
}
diff --git a/shell/platform/linux/BUILD.gn b/shell/platform/linux/BUILD.gn
index 54c550d..809d5a2 100644
--- a/shell/platform/linux/BUILD.gn
+++ b/shell/platform/linux/BUILD.gn
@@ -70,11 +70,9 @@
include_dirs = [ "public" ]
}
-source_set("flutter_linux_sources") {
+source_set("flutter_linux") {
public = _public_headers
- configs += [ "//flutter/shell/platform/linux/config:gtk" ]
-
sources = [
"fl_basic_message_channel.cc",
"fl_binary_codec.cc",
@@ -101,29 +99,19 @@
"fl_view.cc",
]
- # Set flag to stop headers being directly included (library users should not do this)
- defines = [ "FLUTTER_LINUX_COMPILATION" ]
-
- deps = [
- "//flutter/shell/platform/embedder:embedder_headers",
- "//third_party/rapidjson",
- ]
-}
-
-source_set("flutter_linux") {
configs += [
"//flutter/shell/platform/linux/config:gtk",
"//flutter/shell/platform/linux/config:egl",
"//third_party/khronos:khronos_headers",
]
- public_deps = [
- ":flutter_linux_sources",
- ]
+ # Set flag to stop headers being directly included (library users should not do this)
+ defines = [ "FLUTTER_LINUX_COMPILATION" ]
deps = [
"//flutter/shell/platform/common/cpp:common_cpp_input",
"//flutter/shell/platform/embedder:embedder_with_symbol_prefix",
+ "//third_party/rapidjson",
]
}
@@ -135,14 +123,11 @@
testonly = true
sources = [
- "fl_basic_message_channel_test.cc",
"fl_binary_codec_test.cc",
- "fl_binary_messenger_test.cc",
"fl_dart_project_test.cc",
"fl_json_message_codec_test.cc",
"fl_json_method_codec_test.cc",
"fl_message_codec_test.cc",
- "fl_method_channel_test.cc",
"fl_method_codec_test.cc",
"fl_method_response_test.cc",
"fl_standard_message_codec_test.cc",
@@ -150,9 +135,6 @@
"fl_string_codec_test.cc",
"fl_value_test.cc",
"testing/fl_test.cc",
- "testing/mock_egl.cc",
- "testing/mock_engine.cc",
- "testing/mock_renderer.cc",
]
public_configs = [ "//flutter:config" ]
@@ -163,10 +145,8 @@
defines = [ "FLUTTER_LINUX_COMPILATION" ]
deps = [
+ ":flutter_linux",
":flutter_linux_fixtures",
- ":flutter_linux_sources",
- "//flutter/runtime:libdart",
- "//flutter/shell/platform/embedder:embedder_headers",
"//flutter/testing",
]
}
diff --git a/shell/platform/linux/fl_basic_message_channel_test.cc b/shell/platform/linux/fl_basic_message_channel_test.cc
deleted file mode 100644
index 002ea0e..0000000
--- a/shell/platform/linux/fl_basic_message_channel_test.cc
+++ /dev/null
@@ -1,152 +0,0 @@
-// 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.
-
-// Included first as it collides with the X11 headers.
-#include "gtest/gtest.h"
-
-#include "flutter/shell/platform/linux/fl_binary_messenger_private.h"
-#include "flutter/shell/platform/linux/fl_engine_private.h"
-#include "flutter/shell/platform/linux/public/flutter_linux/fl_basic_message_channel.h"
-#include "flutter/shell/platform/linux/public/flutter_linux/fl_standard_message_codec.h"
-#include "flutter/shell/platform/linux/testing/mock_renderer.h"
-
-// Creates a mock engine that responds to platform messages.
-static FlEngine* make_mock_engine() {
- g_autoptr(FlDartProject) project = fl_dart_project_new("data");
- g_autoptr(FlMockRenderer) renderer = fl_mock_renderer_new();
- g_autoptr(FlEngine) engine = fl_engine_new(project, FL_RENDERER(renderer));
- g_autoptr(GError) error = nullptr;
- EXPECT_TRUE(fl_engine_start(engine, &error));
- EXPECT_EQ(error, nullptr);
-
- return static_cast<FlEngine*>(g_object_ref(engine));
-}
-
-// Called when the message response is received in the SendMessage test.
-static void echo_response_cb(GObject* object,
- GAsyncResult* result,
- gpointer user_data) {
- g_autoptr(GError) error = nullptr;
- g_autoptr(FlValue) message = fl_basic_message_channel_send_finish(
- FL_BASIC_MESSAGE_CHANNEL(object), result, &error);
- EXPECT_NE(message, nullptr);
- EXPECT_EQ(error, nullptr);
-
- EXPECT_EQ(fl_value_get_type(message), FL_VALUE_TYPE_STRING);
- EXPECT_STREQ(fl_value_get_string(message), "Hello World!");
-
- g_main_loop_quit(static_cast<GMainLoop*>(user_data));
-}
-
-// Checks sending a message works.
-TEST(FlBasicMessageChannelTest, SendMessage) {
- g_autoptr(GMainLoop) loop = g_main_loop_new(nullptr, 0);
-
- g_autoptr(FlEngine) engine = make_mock_engine();
- FlBinaryMessenger* messenger = fl_binary_messenger_new(engine);
- g_autoptr(FlStandardMessageCodec) codec = fl_standard_message_codec_new();
- g_autoptr(FlBasicMessageChannel) channel = fl_basic_message_channel_new(
- messenger, "test/echo", FL_MESSAGE_CODEC(codec));
- g_autoptr(FlValue) message = fl_value_new_string("Hello World!");
- fl_basic_message_channel_send(channel, message, nullptr, echo_response_cb,
- loop);
-
- // Blocks here until echo_response_cb is called.
- g_main_loop_run(loop);
-}
-
-// Called when the message response is received in the SendFailure test.
-static void failure_response_cb(GObject* object,
- GAsyncResult* result,
- gpointer user_data) {
- g_autoptr(GError) error = nullptr;
- g_autoptr(FlValue) message = fl_basic_message_channel_send_finish(
- FL_BASIC_MESSAGE_CHANNEL(object), result, &error);
- EXPECT_EQ(message, nullptr);
- EXPECT_NE(error, nullptr);
-
- g_main_loop_quit(static_cast<GMainLoop*>(user_data));
-}
-
-// Checks the engine reporting a send failure is handled.
-TEST(FlBasicMessageChannelTest, SendFailure) {
- g_autoptr(GMainLoop) loop = g_main_loop_new(nullptr, 0);
-
- g_autoptr(FlEngine) engine = make_mock_engine();
- FlBinaryMessenger* messenger = fl_binary_messenger_new(engine);
- g_autoptr(FlStandardMessageCodec) codec = fl_standard_message_codec_new();
- g_autoptr(FlBasicMessageChannel) channel = fl_basic_message_channel_new(
- messenger, "test/failure", FL_MESSAGE_CODEC(codec));
- g_autoptr(FlValue) message = fl_value_new_string("Hello World!");
- fl_basic_message_channel_send(channel, message, nullptr, failure_response_cb,
- loop);
-
- // Blocks here until failure_response_cb is called.
- g_main_loop_run(loop);
-}
-
-// Called when a message is received from the engine in the ReceiveMessage test.
-static void message_cb(FlBasicMessageChannel* channel,
- FlValue* message,
- FlBasicMessageChannelResponseHandle* response_handle,
- gpointer user_data) {
- EXPECT_NE(message, nullptr);
- EXPECT_EQ(fl_value_get_type(message), FL_VALUE_TYPE_STRING);
- EXPECT_STREQ(fl_value_get_string(message), "Marco!");
-
- g_autoptr(GError) error = nullptr;
- g_autoptr(FlValue) response = fl_value_new_string("Polo!");
- EXPECT_TRUE(fl_basic_message_channel_respond(channel, response_handle,
- response, &error));
- EXPECT_EQ(error, nullptr);
-}
-
-// Called when a the test engine notifies us what response we sent in the
-// ReceiveMessage test.
-static void response_cb(FlBasicMessageChannel* channel,
- FlValue* message,
- FlBasicMessageChannelResponseHandle* response_handle,
- gpointer user_data) {
- EXPECT_NE(message, nullptr);
- EXPECT_EQ(fl_value_get_type(message), FL_VALUE_TYPE_STRING);
- EXPECT_STREQ(fl_value_get_string(message), "Polo!");
-
- fl_basic_message_channel_respond(channel, response_handle, nullptr, nullptr);
-
- g_main_loop_quit(static_cast<GMainLoop*>(user_data));
-}
-
-// Checks the shell able to receive and respond to messages from the engine.
-TEST(FlBasicMessageChannelTest, ReceiveMessage) {
- g_autoptr(GMainLoop) loop = g_main_loop_new(nullptr, 0);
-
- g_autoptr(FlEngine) engine = make_mock_engine();
- FlBinaryMessenger* messenger = fl_binary_messenger_new(engine);
-
- // Listen for messages from the engine.
- g_autoptr(FlStandardMessageCodec) codec = fl_standard_message_codec_new();
- g_autoptr(FlBasicMessageChannel) messages_channel =
- fl_basic_message_channel_new(messenger, "test/messages",
- FL_MESSAGE_CODEC(codec));
- fl_basic_message_channel_set_message_handler(messages_channel, message_cb,
- nullptr, nullptr);
-
- // Listen for response from the engine.
- g_autoptr(FlBasicMessageChannel) responses_channel =
- fl_basic_message_channel_new(messenger, "test/responses",
- FL_MESSAGE_CODEC(codec));
- fl_basic_message_channel_set_message_handler(responses_channel, response_cb,
- loop, nullptr);
-
- // Triggger the engine to send a message.
- g_autoptr(FlBasicMessageChannel) control_channel =
- fl_basic_message_channel_new(messenger, "test/send-message",
- FL_MESSAGE_CODEC(codec));
- g_autoptr(FlValue) message = fl_value_new_string("Marco!");
- fl_basic_message_channel_send(control_channel, message, nullptr, nullptr,
- nullptr);
-
- // Blocks here until response_cb is called.
- g_main_loop_run(loop);
-}
diff --git a/shell/platform/linux/fl_binary_messenger_test.cc b/shell/platform/linux/fl_binary_messenger_test.cc
deleted file mode 100644
index edbd136..0000000
--- a/shell/platform/linux/fl_binary_messenger_test.cc
+++ /dev/null
@@ -1,195 +0,0 @@
-// 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.
-
-// Included first as it collides with the X11 headers.
-#include "gtest/gtest.h"
-
-#include "flutter/shell/platform/linux/fl_binary_messenger_private.h"
-#include "flutter/shell/platform/linux/fl_engine_private.h"
-#include "flutter/shell/platform/linux/public/flutter_linux/fl_binary_messenger.h"
-#include "flutter/shell/platform/linux/testing/mock_renderer.h"
-
-// Creates a mock engine that responds to platform messages.
-static FlEngine* make_mock_engine() {
- g_autoptr(FlDartProject) project = fl_dart_project_new("data");
- g_autoptr(FlMockRenderer) renderer = fl_mock_renderer_new();
- g_autoptr(FlEngine) engine = fl_engine_new(project, FL_RENDERER(renderer));
- g_autoptr(GError) error = nullptr;
- EXPECT_TRUE(fl_engine_start(engine, &error));
- EXPECT_EQ(error, nullptr);
-
- return static_cast<FlEngine*>(g_object_ref(engine));
-}
-
-// Checks sending nullptr for a message works.
-TEST(FlBinaryMessengerTest, SendNullptrMessage) {
- g_autoptr(FlEngine) engine = make_mock_engine();
- FlBinaryMessenger* messenger = fl_binary_messenger_new(engine);
- fl_binary_messenger_send_on_channel(messenger, "test/echo", nullptr, nullptr,
- nullptr, nullptr);
-}
-
-// Checks sending a zero length message works.
-TEST(FlBinaryMessengerTest, SendEmptyMessage) {
- g_autoptr(FlEngine) engine = make_mock_engine();
- FlBinaryMessenger* messenger = fl_binary_messenger_new(engine);
- g_autoptr(GBytes) message = g_bytes_new(nullptr, 0);
- fl_binary_messenger_send_on_channel(messenger, "test/echo", message, nullptr,
- nullptr, nullptr);
-}
-
-// Called when the message response is received in the SendMessage test.
-static void echo_response_cb(GObject* object,
- GAsyncResult* result,
- gpointer user_data) {
- g_autoptr(GError) error = nullptr;
- g_autoptr(GBytes) message = fl_binary_messenger_send_on_channel_finish(
- FL_BINARY_MESSENGER(object), result, &error);
- EXPECT_NE(message, nullptr);
- EXPECT_EQ(error, nullptr);
-
- g_autofree gchar* text =
- g_strndup(static_cast<const gchar*>(g_bytes_get_data(message, nullptr)),
- g_bytes_get_size(message));
- EXPECT_STREQ(text, "Hello World!");
-
- g_main_loop_quit(static_cast<GMainLoop*>(user_data));
-}
-
-// Checks sending a message works.
-TEST(FlBinaryMessengerTest, SendMessage) {
- g_autoptr(GMainLoop) loop = g_main_loop_new(nullptr, 0);
-
- g_autoptr(FlEngine) engine = make_mock_engine();
- FlBinaryMessenger* messenger = fl_binary_messenger_new(engine);
- const char* text = "Hello World!";
- g_autoptr(GBytes) message = g_bytes_new(text, strlen(text));
- fl_binary_messenger_send_on_channel(messenger, "test/echo", message, nullptr,
- echo_response_cb, loop);
-
- // Blocks here until echo_response_cb is called.
- g_main_loop_run(loop);
-}
-
-// Called when the message response is received in the NullptrResponse test.
-static void nullptr_response_cb(GObject* object,
- GAsyncResult* result,
- gpointer user_data) {
- g_autoptr(GError) error = nullptr;
- g_autoptr(GBytes) message = fl_binary_messenger_send_on_channel_finish(
- FL_BINARY_MESSENGER(object), result, &error);
- EXPECT_NE(message, nullptr);
- EXPECT_EQ(error, nullptr);
-
- EXPECT_EQ(g_bytes_get_size(message), static_cast<gsize>(0));
-
- g_main_loop_quit(static_cast<GMainLoop*>(user_data));
-}
-
-// Checks the engine returning a nullptr message work.
-TEST(FlBinaryMessengerTest, NullptrResponse) {
- g_autoptr(GMainLoop) loop = g_main_loop_new(nullptr, 0);
-
- g_autoptr(FlEngine) engine = make_mock_engine();
- FlBinaryMessenger* messenger = fl_binary_messenger_new(engine);
- const char* text = "Hello World!";
- g_autoptr(GBytes) message = g_bytes_new(text, strlen(text));
- fl_binary_messenger_send_on_channel(messenger, "test/nullptr-response",
- message, nullptr, nullptr_response_cb,
- loop);
-
- // Blocks here until nullptr_response_cb is called.
- g_main_loop_run(loop);
-}
-
-// Called when the message response is received in the SendFailure test.
-static void failure_response_cb(GObject* object,
- GAsyncResult* result,
- gpointer user_data) {
- g_autoptr(GError) error = nullptr;
- g_autoptr(GBytes) message = fl_binary_messenger_send_on_channel_finish(
- FL_BINARY_MESSENGER(object), result, &error);
- EXPECT_EQ(message, nullptr);
- EXPECT_NE(error, nullptr);
-
- g_main_loop_quit(static_cast<GMainLoop*>(user_data));
-}
-
-// Checks the engine reporting a send failure is handled.
-TEST(FlBinaryMessengerTest, SendFailure) {
- g_autoptr(GMainLoop) loop = g_main_loop_new(nullptr, 0);
-
- g_autoptr(FlEngine) engine = make_mock_engine();
- FlBinaryMessenger* messenger = fl_binary_messenger_new(engine);
- fl_binary_messenger_send_on_channel(messenger, "test/failure", nullptr,
- nullptr, failure_response_cb, loop);
-
- // Blocks here until failure_response_cb is called.
- g_main_loop_run(loop);
-}
-
-// Called when a message is received from the engine in the ReceiveMessage test.
-static void message_cb(FlBinaryMessenger* messenger,
- const gchar* channel,
- GBytes* message,
- FlBinaryMessengerResponseHandle* response_handle,
- gpointer user_data) {
- EXPECT_NE(message, nullptr);
- g_autofree gchar* text =
- g_strndup(static_cast<const gchar*>(g_bytes_get_data(message, nullptr)),
- g_bytes_get_size(message));
- EXPECT_STREQ(text, "Marco!");
-
- const char* response_text = "Polo!";
- g_autoptr(GBytes) response =
- g_bytes_new(response_text, strlen(response_text));
- g_autoptr(GError) error = nullptr;
- EXPECT_TRUE(fl_binary_messenger_send_response(messenger, response_handle,
- response, &error));
- EXPECT_EQ(error, nullptr);
-}
-
-// Called when a the test engine notifies us what response we sent in the
-// ReceiveMessage test.
-static void response_cb(FlBinaryMessenger* messenger,
- const gchar* channel,
- GBytes* message,
- FlBinaryMessengerResponseHandle* response_handle,
- gpointer user_data) {
- EXPECT_NE(message, nullptr);
- g_autofree gchar* text =
- g_strndup(static_cast<const gchar*>(g_bytes_get_data(message, nullptr)),
- g_bytes_get_size(message));
- EXPECT_STREQ(text, "Polo!");
-
- fl_binary_messenger_send_response(messenger, response_handle, nullptr,
- nullptr);
-
- g_main_loop_quit(static_cast<GMainLoop*>(user_data));
-}
-
-// Checks the shell able to receive and respond to messages from the engine.
-TEST(FlBinaryMessengerTest, ReceiveMessage) {
- g_autoptr(GMainLoop) loop = g_main_loop_new(nullptr, 0);
-
- g_autoptr(FlEngine) engine = make_mock_engine();
- FlBinaryMessenger* messenger = fl_binary_messenger_new(engine);
-
- // Listen for messages from the engine.
- fl_binary_messenger_set_message_handler_on_channel(
- messenger, "test/messages", message_cb, nullptr, nullptr);
-
- // Listen for response from the engine.
- fl_binary_messenger_set_message_handler_on_channel(
- messenger, "test/responses", response_cb, loop, nullptr);
-
- // Triggger the engine to send a message.
- const char* text = "Marco!";
- g_autoptr(GBytes) message = g_bytes_new(text, strlen(text));
- fl_binary_messenger_send_on_channel(messenger, "test/send-message", message,
- nullptr, nullptr, nullptr);
-
- // Blocks here until response_cb is called.
- g_main_loop_run(loop);
-}
diff --git a/shell/platform/linux/fl_method_channel_test.cc b/shell/platform/linux/fl_method_channel_test.cc
deleted file mode 100644
index 2a5ab6a..0000000
--- a/shell/platform/linux/fl_method_channel_test.cc
+++ /dev/null
@@ -1,434 +0,0 @@
-// 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.
-
-// Included first as it collides with the X11 headers.
-#include "gtest/gtest.h"
-
-#include "flutter/shell/platform/linux/fl_binary_messenger_private.h"
-#include "flutter/shell/platform/linux/fl_engine_private.h"
-#include "flutter/shell/platform/linux/fl_method_codec_private.h"
-#include "flutter/shell/platform/linux/public/flutter_linux/fl_basic_message_channel.h"
-#include "flutter/shell/platform/linux/public/flutter_linux/fl_method_channel.h"
-#include "flutter/shell/platform/linux/public/flutter_linux/fl_standard_method_codec.h"
-#include "flutter/shell/platform/linux/testing/mock_renderer.h"
-
-// Creates a mock engine that responds to platform messages.
-static FlEngine* make_mock_engine() {
- g_autoptr(FlDartProject) project = fl_dart_project_new("data");
- g_autoptr(FlMockRenderer) renderer = fl_mock_renderer_new();
- g_autoptr(FlEngine) engine = fl_engine_new(project, FL_RENDERER(renderer));
- g_autoptr(GError) error = nullptr;
- EXPECT_TRUE(fl_engine_start(engine, &error));
- EXPECT_EQ(error, nullptr);
-
- return static_cast<FlEngine*>(g_object_ref(engine));
-}
-
-// Called when when the method call response is received in the InvokeMethod
-// test.
-static void method_response_cb(GObject* object,
- GAsyncResult* result,
- gpointer user_data) {
- g_autoptr(GError) error = nullptr;
- g_autoptr(FlMethodResponse) response = fl_method_channel_invoke_method_finish(
- FL_METHOD_CHANNEL(object), result, &error);
- EXPECT_NE(response, nullptr);
- EXPECT_EQ(error, nullptr);
-
- FlValue* r = fl_method_response_get_result(response, &error);
- EXPECT_NE(r, nullptr);
- EXPECT_EQ(error, nullptr);
-
- EXPECT_EQ(fl_value_get_type(r), FL_VALUE_TYPE_STRING);
- EXPECT_STREQ(fl_value_get_string(r), "Hello World!");
-
- g_main_loop_quit(static_cast<GMainLoop*>(user_data));
-}
-
-// Checks if invoking a method returns a value.
-TEST(FlMethodChannelTest, InvokeMethod) {
- g_autoptr(GMainLoop) loop = g_main_loop_new(nullptr, 0);
-
- g_autoptr(FlEngine) engine = make_mock_engine();
- FlBinaryMessenger* messenger = fl_binary_messenger_new(engine);
- g_autoptr(FlStandardMethodCodec) codec = fl_standard_method_codec_new();
- g_autoptr(FlMethodChannel) channel = fl_method_channel_new(
- messenger, "test/standard-method", FL_METHOD_CODEC(codec));
-
- g_autoptr(FlValue) args = fl_value_new_string("Hello World!");
- fl_method_channel_invoke_method(channel, "Echo", args, nullptr,
- method_response_cb, loop);
-
- // Blocks here until method_response_cb is called.
- g_main_loop_run(loop);
-}
-
-// Called when when the method call response is received in the
-// InvokeMethodNullptrArgsMessage test.
-static void nullptr_args_response_cb(GObject* object,
- GAsyncResult* result,
- gpointer user_data) {
- g_autoptr(GError) error = nullptr;
- g_autoptr(FlMethodResponse) response = fl_method_channel_invoke_method_finish(
- FL_METHOD_CHANNEL(object), result, &error);
- EXPECT_NE(response, nullptr);
- EXPECT_EQ(error, nullptr);
-
- FlValue* r = fl_method_response_get_result(response, &error);
- EXPECT_NE(r, nullptr);
- EXPECT_EQ(error, nullptr);
- EXPECT_EQ(fl_value_get_type(r), FL_VALUE_TYPE_NULL);
-
- g_main_loop_quit(static_cast<GMainLoop*>(user_data));
-}
-
-// Checks if a method can be invoked with nullptr for arguments.
-TEST(FlMethodChannelTest, InvokeMethodNullptrArgsMessage) {
- g_autoptr(GMainLoop) loop = g_main_loop_new(nullptr, 0);
-
- g_autoptr(FlEngine) engine = make_mock_engine();
- FlBinaryMessenger* messenger = fl_binary_messenger_new(engine);
- g_autoptr(FlStandardMethodCodec) codec = fl_standard_method_codec_new();
- g_autoptr(FlMethodChannel) channel = fl_method_channel_new(
- messenger, "test/standard-method", FL_METHOD_CODEC(codec));
-
- fl_method_channel_invoke_method(channel, "Echo", nullptr, nullptr,
- nullptr_args_response_cb, loop);
-
- // Blocks here until nullptr_args_response_cb is called.
- g_main_loop_run(loop);
-}
-
-// Called when when the method call response is received in the
-// InvokeMethodError test.
-static void error_response_cb(GObject* object,
- GAsyncResult* result,
- gpointer user_data) {
- g_autoptr(GError) error = nullptr;
- g_autoptr(FlMethodResponse) response = fl_method_channel_invoke_method_finish(
- FL_METHOD_CHANNEL(object), result, &error);
- EXPECT_NE(response, nullptr);
- EXPECT_EQ(error, nullptr);
-
- EXPECT_TRUE(FL_IS_METHOD_ERROR_RESPONSE(response));
- EXPECT_STREQ(
- fl_method_error_response_get_code(FL_METHOD_ERROR_RESPONSE(response)),
- "CODE");
- EXPECT_STREQ(
- fl_method_error_response_get_message(FL_METHOD_ERROR_RESPONSE(response)),
- "MESSAGE");
- FlValue* details =
- fl_method_error_response_get_details(FL_METHOD_ERROR_RESPONSE(response));
- EXPECT_NE(details, nullptr);
- EXPECT_EQ(fl_value_get_type(details), FL_VALUE_TYPE_STRING);
- EXPECT_STREQ(fl_value_get_string(details), "DETAILS");
-
- g_main_loop_quit(static_cast<GMainLoop*>(user_data));
-}
-
-// Checks if an error response from a method call is handled.
-TEST(FlMethodChannelTest, InvokeMethodError) {
- g_autoptr(GMainLoop) loop = g_main_loop_new(nullptr, 0);
-
- g_autoptr(FlEngine) engine = make_mock_engine();
- FlBinaryMessenger* messenger = fl_binary_messenger_new(engine);
- g_autoptr(FlStandardMethodCodec) codec = fl_standard_method_codec_new();
- g_autoptr(FlMethodChannel) channel = fl_method_channel_new(
- messenger, "test/standard-method", FL_METHOD_CODEC(codec));
-
- g_autoptr(FlValue) args = fl_value_new_list();
- fl_value_append_take(args, fl_value_new_string("CODE"));
- fl_value_append_take(args, fl_value_new_string("MESSAGE"));
- fl_value_append_take(args, fl_value_new_string("DETAILS"));
- fl_method_channel_invoke_method(channel, "Error", args, nullptr,
- error_response_cb, loop);
-
- // Blocks here until error_response_cb is called.
- g_main_loop_run(loop);
-}
-
-// Called when when the method call response is received in the
-// InvokeMethodNotImplemented test.
-static void not_implemented_response_cb(GObject* object,
- GAsyncResult* result,
- gpointer user_data) {
- g_autoptr(GError) error = nullptr;
- g_autoptr(FlMethodResponse) response = fl_method_channel_invoke_method_finish(
- FL_METHOD_CHANNEL(object), result, &error);
- EXPECT_NE(response, nullptr);
- EXPECT_EQ(error, nullptr);
-
- EXPECT_TRUE(FL_IS_METHOD_NOT_IMPLEMENTED_RESPONSE(response));
-
- g_main_loop_quit(static_cast<GMainLoop*>(user_data));
-}
-
-// Checks if a not implemeneted response from a method call is handled.
-TEST(FlMethodChannelTest, InvokeMethodNotImplemented) {
- g_autoptr(GMainLoop) loop = g_main_loop_new(nullptr, 0);
-
- g_autoptr(FlEngine) engine = make_mock_engine();
- FlBinaryMessenger* messenger = fl_binary_messenger_new(engine);
- g_autoptr(FlStandardMethodCodec) codec = fl_standard_method_codec_new();
- g_autoptr(FlMethodChannel) channel = fl_method_channel_new(
- messenger, "test/standard-method", FL_METHOD_CODEC(codec));
-
- fl_method_channel_invoke_method(channel, "NotImplemented", nullptr, nullptr,
- not_implemented_response_cb, loop);
-
- // Blocks here until not_implemented_response_cb is called.
- g_main_loop_run(loop);
-}
-
-// Called when when the method call response is received in the
-// InvokeMethodFailure test.
-static void failure_response_cb(GObject* object,
- GAsyncResult* result,
- gpointer user_data) {
- g_autoptr(GError) error = nullptr;
- g_autoptr(FlMethodResponse) response = fl_method_channel_invoke_method_finish(
- FL_METHOD_CHANNEL(object), result, &error);
- EXPECT_EQ(response, nullptr);
- EXPECT_NE(error, nullptr);
-
- g_main_loop_quit(static_cast<GMainLoop*>(user_data));
-}
-
-// Checks if an engine failure calling a method call is handled.
-TEST(FlMethodChannelTest, InvokeMethodFailure) {
- g_autoptr(GMainLoop) loop = g_main_loop_new(nullptr, 0);
-
- g_autoptr(FlEngine) engine = make_mock_engine();
- FlBinaryMessenger* messenger = fl_binary_messenger_new(engine);
- g_autoptr(FlStandardMethodCodec) codec = fl_standard_method_codec_new();
- g_autoptr(FlMethodChannel) channel =
- fl_method_channel_new(messenger, "test/failure", FL_METHOD_CODEC(codec));
-
- fl_method_channel_invoke_method(channel, "Echo", nullptr, nullptr,
- failure_response_cb, loop);
-
- // Blocks here until failure_response_cb is called.
- g_main_loop_run(loop);
-}
-
-// Called when a method call is received from the engine in the
-// ReceiveMethodCallRespondSuccess test.
-static void method_call_success_cb(FlMethodChannel* channel,
- FlMethodCall* method_call,
- gpointer user_data) {
- EXPECT_STREQ(fl_method_call_get_name(method_call), "Foo");
- EXPECT_EQ(fl_value_get_type(fl_method_call_get_args(method_call)),
- FL_VALUE_TYPE_STRING);
- EXPECT_STREQ(fl_value_get_string(fl_method_call_get_args(method_call)),
- "Marco!");
-
- g_autoptr(FlValue) result = fl_value_new_string("Polo!");
- g_autoptr(GError) error = nullptr;
- EXPECT_TRUE(fl_method_call_respond_success(method_call, result, &error));
- EXPECT_EQ(error, nullptr);
-}
-
-// Called when a the test engine notifies us what response we sent in the
-// ReceiveMethodCallRespondSuccess test.
-static void method_call_success_response_cb(
- FlBinaryMessenger* messenger,
- const gchar* channel,
- GBytes* message,
- FlBinaryMessengerResponseHandle* response_handle,
- gpointer user_data) {
- g_autoptr(FlStandardMethodCodec) codec = fl_standard_method_codec_new();
- g_autoptr(GError) error = nullptr;
- g_autoptr(FlMethodResponse) response =
- fl_method_codec_decode_response(FL_METHOD_CODEC(codec), message, &error);
- EXPECT_NE(response, nullptr);
- EXPECT_EQ(error, nullptr);
-
- EXPECT_TRUE(FL_IS_METHOD_SUCCESS_RESPONSE(response));
- FlValue* result = fl_method_success_response_get_result(
- FL_METHOD_SUCCESS_RESPONSE(response));
- EXPECT_EQ(fl_value_get_type(result), FL_VALUE_TYPE_STRING);
- EXPECT_STREQ(fl_value_get_string(result), "Polo!");
-
- fl_binary_messenger_send_response(messenger, response_handle, nullptr,
- nullptr);
-
- g_main_loop_quit(static_cast<GMainLoop*>(user_data));
-}
-
-// Checks the shell able to receive and respond to method calls from the engine.
-TEST(FlMethodChannelTest, ReceiveMethodCallRespondSuccess) {
- g_autoptr(GMainLoop) loop = g_main_loop_new(nullptr, 0);
-
- g_autoptr(FlEngine) engine = make_mock_engine();
- FlBinaryMessenger* messenger = fl_binary_messenger_new(engine);
- g_autoptr(FlStandardMethodCodec) codec = fl_standard_method_codec_new();
- g_autoptr(FlMethodChannel) channel = fl_method_channel_new(
- messenger, "test/standard-method", FL_METHOD_CODEC(codec));
- fl_method_channel_set_method_call_handler(channel, method_call_success_cb,
- nullptr, nullptr);
-
- // Listen for response from the engine.
- fl_binary_messenger_set_message_handler_on_channel(
- messenger, "test/responses", method_call_success_response_cb, loop,
- nullptr);
-
- // Trigger the engine to make a method call.
- g_autoptr(FlValue) args = fl_value_new_list();
- fl_value_append_take(args, fl_value_new_string("test/standard-method"));
- fl_value_append_take(args, fl_value_new_string("Foo"));
- fl_value_append_take(args, fl_value_new_string("Marco!"));
- fl_method_channel_invoke_method(channel, "InvokeMethod", args, nullptr,
- nullptr, loop);
-
- // Blocks here until method_call_success_response_cb is called.
- g_main_loop_run(loop);
-}
-
-// Called when a method call is received from the engine in the
-// ReceiveMethodCallRespondError test.
-static void method_call_error_cb(FlMethodChannel* channel,
- FlMethodCall* method_call,
- gpointer user_data) {
- EXPECT_STREQ(fl_method_call_get_name(method_call), "Foo");
- EXPECT_EQ(fl_value_get_type(fl_method_call_get_args(method_call)),
- FL_VALUE_TYPE_STRING);
- EXPECT_STREQ(fl_value_get_string(fl_method_call_get_args(method_call)),
- "Marco!");
-
- g_autoptr(FlValue) details = fl_value_new_string("DETAILS");
- g_autoptr(GError) error = nullptr;
- EXPECT_TRUE(fl_method_call_respond_error(method_call, "CODE", "MESSAGE",
- details, &error));
- EXPECT_EQ(error, nullptr);
-}
-
-// Called when a the test engine notifies us what response we sent in the
-// ReceiveMethodCallRespondError test.
-static void method_call_error_response_cb(
- FlBinaryMessenger* messenger,
- const gchar* channel,
- GBytes* message,
- FlBinaryMessengerResponseHandle* response_handle,
- gpointer user_data) {
- g_autoptr(FlStandardMethodCodec) codec = fl_standard_method_codec_new();
- g_autoptr(GError) error = nullptr;
- g_autoptr(FlMethodResponse) response =
- fl_method_codec_decode_response(FL_METHOD_CODEC(codec), message, &error);
- EXPECT_NE(response, nullptr);
- EXPECT_EQ(error, nullptr);
-
- EXPECT_TRUE(FL_IS_METHOD_ERROR_RESPONSE(response));
- EXPECT_STREQ(
- fl_method_error_response_get_code(FL_METHOD_ERROR_RESPONSE(response)),
- "CODE");
- EXPECT_STREQ(
- fl_method_error_response_get_message(FL_METHOD_ERROR_RESPONSE(response)),
- "MESSAGE");
- FlValue* details =
- fl_method_error_response_get_details(FL_METHOD_ERROR_RESPONSE(response));
- EXPECT_EQ(fl_value_get_type(details), FL_VALUE_TYPE_STRING);
- EXPECT_STREQ(fl_value_get_string(details), "DETAILS");
-
- fl_binary_messenger_send_response(messenger, response_handle, nullptr,
- nullptr);
-
- g_main_loop_quit(static_cast<GMainLoop*>(user_data));
-}
-
-// Checks the shell able to receive and respond to method calls from the engine.
-TEST(FlMethodChannelTest, ReceiveMethodCallRespondError) {
- g_autoptr(GMainLoop) loop = g_main_loop_new(nullptr, 0);
-
- g_autoptr(FlEngine) engine = make_mock_engine();
- FlBinaryMessenger* messenger = fl_binary_messenger_new(engine);
- g_autoptr(FlStandardMethodCodec) codec = fl_standard_method_codec_new();
- g_autoptr(FlMethodChannel) channel = fl_method_channel_new(
- messenger, "test/standard-method", FL_METHOD_CODEC(codec));
- fl_method_channel_set_method_call_handler(channel, method_call_error_cb,
- nullptr, nullptr);
-
- // Listen for response from the engine.
- fl_binary_messenger_set_message_handler_on_channel(
- messenger, "test/responses", method_call_error_response_cb, loop,
- nullptr);
-
- // Trigger the engine to make a method call.
- g_autoptr(FlValue) args = fl_value_new_list();
- fl_value_append_take(args, fl_value_new_string("test/standard-method"));
- fl_value_append_take(args, fl_value_new_string("Foo"));
- fl_value_append_take(args, fl_value_new_string("Marco!"));
- fl_method_channel_invoke_method(channel, "InvokeMethod", args, nullptr,
- nullptr, loop);
-
- // Blocks here until method_call_error_response_cb is called.
- g_main_loop_run(loop);
-}
-
-// Called when a method call is received from the engine in the
-// ReceiveMethodCallRespondNotImplemented test.
-static void method_call_not_implemented_cb(FlMethodChannel* channel,
- FlMethodCall* method_call,
- gpointer user_data) {
- EXPECT_STREQ(fl_method_call_get_name(method_call), "Foo");
- EXPECT_EQ(fl_value_get_type(fl_method_call_get_args(method_call)),
- FL_VALUE_TYPE_STRING);
- EXPECT_STREQ(fl_value_get_string(fl_method_call_get_args(method_call)),
- "Marco!");
-
- g_autoptr(GError) error = nullptr;
- EXPECT_TRUE(fl_method_call_respond_not_implemented(method_call, &error));
- EXPECT_EQ(error, nullptr);
-}
-
-// Called when a the test engine notifies us what response we sent in the
-// ReceiveMethodCallRespondNotImplemented test.
-static void method_call_not_implemented_response_cb(
- FlBinaryMessenger* messenger,
- const gchar* channel,
- GBytes* message,
- FlBinaryMessengerResponseHandle* response_handle,
- gpointer user_data) {
- g_autoptr(FlStandardMethodCodec) codec = fl_standard_method_codec_new();
- g_autoptr(GError) error = nullptr;
- g_autoptr(FlMethodResponse) response =
- fl_method_codec_decode_response(FL_METHOD_CODEC(codec), message, &error);
- EXPECT_NE(response, nullptr);
- EXPECT_EQ(error, nullptr);
-
- EXPECT_TRUE(FL_IS_METHOD_NOT_IMPLEMENTED_RESPONSE(response));
-
- fl_binary_messenger_send_response(messenger, response_handle, nullptr,
- nullptr);
-
- g_main_loop_quit(static_cast<GMainLoop*>(user_data));
-}
-
-// Checks the shell able to receive and respond to method calls from the engine.
-TEST(FlMethodChannelTest, ReceiveMethodCallRespondNotImplemented) {
- g_autoptr(GMainLoop) loop = g_main_loop_new(nullptr, 0);
-
- g_autoptr(FlEngine) engine = make_mock_engine();
- FlBinaryMessenger* messenger = fl_binary_messenger_new(engine);
- g_autoptr(FlStandardMethodCodec) codec = fl_standard_method_codec_new();
- g_autoptr(FlMethodChannel) channel = fl_method_channel_new(
- messenger, "test/standard-method", FL_METHOD_CODEC(codec));
- fl_method_channel_set_method_call_handler(
- channel, method_call_not_implemented_cb, nullptr, nullptr);
-
- // Listen for response from the engine.
- fl_binary_messenger_set_message_handler_on_channel(
- messenger, "test/responses", method_call_not_implemented_response_cb,
- loop, nullptr);
-
- // Trigger the engine to make a method call.
- g_autoptr(FlValue) args = fl_value_new_list();
- fl_value_append_take(args, fl_value_new_string("test/standard-method"));
- fl_value_append_take(args, fl_value_new_string("Foo"));
- fl_value_append_take(args, fl_value_new_string("Marco!"));
- fl_method_channel_invoke_method(channel, "InvokeMethod", args, nullptr,
- nullptr, loop);
-
- // Blocks here until method_call_not_implemented_response_cb is called.
- g_main_loop_run(loop);
-}
diff --git a/shell/platform/linux/testing/mock_egl.cc b/shell/platform/linux/testing/mock_egl.cc
deleted file mode 100644
index 53edb69..0000000
--- a/shell/platform/linux/testing/mock_egl.cc
+++ /dev/null
@@ -1,65 +0,0 @@
-// 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.
-
-#include <EGL/egl.h>
-
-EGLBoolean eglBindAPI(EGLenum api) {
- return EGL_TRUE;
-}
-
-EGLBoolean eglChooseConfig(EGLDisplay dpy,
- const EGLint* attrib_list,
- EGLConfig* configs,
- EGLint config_size,
- EGLint* num_config) {
- return EGL_TRUE;
-}
-
-EGLContext eglCreateContext(EGLDisplay dpy,
- EGLConfig config,
- EGLContext share_context,
- const EGLint* attrib_list) {
- return nullptr;
-}
-
-EGLSurface eglCreateWindowSurface(EGLDisplay dpy,
- EGLConfig config,
- EGLNativeWindowType win,
- const EGLint* attrib_list) {
- return nullptr;
-}
-
-EGLDisplay eglGetDisplay(EGLNativeDisplayType display_id) {
- return nullptr;
-}
-
-void (*eglGetProcAddress(const char* procname))(void) {
- return nullptr;
-}
-
-EGLBoolean eglInitialize(EGLDisplay dpy, EGLint* major, EGLint* minor) {
- if (major != nullptr)
- *major = 1;
- if (minor != nullptr)
- *major = 5;
- return EGL_TRUE;
-}
-
-EGLBoolean eglMakeCurrent(EGLDisplay dpy,
- EGLSurface draw,
- EGLSurface read,
- EGLContext ctx) {
- return EGL_TRUE;
-}
-
-EGLBoolean eglQueryContext(EGLDisplay dpy,
- EGLContext ctx,
- EGLint attribute,
- EGLint* value) {
- return EGL_TRUE;
-}
-
-EGLBoolean eglSwapBuffers(EGLDisplay dpy, EGLSurface surface) {
- return EGL_TRUE;
-}
diff --git a/shell/platform/linux/testing/mock_engine.cc b/shell/platform/linux/testing/mock_engine.cc
deleted file mode 100644
index 3961cb0..0000000
--- a/shell/platform/linux/testing/mock_engine.cc
+++ /dev/null
@@ -1,369 +0,0 @@
-// 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.
-
-#include "flutter/shell/platform/embedder/embedder.h"
-#include "flutter/shell/platform/linux/fl_method_codec_private.h"
-#include "flutter/shell/platform/linux/public/flutter_linux/fl_method_response.h"
-#include "flutter/shell/platform/linux/public/flutter_linux/fl_standard_method_codec.h"
-#include "gtest/gtest.h"
-
-#include <string.h>
-
-struct _FlutterEngine {
- bool running;
- FlutterPlatformMessageCallback platform_message_callback;
- FlutterTaskRunnerPostTaskCallback platform_post_task_callback;
- void* user_data;
-
- _FlutterEngine(FlutterPlatformMessageCallback platform_message_callback,
- FlutterTaskRunnerPostTaskCallback platform_post_task_callback,
- void* user_data)
- : running(false),
- platform_message_callback(platform_message_callback),
- platform_post_task_callback(platform_post_task_callback),
- user_data(user_data) {}
-};
-
-struct _FlutterPlatformMessageResponseHandle {
- FlutterDataCallback data_callback;
- void* user_data;
- std::string channel;
- bool released;
-
- // Constructor for a response handle generated by the engine.
- _FlutterPlatformMessageResponseHandle(std::string channel)
- : data_callback(nullptr),
- user_data(nullptr),
- channel(channel),
- released(false) {}
-
- // Constructor for a response handle generated by the shell.
- _FlutterPlatformMessageResponseHandle(FlutterDataCallback data_callback,
- void* user_data)
- : data_callback(data_callback), user_data(user_data), released(false) {}
-};
-
-struct _FlutterTaskRunner {
- uint64_t task;
- std::string channel;
- const FlutterPlatformMessageResponseHandle* response_handle;
- uint8_t* message;
- size_t message_size;
-
- _FlutterTaskRunner(
- uint64_t task,
- const std::string& channel,
- const FlutterPlatformMessageResponseHandle* response_handle,
- const uint8_t* message,
- size_t message_size)
- : task(task),
- channel(channel),
- response_handle(response_handle),
- message_size(message_size) {
- this->message = static_cast<uint8_t*>(malloc(message_size));
- memcpy(this->message, message, message_size);
- }
- ~_FlutterTaskRunner() {
- if (response_handle != nullptr) {
- EXPECT_TRUE(response_handle->released);
- delete response_handle;
- }
- free(message);
- }
-};
-
-// Send a response from the engine.
-static void send_response(
- FLUTTER_API_SYMBOL(FlutterEngine) engine,
- const std::string& channel,
- const FlutterPlatformMessageResponseHandle* response_handle,
- const uint8_t* message,
- size_t message_size) {
- if (response_handle == nullptr)
- return;
-
- FlutterTask task;
- task.runner = new _FlutterTaskRunner(1234, channel, response_handle, message,
- message_size);
- task.task = task.runner->task;
- engine->platform_post_task_callback(task, 0, engine->user_data);
-}
-
-// Send a message from the engine.
-static void send_message(FLUTTER_API_SYMBOL(FlutterEngine) engine,
- const std::string& channel,
- const uint8_t* message,
- size_t message_size) {
- FlutterTask task;
- task.runner =
- new _FlutterTaskRunner(1234, channel, nullptr, message, message_size);
- task.task = task.runner->task;
- engine->platform_post_task_callback(task, 0, engine->user_data);
-}
-
-static void invoke_method(FLUTTER_API_SYMBOL(FlutterEngine) engine,
- const std::string& channel,
- const gchar* name,
- FlValue* args) {
- g_autoptr(FlStandardMethodCodec) codec = fl_standard_method_codec_new();
- g_autoptr(GError) error = nullptr;
- g_autoptr(GBytes) message = fl_method_codec_encode_method_call(
- FL_METHOD_CODEC(codec), name, args, &error);
- EXPECT_NE(message, nullptr);
- EXPECT_EQ(error, nullptr);
-
- FlutterTask task;
- task.runner = new _FlutterTaskRunner(
- 1234, channel, nullptr,
- static_cast<const uint8_t*>(g_bytes_get_data(message, nullptr)),
- g_bytes_get_size(message));
- task.task = task.runner->task;
- engine->platform_post_task_callback(task, 0, engine->user_data);
-}
-
-FlutterEngineResult FlutterEngineRun(size_t version,
- const FlutterRendererConfig* config,
- const FlutterProjectArgs* args,
- void* user_data,
- FLUTTER_API_SYMBOL(FlutterEngine) *
- engine_out) {
- EXPECT_NE(config, nullptr);
- EXPECT_NE(args, nullptr);
- EXPECT_NE(user_data, nullptr);
- EXPECT_NE(engine_out, nullptr);
-
- FlutterEngineResult result =
- FlutterEngineInitialize(version, config, args, user_data, engine_out);
- if (result != kSuccess)
- return result;
- return FlutterEngineRunInitialized(*engine_out);
-}
-
-FlutterEngineResult FlutterEngineShutdown(FLUTTER_API_SYMBOL(FlutterEngine)
- engine) {
- delete engine;
- return kSuccess;
-}
-
-FlutterEngineResult FlutterEngineInitialize(size_t version,
- const FlutterRendererConfig* config,
- const FlutterProjectArgs* args,
- void* user_data,
- FLUTTER_API_SYMBOL(FlutterEngine) *
- engine_out) {
- EXPECT_NE(config, nullptr);
-
- EXPECT_NE(args, nullptr);
- EXPECT_NE(args->platform_message_callback, nullptr);
- EXPECT_NE(args->custom_task_runners, nullptr);
- EXPECT_NE(args->custom_task_runners->platform_task_runner, nullptr);
- EXPECT_NE(args->custom_task_runners->platform_task_runner->post_task_callback,
- nullptr);
-
- EXPECT_NE(user_data, nullptr);
-
- EXPECT_EQ(config->type, kOpenGL);
-
- *engine_out = new _FlutterEngine(
- args->platform_message_callback,
- args->custom_task_runners->platform_task_runner->post_task_callback,
- user_data);
- return kSuccess;
-}
-
-FlutterEngineResult FlutterEngineDeinitialize(FLUTTER_API_SYMBOL(FlutterEngine)
- engine) {
- return kSuccess;
-}
-
-FlutterEngineResult FlutterEngineRunInitialized(
- FLUTTER_API_SYMBOL(FlutterEngine) engine) {
- engine->running = true;
- return kSuccess;
-}
-
-FlutterEngineResult FlutterEngineSendWindowMetricsEvent(
- FLUTTER_API_SYMBOL(FlutterEngine) engine,
- const FlutterWindowMetricsEvent* event) {
- EXPECT_TRUE(engine->running);
- return kSuccess;
-}
-
-FlutterEngineResult FlutterEngineSendPointerEvent(
- FLUTTER_API_SYMBOL(FlutterEngine) engine,
- const FlutterPointerEvent* events,
- size_t events_count) {
- return kSuccess;
-}
-
-FLUTTER_EXPORT
-FlutterEngineResult FlutterEngineSendPlatformMessage(
- FLUTTER_API_SYMBOL(FlutterEngine) engine,
- const FlutterPlatformMessage* message) {
- EXPECT_TRUE(engine->running);
-
- if (strcmp(message->channel, "test/echo") == 0) {
- // Responds with the same message received.
- send_response(engine, message->channel, message->response_handle,
- message->message, message->message_size);
- } else if (strcmp(message->channel, "test/send-message") == 0) {
- // Triggers the engine to send a message.
- send_response(engine, message->channel, message->response_handle, nullptr,
- 0);
- send_message(engine, "test/messages", message->message,
- message->message_size);
- } else if (strcmp(message->channel, "test/standard-method") == 0) {
- g_autoptr(FlStandardMethodCodec) codec = fl_standard_method_codec_new();
- g_autoptr(GBytes) m = g_bytes_new(message->message, message->message_size);
- g_autofree gchar* name = nullptr;
- g_autoptr(FlValue) args = nullptr;
- g_autoptr(GError) error = nullptr;
- EXPECT_TRUE(fl_method_codec_decode_method_call(FL_METHOD_CODEC(codec), m,
- &name, &args, &error));
- EXPECT_EQ(error, nullptr);
-
- g_autoptr(GBytes) response = nullptr;
- if (strcmp(name, "Echo") == 0) {
- // Returns args as a success result.
- response = fl_method_codec_encode_success_envelope(FL_METHOD_CODEC(codec),
- args, &error);
- EXPECT_EQ(error, nullptr);
- } else if (strcmp(name, "Error") == 0) {
- // Returns an error result.
- const gchar* code = nullptr;
- const gchar* message = nullptr;
- FlValue* details = nullptr;
- if (fl_value_get_length(args) >= 2) {
- FlValue* code_value = fl_value_get_list_value(args, 0);
- EXPECT_EQ(fl_value_get_type(code_value), FL_VALUE_TYPE_STRING);
- code = fl_value_get_string(code_value);
- FlValue* message_value = fl_value_get_list_value(args, 1);
- message = fl_value_get_type(message_value) == FL_VALUE_TYPE_STRING
- ? fl_value_get_string(message_value)
- : nullptr;
- }
- if (fl_value_get_length(args) >= 3)
- details = fl_value_get_list_value(args, 2);
- response = fl_method_codec_encode_error_envelope(
- FL_METHOD_CODEC(codec), code, message, details, &error);
- EXPECT_EQ(error, nullptr);
- } else if (strcmp(name, "InvokeMethod") == 0) {
- // Gets the engine to call the shell.
- if (fl_value_get_length(args) == 3) {
- FlValue* channel_value = fl_value_get_list_value(args, 0);
- EXPECT_EQ(fl_value_get_type(channel_value), FL_VALUE_TYPE_STRING);
- const gchar* channel = fl_value_get_string(channel_value);
- FlValue* name_value = fl_value_get_list_value(args, 1);
- EXPECT_EQ(fl_value_get_type(name_value), FL_VALUE_TYPE_STRING);
- const gchar* name = fl_value_get_string(name_value);
- FlValue* method_args = fl_value_get_list_value(args, 2);
- invoke_method(engine, channel, name, method_args);
- }
- response = fl_method_codec_encode_success_envelope(FL_METHOD_CODEC(codec),
- nullptr, &error);
- EXPECT_EQ(error, nullptr);
- } else {
- // Returns "not implemented".
- response = g_bytes_new(nullptr, 0);
- }
-
- send_response(
- engine, message->channel, message->response_handle,
- static_cast<const uint8_t*>(g_bytes_get_data(response, nullptr)),
- g_bytes_get_size(response));
- } else if (strcmp(message->channel, "test/nullptr-response") == 0) {
- // Sends a null response.
- send_response(engine, message->channel, message->response_handle, nullptr,
- 0);
- } else if (strcmp(message->channel, "test/failure") == 0) {
- // Generates an internal error.
- return kInternalInconsistency;
- }
-
- return kSuccess;
-}
-
-FlutterEngineResult FlutterPlatformMessageCreateResponseHandle(
- FLUTTER_API_SYMBOL(FlutterEngine) engine,
- FlutterDataCallback data_callback,
- void* user_data,
- FlutterPlatformMessageResponseHandle** response_out) {
- EXPECT_TRUE(engine->running);
- EXPECT_NE(data_callback, nullptr);
- EXPECT_NE(user_data, nullptr);
-
- _FlutterPlatformMessageResponseHandle* handle =
- new _FlutterPlatformMessageResponseHandle(data_callback, user_data);
-
- *response_out = handle;
- return kSuccess;
-}
-
-FlutterEngineResult FlutterPlatformMessageReleaseResponseHandle(
- FLUTTER_API_SYMBOL(FlutterEngine) engine,
- FlutterPlatformMessageResponseHandle* response) {
- EXPECT_NE(engine, nullptr);
- EXPECT_NE(response, nullptr);
-
- EXPECT_TRUE(engine->running);
-
- EXPECT_FALSE(response->released);
- response->released = true;
-
- return kSuccess;
-}
-
-FlutterEngineResult FlutterEngineSendPlatformMessageResponse(
- FLUTTER_API_SYMBOL(FlutterEngine) engine,
- const FlutterPlatformMessageResponseHandle* handle,
- const uint8_t* data,
- size_t data_length) {
- EXPECT_NE(engine, nullptr);
- EXPECT_NE(handle, nullptr);
-
- EXPECT_TRUE(engine->running);
-
- // Send a message so the shell can check the responses received.
- if (handle->channel != "test/responses")
- send_message(engine, "test/responses", data, data_length);
-
- EXPECT_FALSE(handle->released);
-
- delete handle;
-
- return kSuccess;
-}
-
-FlutterEngineResult FlutterEngineRunTask(FLUTTER_API_SYMBOL(FlutterEngine)
- engine,
- const FlutterTask* task) {
- EXPECT_NE(engine, nullptr);
- EXPECT_NE(task, nullptr);
- EXPECT_NE(task->runner, nullptr);
-
- FlutterTaskRunner runner = task->runner;
- EXPECT_NE(runner, nullptr);
- const FlutterPlatformMessageResponseHandle* response_handle =
- runner->response_handle;
- if (response_handle != nullptr) {
- EXPECT_NE(response_handle->data_callback, nullptr);
- response_handle->data_callback(runner->message, runner->message_size,
- response_handle->user_data);
- } else {
- _FlutterPlatformMessageResponseHandle* handle =
- new _FlutterPlatformMessageResponseHandle(runner->channel);
-
- FlutterPlatformMessage message;
- message.struct_size = sizeof(FlutterPlatformMessage);
- message.channel = runner->channel.c_str();
- message.message = runner->message;
- message.message_size = runner->message_size;
- message.response_handle = handle;
- engine->platform_message_callback(&message, engine->user_data);
- }
-
- delete runner;
-
- return kSuccess;
-}
diff --git a/shell/platform/linux/testing/mock_renderer.cc b/shell/platform/linux/testing/mock_renderer.cc
deleted file mode 100644
index 03ab548..0000000
--- a/shell/platform/linux/testing/mock_renderer.cc
+++ /dev/null
@@ -1,27 +0,0 @@
-// 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.
-
-#include "flutter/shell/platform/linux/testing/mock_renderer.h"
-
-struct _FlMockRenderer {
- FlRenderer parent_instance;
-};
-
-G_DEFINE_TYPE(FlMockRenderer, fl_mock_renderer, fl_renderer_get_type())
-
-// Implements FlRenderer::start
-static gboolean fl_mock_renderer_start(FlRenderer* renderer, GError** error) {
- return TRUE;
-}
-
-static void fl_mock_renderer_class_init(FlMockRendererClass* klass) {
- FL_RENDERER_CLASS(klass)->start = fl_mock_renderer_start;
-}
-
-static void fl_mock_renderer_init(FlMockRenderer* self) {}
-
-// Creates a stub renderer
-FlMockRenderer* fl_mock_renderer_new() {
- return FL_MOCK_RENDERER(g_object_new(fl_mock_renderer_get_type(), nullptr));
-}
diff --git a/shell/platform/linux/testing/mock_renderer.h b/shell/platform/linux/testing/mock_renderer.h
deleted file mode 100644
index 1926868..0000000
--- a/shell/platform/linux/testing/mock_renderer.h
+++ /dev/null
@@ -1,17 +0,0 @@
-// 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.
-
-#include "flutter/shell/platform/linux/fl_renderer.h"
-
-G_BEGIN_DECLS
-
-G_DECLARE_FINAL_TYPE(FlMockRenderer,
- fl_mock_renderer,
- FL,
- MOCK_RENDERER,
- FlRenderer)
-
-FlMockRenderer* fl_mock_renderer_new();
-
-G_END_DECLS