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

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

Issue 2512593003: Cleanup display creation in mus tests. (Closed)
Patch Set: Make const. Created 4 years, 1 month 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/test_utils.h ('k') | services/ui/ws/user_display_manager_unittest.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: services/ui/ws/test_utils.cc
diff --git a/services/ui/ws/test_utils.cc b/services/ui/ws/test_utils.cc
index 23d538ee46aa60bf80b7cba0aba6b9bfe0cb5c20..be41f182f26bc51634c409cad0b17a01876ad45c 100644
--- a/services/ui/ws/test_utils.cc
+++ b/services/ui/ws/test_utils.cc
@@ -18,6 +18,7 @@
#include "services/ui/ws/window_manager_access_policy.h"
#include "services/ui/ws/window_manager_window_tree_factory.h"
#include "testing/gtest/include/gtest/gtest.h"
+#include "ui/gfx/geometry/dip_util.h"
namespace ui {
namespace ws {
@@ -28,11 +29,10 @@ namespace {
// Empty implementation of PlatformDisplay.
class TestPlatformDisplay : public PlatformDisplay {
public:
- explicit TestPlatformDisplay(int64_t id,
- bool is_primary,
+ explicit TestPlatformDisplay(const PlatformDisplayInitParams& params,
mojom::Cursor* cursor_storage)
- : id_(id),
- is_primary_(is_primary),
+ : id_(params.display_id),
+ display_metrics_(params.metrics),
cursor_storage_(cursor_storage) {
display_metrics_.bounds = gfx::Rect(0, 0, 400, 300);
display_metrics_.device_scale_factor = 1.f;
@@ -63,15 +63,12 @@ class TestPlatformDisplay : public PlatformDisplay {
const display::ViewportMetrics& GetViewportMetrics() const override {
return display_metrics_;
}
- bool IsPrimaryDisplay() const override { return is_primary_; }
void OnGpuChannelEstablished(
scoped_refptr<gpu::GpuChannelHost> host) override {}
private:
+ const int64_t id_;
display::ViewportMetrics display_metrics_;
-
- int64_t id_;
- bool is_primary_;
mojom::Cursor* cursor_storage_;
DISALLOW_COPY_AND_ASSIGN(TestPlatformDisplay);
@@ -90,22 +87,69 @@ ClientWindowId NextUnusedClientWindowId(WindowTree* tree) {
} // namespace
-// TestPlatformDisplayFactory -------------------------------------------------
+// TestPlatformScreen -------------------------------------------------
+
+TestPlatformScreen::TestPlatformScreen() {}
+
+TestPlatformScreen::~TestPlatformScreen() {}
+
+int64_t TestPlatformScreen::AddDisplay() {
+ return AddDisplay(MakeViewportMetrics(0, 0, 100, 100, 1.0f));
+}
+
+int64_t TestPlatformScreen::AddDisplay(
+ const display::ViewportMetrics& metrics) {
+ // Generate a unique display id.
+ int64_t display_id = display_ids_.empty() ? 1 : *display_ids_.rbegin() + 1;
+ display_ids_.insert(display_id);
+
+ delegate_->OnDisplayAdded(display_id, metrics);
+
+ // First display added will be the primary display.
+ if (primary_display_id_ == display::Display::kInvalidDisplayID) {
+ primary_display_id_ = display_id;
+ delegate_->OnPrimaryDisplayChanged(display_id);
+ }
+
+ return display_id;
+}
+
+void TestPlatformScreen::ModifyDisplay(
+ int64_t id,
+ const display::ViewportMetrics& metrics) {
+ DCHECK(display_ids_.count(id) == 1);
+ delegate_->OnDisplayModified(id, metrics);
+}
-const int64_t TestPlatformDisplayFactory::kFirstDisplayId = 1;
+void TestPlatformScreen::RemoveDisplay(int64_t id) {
+ DCHECK(display_ids_.count(id) == 1);
+ delegate_->OnDisplayRemoved(id);
+ display_ids_.erase(id);
+}
+
+void TestPlatformScreen::Init(display::PlatformScreenDelegate* delegate) {
+ // Reset
+ delegate_ = delegate;
+ display_ids_.clear();
+ primary_display_id_ = display::Display::kInvalidDisplayID;
+}
+
+int64_t TestPlatformScreen::GetPrimaryDisplayId() const {
+ return primary_display_id_;
+}
+
+// TestPlatformDisplayFactory -------------------------------------------------
TestPlatformDisplayFactory::TestPlatformDisplayFactory(
mojom::Cursor* cursor_storage)
- : cursor_storage_(cursor_storage),
- next_display_id_(kFirstDisplayId) {}
+ : cursor_storage_(cursor_storage) {}
TestPlatformDisplayFactory::~TestPlatformDisplayFactory() {}
std::unique_ptr<PlatformDisplay>
-TestPlatformDisplayFactory::CreatePlatformDisplay() {
- bool is_primary = (next_display_id_ == kFirstDisplayId);
- return base::MakeUnique<TestPlatformDisplay>(next_display_id_++, is_primary,
- cursor_storage_);
+TestPlatformDisplayFactory::CreatePlatformDisplay(
+ const PlatformDisplayInitParams& init_params) {
+ return base::MakeUnique<TestPlatformDisplay>(init_params, cursor_storage_);
}
// TestFrameGeneratorDelegate -------------------------------------------------
@@ -405,21 +449,6 @@ mojom::WindowTreeClient* TestWindowTreeBinding::CreateClientForShutdown() {
TestWindowServerDelegate::TestWindowServerDelegate() {}
TestWindowServerDelegate::~TestWindowServerDelegate() {}
-void TestWindowServerDelegate::CreateDisplays(int num_displays) {
- DCHECK_GT(num_displays, 0);
- DCHECK(window_server_);
-
- for (int i = 0; i < num_displays; ++i)
- AddDisplay();
-}
-
-Display* TestWindowServerDelegate::AddDisplay() {
- // Display manages its own lifetime.
- Display* display = new Display(window_server_);
- display->Init(PlatformDisplayInitParams(), nullptr);
- return display;
-}
-
void TestWindowServerDelegate::StartDisplayInit() {}
void TestWindowServerDelegate::OnNoMoreDisplays() {
@@ -541,6 +570,21 @@ void AddWindowManager(WindowServer* window_server, const UserId& user_id) {
->CreateWindowTree(nullptr, nullptr);
}
+display::ViewportMetrics MakeViewportMetrics(int origin_x,
+ int origin_y,
+ int width_pixels,
+ int height_pixels,
+ float scale_factor) {
+ display::ViewportMetrics metrics;
+ gfx::Size scaled_size = gfx::ConvertSizeToDIP(
+ scale_factor, gfx::Size(width_pixels, height_pixels));
+ metrics.bounds = gfx::Rect(gfx::Point(origin_x, origin_y), scaled_size);
+ metrics.work_area = metrics.bounds;
+ metrics.pixel_size = gfx::Size(width_pixels, height_pixels);
+ metrics.device_scale_factor = scale_factor;
+ return metrics;
+}
+
ServerWindow* FirstRoot(WindowTree* tree) {
return tree->roots().size() == 1u
? tree->GetWindow((*tree->roots().begin())->id())
« no previous file with comments | « services/ui/ws/test_utils.h ('k') | services/ui/ws/user_display_manager_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698