@@ -268,13 +268,39 @@ TEST_F(EngineTest, SpawnSharesFontLibrary) {
268268 /* font_collection=*/ std::make_shared<FontCollection>(),
269269 /* runtime_controller=*/ std::move (mock_runtime_controller));
270270
271- auto spawn =
272- engine-> Spawn (delegate_, dispatcher_maker_, settings_, nullptr );
271+ auto spawn = engine-> Spawn (delegate_, dispatcher_maker_, settings_, nullptr ,
272+ std::string () );
273273 EXPECT_TRUE (spawn != nullptr );
274274 EXPECT_EQ (&engine->GetFontCollection (), &spawn->GetFontCollection ());
275275 });
276276}
277277
278+ TEST_F (EngineTest, SpawnWithCustomInitialRoute) {
279+ PostUITaskSync ([this ] {
280+ MockRuntimeDelegate client;
281+ auto mock_runtime_controller =
282+ std::make_unique<MockRuntimeController>(client, task_runners_);
283+ auto vm_ref = DartVMRef::Create (settings_);
284+ EXPECT_CALL (*mock_runtime_controller, GetDartVM ())
285+ .WillRepeatedly (::testing::Return (vm_ref.get ()));
286+ auto engine = std::make_unique<Engine>(
287+ /* delegate=*/ delegate_,
288+ /* dispatcher_maker=*/ dispatcher_maker_,
289+ /* image_decoder_task_runner=*/ image_decoder_task_runner_,
290+ /* task_runners=*/ task_runners_,
291+ /* settings=*/ settings_,
292+ /* animator=*/ std::move (animator_),
293+ /* io_manager=*/ io_manager_,
294+ /* font_collection=*/ std::make_shared<FontCollection>(),
295+ /* runtime_controller=*/ std::move (mock_runtime_controller));
296+
297+ auto spawn =
298+ engine->Spawn (delegate_, dispatcher_maker_, settings_, nullptr , " /foo" );
299+ EXPECT_TRUE (spawn != nullptr );
300+ ASSERT_EQ (" /foo" , spawn->InitialRoute ());
301+ });
302+ }
303+
278304TEST_F (EngineTest, PassesLoadDartDeferredLibraryErrorToRuntime) {
279305 PostUITaskSync ([this ] {
280306 intptr_t error_id = 123 ;
0 commit comments