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

Unified Diff: ui/ozone/platform/dri/dri_window_delegate_impl_unittest.cc

Issue 963453003: [Ozone-Dri] Allocate cursor buffers on the correct DRM device (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@allocate-cursor-on-correct-device
Patch Set: . Created 5 years, 10 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
Index: ui/ozone/platform/dri/dri_window_delegate_impl_unittest.cc
diff --git a/ui/ozone/platform/dri/dri_window_delegate_impl_unittest.cc b/ui/ozone/platform/dri/dri_window_delegate_impl_unittest.cc
index f6c55705349f6975a4bf4508b7ba7b233abd9340..95068bd0666149b536a8d6080cf77e81e59ae1db 100644
--- a/ui/ozone/platform/dri/dri_window_delegate_impl_unittest.cc
+++ b/ui/ozone/platform/dri/dri_window_delegate_impl_unittest.cc
@@ -32,6 +32,19 @@ const uint32_t kDefaultCrtc = 1;
const uint32_t kDefaultConnector = 2;
const int kDefaultCursorSize = 64;
+std::vector<skia::RefPtr<SkSurface>> GetCursorBuffers(
+ const scoped_refptr<ui::MockDriWrapper> drm) {
+ std::vector<skia::RefPtr<SkSurface>> cursor_buffers;
+ for (const skia::RefPtr<SkSurface>& cursor_buffer : drm->buffers()) {
+ if (cursor_buffer->width() == kDefaultCursorSize &&
+ cursor_buffer->height() == kDefaultCursorSize) {
+ cursor_buffers.push_back(cursor_buffer);
+ }
+ }
+
+ return cursor_buffers;
+}
+
} // namespace
class DriWindowDelegateImplTest : public testing::Test {
@@ -70,6 +83,8 @@ void DriWindowDelegateImplTest::SetUp() {
drm_device_manager_.get(),
screen_manager_.get()));
window_delegate->Initialize();
+ window_delegate->OnBoundsChanged(
+ gfx::Rect(gfx::Size(kDefaultMode.hdisplay, kDefaultMode.vdisplay)));
window_delegate_manager_->AddWindowDelegate(kDefaultWidgetHandle,
window_delegate.Pass());
}
@@ -94,14 +109,7 @@ TEST_F(DriWindowDelegateImplTest, SetCursorImage) {
->SetCursor(cursor_bitmaps, gfx::Point(4, 2), 0);
SkBitmap cursor;
- std::vector<skia::RefPtr<SkSurface>> cursor_buffers;
- for (const skia::RefPtr<SkSurface>& cursor_buffer : dri_->buffers()) {
- if (cursor_buffer->width() == kDefaultCursorSize &&
- cursor_buffer->height() == kDefaultCursorSize) {
- cursor_buffers.push_back(cursor_buffer);
- }
- }
-
+ std::vector<skia::RefPtr<SkSurface>> cursor_buffers = GetCursorBuffers(dri_);
EXPECT_EQ(2u, cursor_buffers.size());
// Buffers 1 is the cursor backbuffer we just drew in.
@@ -119,3 +127,20 @@ TEST_F(DriWindowDelegateImplTest, SetCursorImage) {
}
}
}
+
+TEST_F(DriWindowDelegateImplTest, CheckCursorSurfaceAfterChangingDevice) {
+ // Add another device.
+ scoped_refptr<ui::MockDriWrapper> drm = new ui::MockDriWrapper();
+ screen_manager_->AddDisplayController(drm, kDefaultCrtc, kDefaultConnector);
+ screen_manager_->ConfigureDisplayController(
+ drm, kDefaultCrtc, kDefaultConnector,
+ gfx::Point(0, kDefaultMode.vdisplay), kDefaultMode);
+
+ // Move window to the display on the new device.
+ window_delegate_manager_->GetWindowDelegate(kDefaultWidgetHandle)
+ ->OnBoundsChanged(gfx::Rect(0, kDefaultMode.vdisplay,
+ kDefaultMode.hdisplay,
+ kDefaultMode.vdisplay));
+
+ EXPECT_EQ(2u, GetCursorBuffers(drm).size());
+}

Powered by Google App Engine
This is Rietveld 408576698