22// Use of this source code is governed by a BSD-style license that can be
33// found in the LICENSE file.
44
5+ #include < gtest/gtest.h>
6+
7+ #include " flutter/shell/platform/embedder/test_utils/proc_table_replacement.h"
58#include " flutter/shell/platform/tizen/flutter_tizen_engine.h"
6- #include " gtest/gtest .h"
9+ #include " flutter/shell/platform/tizen/testing/engine_modifier .h"
710
811namespace flutter {
912namespace testing {
@@ -18,9 +21,9 @@ class FlutterTizenEngineTest : public ::testing::Test {
1821 protected:
1922 void SetUp () {
2023 FlutterDesktopEngineProperties engine_prop = {};
21- engine_prop.assets_path = " foo/flutter_assets" ;
22- engine_prop.icu_data_path = " foo/icudtl.dat" ;
23- engine_prop.aot_library_path = " foo/libapp.so" ;
24+ engine_prop.assets_path = " / foo/flutter_assets" ;
25+ engine_prop.icu_data_path = " / foo/icudtl.dat" ;
26+ engine_prop.aot_library_path = " / foo/libapp.so" ;
2427
2528 FlutterProjectBundle project (engine_prop);
2629 auto engine = std::make_unique<FlutterTizenEngine>(project);
@@ -81,5 +84,64 @@ TEST_F(FlutterTizenEngineTestHeaded, GetTextureRegistrar) {
8184 EXPECT_TRUE (engine_->GetTextureRegistrar () != nullptr );
8285}
8386
87+ TEST_F (FlutterTizenEngineTest, RunDoesExpectedInitialization) {
88+ EngineModifier modifier (engine_);
89+ bool run_called = false ;
90+ modifier.embedder_api ().Run = MOCK_ENGINE_PROC (
91+ Run, ([&run_called, engine_instance = engine_](
92+ size_t version, const FlutterRendererConfig* config,
93+ const FlutterProjectArgs* args, void * user_data,
94+ FLUTTER_API_SYMBOL (FlutterEngine) * engine_out) {
95+ run_called = true ;
96+ *engine_out = reinterpret_cast <FLUTTER_API_SYMBOL (FlutterEngine)>(1 );
97+
98+ EXPECT_EQ (version, (size_t )FLUTTER_ENGINE_VERSION);
99+ EXPECT_NE (config, nullptr );
100+ EXPECT_EQ (user_data, engine_instance);
101+
102+ EXPECT_STREQ (args->assets_path , " /foo/flutter_assets" );
103+ EXPECT_STREQ (args->icu_data_path , " /foo/icudtl.dat" );
104+ EXPECT_EQ (args->dart_entrypoint_argc , 0 );
105+ EXPECT_NE (args->platform_message_callback , nullptr );
106+ EXPECT_NE (args->custom_task_runners , nullptr );
107+ EXPECT_EQ (args->custom_dart_entrypoint , nullptr );
108+
109+ return kSuccess ;
110+ }));
111+
112+ // It should send locale info.
113+ bool update_locales_called = false ;
114+ modifier.embedder_api ().UpdateLocales = MOCK_ENGINE_PROC (
115+ UpdateLocales,
116+ ([&update_locales_called](auto engine, const FlutterLocale** locales,
117+ size_t locales_count) {
118+ update_locales_called = true ;
119+ EXPECT_GT (locales_count, (size_t )0 );
120+ EXPECT_NE (locales, nullptr );
121+
122+ return kSuccess ;
123+ }));
124+
125+ // And it should send initial settings info.
126+ bool settings_message_sent = false ;
127+ modifier.embedder_api ().SendPlatformMessage = MOCK_ENGINE_PROC (
128+ SendPlatformMessage,
129+ ([&settings_message_sent](auto engine, auto message) {
130+ if (std::string (message->channel ) == std::string (" flutter/settings" )) {
131+ settings_message_sent = true ;
132+ }
133+
134+ return kSuccess ;
135+ }));
136+
137+ engine_->RunEngine ();
138+
139+ EXPECT_TRUE (run_called);
140+ EXPECT_TRUE (update_locales_called);
141+ EXPECT_TRUE (settings_message_sent);
142+
143+ modifier.embedder_api ().Shutdown = [](auto engine) { return kSuccess ; };
144+ }
145+
84146} // namespace testing
85147} // namespace flutter
0 commit comments