Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1365)

Unified Diff: cc/output/overlay_unittest.cc

Issue 1372873004: Refactor OverlayTest to make it easier to test additional strategies. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@clip
Patch Set: Created 5 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: cc/output/overlay_unittest.cc
diff --git a/cc/output/overlay_unittest.cc b/cc/output/overlay_unittest.cc
index 66b30d37497ba7ecf376b3a717a6976c3fc6d58c..bfdfa9cd45b2f8b5a89bd339981ea083f518e87c 100644
--- a/cc/output/overlay_unittest.cc
+++ b/cc/output/overlay_unittest.cc
@@ -60,9 +60,9 @@ void MailboxReleased(unsigned sync_point,
class SingleOverlayValidator : public OverlayCandidateValidator {
public:
void GetStrategies(OverlayProcessor::StrategyList* strategies) override {
- strategies->push_back(scoped_ptr<OverlayProcessor::Strategy>(
+ strategies->push_back(make_scoped_ptr(
new OverlayStrategyCommon(this, new OverlayStrategySingleOnTop)));
- strategies->push_back(scoped_ptr<OverlayProcessor::Strategy>(
+ strategies->push_back(make_scoped_ptr(
new OverlayStrategyCommon(this, new OverlayStrategyUnderlay)));
}
void CheckOverlaySupport(OverlayCandidateList* surfaces) override {
@@ -88,33 +88,31 @@ class SingleOverlayValidator : public OverlayCandidateValidator {
}
};
-class SandwichOverlayValidator : public OverlayCandidateValidator {
+class SingleOnTopOverlayValidator : public SingleOverlayValidator {
public:
void GetStrategies(OverlayProcessor::StrategyList* strategies) override {
- strategies->push_back(scoped_ptr<OverlayProcessor::Strategy>(
- new OverlayStrategyCommon(this, new OverlayStrategySandwich)));
- }
- void CheckOverlaySupport(OverlayCandidateList* surfaces) override {
- for (OverlayCandidate& candidate : *surfaces)
- candidate.overlay_handled = true;
+ strategies->push_back(make_scoped_ptr(
+ new OverlayStrategyCommon(this, new OverlayStrategySingleOnTop)));
}
};
-template <typename OverlayStrategyType>
-class SingleOverlayProcessor : public OverlayProcessor {
+class UnderlayOverlayValidator : public SingleOverlayValidator {
public:
- explicit SingleOverlayProcessor(OutputSurface* surface)
- : OverlayProcessor(surface) {
- EXPECT_EQ(surface, surface_);
+ void GetStrategies(OverlayProcessor::StrategyList* strategies) override {
+ strategies->push_back(make_scoped_ptr(
+ new OverlayStrategyCommon(this, new OverlayStrategyUnderlay)));
}
+};
- // Virtual to allow testing different strategies.
- void Initialize() override {
- OverlayCandidateValidator* validator =
- surface_->GetOverlayCandidateValidator();
- ASSERT_TRUE(validator != NULL);
- strategies_.push_back(scoped_ptr<Strategy>(
- new OverlayStrategyCommon(validator, new OverlayStrategyType)));
+class SandwichOverlayValidator : public OverlayCandidateValidator {
+ public:
+ void GetStrategies(OverlayProcessor::StrategyList* strategies) override {
+ strategies->push_back(make_scoped_ptr(
+ new OverlayStrategyCommon(this, new OverlayStrategySandwich)));
+ }
+ void CheckOverlaySupport(OverlayCandidateList* surfaces) override {
+ for (OverlayCandidate& candidate : *surfaces)
+ candidate.overlay_handled = true;
}
};
@@ -147,11 +145,8 @@ class OverlayOutputSurface : public OutputSurface {
// OutputSurface implementation
void SwapBuffers(CompositorFrame* frame) override;
- void InitWithSingleOverlayValidator() {
- overlay_candidate_validator_.reset(new SingleOverlayValidator);
- }
- void InitWithSandwichOverlayValidator() {
- overlay_candidate_validator_.reset(new SandwichOverlayValidator);
+ void SetOverlayCandidateValidator(OverlayCandidateValidator* validator) {
+ overlay_candidate_validator_.reset(validator);
}
OverlayCandidateValidator* GetOverlayCandidateValidator() const override {
@@ -319,50 +314,21 @@ static void CompareRenderPassLists(const RenderPassList& expected_list,
}
}
-TEST(OverlayTest, NoOverlaysByDefault) {
- scoped_refptr<TestContextProvider> provider = TestContextProvider::Create();
- OverlayOutputSurface output_surface(provider);
- EXPECT_EQ(NULL, output_surface.GetOverlayCandidateValidator());
-
- output_surface.InitWithSingleOverlayValidator();
- EXPECT_TRUE(output_surface.GetOverlayCandidateValidator() != NULL);
-}
-
-TEST(OverlayTest, OverlaysProcessorHasStrategy) {
- scoped_refptr<TestContextProvider> provider = TestContextProvider::Create();
- OverlayOutputSurface output_surface(provider);
- FakeOutputSurfaceClient client;
- EXPECT_TRUE(output_surface.BindToClient(&client));
- output_surface.InitWithSingleOverlayValidator();
- EXPECT_TRUE(output_surface.GetOverlayCandidateValidator() != NULL);
-
- scoped_ptr<SharedBitmapManager> shared_bitmap_manager(
- new TestSharedBitmapManager());
- scoped_ptr<ResourceProvider> resource_provider = FakeResourceProvider::Create(
- &output_surface, shared_bitmap_manager.get());
-
- scoped_ptr<DefaultOverlayProcessor> overlay_processor(
- new DefaultOverlayProcessor(&output_surface));
- overlay_processor->Initialize();
- EXPECT_GE(2U, overlay_processor->GetStrategyCount());
-}
-
-template <typename OverlayStrategyType>
+template <typename OverlayCandidateValidatorType>
class OverlayTest : public testing::Test {
protected:
void SetUp() override {
provider_ = TestContextProvider::Create();
output_surface_.reset(new OverlayOutputSurface(provider_));
EXPECT_TRUE(output_surface_->BindToClient(&client_));
- output_surface_->InitWithSingleOverlayValidator();
- EXPECT_TRUE(output_surface_->GetOverlayCandidateValidator() != NULL);
+ output_surface_->SetOverlayCandidateValidator(
+ new OverlayCandidateValidatorType);
shared_bitmap_manager_.reset(new TestSharedBitmapManager());
resource_provider_ = FakeResourceProvider::Create(
output_surface_.get(), shared_bitmap_manager_.get());
- overlay_processor_.reset(
- new SingleOverlayProcessor<OverlayStrategyType>(output_surface_.get()));
+ overlay_processor_.reset(new OverlayProcessor(output_surface_.get()));
overlay_processor_->Initialize();
}
@@ -371,36 +337,39 @@ class OverlayTest : public testing::Test {
FakeOutputSurfaceClient client_;
scoped_ptr<SharedBitmapManager> shared_bitmap_manager_;
scoped_ptr<ResourceProvider> resource_provider_;
- scoped_ptr<SingleOverlayProcessor<OverlayStrategyType>> overlay_processor_;
+ scoped_ptr<OverlayProcessor> overlay_processor_;
};
-typedef OverlayTest<OverlayStrategySingleOnTop> SingleOverlayOnTopTest;
-typedef OverlayTest<OverlayStrategyUnderlay> UnderlayTest;
+typedef OverlayTest<SingleOnTopOverlayValidator> SingleOverlayOnTopTest;
+typedef OverlayTest<UnderlayOverlayValidator> UnderlayTest;
+typedef OverlayTest<SandwichOverlayValidator> SandwichTest;
-class SandwichTest : public testing::Test {
- protected:
- void SetUp() override {
- provider_ = TestContextProvider::Create();
- output_surface_.reset(new OverlayOutputSurface(provider_));
- EXPECT_TRUE(output_surface_->BindToClient(&client_));
- output_surface_->InitWithSandwichOverlayValidator();
- EXPECT_TRUE(output_surface_->GetOverlayCandidateValidator() != NULL);
+TEST(OverlayTest, NoOverlaysByDefault) {
+ scoped_refptr<TestContextProvider> provider = TestContextProvider::Create();
+ OverlayOutputSurface output_surface(provider);
+ EXPECT_EQ(NULL, output_surface.GetOverlayCandidateValidator());
- shared_bitmap_manager_.reset(new TestSharedBitmapManager());
- resource_provider_ = FakeResourceProvider::Create(
- output_surface_.get(), shared_bitmap_manager_.get());
+ output_surface.SetOverlayCandidateValidator(new SingleOverlayValidator);
+ EXPECT_TRUE(output_surface.GetOverlayCandidateValidator() != NULL);
+}
- overlay_processor_.reset(new OverlayProcessor(output_surface_.get()));
- overlay_processor_->Initialize();
- }
+TEST(OverlayTest, OverlaysProcessorHasStrategy) {
+ scoped_refptr<TestContextProvider> provider = TestContextProvider::Create();
+ OverlayOutputSurface output_surface(provider);
+ FakeOutputSurfaceClient client;
+ EXPECT_TRUE(output_surface.BindToClient(&client));
+ output_surface.SetOverlayCandidateValidator(new SingleOverlayValidator);
- scoped_refptr<TestContextProvider> provider_;
- scoped_ptr<OverlayOutputSurface> output_surface_;
- FakeOutputSurfaceClient client_;
- scoped_ptr<SharedBitmapManager> shared_bitmap_manager_;
- scoped_ptr<ResourceProvider> resource_provider_;
- scoped_ptr<OverlayProcessor> overlay_processor_;
-};
+ scoped_ptr<SharedBitmapManager> shared_bitmap_manager(
+ new TestSharedBitmapManager());
+ scoped_ptr<ResourceProvider> resource_provider = FakeResourceProvider::Create(
+ &output_surface, shared_bitmap_manager.get());
+
+ scoped_ptr<DefaultOverlayProcessor> overlay_processor(
+ new DefaultOverlayProcessor(&output_surface));
+ overlay_processor->Initialize();
+ EXPECT_GE(2U, overlay_processor->GetStrategyCount());
+}
TEST_F(SandwichTest, SuccessfulSingleOverlay) {
scoped_ptr<RenderPass> pass = CreateRenderPass();
@@ -1274,7 +1243,7 @@ class GLRendererWithOverlaysTest : public testing::Test {
void Init(bool use_validator) {
if (use_validator)
- output_surface_->InitWithSingleOverlayValidator();
+ output_surface_->SetOverlayCandidateValidator(new SingleOverlayValidator);
renderer_ =
make_scoped_ptr(new OverlayInfoRendererGL(&renderer_client_,
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698