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

Side by Side Diff: services/ui/ws/user_display_manager_unittest.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 unified diff | Download patch
« no previous file with comments | « services/ui/ws/test_utils.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 <stdint.h> 5 #include <stdint.h>
6 6
7 #include <string> 7 #include <string>
8 8
9 #include "base/atomicops.h" 9 #include "base/atomicops.h"
10 #include "base/macros.h" 10 #include "base/macros.h"
(...skipping 18 matching lines...) Expand all
29 #include "services/ui/ws/window_tree.h" 29 #include "services/ui/ws/window_tree.h"
30 #include "services/ui/ws/window_tree_binding.h" 30 #include "services/ui/ws/window_tree_binding.h"
31 #include "testing/gtest/include/gtest/gtest.h" 31 #include "testing/gtest/include/gtest/gtest.h"
32 #include "ui/gfx/geometry/rect.h" 32 #include "ui/gfx/geometry/rect.h"
33 33
34 namespace ui { 34 namespace ui {
35 namespace ws { 35 namespace ws {
36 namespace test { 36 namespace test {
37 namespace { 37 namespace {
38 38
39 // Stub PlatformScreen implementation so PlatformScreen::GetInstance() doesn't
40 // fail.
41 class TestPlatformScreen : public display::PlatformScreen {
42 public:
43 TestPlatformScreen() {}
44 ~TestPlatformScreen() override {}
45
46 // display::PlatformScreen:
47 void AddInterfaces(service_manager::InterfaceRegistry* registry) override {}
48 void Init(display::PlatformScreenDelegate* delegate) override {}
49 void RequestCloseDisplay(int64_t display_id) override {}
50 int64_t GetPrimaryDisplayId() const override { return 1; }
51
52 private:
53 DISALLOW_COPY_AND_ASSIGN(TestPlatformScreen);
54 };
55
56 class TestDisplayManagerObserver : public mojom::DisplayManagerObserver { 39 class TestDisplayManagerObserver : public mojom::DisplayManagerObserver {
57 public: 40 public:
58 TestDisplayManagerObserver() {} 41 TestDisplayManagerObserver() {}
59 ~TestDisplayManagerObserver() override {} 42 ~TestDisplayManagerObserver() override {}
60 43
61 std::string GetAndClearObserverCalls() { 44 std::string GetAndClearObserverCalls() {
62 std::string result; 45 std::string result;
63 std::swap(observer_calls_, result); 46 std::swap(observer_calls_, result);
64 return result; 47 return result;
65 } 48 }
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after
114 class UserDisplayManagerTest : public testing::Test { 97 class UserDisplayManagerTest : public testing::Test {
115 public: 98 public:
116 UserDisplayManagerTest() {} 99 UserDisplayManagerTest() {}
117 ~UserDisplayManagerTest() override {} 100 ~UserDisplayManagerTest() override {}
118 101
119 WindowServer* window_server() { return ws_test_helper_.window_server(); } 102 WindowServer* window_server() { return ws_test_helper_.window_server(); }
120 TestWindowServerDelegate* window_server_delegate() { 103 TestWindowServerDelegate* window_server_delegate() {
121 return ws_test_helper_.window_server_delegate(); 104 return ws_test_helper_.window_server_delegate();
122 } 105 }
123 106
107 TestPlatformScreen& platform_screen() { return platform_screen_; }
108
124 private: 109 private:
110 // testing::Test:
111 void SetUp() override {
112 platform_screen_.Init(window_server()->display_manager());
113 }
114
115 WindowServerTestHelper ws_test_helper_;
125 TestPlatformScreen platform_screen_; 116 TestPlatformScreen platform_screen_;
126 WindowServerTestHelper ws_test_helper_;
127 DISALLOW_COPY_AND_ASSIGN(UserDisplayManagerTest); 117 DISALLOW_COPY_AND_ASSIGN(UserDisplayManagerTest);
128 }; 118 };
129 119
130 TEST_F(UserDisplayManagerTest, OnlyNotifyWhenFrameDecorationsSet) { 120 TEST_F(UserDisplayManagerTest, OnlyNotifyWhenFrameDecorationsSet) {
131 window_server_delegate()->CreateDisplays(1); 121 platform_screen().AddDisplay();
132 122
133 const UserId kUserId1 = "2"; 123 const UserId kUserId1 = "2";
134 TestDisplayManagerObserver display_manager_observer1; 124 TestDisplayManagerObserver display_manager_observer1;
135 DisplayManager* display_manager = window_server()->display_manager(); 125 DisplayManager* display_manager = window_server()->display_manager();
136 AddWindowManager(window_server(), kUserId1); 126 AddWindowManager(window_server(), kUserId1);
137 UserDisplayManager* user_display_manager1 = 127 UserDisplayManager* user_display_manager1 =
138 display_manager->GetUserDisplayManager(kUserId1); 128 display_manager->GetUserDisplayManager(kUserId1);
139 ASSERT_TRUE(user_display_manager1); 129 ASSERT_TRUE(user_display_manager1);
140 UserDisplayManagerTestApi(user_display_manager1) 130 UserDisplayManagerTestApi(user_display_manager1)
141 .SetTestObserver(&display_manager_observer1); 131 .SetTestObserver(&display_manager_observer1);
142 // Observer should not have been notified yet. 132 // Observer should not have been notified yet.
143 EXPECT_EQ(std::string(), 133 EXPECT_EQ(std::string(),
144 display_manager_observer1.GetAndClearObserverCalls()); 134 display_manager_observer1.GetAndClearObserverCalls());
145 135
146 // Set the frame decoration values, which should trigger sending immediately. 136 // Set the frame decoration values, which should trigger sending immediately.
147 ASSERT_EQ(1u, display_manager->displays().size()); 137 ASSERT_EQ(1u, display_manager->displays().size());
148 window_server() 138 window_server()
149 ->window_manager_window_tree_factory_set() 139 ->window_manager_window_tree_factory_set()
150 ->GetWindowManagerStateForUser(kUserId1) 140 ->GetWindowManagerStateForUser(kUserId1)
151 ->SetFrameDecorationValues(CreateDefaultFrameDecorationValues()); 141 ->SetFrameDecorationValues(CreateDefaultFrameDecorationValues());
152 EXPECT_EQ("OnDisplays 1", 142 EXPECT_EQ("OnDisplays 1",
153 display_manager_observer1.GetAndClearObserverCalls()); 143 display_manager_observer1.GetAndClearObserverCalls());
154 144
155 UserDisplayManagerTestApi(user_display_manager1).SetTestObserver(nullptr); 145 UserDisplayManagerTestApi(user_display_manager1).SetTestObserver(nullptr);
156 } 146 }
157 147
158 TEST_F(UserDisplayManagerTest, AddObserverAfterFrameDecorationsSet) { 148 TEST_F(UserDisplayManagerTest, AddObserverAfterFrameDecorationsSet) {
159 window_server_delegate()->CreateDisplays(1); 149 platform_screen().AddDisplay();
160 150
161 const UserId kUserId1 = "2"; 151 const UserId kUserId1 = "2";
162 TestDisplayManagerObserver display_manager_observer1; 152 TestDisplayManagerObserver display_manager_observer1;
163 DisplayManager* display_manager = window_server()->display_manager(); 153 DisplayManager* display_manager = window_server()->display_manager();
164 AddWindowManager(window_server(), kUserId1); 154 AddWindowManager(window_server(), kUserId1);
165 UserDisplayManager* user_display_manager1 = 155 UserDisplayManager* user_display_manager1 =
166 display_manager->GetUserDisplayManager(kUserId1); 156 display_manager->GetUserDisplayManager(kUserId1);
167 ASSERT_TRUE(user_display_manager1); 157 ASSERT_TRUE(user_display_manager1);
168 ASSERT_EQ(1u, display_manager->displays().size()); 158 ASSERT_EQ(1u, display_manager->displays().size());
169 window_server() 159 window_server()
170 ->window_manager_window_tree_factory_set() 160 ->window_manager_window_tree_factory_set()
171 ->GetWindowManagerStateForUser(kUserId1) 161 ->GetWindowManagerStateForUser(kUserId1)
172 ->SetFrameDecorationValues(CreateDefaultFrameDecorationValues()); 162 ->SetFrameDecorationValues(CreateDefaultFrameDecorationValues());
173 163
174 UserDisplayManagerTestApi(user_display_manager1) 164 UserDisplayManagerTestApi(user_display_manager1)
175 .SetTestObserver(&display_manager_observer1); 165 .SetTestObserver(&display_manager_observer1);
176 EXPECT_EQ("OnDisplays 1", 166 EXPECT_EQ("OnDisplays 1",
177 display_manager_observer1.GetAndClearObserverCalls()); 167 display_manager_observer1.GetAndClearObserverCalls());
178 168
179 UserDisplayManagerTestApi(user_display_manager1).SetTestObserver(nullptr); 169 UserDisplayManagerTestApi(user_display_manager1).SetTestObserver(nullptr);
180 } 170 }
181 171
182 TEST_F(UserDisplayManagerTest, AddRemoveDisplay) { 172 TEST_F(UserDisplayManagerTest, AddRemoveDisplay) {
183 window_server_delegate()->CreateDisplays(1); 173 platform_screen().AddDisplay();
184 174
185 const UserId kUserId1 = "2"; 175 const UserId kUserId1 = "2";
186 TestDisplayManagerObserver display_manager_observer1; 176 TestDisplayManagerObserver display_manager_observer1;
187 DisplayManager* display_manager = window_server()->display_manager(); 177 DisplayManager* display_manager = window_server()->display_manager();
188 AddWindowManager(window_server(), kUserId1); 178 AddWindowManager(window_server(), kUserId1);
189 UserDisplayManager* user_display_manager1 = 179 UserDisplayManager* user_display_manager1 =
190 display_manager->GetUserDisplayManager(kUserId1); 180 display_manager->GetUserDisplayManager(kUserId1);
191 ASSERT_TRUE(user_display_manager1); 181 ASSERT_TRUE(user_display_manager1);
192 ASSERT_EQ(1u, display_manager->displays().size()); 182 ASSERT_EQ(1u, display_manager->displays().size());
193 window_server() 183 window_server()
194 ->window_manager_window_tree_factory_set() 184 ->window_manager_window_tree_factory_set()
195 ->GetWindowManagerStateForUser(kUserId1) 185 ->GetWindowManagerStateForUser(kUserId1)
196 ->SetFrameDecorationValues(CreateDefaultFrameDecorationValues()); 186 ->SetFrameDecorationValues(CreateDefaultFrameDecorationValues());
197 UserDisplayManagerTestApi(user_display_manager1) 187 UserDisplayManagerTestApi(user_display_manager1)
198 .SetTestObserver(&display_manager_observer1); 188 .SetTestObserver(&display_manager_observer1);
199 EXPECT_EQ("OnDisplays 1", 189 EXPECT_EQ("OnDisplays 1",
200 display_manager_observer1.GetAndClearObserverCalls()); 190 display_manager_observer1.GetAndClearObserverCalls());
201 191
202 // Add another display. 192 // Add another display.
203 Display* display2 = new Display(window_server()); 193 const int64_t second_display_id = platform_screen().AddDisplay();
204 display2->Init(PlatformDisplayInitParams(), nullptr);
205 194
206 // Observer should be notified immediately as frame decorations were set. 195 // Observer should be notified immediately as frame decorations were set.
207 EXPECT_EQ("OnDisplaysChanged 2", 196 EXPECT_EQ("OnDisplaysChanged 2",
208 display_manager_observer1.GetAndClearObserverCalls()); 197 display_manager_observer1.GetAndClearObserverCalls());
209 198
210 // Remove the display and verify observer is notified. 199 // Remove the display and verify observer is notified.
211 display_manager->DestroyDisplay(display2); 200 platform_screen().RemoveDisplay(second_display_id);
212 display2 = nullptr;
213 EXPECT_EQ("OnDisplayRemoved 2", 201 EXPECT_EQ("OnDisplayRemoved 2",
214 display_manager_observer1.GetAndClearObserverCalls()); 202 display_manager_observer1.GetAndClearObserverCalls());
215 203
216 UserDisplayManagerTestApi(user_display_manager1).SetTestObserver(nullptr); 204 UserDisplayManagerTestApi(user_display_manager1).SetTestObserver(nullptr);
217 } 205 }
218 206
219 TEST_F(UserDisplayManagerTest, NegativeCoordinates) { 207 TEST_F(UserDisplayManagerTest, NegativeCoordinates) {
220 window_server_delegate()->CreateDisplays(1); 208 platform_screen().AddDisplay();
221 209
222 const UserId kUserId1 = "2"; 210 const UserId kUserId1 = "2";
223 TestDisplayManagerObserver display_manager_observer1; 211 TestDisplayManagerObserver display_manager_observer1;
224 DisplayManager* display_manager = window_server()->display_manager(); 212 DisplayManager* display_manager = window_server()->display_manager();
225 AddWindowManager(window_server(), kUserId1); 213 AddWindowManager(window_server(), kUserId1);
226 UserDisplayManager* user_display_manager1 = 214 UserDisplayManager* user_display_manager1 =
227 display_manager->GetUserDisplayManager(kUserId1); 215 display_manager->GetUserDisplayManager(kUserId1);
228 ASSERT_TRUE(user_display_manager1); 216 ASSERT_TRUE(user_display_manager1);
229 217
230 user_display_manager1->OnMouseCursorLocationChanged(gfx::Point(-10, -11)); 218 user_display_manager1->OnMouseCursorLocationChanged(gfx::Point(-10, -11));
(...skipping 10 matching lines...) Expand all
241 base::subtle::Atomic32 location = 229 base::subtle::Atomic32 location =
242 base::subtle::NoBarrier_Load(cursor_location_memory); 230 base::subtle::NoBarrier_Load(cursor_location_memory);
243 EXPECT_EQ(gfx::Point(static_cast<int16_t>(location >> 16), 231 EXPECT_EQ(gfx::Point(static_cast<int16_t>(location >> 16),
244 static_cast<int16_t>(location & 0xFFFF)), 232 static_cast<int16_t>(location & 0xFFFF)),
245 gfx::Point(-10, -11)); 233 gfx::Point(-10, -11));
246 } 234 }
247 235
248 } // namespace test 236 } // namespace test
249 } // namespace ws 237 } // namespace ws
250 } // namespace ui 238 } // namespace ui
OLDNEW
« no previous file with comments | « services/ui/ws/test_utils.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