// Test that child refresh vsync observers get vsync notifications TEST_F(VsyncTester, ChildRefreshDriverGetVsyncNotifications) { VsyncSource::Display& globalDisplay = mVsyncSource->GetGlobalDisplay(); globalDisplay.DisableVsync(); ASSERT_FALSE(globalDisplay.IsVsyncEnabled()); RefPtr<RefreshTimerVsyncDispatcher> vsyncDispatcher = globalDisplay.GetRefreshTimerVsyncDispatcher(); ASSERT_TRUE(vsyncDispatcher != nullptr); RefPtr<TestVsyncObserver> testVsyncObserver = new TestVsyncObserver(); vsyncDispatcher->AddChildRefreshTimer(testVsyncObserver); ASSERT_TRUE(globalDisplay.IsVsyncEnabled()); testVsyncObserver->WaitForVsyncNotification(); ASSERT_TRUE(testVsyncObserver->DidGetVsyncNotification()); vsyncDispatcher->RemoveChildRefreshTimer(testVsyncObserver); testVsyncObserver->ResetVsyncNotification(); testVsyncObserver->WaitForVsyncNotification(); ASSERT_FALSE(testVsyncObserver->DidGetVsyncNotification()); vsyncDispatcher = nullptr; testVsyncObserver = nullptr; }