| // 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. |
| |
| #include "flutter/flow/layers/offscreen_surface.h" |
| |
| #include <memory> |
| |
| #include "gtest/gtest.h" |
| #include "include/core/SkColor.h" |
| #include "third_party/skia/include/core/SkCanvas.h" |
| #include "third_party/skia/include/core/SkData.h" |
| |
| namespace flutter::testing { |
| |
| TEST(OffscreenSurfaceTest, EmptySurfaceIsInvalid) { |
| auto surface = |
| std::make_unique<OffscreenSurface>(nullptr, SkISize::MakeEmpty()); |
| ASSERT_FALSE(surface->IsValid()); |
| } |
| |
| TEST(OffscreenSurfaceTest, OnexOneSurfaceIsValid) { |
| auto surface = |
| std::make_unique<OffscreenSurface>(nullptr, SkISize::Make(1, 1)); |
| ASSERT_TRUE(surface->IsValid()); |
| } |
| |
| TEST(OffscreenSurfaceTest, PaintSurfaceBlack) { |
| auto surface = |
| std::make_unique<OffscreenSurface>(nullptr, SkISize::Make(1, 1)); |
| |
| DlCanvas* canvas = surface->GetCanvas(); |
| canvas->Clear(DlColor::kBlack()); |
| canvas->Flush(); |
| |
| auto raster_data = surface->GetRasterData(false); |
| const uint32_t* actual = |
| reinterpret_cast<const uint32_t*>(raster_data->data()); |
| |
| // picking black as the color since byte ordering seems to matter. |
| ASSERT_EQ(actual[0], 0xFF000000u); |
| } |
| |
| } // namespace flutter::testing |