| // 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. |
| |
| #ifndef FLOW_TESTING_MOCK_LAYER_H_ |
| #define FLOW_TESTING_MOCK_LAYER_H_ |
| |
| #include "flutter/flow/layers/layer.h" |
| |
| namespace flutter { |
| namespace testing { |
| |
| // Mock implementation of the |Layer| interface that does nothing but paint |
| // the specified |path| into the canvas. It records the |PrerollContext| and |
| // |PaintContext| data passed in by its parent |Layer|, so the test can later |
| // verify the data against expected values. |
| class MockLayer : public Layer { |
| public: |
| MockLayer(SkPath path, |
| SkPaint paint = SkPaint(), |
| bool fake_has_platform_view = false, |
| bool fake_needs_system_composite = false, |
| bool fake_reads_surface = false); |
| |
| void Preroll(PrerollContext* context, const SkMatrix& matrix) override; |
| void Paint(PaintContext& context) const override; |
| |
| const MutatorsStack& parent_mutators() { return parent_mutators_; } |
| const SkMatrix& parent_matrix() { return parent_matrix_; } |
| const SkRect& parent_cull_rect() { return parent_cull_rect_; } |
| float parent_elevation() { return parent_elevation_; } |
| bool parent_has_platform_view() { return parent_has_platform_view_; } |
| |
| private: |
| MutatorsStack parent_mutators_; |
| SkMatrix parent_matrix_; |
| SkRect parent_cull_rect_ = SkRect::MakeEmpty(); |
| SkPath fake_paint_path_; |
| SkPaint fake_paint_; |
| float parent_elevation_ = 0; |
| bool parent_has_platform_view_ = false; |
| bool fake_has_platform_view_ = false; |
| bool fake_needs_system_composite_ = false; |
| bool fake_reads_surface_ = false; |
| |
| FML_DISALLOW_COPY_AND_ASSIGN(MockLayer); |
| }; |
| |
| } // namespace testing |
| } // namespace flutter |
| |
| #endif // FLOW_TESTING_MOCK_LAYER_H_ |