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

Unified Diff: services/ui/ws/frame_generator_unittest.cc

Issue 2759933007: [mus]Add FrameGenerator::SetHighContrastMode(bool) (Closed)
Patch Set: Addressed nits Created 3 years, 9 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 | « services/ui/ws/frame_generator_delegate.h ('k') | services/ui/ws/platform_display_default.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: services/ui/ws/frame_generator_unittest.cc
diff --git a/services/ui/ws/frame_generator_unittest.cc b/services/ui/ws/frame_generator_unittest.cc
index b5c9b981ec682f149f161c89b96d513f12d8bd41..b2d626e48a938f8ee4eade4545c1e6c256caa62f 100644
--- a/services/ui/ws/frame_generator_unittest.cc
+++ b/services/ui/ws/frame_generator_unittest.cc
@@ -9,7 +9,6 @@
#include "cc/scheduler/begin_frame_source.h"
#include "cc/test/begin_frame_args_test.cc"
#include "cc/test/fake_external_begin_frame_source.h"
-#include "services/ui/ws/frame_generator_delegate.h"
#include "services/ui/ws/server_window.h"
#include "services/ui/ws/server_window_delegate.h"
#include "services/ui/ws/test_utils.h"
@@ -99,10 +98,14 @@ class FakeCompositorFrameSink : public cc::CompositorFrameSink,
UpdateNeedsBeginFramesInternal();
}
- const cc::CompositorFrameMetadata& last_metadata() {
+ const cc::CompositorFrameMetadata& last_metadata() const {
return last_frame_.metadata;
}
+ const cc::RenderPassList& last_render_pass_list() const {
+ return last_frame_.render_pass_list;
+ }
+
int number_frames_received() { return number_frames_received_; }
private:
@@ -150,13 +153,12 @@ class FrameGeneratorTest : public testing::Test {
begin_frame_source_ = base::MakeUnique<cc::FakeExternalBeginFrameSource>(
kRefreshRate, kTickAutomatically);
compositor_frame_sink_->SetBeginFrameSource(begin_frame_source_.get());
- delegate_ = base::MakeUnique<TestFrameGeneratorDelegate>();
server_window_delegate_ = base::MakeUnique<TestServerWindowDelegate>();
root_window_ = base::MakeUnique<ServerWindow>(server_window_delegate_.get(),
WindowId());
root_window_->SetVisible(true);
frame_generator_ = base::MakeUnique<FrameGenerator>(
- delegate_.get(), root_window_.get(), std::move(compositor_frame_sink));
+ root_window_.get(), std::move(compositor_frame_sink));
};
int NumberOfFramesReceived() {
@@ -171,14 +173,17 @@ class FrameGeneratorTest : public testing::Test {
FrameGenerator* frame_generator() { return frame_generator_.get(); }
- const cc::CompositorFrameMetadata& LastMetadata() {
+ const cc::CompositorFrameMetadata& LastMetadata() const {
return compositor_frame_sink_->last_metadata();
}
+ const cc::RenderPassList& LastRenderPassList() const {
+ return compositor_frame_sink_->last_render_pass_list();
+ }
+
private:
FakeCompositorFrameSink* compositor_frame_sink_ = nullptr;
std::unique_ptr<cc::FakeExternalBeginFrameSource> begin_frame_source_;
- std::unique_ptr<TestFrameGeneratorDelegate> delegate_;
std::unique_ptr<TestServerWindowDelegate> server_window_delegate_;
std::unique_ptr<ServerWindow> root_window_;
std::unique_ptr<FrameGenerator> frame_generator_;
@@ -253,6 +258,30 @@ TEST_F(FrameGeneratorTest, SetDeviceScaleFactor) {
EXPECT_EQ(kArbitraryScaleFactor, second_last_metadata.device_scale_factor);
}
+TEST_F(FrameGeneratorTest, SetHighContrastMode) {
+ // FrameGenerator requires a valid SurfaceInfo before generating
+ // CompositorFrames.
+ const cc::SurfaceId kArbitrarySurfaceId(
+ cc::FrameSinkId(1, 1),
+ cc::LocalSurfaceId(1, base::UnguessableToken::Create()));
+ const cc::SurfaceInfo kArbitrarySurfaceInfo(kArbitrarySurfaceId, 1.0f,
+ gfx::Size(100, 100));
+ frame_generator()->OnSurfaceCreated(kArbitrarySurfaceInfo);
+ IssueBeginFrame();
+ EXPECT_EQ(1, NumberOfFramesReceived());
+
+ // Changing high contrast mode should trigger a BeginFrame.
+ frame_generator()->SetHighContrastMode(true);
+ IssueBeginFrame();
+ EXPECT_EQ(2, NumberOfFramesReceived());
+
+ // Verify that the last frame has an invert filter.
+ const cc::RenderPassList& render_pass_list = LastRenderPassList();
+ const cc::FilterOperations expected_filters(
+ {cc::FilterOperation::CreateInvertFilter(1.f)});
+ EXPECT_EQ(expected_filters, render_pass_list.front()->filters);
+}
+
} // namespace test
} // namespace ws
} // namespace ui
« no previous file with comments | « services/ui/ws/frame_generator_delegate.h ('k') | services/ui/ws/platform_display_default.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698