// 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 TESTING_CANVAS_TEST_H_
#define TESTING_CANVAS_TEST_H_

#include "flutter/fml/macros.h"
#include "flutter/testing/mock_canvas.h"
#include "gtest/gtest.h"
#include "third_party/skia/include/core/SkColorSpace.h"

namespace flutter {
namespace testing {

// This fixture allows creating tests that make use of a mock |SkCanvas|.
template <typename BaseT>
class CanvasTestBase : public BaseT {
 public:
  CanvasTestBase() = default;

  MockCanvas& mock_canvas() { return canvas_; }
  SkColorSpace* mock_color_space() { return color_space_.get(); }

 private:
  MockCanvas canvas_;
  sk_sp<SkColorSpace> color_space_ = SkColorSpace::MakeSRGB();

  FML_DISALLOW_COPY_AND_ASSIGN(CanvasTestBase);
};
using CanvasTest = CanvasTestBase<::testing::Test>;

}  // namespace testing
}  // namespace flutter

#endif  // TESTING_CANVAS_TEST_H_
