blob: 5d63b25bede008776e9996889b7b6b789a5d7653 [file] [log] [blame]
// 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 FLUTTER_LIB_UI_PAINTING_TESTING_MOCKS_H_
#define FLUTTER_LIB_UI_PAINTING_TESTING_MOCKS_H_
#include "flutter/common/graphics/texture.h"
#include "flutter/lib/ui/snapshot_delegate.h"
#include "gmock/gmock.h"
namespace flutter {
namespace testing {
class MockTextureRegistry : public TextureRegistry {
public:
MockTextureRegistry() = default;
virtual ~MockTextureRegistry() = default;
};
class MockSnapshotDelegate : public SnapshotDelegate {
public:
MockSnapshotDelegate()
: weak_factory_(this),
texture_registry_(std::make_shared<MockTextureRegistry>()) {}
virtual ~MockSnapshotDelegate() = default;
MOCK_METHOD(std::unique_ptr<GpuImageResult>,
MakeSkiaGpuImage,
(sk_sp<DisplayList>, const SkImageInfo&),
(override));
MOCK_METHOD(std::shared_ptr<TextureRegistry>,
GetTextureRegistry,
(),
(override));
MOCK_METHOD(GrDirectContext*, GetGrContext, (), (override));
MOCK_METHOD(void,
MakeRasterSnapshot,
(sk_sp<DisplayList>,
DlISize,
std::function<void(sk_sp<DlImage>)>,
SnapshotPixelFormat target_format),
(override));
MOCK_METHOD(sk_sp<DlImage>,
MakeRasterSnapshotSync,
(sk_sp<DisplayList>, DlISize, SnapshotPixelFormat),
(override));
MOCK_METHOD(sk_sp<SkImage>,
ConvertToRasterImage,
(sk_sp<SkImage>),
(override));
MOCK_METHOD(sk_sp<DlImage>,
MakeTextureImage,
(sk_sp<SkImage>, SnapshotPixelFormat),
(override));
MOCK_METHOD(void,
CacheRuntimeStage,
(const std::shared_ptr<impeller::RuntimeStage>&),
(override));
MOCK_METHOD(bool, MakeRenderContextCurrent, (), (override));
fml::TaskRunnerAffineWeakPtr<SnapshotDelegate> GetWeakPtr() {
return weak_factory_.GetWeakPtr();
}
std::shared_ptr<MockTextureRegistry> GetMockTextureRegistry() {
return texture_registry_;
}
private:
fml::TaskRunnerAffineWeakPtrFactory<MockSnapshotDelegate> weak_factory_;
std::shared_ptr<MockTextureRegistry> texture_registry_;
};
class MockDlImage : public DlImage {
public:
MOCK_METHOD(DlISize, GetSize, (), (const, override));
MOCK_METHOD(sk_sp<SkImage>, skia_image, (), (const, override));
MOCK_METHOD(bool, isOpaque, (), (const, override));
MOCK_METHOD(bool, isTextureBacked, (), (const, override));
MOCK_METHOD(std::shared_ptr<impeller::Texture>,
impeller_texture,
(),
(const, override));
MOCK_METHOD(size_t, GetApproximateByteSize, (), (const, override));
MOCK_METHOD(bool, isUIThreadSafe, (), (const, override));
};
} // namespace testing
} // namespace flutter
#endif // FLUTTER_LIB_UI_PAINTING_TESTING_MOCKS_H_