Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 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 "ash/common/shelf/shelf_window_watcher.h" | 5 #include "ash/common/shelf/shelf_window_watcher.h" |
| 6 | 6 |
| 7 #include "ash/common/shelf/shelf_item_types.h" | 7 #include "ash/common/shelf/shelf_item_types.h" |
| 8 #include "ash/common/shelf/shelf_model.h" | 8 #include "ash/common/shelf/shelf_model.h" |
| 9 #include "ash/common/test/test_session_state_delegate.h" | |
|
James Cook
2017/01/10 19:51:15
nit: still needed?
msw
2017/01/10 20:06:30
Changed to ash/common/session/session_state_delega
| |
| 9 #include "ash/common/wm/window_resizer.h" | 10 #include "ash/common/wm/window_resizer.h" |
| 10 #include "ash/common/wm/window_state.h" | 11 #include "ash/common/wm/window_state.h" |
| 11 #include "ash/common/wm_lookup.h" | 12 #include "ash/common/wm_lookup.h" |
| 12 #include "ash/common/wm_root_window_controller.h" | 13 #include "ash/common/wm_root_window_controller.h" |
| 13 #include "ash/common/wm_shell.h" | 14 #include "ash/common/wm_shell.h" |
| 14 #include "ash/common/wm_window.h" | 15 #include "ash/common/wm_window.h" |
| 15 #include "ash/common/wm_window_property.h" | 16 #include "ash/common/wm_window_property.h" |
| 16 #include "ash/public/cpp/shell_window_ids.h" | 17 #include "ash/public/cpp/shell_window_ids.h" |
| 17 #include "ash/test/ash_test_base.h" | 18 #include "ash/test/ash_test_base.h" |
| 18 #include "ui/base/hit_test.h" | 19 #include "ui/base/hit_test.h" |
| (...skipping 307 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 326 window->AddChild(child_window); | 327 window->AddChild(child_window); |
| 327 child_window->Show(); | 328 child_window->Show(); |
| 328 // |child_window| should not result in adding a new entry. | 329 // |child_window| should not result in adding a new entry. |
| 329 EXPECT_EQ(initial_item_count + 1, model_->item_count()); | 330 EXPECT_EQ(initial_item_count + 1, model_->item_count()); |
| 330 | 331 |
| 331 child_window->Destroy(); | 332 child_window->Destroy(); |
| 332 window->Destroy(); | 333 window->Destroy(); |
| 333 EXPECT_EQ(initial_item_count, model_->item_count()); | 334 EXPECT_EQ(initial_item_count, model_->item_count()); |
| 334 } | 335 } |
| 335 | 336 |
| 337 // A ShelfWindowWatcherTest subclass that doesn't start a user session in SetUp. | |
| 338 class ShelfWindowWatcherSessionStartTest : public ShelfWindowWatcherTest { | |
|
James Cook
2017/01/10 19:51:15
For future reference there is also NoSessionAshTes
msw
2017/01/10 20:06:30
I updated my test fixture to use that; thanks!
| |
| 339 public: | |
| 340 ShelfWindowWatcherSessionStartTest() { | |
| 341 // Let the test fixture start running before starting the user session. | |
| 342 set_start_session(false); | |
| 343 } | |
| 344 ~ShelfWindowWatcherSessionStartTest() override {} | |
| 345 | |
| 346 private: | |
| 347 DISALLOW_COPY_AND_ASSIGN(ShelfWindowWatcherSessionStartTest); | |
| 348 }; | |
| 349 | |
| 350 // Ensures ShelfWindowWatcher supports windows opened prior to session start. | |
| 351 TEST_F(ShelfWindowWatcherSessionStartTest, PreExistingWindow) { | |
| 352 ASSERT_FALSE( | |
| 353 WmShell::Get()->GetSessionStateDelegate()->IsActiveUserSessionStarted()); | |
| 354 | |
| 355 // ShelfModel only has an APP_LIST item. | |
| 356 EXPECT_EQ(1, model_->item_count()); | |
| 357 | |
| 358 // Construct a window that should get a shelf item once the session starts. | |
| 359 std::unique_ptr<views::Widget> widget = | |
| 360 CreateTestWidget(nullptr, kShellWindowId_DefaultContainer, gfx::Rect()); | |
| 361 WmWindow* window = WmLookup::Get()->GetWindowForWidget(widget.get()); | |
| 362 CreateShelfItem(window); | |
| 363 EXPECT_EQ(1, model_->item_count()); | |
| 364 | |
| 365 // Start the test user session; ShelfWindowWatcher will find the open window. | |
| 366 SetSessionStarted(true); | |
| 367 EXPECT_EQ(2, model_->item_count()); | |
| 368 } | |
| 369 | |
| 336 } // namespace ash | 370 } // namespace ash |
| OLD | NEW |