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

Side by Side Diff: components/mus/ws/user_display_manager_unittest.cc

Issue 2072343002: Changes how window manager obtains WindowTree from mus (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: include Created 4 years, 6 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 unified diff | Download patch
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 91 matching lines...) Expand 10 before | Expand all | Expand 10 after
102 scoped_refptr<SurfacesState>())); 102 scoped_refptr<SurfacesState>()));
103 window_server_delegate_.set_window_server(window_server_.get()); 103 window_server_delegate_.set_window_server(window_server_.get());
104 } 104 }
105 105
106 protected: 106 protected:
107 int32_t cursor_id_; 107 int32_t cursor_id_;
108 TestPlatformDisplayFactory platform_display_factory_; 108 TestPlatformDisplayFactory platform_display_factory_;
109 TestWindowServerDelegate window_server_delegate_; 109 TestWindowServerDelegate window_server_delegate_;
110 std::unique_ptr<WindowServer> window_server_; 110 std::unique_ptr<WindowServer> window_server_;
111 base::MessageLoop message_loop_; 111 base::MessageLoop message_loop_;
112 TestWindowManagerFactory test_window_manager_factory_;
113 112
114 private: 113 private:
115 DISALLOW_COPY_AND_ASSIGN(UserDisplayManagerTest); 114 DISALLOW_COPY_AND_ASSIGN(UserDisplayManagerTest);
116 }; 115 };
117 116
118 TEST_F(UserDisplayManagerTest, OnlyNotifyWhenFrameDecorationsSet) { 117 TEST_F(UserDisplayManagerTest, OnlyNotifyWhenFrameDecorationsSet) {
119 window_server_delegate_.set_num_displays_to_create(1); 118 window_server_delegate_.set_num_displays_to_create(1);
120 119
121 const UserId kUserId1 = "2"; 120 const UserId kUserId1 = "2";
122 TestDisplayManagerObserver display_manager_observer1; 121 TestDisplayManagerObserver display_manager_observer1;
123 DisplayManager* display_manager = window_server_->display_manager(); 122 DisplayManager* display_manager = window_server_->display_manager();
124 WindowManagerFactoryRegistryTestApi( 123 WindowManagerWindowTreeFactorySetTestApi(
125 window_server_->window_manager_factory_registry()) 124 window_server_->window_manager_window_tree_factory_set())
126 .AddService(kUserId1, &test_window_manager_factory_); 125 .Add(kUserId1);
127 UserDisplayManager* user_display_manager1 = 126 UserDisplayManager* user_display_manager1 =
128 display_manager->GetUserDisplayManager(kUserId1); 127 display_manager->GetUserDisplayManager(kUserId1);
129 ASSERT_TRUE(user_display_manager1); 128 ASSERT_TRUE(user_display_manager1);
130 UserDisplayManagerTestApi(user_display_manager1) 129 UserDisplayManagerTestApi(user_display_manager1)
131 .SetTestObserver(&display_manager_observer1); 130 .SetTestObserver(&display_manager_observer1);
132 // Observer should not have been notified yet. 131 // Observer should not have been notified yet.
133 EXPECT_EQ(std::string(), 132 EXPECT_EQ(std::string(),
134 display_manager_observer1.GetAndClearObserverCalls()); 133 display_manager_observer1.GetAndClearObserverCalls());
135 134
136 // Set the frame decoration values, which should trigger sending immediately. 135 // Set the frame decoration values, which should trigger sending immediately.
137 ASSERT_EQ(1u, display_manager->displays().size()); 136 ASSERT_EQ(1u, display_manager->displays().size());
138 Display* display1 = *display_manager->displays().begin(); 137 Display* display1 = *display_manager->displays().begin();
139 display1->GetWindowManagerStateForUser(kUserId1)->SetFrameDecorationValues( 138 display1->GetWindowManagerStateForUser(kUserId1)->SetFrameDecorationValues(
140 CreateDefaultFrameDecorationValues()); 139 CreateDefaultFrameDecorationValues());
141 EXPECT_EQ("OnDisplays 1", 140 EXPECT_EQ("OnDisplays 1",
142 display_manager_observer1.GetAndClearObserverCalls()); 141 display_manager_observer1.GetAndClearObserverCalls());
143 142
144 UserDisplayManagerTestApi(user_display_manager1).SetTestObserver(nullptr); 143 UserDisplayManagerTestApi(user_display_manager1).SetTestObserver(nullptr);
145 } 144 }
146 145
147 TEST_F(UserDisplayManagerTest, AddObserverAfterFrameDecorationsSet) { 146 TEST_F(UserDisplayManagerTest, AddObserverAfterFrameDecorationsSet) {
148 window_server_delegate_.set_num_displays_to_create(1); 147 window_server_delegate_.set_num_displays_to_create(1);
149 148
150 const UserId kUserId1 = "2"; 149 const UserId kUserId1 = "2";
151 TestDisplayManagerObserver display_manager_observer1; 150 TestDisplayManagerObserver display_manager_observer1;
152 DisplayManager* display_manager = window_server_->display_manager(); 151 DisplayManager* display_manager = window_server_->display_manager();
153 WindowManagerFactoryRegistryTestApi( 152 WindowManagerWindowTreeFactorySetTestApi(
154 window_server_->window_manager_factory_registry()) 153 window_server_->window_manager_window_tree_factory_set())
155 .AddService(kUserId1, &test_window_manager_factory_); 154 .Add(kUserId1);
156 UserDisplayManager* user_display_manager1 = 155 UserDisplayManager* user_display_manager1 =
157 display_manager->GetUserDisplayManager(kUserId1); 156 display_manager->GetUserDisplayManager(kUserId1);
158 ASSERT_TRUE(user_display_manager1); 157 ASSERT_TRUE(user_display_manager1);
159 ASSERT_EQ(1u, display_manager->displays().size()); 158 ASSERT_EQ(1u, display_manager->displays().size());
160 Display* display1 = *display_manager->displays().begin(); 159 Display* display1 = *display_manager->displays().begin();
161 display1->GetWindowManagerStateForUser(kUserId1)->SetFrameDecorationValues( 160 display1->GetWindowManagerStateForUser(kUserId1)->SetFrameDecorationValues(
162 CreateDefaultFrameDecorationValues()); 161 CreateDefaultFrameDecorationValues());
163 162
164 UserDisplayManagerTestApi(user_display_manager1) 163 UserDisplayManagerTestApi(user_display_manager1)
165 .SetTestObserver(&display_manager_observer1); 164 .SetTestObserver(&display_manager_observer1);
166 EXPECT_EQ("OnDisplays 1", 165 EXPECT_EQ("OnDisplays 1",
167 display_manager_observer1.GetAndClearObserverCalls()); 166 display_manager_observer1.GetAndClearObserverCalls());
168 167
169 UserDisplayManagerTestApi(user_display_manager1).SetTestObserver(nullptr); 168 UserDisplayManagerTestApi(user_display_manager1).SetTestObserver(nullptr);
170 } 169 }
171 170
172 TEST_F(UserDisplayManagerTest, AddRemoveDisplay) { 171 TEST_F(UserDisplayManagerTest, AddRemoveDisplay) {
173 window_server_delegate_.set_num_displays_to_create(1); 172 window_server_delegate_.set_num_displays_to_create(1);
174 173
175 const UserId kUserId1 = "2"; 174 const UserId kUserId1 = "2";
176 TestDisplayManagerObserver display_manager_observer1; 175 TestDisplayManagerObserver display_manager_observer1;
177 DisplayManager* display_manager = window_server_->display_manager(); 176 DisplayManager* display_manager = window_server_->display_manager();
178 WindowManagerFactoryRegistryTestApi( 177 WindowManagerWindowTreeFactorySetTestApi(
179 window_server_->window_manager_factory_registry()) 178 window_server_->window_manager_window_tree_factory_set())
180 .AddService(kUserId1, &test_window_manager_factory_); 179 .Add(kUserId1);
181 UserDisplayManager* user_display_manager1 = 180 UserDisplayManager* user_display_manager1 =
182 display_manager->GetUserDisplayManager(kUserId1); 181 display_manager->GetUserDisplayManager(kUserId1);
183 ASSERT_TRUE(user_display_manager1); 182 ASSERT_TRUE(user_display_manager1);
184 ASSERT_EQ(1u, display_manager->displays().size()); 183 ASSERT_EQ(1u, display_manager->displays().size());
185 Display* display1 = *display_manager->displays().begin(); 184 Display* display1 = *display_manager->displays().begin();
186 display1->GetWindowManagerStateForUser(kUserId1)->SetFrameDecorationValues( 185 display1->GetWindowManagerStateForUser(kUserId1)->SetFrameDecorationValues(
187 CreateDefaultFrameDecorationValues()); 186 CreateDefaultFrameDecorationValues());
188 UserDisplayManagerTestApi(user_display_manager1) 187 UserDisplayManagerTestApi(user_display_manager1)
189 .SetTestObserver(&display_manager_observer1); 188 .SetTestObserver(&display_manager_observer1);
190 EXPECT_EQ("OnDisplays 1", 189 EXPECT_EQ("OnDisplays 1",
(...skipping 19 matching lines...) Expand all
210 209
211 UserDisplayManagerTestApi(user_display_manager1).SetTestObserver(nullptr); 210 UserDisplayManagerTestApi(user_display_manager1).SetTestObserver(nullptr);
212 } 211 }
213 212
214 TEST_F(UserDisplayManagerTest, NegativeCoordinates) { 213 TEST_F(UserDisplayManagerTest, NegativeCoordinates) {
215 window_server_delegate_.set_num_displays_to_create(1); 214 window_server_delegate_.set_num_displays_to_create(1);
216 215
217 const UserId kUserId1 = "2"; 216 const UserId kUserId1 = "2";
218 TestDisplayManagerObserver display_manager_observer1; 217 TestDisplayManagerObserver display_manager_observer1;
219 DisplayManager* display_manager = window_server_->display_manager(); 218 DisplayManager* display_manager = window_server_->display_manager();
220 WindowManagerFactoryRegistryTestApi( 219 WindowManagerWindowTreeFactorySetTestApi(
221 window_server_->window_manager_factory_registry()) 220 window_server_->window_manager_window_tree_factory_set())
222 .AddService(kUserId1, &test_window_manager_factory_); 221 .Add(kUserId1);
223 UserDisplayManager* user_display_manager1 = 222 UserDisplayManager* user_display_manager1 =
224 display_manager->GetUserDisplayManager(kUserId1); 223 display_manager->GetUserDisplayManager(kUserId1);
225 ASSERT_TRUE(user_display_manager1); 224 ASSERT_TRUE(user_display_manager1);
226 225
227 user_display_manager1->OnMouseCursorLocationChanged(gfx::Point(-10, -11)); 226 user_display_manager1->OnMouseCursorLocationChanged(gfx::Point(-10, -11));
228 227
229 base::subtle::Atomic32* cursor_location_memory = nullptr; 228 base::subtle::Atomic32* cursor_location_memory = nullptr;
230 mojo::ScopedSharedBufferHandle handle = 229 mojo::ScopedSharedBufferHandle handle =
231 user_display_manager1->GetCursorLocationMemory(); 230 user_display_manager1->GetCursorLocationMemory();
232 MojoResult result = mojo::MapBuffer( 231 MojoResult result = mojo::MapBuffer(
233 handle.get(), 0, 232 handle.get(), 0,
234 sizeof(base::subtle::Atomic32), 233 sizeof(base::subtle::Atomic32),
235 reinterpret_cast<void**>(&cursor_location_memory), 234 reinterpret_cast<void**>(&cursor_location_memory),
236 MOJO_MAP_BUFFER_FLAG_NONE); 235 MOJO_MAP_BUFFER_FLAG_NONE);
237 ASSERT_EQ(MOJO_RESULT_OK, result); 236 ASSERT_EQ(MOJO_RESULT_OK, result);
238 237
239 base::subtle::Atomic32 location = 238 base::subtle::Atomic32 location =
240 base::subtle::NoBarrier_Load(cursor_location_memory); 239 base::subtle::NoBarrier_Load(cursor_location_memory);
241 EXPECT_EQ(gfx::Point(static_cast<int16_t>(location >> 16), 240 EXPECT_EQ(gfx::Point(static_cast<int16_t>(location >> 16),
242 static_cast<int16_t>(location & 0xFFFF)), 241 static_cast<int16_t>(location & 0xFFFF)),
243 gfx::Point(-10, -11)); 242 gfx::Point(-10, -11));
244 } 243 }
245 244
246 } // namespace test 245 } // namespace test
247 } // namespace ws 246 } // namespace ws
248 } // namespace mus 247 } // namespace mus
OLDNEW
« no previous file with comments | « components/mus/ws/user_display_manager.cc ('k') | components/mus/ws/window_manager_client_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698