OLD | NEW |
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 "services/ui/ws/window_manager_state.h" | 5 #include "services/ui/ws/window_manager_state.h" |
6 | 6 |
7 #include <memory> | 7 #include <memory> |
8 | 8 |
9 #include "base/macros.h" | 9 #include "base/macros.h" |
10 #include "base/memory/ptr_util.h" | 10 #include "base/memory/ptr_util.h" |
(...skipping 531 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
542 WindowTreeTestApi(window_tree()).AckLastEvent(mojom::EventResult::UNHANDLED); | 542 WindowTreeTestApi(window_tree()).AckLastEvent(mojom::EventResult::UNHANDLED); |
543 EXPECT_FALSE(window_manager()->on_accelerator_called()); | 543 EXPECT_FALSE(window_manager()->on_accelerator_called()); |
544 } | 544 } |
545 | 545 |
546 // Verifies there is no crash if the WindowTree of a window manager is destroyed | 546 // Verifies there is no crash if the WindowTree of a window manager is destroyed |
547 // with no roots. | 547 // with no roots. |
548 TEST(WindowManagerStateShutdownTest, DestroyTreeBeforeDisplay) { | 548 TEST(WindowManagerStateShutdownTest, DestroyTreeBeforeDisplay) { |
549 WindowServerTestHelper ws_test_helper; | 549 WindowServerTestHelper ws_test_helper; |
550 WindowServer* window_server = ws_test_helper.window_server(); | 550 WindowServer* window_server = ws_test_helper.window_server(); |
551 TestPlatformScreen platform_screen; | 551 TestPlatformScreen platform_screen; |
552 platform_screen.Init(window_server->display_manager()); | 552 platform_screen.Init(window_server->display_manager(), false); |
553 platform_screen.AddDisplay(); | 553 platform_screen.AddDisplay(); |
554 const UserId kUserId1 = "2"; | 554 const UserId kUserId1 = "2"; |
555 AddWindowManager(window_server, kUserId1); | 555 AddWindowManager(window_server, kUserId1); |
556 ASSERT_EQ(1u, window_server->display_manager()->displays().size()); | 556 ASSERT_EQ(1u, window_server->display_manager()->displays().size()); |
557 Display* display = *(window_server->display_manager()->displays().begin()); | 557 Display* display = *(window_server->display_manager()->displays().begin()); |
558 WindowManagerDisplayRoot* window_manager_display_root = | 558 WindowManagerDisplayRoot* window_manager_display_root = |
559 display->GetWindowManagerDisplayRootForUser(kUserId1); | 559 display->GetWindowManagerDisplayRootForUser(kUserId1); |
560 ASSERT_TRUE(window_manager_display_root); | 560 ASSERT_TRUE(window_manager_display_root); |
561 WindowTree* tree = | 561 WindowTree* tree = |
562 window_manager_display_root->window_manager_state()->window_tree(); | 562 window_manager_display_root->window_manager_state()->window_tree(); |
563 ASSERT_EQ(1u, tree->roots().size()); | 563 ASSERT_EQ(1u, tree->roots().size()); |
564 ClientWindowId root_client_id; | 564 ClientWindowId root_client_id; |
565 ASSERT_TRUE(tree->IsWindowKnown(*(tree->roots().begin()), &root_client_id)); | 565 ASSERT_TRUE(tree->IsWindowKnown(*(tree->roots().begin()), &root_client_id)); |
566 EXPECT_TRUE(tree->DeleteWindow(root_client_id)); | 566 EXPECT_TRUE(tree->DeleteWindow(root_client_id)); |
567 window_server->DestroyTree(tree); | 567 window_server->DestroyTree(tree); |
568 } | 568 } |
569 | 569 |
570 } // namespace test | 570 } // namespace test |
571 } // namespace ws | 571 } // namespace ws |
572 } // namespace ui | 572 } // namespace ui |
OLD | NEW |