Skip to content
This repository was archived by the owner on Feb 25, 2025. It is now read-only.

Commit 33641cc

Browse files
author
George Wright
authored
Add a unit test for dart entrypoint args on macOS (#27465)
1 parent cf7ef6e commit 33641cc

File tree

1 file changed

+32
-0
lines changed

1 file changed

+32
-0
lines changed

shell/platform/darwin/macos/framework/Source/FlutterEngineTest.mm

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -373,4 +373,36 @@ @interface FlutterEngine (Test)
373373
[engine shutDownEngine];
374374
}
375375

376+
TEST(FlutterEngine, DartEntrypointArguments) {
377+
NSString* fixtures = @(flutter::testing::GetFixturesPath());
378+
FlutterDartProject* project = [[FlutterDartProject alloc]
379+
initWithAssetsPath:fixtures
380+
ICUDataPath:[fixtures stringByAppendingString:@"/icudtl.dat"]];
381+
382+
project.dartEntrypointArguments = @[ @"arg1", @"arg2" ];
383+
FlutterEngine* engine = [[FlutterEngine alloc] initWithName:@"test" project:project];
384+
385+
bool called = false;
386+
auto original_init = engine.embedderAPI.Initialize;
387+
engine.embedderAPI.Initialize = MOCK_ENGINE_PROC(
388+
Initialize, ([&called, &original_init](size_t version, const FlutterRendererConfig* config,
389+
const FlutterProjectArgs* args, void* user_data,
390+
FLUTTER_API_SYMBOL(FlutterEngine) * engine_out) {
391+
called = true;
392+
EXPECT_EQ(args->dart_entrypoint_argc, 2);
393+
NSString* arg1 = [[NSString alloc] initWithCString:args->dart_entrypoint_argv[0]
394+
encoding:NSUTF8StringEncoding];
395+
NSString* arg2 = [[NSString alloc] initWithCString:args->dart_entrypoint_argv[1]
396+
encoding:NSUTF8StringEncoding];
397+
398+
EXPECT_TRUE([arg1 isEqualToString:@"arg1"]);
399+
EXPECT_TRUE([arg2 isEqualToString:@"arg2"]);
400+
401+
return original_init(version, config, args, user_data, engine_out);
402+
}));
403+
404+
EXPECT_TRUE([engine runWithEntrypoint:@"main"]);
405+
EXPECT_TRUE(called);
406+
}
407+
376408
} // namespace flutter::testing

0 commit comments

Comments
 (0)