OLD | NEW |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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 "athena/wm/window_list_provider_impl.h" | 5 #include "athena/wm/window_list_provider_impl.h" |
6 | 6 |
7 #include <algorithm> | 7 #include <algorithm> |
8 | 8 |
9 #include "athena/test/athena_test_base.h" | 9 #include "athena/test/athena_test_base.h" |
10 #include "athena/wm/public/window_list_provider_observer.h" | 10 #include "athena/wm/public/window_list_provider_observer.h" |
(...skipping 188 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
199 container->AddChild(window3.get()); | 199 container->AddChild(window3.get()); |
200 // Make a copy of the window-list in the original order. | 200 // Make a copy of the window-list in the original order. |
201 aura::Window::Windows original_order = list_provider->GetWindowList(); | 201 aura::Window::Windows original_order = list_provider->GetWindowList(); |
202 ASSERT_EQ(3U, original_order.size()); | 202 ASSERT_EQ(3U, original_order.size()); |
203 EXPECT_EQ(original_order[0], window1.get()); | 203 EXPECT_EQ(original_order[0], window1.get()); |
204 EXPECT_EQ(original_order[1], window2.get()); | 204 EXPECT_EQ(original_order[1], window2.get()); |
205 EXPECT_EQ(original_order[2], window3.get()); | 205 EXPECT_EQ(original_order[2], window3.get()); |
206 | 206 |
207 EXPECT_EQ(0, observer.get()->calls()); | 207 EXPECT_EQ(0, observer.get()->calls()); |
208 | 208 |
209 // Move 2 to the front. | 209 // Move 1 (from the back) in front of 2. |
210 list_provider->MoveToFront(window2.get()); | 210 list_provider->StackWindowFrontOf(window1.get(), window2.get()); |
211 EXPECT_EQ("1 3 2", GetWindowOrder(original_order, | 211 EXPECT_EQ("2 1 3", GetWindowOrder(original_order, |
212 list_provider->GetWindowList())); | 212 list_provider->GetWindowList())); |
213 EXPECT_EQ(1, observer->calls()); | 213 EXPECT_EQ(1, observer->calls()); |
214 | 214 |
215 // Move 2 to the front again. Should not change anything. | 215 // Move 3 (from the front) in front of 2. |
216 list_provider->MoveToFront(window2.get()); | 216 list_provider->StackWindowFrontOf(window3.get(), window2.get()); |
217 EXPECT_EQ("1 3 2", GetWindowOrder(original_order, | 217 EXPECT_EQ("2 3 1", GetWindowOrder(original_order, |
218 list_provider->GetWindowList())); | 218 list_provider->GetWindowList())); |
219 EXPECT_EQ(1, observer->calls()); | 219 EXPECT_EQ(2, observer->calls()); |
| 220 |
| 221 // Move 1 (from the front) behind 2. |
| 222 list_provider->StackWindowBehindTo(window1.get(), window2.get()); |
| 223 EXPECT_EQ("1 2 3", GetWindowOrder(original_order, |
| 224 list_provider->GetWindowList())); |
| 225 EXPECT_EQ(3, observer->calls()); |
220 | 226 |
221 // Move 1 (from the back) in front of 3. | 227 // Move 1 (from the back) in front of 3. |
222 list_provider->StackWindowFrontOf(window1.get(), window3.get()); | 228 list_provider->StackWindowFrontOf(window1.get(), window3.get()); |
223 EXPECT_EQ("3 1 2", GetWindowOrder(original_order, | 229 EXPECT_EQ("2 3 1", GetWindowOrder(original_order, |
224 list_provider->GetWindowList())); | |
225 EXPECT_EQ(2, observer->calls()); | |
226 | |
227 // Move 2 (from the front) in front of 3. | |
228 list_provider->StackWindowFrontOf(window2.get(), window3.get()); | |
229 EXPECT_EQ("3 2 1", GetWindowOrder(original_order, | |
230 list_provider->GetWindowList())); | |
231 EXPECT_EQ(3, observer->calls()); | |
232 | |
233 // Move 1 (from the front) behind 3. | |
234 list_provider->StackWindowBehindTo(window1.get(), window3.get()); | |
235 EXPECT_EQ("1 3 2", GetWindowOrder(original_order, | |
236 list_provider->GetWindowList())); | 230 list_provider->GetWindowList())); |
237 EXPECT_EQ(4, observer->calls()); | 231 EXPECT_EQ(4, observer->calls()); |
238 | 232 |
239 // Move 1 (from the back) in front of 2. | 233 // Test that no change should also report no call. |
240 list_provider->StackWindowFrontOf(window1.get(), window2.get()); | 234 list_provider->StackWindowFrontOf(window1.get(), window3.get()); |
241 EXPECT_EQ("3 2 1", GetWindowOrder(original_order, | 235 EXPECT_EQ("2 3 1", GetWindowOrder(original_order, |
242 list_provider->GetWindowList())); | 236 list_provider->GetWindowList())); |
243 EXPECT_EQ(5, observer->calls()); | 237 EXPECT_EQ(4, observer->calls()); |
244 | 238 list_provider->StackWindowBehindTo(window3.get(), window1.get()); |
245 // Test that no change should also report no call. | 239 EXPECT_EQ("2 3 1", GetWindowOrder(original_order, |
246 list_provider->StackWindowFrontOf(window1.get(), window2.get()); | |
247 EXPECT_EQ("3 2 1", GetWindowOrder(original_order, | |
248 list_provider->GetWindowList())); | 240 list_provider->GetWindowList())); |
249 EXPECT_EQ(5, observer->calls()); | 241 EXPECT_EQ(4, observer->calls()); |
250 list_provider->StackWindowBehindTo(window2.get(), window1.get()); | |
251 EXPECT_EQ("3 2 1", GetWindowOrder(original_order, | |
252 list_provider->GetWindowList())); | |
253 EXPECT_EQ(5, observer->calls()); | |
254 } | 242 } |
255 | 243 |
256 TEST_F(WindowListProviderImplTest, TestWindowRemovalNotification) { | 244 TEST_F(WindowListProviderImplTest, TestWindowRemovalNotification) { |
257 aura::test::TestWindowDelegate delegate; | 245 aura::test::TestWindowDelegate delegate; |
258 scoped_ptr<aura::Window> container(new aura::Window(&delegate)); | 246 scoped_ptr<aura::Window> container(new aura::Window(&delegate)); |
259 | 247 |
260 scoped_ptr<aura::Window> window1 = | 248 scoped_ptr<aura::Window> window1 = |
261 CreateWindow(&delegate, ui::wm::WINDOW_TYPE_NORMAL); | 249 CreateWindow(&delegate, ui::wm::WINDOW_TYPE_NORMAL); |
262 scoped_ptr<aura::Window> window2 = | 250 scoped_ptr<aura::Window> window2 = |
263 CreateWindow(&delegate, ui::wm::WINDOW_TYPE_NORMAL); | 251 CreateWindow(&delegate, ui::wm::WINDOW_TYPE_NORMAL); |
(...skipping 29 matching lines...) Expand all Loading... |
293 window1.reset(); | 281 window1.reset(); |
294 ASSERT_EQ(1U, list_provider->GetWindowList().size()); | 282 ASSERT_EQ(1U, list_provider->GetWindowList().size()); |
295 EXPECT_EQ(2, observer->window_removal_calls()); | 283 EXPECT_EQ(2, observer->window_removal_calls()); |
296 | 284 |
297 window3.reset(); | 285 window3.reset(); |
298 ASSERT_EQ(0U, list_provider->GetWindowList().size()); | 286 ASSERT_EQ(0U, list_provider->GetWindowList().size()); |
299 EXPECT_EQ(3, observer->window_removal_calls()); | 287 EXPECT_EQ(3, observer->window_removal_calls()); |
300 } | 288 } |
301 | 289 |
302 } // namespace athena | 290 } // namespace athena |
OLD | NEW |