Index: cc/scheduler/scheduler_state_machine_unittest.cc |
diff --git a/cc/scheduler/scheduler_state_machine_unittest.cc b/cc/scheduler/scheduler_state_machine_unittest.cc |
index 93fc82f6f907ef02e27424a43e85f4e63c503325..6111b76b4d60dab9b660cf61594d743717f9528a 100644 |
--- a/cc/scheduler/scheduler_state_machine_unittest.cc |
+++ b/cc/scheduler/scheduler_state_machine_unittest.cc |
@@ -1077,5 +1077,61 @@ TEST(SchedulerStateMachineTest, ImmediateBeginFrameWhileCantDraw) { |
state.DidLeaveVSync(); |
} |
+TEST(SchedulerStateMachineTest, ReportIfNotDrawing) { |
+ SchedulerSettings default_scheduler_settings; |
+ SchedulerStateMachine state(default_scheduler_settings); |
+ |
+ state.SetCanDraw(true); |
+ state.SetVisible(true); |
+ EXPECT_FALSE(state.DrawSuspendedUntilCommit()); |
+ |
+ state.SetCanDraw(false); |
+ state.SetVisible(true); |
+ EXPECT_TRUE(state.DrawSuspendedUntilCommit()); |
+ |
+ state.SetCanDraw(true); |
+ state.SetVisible(false); |
+ EXPECT_TRUE(state.DrawSuspendedUntilCommit()); |
+ |
+ state.SetCanDraw(false); |
+ state.SetVisible(false); |
+ EXPECT_TRUE(state.DrawSuspendedUntilCommit()); |
+ |
+ state.SetCanDraw(true); |
+ state.SetVisible(true); |
+ EXPECT_FALSE(state.DrawSuspendedUntilCommit()); |
+} |
+ |
+TEST(SchedulerStateMachineTest, ReportIfNotDrawingFromAcquiredTextures) { |
+ SchedulerSettings default_scheduler_settings; |
+ SchedulerStateMachine state(default_scheduler_settings); |
+ state.SetCanBeginFrame(true); |
+ state.SetCanDraw(true); |
+ state.SetVisible(true); |
+ EXPECT_FALSE(state.DrawSuspendedUntilCommit()); |
+ |
+ state.SetMainThreadNeedsLayerTextures(); |
+ EXPECT_EQ( |
+ SchedulerStateMachine::ACTION_ACQUIRE_LAYER_TEXTURES_FOR_MAIN_THREAD, |
+ state.NextAction()); |
+ state.UpdateState(state.NextAction()); |
+ EXPECT_TRUE(state.DrawSuspendedUntilCommit()); |
+ |
+ EXPECT_EQ(SchedulerStateMachine::ACTION_BEGIN_FRAME, state.NextAction()); |
+ |
+ state.UpdateState(state.NextAction()); |
+ EXPECT_TRUE(state.DrawSuspendedUntilCommit()); |
+ |
+ EXPECT_EQ(SchedulerStateMachine::ACTION_NONE, state.NextAction()); |
+ |
+ state.BeginFrameComplete(); |
+ EXPECT_TRUE(state.DrawSuspendedUntilCommit()); |
+ |
+ EXPECT_EQ(SchedulerStateMachine::ACTION_COMMIT, state.NextAction()); |
+ |
+ state.UpdateState(state.NextAction()); |
+ EXPECT_FALSE(state.DrawSuspendedUntilCommit()); |
+} |
+ |
} // namespace |
} // namespace cc |