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

Unified Diff: ui/display/chromeos/update_display_configuration_task_unittest.cc

Issue 2540313002: Split //ui/display and create //ui/display/manager. (Closed)
Patch Set: Cleanup export header. Created 4 years 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 | « ui/display/chromeos/update_display_configuration_task.cc ('k') | ui/display/chromeos/x11/DEPS » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: ui/display/chromeos/update_display_configuration_task_unittest.cc
diff --git a/ui/display/chromeos/update_display_configuration_task_unittest.cc b/ui/display/chromeos/update_display_configuration_task_unittest.cc
deleted file mode 100644
index 9ec10438da7c4c7dc28dc99c8bfd66446c2f2bb1..0000000000000000000000000000000000000000
--- a/ui/display/chromeos/update_display_configuration_task_unittest.cc
+++ /dev/null
@@ -1,498 +0,0 @@
-// Copyright 2014 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "ui/display/chromeos/update_display_configuration_task.h"
-
-#include <stddef.h>
-
-#include <utility>
-
-#include "base/bind.h"
-#include "base/macros.h"
-#include "base/memory/ptr_util.h"
-#include "base/message_loop/message_loop.h"
-#include "base/run_loop.h"
-#include "testing/gtest/include/gtest/gtest.h"
-#include "ui/display/chromeos/display_layout_manager.h"
-#include "ui/display/chromeos/test/action_logger_util.h"
-#include "ui/display/chromeos/test/test_native_display_delegate.h"
-#include "ui/display/fake_display_snapshot.h"
-
-namespace ui {
-namespace test {
-
-namespace {
-
-class TestSoftwareMirroringController
- : public DisplayConfigurator::SoftwareMirroringController {
- public:
- TestSoftwareMirroringController() : is_enabled_(false) {}
- ~TestSoftwareMirroringController() override {}
-
- // DisplayConfigurator::SoftwareMirroringController:
- void SetSoftwareMirroring(bool enabled) override { is_enabled_ = enabled; }
- bool SoftwareMirroringEnabled() const override { return is_enabled_; }
-
- private:
- bool is_enabled_;
-
- DISALLOW_COPY_AND_ASSIGN(TestSoftwareMirroringController);
-};
-
-class TestDisplayLayoutManager : public DisplayLayoutManager {
- public:
- TestDisplayLayoutManager()
- : should_mirror_(true),
- display_state_(MULTIPLE_DISPLAY_STATE_INVALID),
- power_state_(chromeos::DISPLAY_POWER_ALL_ON) {}
- ~TestDisplayLayoutManager() override {}
-
- void set_should_mirror(bool should_mirror) { should_mirror_ = should_mirror; }
-
- void set_display_state(MultipleDisplayState state) { display_state_ = state; }
-
- void set_power_state(chromeos::DisplayPowerState state) {
- power_state_ = state;
- }
-
- void set_software_mirroring_controller(
- std::unique_ptr<DisplayConfigurator::SoftwareMirroringController>
- software_mirroring_controller) {
- software_mirroring_controller_ = std::move(software_mirroring_controller);
- }
-
- // DisplayConfigurator::DisplayLayoutManager:
- DisplayConfigurator::SoftwareMirroringController*
- GetSoftwareMirroringController() const override {
- return software_mirroring_controller_.get();
- }
-
- DisplayConfigurator::StateController* GetStateController() const override {
- return nullptr;
- }
-
- MultipleDisplayState GetDisplayState() const override {
- return display_state_;
- }
-
- chromeos::DisplayPowerState GetPowerState() const override {
- return power_state_;
- }
-
- bool GetDisplayLayout(const std::vector<DisplaySnapshot*>& displays,
- MultipleDisplayState new_display_state,
- chromeos::DisplayPowerState new_power_state,
- std::vector<DisplayConfigureRequest>* requests,
- gfx::Size* framebuffer_size) const override {
- gfx::Point origin;
- for (DisplaySnapshot* display : displays) {
- const DisplayMode* mode = display->native_mode();
- if (new_display_state == MULTIPLE_DISPLAY_STATE_DUAL_MIRROR)
- mode = should_mirror_ ? FindMirrorMode(displays) : nullptr;
-
- if (!mode)
- return false;
-
- if (new_power_state == chromeos::DISPLAY_POWER_ALL_ON) {
- requests->push_back(DisplayConfigureRequest(display, mode, origin));
- } else {
- requests->push_back(DisplayConfigureRequest(display, nullptr, origin));
- }
-
- if (new_display_state != MULTIPLE_DISPLAY_STATE_DUAL_MIRROR) {
- origin.Offset(0, mode->size().height());
- framebuffer_size->SetToMax(gfx::Size(mode->size().width(), origin.y()));
- } else {
- *framebuffer_size = mode->size();
- }
- }
-
- return true;
- }
-
- DisplayConfigurator::DisplayStateList GetDisplayStates() const override {
- NOTREACHED();
- return DisplayConfigurator::DisplayStateList();
- }
-
- bool IsMirroring() const override {
- return display_state_ == MULTIPLE_DISPLAY_STATE_DUAL_MIRROR;
- }
-
- private:
- const DisplayMode* FindMirrorMode(
- const std::vector<DisplaySnapshot*>& displays) const {
- const DisplayMode* mode = displays[0]->native_mode();
- for (DisplaySnapshot* display : displays) {
- if (mode->size().GetArea() > display->native_mode()->size().GetArea())
- mode = display->native_mode();
- }
-
- return mode;
- }
-
- bool should_mirror_;
-
- MultipleDisplayState display_state_;
-
- chromeos::DisplayPowerState power_state_;
-
- std::unique_ptr<DisplayConfigurator::SoftwareMirroringController>
- software_mirroring_controller_;
-
- DISALLOW_COPY_AND_ASSIGN(TestDisplayLayoutManager);
-};
-
-class UpdateDisplayConfigurationTaskTest : public testing::Test {
- public:
- UpdateDisplayConfigurationTaskTest()
- : delegate_(&log_),
- small_mode_(gfx::Size(1366, 768), false, 60.0f),
- big_mode_(gfx::Size(2560, 1600), false, 60.0f),
- configured_(false),
- configuration_status_(false),
- display_state_(MULTIPLE_DISPLAY_STATE_INVALID),
- power_state_(chromeos::DISPLAY_POWER_ALL_ON) {
- displays_[0] = display::FakeDisplaySnapshot::Builder()
- .SetId(123)
- .SetNativeMode(small_mode_.Clone())
- .SetCurrentMode(small_mode_.Clone())
- .Build();
-
- displays_[1] = display::FakeDisplaySnapshot::Builder()
- .SetId(456)
- .SetNativeMode(big_mode_.Clone())
- .SetCurrentMode(big_mode_.Clone())
- .AddMode(small_mode_.Clone())
- .Build();
- }
- ~UpdateDisplayConfigurationTaskTest() override {}
-
- void UpdateDisplays(size_t count) {
- std::vector<DisplaySnapshot*> displays;
- for (size_t i = 0; i < count; ++i)
- displays.push_back(displays_[i].get());
-
- delegate_.set_outputs(displays);
- }
-
- void ResponseCallback(bool success,
- const std::vector<DisplaySnapshot*>& displays,
- const gfx::Size& framebuffer_size,
- MultipleDisplayState new_display_state,
- chromeos::DisplayPowerState new_power_state) {
- configured_ = true;
- configuration_status_ = success;
- display_states_ = displays;
- display_state_ = new_display_state;
- power_state_ = new_power_state;
-
- if (success) {
- layout_manager_.set_display_state(display_state_);
- layout_manager_.set_power_state(power_state_);
- }
- }
-
- protected:
- ActionLogger log_;
- TestNativeDisplayDelegate delegate_;
- TestDisplayLayoutManager layout_manager_;
-
- const DisplayMode small_mode_;
- const DisplayMode big_mode_;
-
- std::unique_ptr<DisplaySnapshot> displays_[2];
-
- bool configured_;
- bool configuration_status_;
- std::vector<DisplaySnapshot*> display_states_;
- MultipleDisplayState display_state_;
- chromeos::DisplayPowerState power_state_;
-
- private:
- DISALLOW_COPY_AND_ASSIGN(UpdateDisplayConfigurationTaskTest);
-};
-
-} // namespace
-
-TEST_F(UpdateDisplayConfigurationTaskTest, HeadlessConfiguration) {
- {
- UpdateDisplayConfigurationTask task(
- &delegate_, &layout_manager_, MULTIPLE_DISPLAY_STATE_HEADLESS,
- chromeos::DISPLAY_POWER_ALL_ON, 0, 0, false,
- base::Bind(&UpdateDisplayConfigurationTaskTest::ResponseCallback,
- base::Unretained(this)));
- task.Run();
- }
-
- EXPECT_TRUE(configured_);
- EXPECT_TRUE(configuration_status_);
- EXPECT_EQ(MULTIPLE_DISPLAY_STATE_HEADLESS, display_state_);
- EXPECT_EQ(chromeos::DISPLAY_POWER_ALL_ON, power_state_);
- EXPECT_EQ(JoinActions(kGrab, kUngrab, nullptr), log_.GetActionsAndClear());
-}
-
-TEST_F(UpdateDisplayConfigurationTaskTest, SingleConfiguration) {
- UpdateDisplays(1);
-
- {
- UpdateDisplayConfigurationTask task(
- &delegate_, &layout_manager_, MULTIPLE_DISPLAY_STATE_SINGLE,
- chromeos::DISPLAY_POWER_ALL_ON, 0, 0, false,
- base::Bind(&UpdateDisplayConfigurationTaskTest::ResponseCallback,
- base::Unretained(this)));
- task.Run();
- }
-
- EXPECT_TRUE(configured_);
- EXPECT_TRUE(configuration_status_);
- EXPECT_EQ(MULTIPLE_DISPLAY_STATE_SINGLE, display_state_);
- EXPECT_EQ(chromeos::DISPLAY_POWER_ALL_ON, power_state_);
- EXPECT_EQ(
- JoinActions(
- kGrab,
- GetFramebufferAction(small_mode_.size(), displays_[0].get(), nullptr)
- .c_str(),
- GetCrtcAction(*displays_[0], &small_mode_, gfx::Point()).c_str(),
- kUngrab, nullptr),
- log_.GetActionsAndClear());
-}
-
-TEST_F(UpdateDisplayConfigurationTaskTest, ExtendedConfiguration) {
- UpdateDisplays(2);
-
- {
- UpdateDisplayConfigurationTask task(
- &delegate_, &layout_manager_, MULTIPLE_DISPLAY_STATE_DUAL_EXTENDED,
- chromeos::DISPLAY_POWER_ALL_ON, 0, 0, false,
- base::Bind(&UpdateDisplayConfigurationTaskTest::ResponseCallback,
- base::Unretained(this)));
- task.Run();
- }
-
- EXPECT_TRUE(configured_);
- EXPECT_TRUE(configuration_status_);
- EXPECT_EQ(MULTIPLE_DISPLAY_STATE_DUAL_EXTENDED, display_state_);
- EXPECT_EQ(chromeos::DISPLAY_POWER_ALL_ON, power_state_);
- EXPECT_EQ(
- JoinActions(
- kGrab, GetFramebufferAction(gfx::Size(big_mode_.size().width(),
- small_mode_.size().height() +
- big_mode_.size().height()),
- displays_[0].get(), displays_[1].get())
- .c_str(),
- GetCrtcAction(*displays_[0], &small_mode_, gfx::Point()).c_str(),
- GetCrtcAction(*displays_[1], &big_mode_,
- gfx::Point(0, small_mode_.size().height()))
- .c_str(),
- kUngrab, nullptr),
- log_.GetActionsAndClear());
-}
-
-TEST_F(UpdateDisplayConfigurationTaskTest, MirrorConfiguration) {
- UpdateDisplays(2);
-
- {
- UpdateDisplayConfigurationTask task(
- &delegate_, &layout_manager_, MULTIPLE_DISPLAY_STATE_DUAL_MIRROR,
- chromeos::DISPLAY_POWER_ALL_ON, 0, 0, false,
- base::Bind(&UpdateDisplayConfigurationTaskTest::ResponseCallback,
- base::Unretained(this)));
- task.Run();
- }
-
- EXPECT_TRUE(configured_);
- EXPECT_TRUE(configuration_status_);
- EXPECT_EQ(MULTIPLE_DISPLAY_STATE_DUAL_MIRROR, display_state_);
- EXPECT_EQ(chromeos::DISPLAY_POWER_ALL_ON, power_state_);
- EXPECT_EQ(
- JoinActions(
- kGrab, GetFramebufferAction(small_mode_.size(), displays_[0].get(),
- displays_[1].get())
- .c_str(),
- GetCrtcAction(*displays_[0], &small_mode_, gfx::Point()).c_str(),
- GetCrtcAction(*displays_[1], &small_mode_, gfx::Point()).c_str(),
- kUngrab, nullptr),
- log_.GetActionsAndClear());
-}
-
-TEST_F(UpdateDisplayConfigurationTaskTest, FailMirrorConfiguration) {
- layout_manager_.set_should_mirror(false);
- UpdateDisplays(2);
-
- {
- UpdateDisplayConfigurationTask task(
- &delegate_, &layout_manager_, MULTIPLE_DISPLAY_STATE_DUAL_MIRROR,
- chromeos::DISPLAY_POWER_ALL_ON, 0, 0, false,
- base::Bind(&UpdateDisplayConfigurationTaskTest::ResponseCallback,
- base::Unretained(this)));
- task.Run();
- }
-
- EXPECT_TRUE(configured_);
- EXPECT_FALSE(configuration_status_);
- EXPECT_EQ(JoinActions(kGrab, kUngrab, nullptr), log_.GetActionsAndClear());
-}
-
-TEST_F(UpdateDisplayConfigurationTaskTest, FailExtendedConfiguration) {
- delegate_.set_max_configurable_pixels(1);
- UpdateDisplays(2);
-
- {
- UpdateDisplayConfigurationTask task(
- &delegate_, &layout_manager_, MULTIPLE_DISPLAY_STATE_DUAL_EXTENDED,
- chromeos::DISPLAY_POWER_ALL_ON, 0, 0, false,
- base::Bind(&UpdateDisplayConfigurationTaskTest::ResponseCallback,
- base::Unretained(this)));
- task.Run();
- }
-
- EXPECT_TRUE(configured_);
- EXPECT_FALSE(configuration_status_);
- EXPECT_EQ(
- JoinActions(
- kGrab, GetFramebufferAction(gfx::Size(big_mode_.size().width(),
- small_mode_.size().height() +
- big_mode_.size().height()),
- displays_[0].get(), displays_[1].get())
- .c_str(),
- GetCrtcAction(*displays_[0], &small_mode_, gfx::Point()).c_str(),
- GetCrtcAction(*displays_[1], &big_mode_,
- gfx::Point(0, small_mode_.size().height()))
- .c_str(),
- GetCrtcAction(*displays_[1], &small_mode_,
- gfx::Point(0, small_mode_.size().height()))
- .c_str(),
- kUngrab, nullptr),
- log_.GetActionsAndClear());
-}
-
-TEST_F(UpdateDisplayConfigurationTaskTest, SingleChangePowerConfiguration) {
- UpdateDisplays(1);
-
- {
- UpdateDisplayConfigurationTask task(
- &delegate_, &layout_manager_, MULTIPLE_DISPLAY_STATE_SINGLE,
- chromeos::DISPLAY_POWER_ALL_ON, 0, 0, false,
- base::Bind(&UpdateDisplayConfigurationTaskTest::ResponseCallback,
- base::Unretained(this)));
- task.Run();
- }
-
- EXPECT_TRUE(configured_);
- EXPECT_TRUE(configuration_status_);
- EXPECT_EQ(MULTIPLE_DISPLAY_STATE_SINGLE, display_state_);
- EXPECT_EQ(chromeos::DISPLAY_POWER_ALL_ON, power_state_);
- EXPECT_EQ(
- JoinActions(
- kGrab,
- GetFramebufferAction(small_mode_.size(), displays_[0].get(), nullptr)
- .c_str(),
- GetCrtcAction(*displays_[0], &small_mode_, gfx::Point()).c_str(),
- kUngrab, nullptr),
- log_.GetActionsAndClear());
-
- // Turn power off
- {
- UpdateDisplayConfigurationTask task(
- &delegate_, &layout_manager_, MULTIPLE_DISPLAY_STATE_SINGLE,
- chromeos::DISPLAY_POWER_ALL_OFF, 0, 0, false,
- base::Bind(&UpdateDisplayConfigurationTaskTest::ResponseCallback,
- base::Unretained(this)));
- task.Run();
- }
-
- EXPECT_TRUE(configuration_status_);
- EXPECT_EQ(MULTIPLE_DISPLAY_STATE_SINGLE, display_state_);
- EXPECT_EQ(chromeos::DISPLAY_POWER_ALL_OFF, power_state_);
- EXPECT_EQ(
- JoinActions(kGrab, GetFramebufferAction(small_mode_.size(),
- displays_[0].get(), nullptr)
- .c_str(),
- GetCrtcAction(*displays_[0], nullptr, gfx::Point()).c_str(),
- kUngrab, nullptr),
- log_.GetActionsAndClear());
-}
-
-TEST_F(UpdateDisplayConfigurationTaskTest, NoopSoftwareMirrorConfiguration) {
- layout_manager_.set_should_mirror(false);
- layout_manager_.set_software_mirroring_controller(
- base::MakeUnique<TestSoftwareMirroringController>());
- UpdateDisplays(2);
-
- {
- UpdateDisplayConfigurationTask task(
- &delegate_, &layout_manager_, MULTIPLE_DISPLAY_STATE_DUAL_EXTENDED,
- chromeos::DISPLAY_POWER_ALL_ON, 0, 0, false,
- base::Bind(&UpdateDisplayConfigurationTaskTest::ResponseCallback,
- base::Unretained(this)));
- task.Run();
- }
-
- log_.GetActionsAndClear();
-
- {
- UpdateDisplayConfigurationTask task(
- &delegate_, &layout_manager_, MULTIPLE_DISPLAY_STATE_DUAL_MIRROR,
- chromeos::DISPLAY_POWER_ALL_ON, 0, 0, false,
- base::Bind(&UpdateDisplayConfigurationTaskTest::ResponseCallback,
- base::Unretained(this)));
- task.Run();
- }
-
- EXPECT_TRUE(configuration_status_);
- EXPECT_EQ(MULTIPLE_DISPLAY_STATE_DUAL_EXTENDED, display_state_);
- EXPECT_TRUE(layout_manager_.GetSoftwareMirroringController()
- ->SoftwareMirroringEnabled());
- EXPECT_EQ(JoinActions(kGrab, kUngrab, nullptr), log_.GetActionsAndClear());
-}
-
-TEST_F(UpdateDisplayConfigurationTaskTest,
- ForceConfigurationWhileGoingToSoftwareMirror) {
- layout_manager_.set_should_mirror(false);
- layout_manager_.set_software_mirroring_controller(
- base::MakeUnique<TestSoftwareMirroringController>());
- UpdateDisplays(2);
-
- {
- UpdateDisplayConfigurationTask task(
- &delegate_, &layout_manager_, MULTIPLE_DISPLAY_STATE_DUAL_EXTENDED,
- chromeos::DISPLAY_POWER_ALL_ON, 0, 0, false,
- base::Bind(&UpdateDisplayConfigurationTaskTest::ResponseCallback,
- base::Unretained(this)));
- task.Run();
- }
-
- log_.GetActionsAndClear();
-
- {
- UpdateDisplayConfigurationTask task(
- &delegate_, &layout_manager_, MULTIPLE_DISPLAY_STATE_DUAL_MIRROR,
- chromeos::DISPLAY_POWER_ALL_ON, 0, 0, true /* force_configure */,
- base::Bind(&UpdateDisplayConfigurationTaskTest::ResponseCallback,
- base::Unretained(this)));
- task.Run();
- }
-
- EXPECT_TRUE(configuration_status_);
- EXPECT_EQ(MULTIPLE_DISPLAY_STATE_DUAL_EXTENDED, display_state_);
- EXPECT_TRUE(layout_manager_.GetSoftwareMirroringController()
- ->SoftwareMirroringEnabled());
- EXPECT_EQ(
- JoinActions(
- kGrab, GetFramebufferAction(gfx::Size(big_mode_.size().width(),
- small_mode_.size().height() +
- big_mode_.size().height()),
- displays_[0].get(), displays_[1].get())
- .c_str(),
- GetCrtcAction(*displays_[0], &small_mode_, gfx::Point()).c_str(),
- GetCrtcAction(*displays_[1], &big_mode_,
- gfx::Point(0, small_mode_.size().height()))
- .c_str(),
- kUngrab, nullptr),
- log_.GetActionsAndClear());
-}
-
-} // namespace test
-} // namespace ui
« no previous file with comments | « ui/display/chromeos/update_display_configuration_task.cc ('k') | ui/display/chromeos/x11/DEPS » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698