@@ -68,6 +68,7 @@ class CompositorOpenGLTest : public WindowsTest {
6868
6969 protected:
7070 FlutterWindowsEngine* engine () { return engine_.get (); }
71+ FlutterWindowsView* view () { return view_.get (); }
7172 egl::MockManager* egl_manager () { return egl_manager_; }
7273 egl::MockContext* render_context () { return render_context_.get (); }
7374 egl::MockWindowSurface* surface () { return surface_; }
@@ -168,7 +169,7 @@ TEST_F(CompositorOpenGLTest, Present) {
168169 EXPECT_CALL (*surface (), IsValid).WillRepeatedly (Return (true ));
169170 EXPECT_CALL (*surface (), MakeCurrent).WillOnce (Return (true ));
170171 EXPECT_CALL (*surface (), SwapBuffers).WillOnce (Return (true ));
171- EXPECT_TRUE (compositor.Present (&layer_ptr, 1 ));
172+ EXPECT_TRUE (compositor.Present (view ()-> view_id (), &layer_ptr, 1 ));
172173
173174 ASSERT_TRUE (compositor.CollectBackingStore (&backing_store));
174175}
@@ -184,7 +185,7 @@ TEST_F(CompositorOpenGLTest, PresentEmpty) {
184185 EXPECT_CALL (*surface (), IsValid).WillRepeatedly (Return (true ));
185186 EXPECT_CALL (*surface (), MakeCurrent).WillOnce (Return (true ));
186187 EXPECT_CALL (*surface (), SwapBuffers).WillOnce (Return (true ));
187- EXPECT_TRUE (compositor.Present (nullptr , 0 ));
188+ EXPECT_TRUE (compositor.Present (view ()-> view_id (), nullptr , 0 ));
188189}
189190
190191TEST_F (CompositorOpenGLTest, HeadlessPresentIgnored) {
@@ -203,7 +204,32 @@ TEST_F(CompositorOpenGLTest, HeadlessPresentIgnored) {
203204 layer.backing_store = &backing_store;
204205 const FlutterLayer* layer_ptr = &layer;
205206
206- EXPECT_FALSE (compositor.Present (&layer_ptr, 1 ));
207+ EXPECT_FALSE (compositor.Present (kImplicitViewId , &layer_ptr, 1 ));
208+
209+ ASSERT_TRUE (compositor.CollectBackingStore (&backing_store));
210+ }
211+
212+ TEST_F (CompositorOpenGLTest, UnknownViewIgnored) {
213+ UseEngineWithView ();
214+
215+ auto compositor = CompositorOpenGL{engine (), kMockResolver };
216+
217+ FlutterBackingStoreConfig config = {};
218+ FlutterBackingStore backing_store = {};
219+
220+ EXPECT_CALL (*render_context (), MakeCurrent).WillOnce (Return (true ));
221+ ASSERT_TRUE (compositor.CreateBackingStore (config, &backing_store));
222+
223+ FlutterLayer layer = {};
224+ layer.type = kFlutterLayerContentTypeBackingStore ;
225+ layer.backing_store = &backing_store;
226+ const FlutterLayer* layer_ptr = &layer;
227+
228+ FlutterViewId unknown_view_id = 123 ;
229+ ASSERT_NE (view ()->view_id (), unknown_view_id);
230+ ASSERT_EQ (engine ()->view (unknown_view_id), nullptr );
231+
232+ EXPECT_FALSE (compositor.Present (unknown_view_id, &layer_ptr, 1 ));
207233
208234 ASSERT_TRUE (compositor.CollectBackingStore (&backing_store));
209235}
@@ -224,7 +250,9 @@ TEST_F(CompositorOpenGLTest, NoSurfaceIgnored) {
224250 layer.backing_store = &backing_store;
225251 const FlutterLayer* layer_ptr = &layer;
226252
227- EXPECT_FALSE (compositor.Present (&layer_ptr, 1 ));
253+ EXPECT_FALSE (compositor.Present (view ()->view_id (), &layer_ptr, 1 ));
254+
255+ ASSERT_TRUE (compositor.CollectBackingStore (&backing_store));
228256}
229257
230258} // namespace testing
0 commit comments