| // Copyright 2013 The Flutter Authors. All rights reserved. | |
| // Use of this source code is governed by a BSD-style license that can be | |
| // found in the LICENSE file. | |
| #define FML_USED_ON_EMBEDDER | |
| #include "flutter/flow/surface_frame.h" | |
| #include "flutter/testing/testing.h" | |
| namespace flutter { | |
| TEST(FlowTest, SurfaceFrameDoesNotSubmitInDtor) { | |
| SurfaceFrame::FramebufferInfo framebuffer_info; | |
| auto callback = [](const SurfaceFrame&, DlCanvas*) { | |
| EXPECT_FALSE(true); | |
| return true; | |
| }; | |
| auto surface_frame = std::make_unique<SurfaceFrame>( | |
| /*surface=*/nullptr, | |
| /*framebuffer_info=*/framebuffer_info, | |
| /*submit_callback=*/callback, | |
| /*frame_size=*/SkISize::Make(800, 600)); | |
| surface_frame.reset(); | |
| } | |
| TEST(FlowTest, SurfaceFrameDoesNotHaveEmptyCanvas) { | |
| SurfaceFrame::FramebufferInfo framebuffer_info; | |
| auto callback = [](const SurfaceFrame&, DlCanvas*) { return true; }; | |
| SurfaceFrame frame( | |
| /*surface=*/nullptr, | |
| /*framebuffer_info=*/framebuffer_info, | |
| /*submit_callback=*/callback, | |
| /*frame_size=*/SkISize::Make(800, 600), | |
| /*context_result=*/nullptr, | |
| /*display_list_fallback=*/true); | |
| EXPECT_FALSE(frame.Canvas()->GetLocalClipBounds().isEmpty()); | |
| EXPECT_FALSE(frame.Canvas()->QuickReject(SkRect::MakeLTRB(10, 10, 50, 50))); | |
| } | |
| TEST(FlowTest, SurfaceFrameDoesNotPrepareRtree) { | |
| SurfaceFrame::FramebufferInfo framebuffer_info; | |
| auto callback = [](const SurfaceFrame&, DlCanvas*) { return true; }; | |
| auto surface_frame = std::make_unique<SurfaceFrame>( | |
| /*surface=*/nullptr, | |
| /*framebuffer_info=*/framebuffer_info, | |
| /*submit_callback=*/callback, | |
| /*frame_size=*/SkISize::Make(800, 600), | |
| /*context_result=*/nullptr, | |
| /*display_list_fallback=*/true); | |
| surface_frame->Canvas()->DrawRect(SkRect::MakeWH(100, 100), DlPaint()); | |
| EXPECT_FALSE(surface_frame->BuildDisplayList()->has_rtree()); | |
| } | |
| } // namespace flutter |