mirror of
https://github.com/flutter/flutter.git
synced 2026-02-20 02:29:02 +08:00
MethodChannel and BasicMessageChannel in the C++ wrapper didn't have the expected semantics that passing a null handler would remove any existing handler. This was inconsistent with other platforms and with the lower-level object APIs in this wrapper, and made unregistration in cases where that's desirable more difficult due to needing to keep other object references. Adds tests for this functionality, and some backfill of missing tests for basic handler behavior. See https://github.com/flutter/flutter/issues/51207
72 lines
1.9 KiB
Plaintext
72 lines
1.9 KiB
Plaintext
# 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.
|
|
|
|
import("//flutter/testing/testing.gni")
|
|
import("core_wrapper_files.gni")
|
|
|
|
# Client library build for internal use by the shell implementation.
|
|
source_set("client_wrapper") {
|
|
sources = core_cpp_client_wrapper_sources
|
|
public = core_cpp_client_wrapper_includes
|
|
|
|
deps = [
|
|
"//flutter/shell/platform/common/cpp:common_cpp_library_headers",
|
|
"//third_party/rapidjson",
|
|
]
|
|
|
|
defines = [ "USE_RAPID_JSON" ]
|
|
|
|
configs +=
|
|
[ "//flutter/shell/platform/common/cpp:desktop_library_implementation" ]
|
|
|
|
public_configs =
|
|
[ "//flutter/shell/platform/common/cpp:relative_flutter_library_headers" ]
|
|
}
|
|
|
|
source_set("client_wrapper_library_stubs") {
|
|
sources = [
|
|
"testing/stub_flutter_api.cc",
|
|
"testing/stub_flutter_api.h",
|
|
]
|
|
|
|
defines = [ "FLUTTER_DESKTOP_LIBRARY" ]
|
|
|
|
public_deps = [
|
|
"//flutter/shell/platform/common/cpp:common_cpp_library_headers",
|
|
]
|
|
}
|
|
|
|
test_fixtures("client_wrapper_fixtures") {
|
|
fixtures = []
|
|
}
|
|
|
|
executable("client_wrapper_unittests") {
|
|
testonly = true
|
|
|
|
# TODO: Add more unit tests.
|
|
sources = [
|
|
"basic_message_channel_unittests.cc",
|
|
"encodable_value_unittests.cc",
|
|
"method_call_unittests.cc",
|
|
"method_channel_unittests.cc",
|
|
"plugin_registrar_unittests.cc",
|
|
"standard_message_codec_unittests.cc",
|
|
"standard_method_codec_unittests.cc",
|
|
"testing/encodable_value_utils.cc",
|
|
"testing/encodable_value_utils.h",
|
|
]
|
|
|
|
deps = [
|
|
":client_wrapper",
|
|
":client_wrapper_fixtures",
|
|
":client_wrapper_library_stubs",
|
|
"//flutter/testing",
|
|
|
|
# TODO(chunhtai): Consider refactoring flutter_root/testing so that there's a testing
|
|
# target that doesn't require a Dart runtime to be linked in.
|
|
# https://github.com/flutter/flutter/issues/41414.
|
|
"//third_party/dart/runtime:libdart_jit",
|
|
]
|
|
}
|