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

Side by Side Diff: services/ui/ws/user_display_manager_unittest.cc

Issue 2549503002: Rename PlatformScreen to ScreenManager. (Closed)
Patch Set: Rebase. 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 unified diff | Download patch
« no previous file with comments | « services/ui/ws/user_display_manager.cc ('k') | services/ui/ws/window_manager_state_unittest.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2016 The Chromium Authors. All rights reserved. 1 // Copyright 2016 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "services/ui/ws/user_display_manager.h" 5 #include "services/ui/ws/user_display_manager.h"
6 6
7 #include <stdint.h> 7 #include <stdint.h>
8 8
9 #include <string> 9 #include <string>
10 10
11 #include "base/atomicops.h" 11 #include "base/atomicops.h"
12 #include "base/macros.h" 12 #include "base/macros.h"
13 #include "base/message_loop/message_loop.h" 13 #include "base/message_loop/message_loop.h"
14 #include "base/strings/string_number_conversions.h" 14 #include "base/strings/string_number_conversions.h"
15 #include "mojo/public/cpp/bindings/binding.h" 15 #include "mojo/public/cpp/bindings/binding.h"
16 #include "mojo/public/cpp/bindings/interface_request.h" 16 #include "mojo/public/cpp/bindings/interface_request.h"
17 #include "services/ui/common/task_runner_test_base.h" 17 #include "services/ui/common/task_runner_test_base.h"
18 #include "services/ui/common/types.h" 18 #include "services/ui/common/types.h"
19 #include "services/ui/common/util.h" 19 #include "services/ui/common/util.h"
20 #include "services/ui/display/platform_screen.h" 20 #include "services/ui/display/screen_manager.h"
21 #include "services/ui/ws/display_manager.h" 21 #include "services/ui/ws/display_manager.h"
22 #include "services/ui/ws/ids.h" 22 #include "services/ui/ws/ids.h"
23 #include "services/ui/ws/server_window.h" 23 #include "services/ui/ws/server_window.h"
24 #include "services/ui/ws/test_utils.h" 24 #include "services/ui/ws/test_utils.h"
25 #include "services/ui/ws/window_manager_state.h" 25 #include "services/ui/ws/window_manager_state.h"
26 #include "services/ui/ws/window_manager_window_tree_factory_set.h" 26 #include "services/ui/ws/window_manager_window_tree_factory_set.h"
27 #include "services/ui/ws/window_server.h" 27 #include "services/ui/ws/window_server.h"
28 #include "services/ui/ws/window_server_delegate.h" 28 #include "services/ui/ws/window_server_delegate.h"
29 #include "services/ui/ws/window_tree.h" 29 #include "services/ui/ws/window_tree.h"
30 #include "testing/gtest/include/gtest/gtest.h" 30 #include "testing/gtest/include/gtest/gtest.h"
(...skipping 72 matching lines...) Expand 10 before | Expand all | Expand 10 after
103 class UserDisplayManagerTest : public TaskRunnerTestBase { 103 class UserDisplayManagerTest : public TaskRunnerTestBase {
104 public: 104 public:
105 UserDisplayManagerTest() {} 105 UserDisplayManagerTest() {}
106 ~UserDisplayManagerTest() override {} 106 ~UserDisplayManagerTest() override {}
107 107
108 WindowServer* window_server() { return ws_test_helper_.window_server(); } 108 WindowServer* window_server() { return ws_test_helper_.window_server(); }
109 TestWindowServerDelegate* window_server_delegate() { 109 TestWindowServerDelegate* window_server_delegate() {
110 return ws_test_helper_.window_server_delegate(); 110 return ws_test_helper_.window_server_delegate();
111 } 111 }
112 112
113 TestPlatformScreen& platform_screen() { return platform_screen_; } 113 TestScreenManager& screen_manager() { return screen_manager_; }
114 114
115 private: 115 private:
116 // testing::Test: 116 // testing::Test:
117 void SetUp() override { 117 void SetUp() override {
118 TaskRunnerTestBase::SetUp(); 118 TaskRunnerTestBase::SetUp();
119 platform_screen_.Init(window_server()->display_manager()); 119 screen_manager_.Init(window_server()->display_manager());
120 } 120 }
121 121
122 WindowServerTestHelper ws_test_helper_; 122 WindowServerTestHelper ws_test_helper_;
123 TestPlatformScreen platform_screen_; 123 TestScreenManager screen_manager_;
124 DISALLOW_COPY_AND_ASSIGN(UserDisplayManagerTest); 124 DISALLOW_COPY_AND_ASSIGN(UserDisplayManagerTest);
125 }; 125 };
126 126
127 TEST_F(UserDisplayManagerTest, OnlyNotifyWhenFrameDecorationsSet) { 127 TEST_F(UserDisplayManagerTest, OnlyNotifyWhenFrameDecorationsSet) {
128 platform_screen().AddDisplay(); 128 screen_manager().AddDisplay();
129 129
130 TestDisplayManagerObserver display_manager_observer1; 130 TestDisplayManagerObserver display_manager_observer1;
131 DisplayManager* display_manager = window_server()->display_manager(); 131 DisplayManager* display_manager = window_server()->display_manager();
132 AddWindowManager(window_server(), kUserId1); 132 AddWindowManager(window_server(), kUserId1);
133 UserDisplayManager* user_display_manager1 = 133 UserDisplayManager* user_display_manager1 =
134 display_manager->GetUserDisplayManager(kUserId1); 134 display_manager->GetUserDisplayManager(kUserId1);
135 ASSERT_TRUE(user_display_manager1); 135 ASSERT_TRUE(user_display_manager1);
136 user_display_manager1->AddObserver(display_manager_observer1.GetPtr()); 136 user_display_manager1->AddObserver(display_manager_observer1.GetPtr());
137 RunUntilIdle(); 137 RunUntilIdle();
138 138
139 // Observer should not have been notified yet. 139 // Observer should not have been notified yet.
140 EXPECT_EQ(std::string(), 140 EXPECT_EQ(std::string(),
141 display_manager_observer1.GetAndClearObserverCalls()); 141 display_manager_observer1.GetAndClearObserverCalls());
142 142
143 // Set the frame decoration values, which should trigger sending immediately. 143 // Set the frame decoration values, which should trigger sending immediately.
144 ASSERT_EQ(1u, display_manager->displays().size()); 144 ASSERT_EQ(1u, display_manager->displays().size());
145 window_server() 145 window_server()
146 ->window_manager_window_tree_factory_set() 146 ->window_manager_window_tree_factory_set()
147 ->GetWindowManagerStateForUser(kUserId1) 147 ->GetWindowManagerStateForUser(kUserId1)
148 ->SetFrameDecorationValues(CreateDefaultFrameDecorationValues()); 148 ->SetFrameDecorationValues(CreateDefaultFrameDecorationValues());
149 RunUntilIdle(); 149 RunUntilIdle();
150 150
151 EXPECT_EQ("OnDisplays 1", 151 EXPECT_EQ("OnDisplays 1",
152 display_manager_observer1.GetAndClearObserverCalls()); 152 display_manager_observer1.GetAndClearObserverCalls());
153 } 153 }
154 154
155 TEST_F(UserDisplayManagerTest, AddObserverAfterFrameDecorationsSet) { 155 TEST_F(UserDisplayManagerTest, AddObserverAfterFrameDecorationsSet) {
156 platform_screen().AddDisplay(); 156 screen_manager().AddDisplay();
157 157
158 TestDisplayManagerObserver display_manager_observer1; 158 TestDisplayManagerObserver display_manager_observer1;
159 DisplayManager* display_manager = window_server()->display_manager(); 159 DisplayManager* display_manager = window_server()->display_manager();
160 AddWindowManager(window_server(), kUserId1); 160 AddWindowManager(window_server(), kUserId1);
161 UserDisplayManager* user_display_manager1 = 161 UserDisplayManager* user_display_manager1 =
162 display_manager->GetUserDisplayManager(kUserId1); 162 display_manager->GetUserDisplayManager(kUserId1);
163 ASSERT_TRUE(user_display_manager1); 163 ASSERT_TRUE(user_display_manager1);
164 ASSERT_EQ(1u, display_manager->displays().size()); 164 ASSERT_EQ(1u, display_manager->displays().size());
165 window_server() 165 window_server()
166 ->window_manager_window_tree_factory_set() 166 ->window_manager_window_tree_factory_set()
167 ->GetWindowManagerStateForUser(kUserId1) 167 ->GetWindowManagerStateForUser(kUserId1)
168 ->SetFrameDecorationValues(CreateDefaultFrameDecorationValues()); 168 ->SetFrameDecorationValues(CreateDefaultFrameDecorationValues());
169 169
170 user_display_manager1->AddObserver(display_manager_observer1.GetPtr()); 170 user_display_manager1->AddObserver(display_manager_observer1.GetPtr());
171 RunUntilIdle(); 171 RunUntilIdle();
172 172
173 EXPECT_EQ("OnDisplays 1", 173 EXPECT_EQ("OnDisplays 1",
174 display_manager_observer1.GetAndClearObserverCalls()); 174 display_manager_observer1.GetAndClearObserverCalls());
175 } 175 }
176 176
177 TEST_F(UserDisplayManagerTest, AddRemoveDisplay) { 177 TEST_F(UserDisplayManagerTest, AddRemoveDisplay) {
178 platform_screen().AddDisplay(); 178 screen_manager().AddDisplay();
179 179
180 TestDisplayManagerObserver display_manager_observer1; 180 TestDisplayManagerObserver display_manager_observer1;
181 DisplayManager* display_manager = window_server()->display_manager(); 181 DisplayManager* display_manager = window_server()->display_manager();
182 AddWindowManager(window_server(), kUserId1); 182 AddWindowManager(window_server(), kUserId1);
183 UserDisplayManager* user_display_manager1 = 183 UserDisplayManager* user_display_manager1 =
184 display_manager->GetUserDisplayManager(kUserId1); 184 display_manager->GetUserDisplayManager(kUserId1);
185 ASSERT_TRUE(user_display_manager1); 185 ASSERT_TRUE(user_display_manager1);
186 ASSERT_EQ(1u, display_manager->displays().size()); 186 ASSERT_EQ(1u, display_manager->displays().size());
187 window_server() 187 window_server()
188 ->window_manager_window_tree_factory_set() 188 ->window_manager_window_tree_factory_set()
189 ->GetWindowManagerStateForUser(kUserId1) 189 ->GetWindowManagerStateForUser(kUserId1)
190 ->SetFrameDecorationValues(CreateDefaultFrameDecorationValues()); 190 ->SetFrameDecorationValues(CreateDefaultFrameDecorationValues());
191 user_display_manager1->AddObserver(display_manager_observer1.GetPtr()); 191 user_display_manager1->AddObserver(display_manager_observer1.GetPtr());
192 RunUntilIdle(); 192 RunUntilIdle();
193 193
194 EXPECT_EQ("OnDisplays 1", 194 EXPECT_EQ("OnDisplays 1",
195 display_manager_observer1.GetAndClearObserverCalls()); 195 display_manager_observer1.GetAndClearObserverCalls());
196 196
197 // Add another display. 197 // Add another display.
198 const int64_t second_display_id = platform_screen().AddDisplay(); 198 const int64_t second_display_id = screen_manager().AddDisplay();
199 RunUntilIdle(); 199 RunUntilIdle();
200 200
201 // Observer should be notified immediately as frame decorations were set. 201 // Observer should be notified immediately as frame decorations were set.
202 EXPECT_EQ("OnDisplaysChanged 2", 202 EXPECT_EQ("OnDisplaysChanged 2",
203 display_manager_observer1.GetAndClearObserverCalls()); 203 display_manager_observer1.GetAndClearObserverCalls());
204 204
205 // Remove the display and verify observer is notified. 205 // Remove the display and verify observer is notified.
206 platform_screen().RemoveDisplay(second_display_id); 206 screen_manager().RemoveDisplay(second_display_id);
207 RunUntilIdle(); 207 RunUntilIdle();
208 208
209 EXPECT_EQ("OnDisplayRemoved 2", 209 EXPECT_EQ("OnDisplayRemoved 2",
210 display_manager_observer1.GetAndClearObserverCalls()); 210 display_manager_observer1.GetAndClearObserverCalls());
211 } 211 }
212 212
213 TEST_F(UserDisplayManagerTest, NegativeCoordinates) { 213 TEST_F(UserDisplayManagerTest, NegativeCoordinates) {
214 platform_screen().AddDisplay(); 214 screen_manager().AddDisplay();
215 215
216 TestDisplayManagerObserver display_manager_observer1; 216 TestDisplayManagerObserver display_manager_observer1;
217 DisplayManager* display_manager = window_server()->display_manager(); 217 DisplayManager* display_manager = window_server()->display_manager();
218 AddWindowManager(window_server(), kUserId1); 218 AddWindowManager(window_server(), kUserId1);
219 UserDisplayManager* user_display_manager1 = 219 UserDisplayManager* user_display_manager1 =
220 display_manager->GetUserDisplayManager(kUserId1); 220 display_manager->GetUserDisplayManager(kUserId1);
221 ASSERT_TRUE(user_display_manager1); 221 ASSERT_TRUE(user_display_manager1);
222 222
223 user_display_manager1->OnMouseCursorLocationChanged(gfx::Point(-10, -11)); 223 user_display_manager1->OnMouseCursorLocationChanged(gfx::Point(-10, -11));
224 224
225 base::subtle::Atomic32* cursor_location_memory = nullptr; 225 base::subtle::Atomic32* cursor_location_memory = nullptr;
226 mojo::ScopedSharedBufferHandle handle = 226 mojo::ScopedSharedBufferHandle handle =
227 user_display_manager1->GetCursorLocationMemory(); 227 user_display_manager1->GetCursorLocationMemory();
228 mojo::ScopedSharedBufferMapping cursor_location_mapping = 228 mojo::ScopedSharedBufferMapping cursor_location_mapping =
229 handle->Map(sizeof(base::subtle::Atomic32)); 229 handle->Map(sizeof(base::subtle::Atomic32));
230 ASSERT_TRUE(cursor_location_mapping); 230 ASSERT_TRUE(cursor_location_mapping);
231 cursor_location_memory = 231 cursor_location_memory =
232 reinterpret_cast<base::subtle::Atomic32*>(cursor_location_mapping.get()); 232 reinterpret_cast<base::subtle::Atomic32*>(cursor_location_mapping.get());
233 233
234 base::subtle::Atomic32 location = 234 base::subtle::Atomic32 location =
235 base::subtle::NoBarrier_Load(cursor_location_memory); 235 base::subtle::NoBarrier_Load(cursor_location_memory);
236 EXPECT_EQ(gfx::Point(static_cast<int16_t>(location >> 16), 236 EXPECT_EQ(gfx::Point(static_cast<int16_t>(location >> 16),
237 static_cast<int16_t>(location & 0xFFFF)), 237 static_cast<int16_t>(location & 0xFFFF)),
238 gfx::Point(-10, -11)); 238 gfx::Point(-10, -11));
239 } 239 }
240 240
241 } // namespace test 241 } // namespace test
242 } // namespace ws 242 } // namespace ws
243 } // namespace ui 243 } // namespace ui
OLDNEW
« no previous file with comments | « services/ui/ws/user_display_manager.cc ('k') | services/ui/ws/window_manager_state_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698