Test that frame callbacks are not sent immediately
diff --git a/tests/frame_submission.cpp b/tests/frame_submission.cpp
index e938b8e..6bb4c8f 100644
--- a/tests/frame_submission.cpp
+++ b/tests/frame_submission.cpp
@@ -79,3 +79,28 @@
         EXPECT_THAT(frame_consumed, Eq(true));
     }
 }
+
+TEST_F(FrameSubmission, frame_sent_after_delay)
+{
+    auto const surface = client.create_visible_surface(200, 200);
+    ShmBuffer buffer{client, 200, 200};
+    wl_surface_attach(surface, buffer, 0, 0);
+
+    auto frame_consumed = false;
+    submit_frame(frame_consumed);
+    client.roundtrip();
+    EXPECT_THAT(frame_consumed, Eq(false)) << "frame callback sent immediately";
+    wait_for_frame(frame_consumed);
+    EXPECT_THAT(frame_consumed, Eq(true));
+}
+
+TEST_F(FrameSubmission, frame_sent_after_delay_with_no_buffer)
+{
+    auto const surface = client.create_visible_surface(200, 200);
+    auto frame_consumed = false;
+    submit_frame(frame_consumed);
+    client.roundtrip();
+    EXPECT_THAT(frame_consumed, Eq(false)) << "frame callback sent immediately";
+    wait_for_frame(frame_consumed);
+    EXPECT_THAT(frame_consumed, Eq(true));
+}