| 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 |