@@ -4459,5 +4459,48 @@ TEST_F(EmbedderTest, PresentInfoContainsValidFBOId) {
44594459 frame_latch.Wait ();
44604460}
44614461
4462+ TEST_F (EmbedderTest, DisplayRefreshRateIsSet) {
4463+ auto & context = GetEmbedderContext ();
4464+ fml::AutoResetWaitableEvent latch;
4465+ context.AddIsolateCreateCallback ([&latch]() { latch.Signal (); });
4466+ EmbedderConfigBuilder builder (context);
4467+ builder.SetSoftwareRendererConfig ();
4468+ constexpr float refresh_rate = 60 .0f ;
4469+ builder.SetDisplayRefreshRate (refresh_rate);
4470+ auto engine = builder.LaunchEngine ();
4471+ ASSERT_TRUE (engine.is_valid ());
4472+ // Wait for the root isolate to launch.
4473+ latch.Wait ();
4474+
4475+ flutter::Shell& shell = ToEmbedderEngine (engine.get ())->GetShell ();
4476+ auto vsync_waiter = shell.GetPlatformView ()->CreateVSyncWaiter ();
4477+
4478+ const float embedder_refresh_rate = vsync_waiter->GetDisplayRefreshRate ();
4479+ ASSERT_FLOAT_EQ (refresh_rate, embedder_refresh_rate);
4480+
4481+ engine.reset ();
4482+ }
4483+
4484+ TEST_F (EmbedderTest, DefaultDisplayRefreshRateIsUnknown) {
4485+ auto & context = GetEmbedderContext ();
4486+ fml::AutoResetWaitableEvent latch;
4487+ context.AddIsolateCreateCallback ([&latch]() { latch.Signal (); });
4488+ EmbedderConfigBuilder builder (context);
4489+ builder.SetSoftwareRendererConfig ();
4490+ auto engine = builder.LaunchEngine ();
4491+ ASSERT_TRUE (engine.is_valid ());
4492+ // Wait for the root isolate to launch.
4493+ latch.Wait ();
4494+
4495+ flutter::Shell& shell = ToEmbedderEngine (engine.get ())->GetShell ();
4496+ auto vsync_waiter = shell.GetPlatformView ()->CreateVSyncWaiter ();
4497+
4498+ const float embedder_refresh_rate = vsync_waiter->GetDisplayRefreshRate ();
4499+ ASSERT_FLOAT_EQ (flutter::VsyncWaiter::kUnknownRefreshRateFPS ,
4500+ embedder_refresh_rate);
4501+
4502+ engine.reset ();
4503+ }
4504+
44624505} // namespace testing
44634506} // namespace flutter
0 commit comments