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 "services/ui/ws/window_tree.h" | 5 #include "services/ui/ws/window_tree.h" |
6 | 6 |
7 #include <stdint.h> | 7 #include <stdint.h> |
8 | 8 |
9 #include <string> | 9 #include <string> |
10 #include <vector> | 10 #include <vector> |
(...skipping 1520 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1531 WindowServerTestHelper ws_test_helper_; | 1531 WindowServerTestHelper ws_test_helper_; |
1532 TestScreenManager screen_manager_; | 1532 TestScreenManager screen_manager_; |
1533 | 1533 |
1534 DISALLOW_COPY_AND_ASSIGN(WindowTreeManualDisplayTest); | 1534 DISALLOW_COPY_AND_ASSIGN(WindowTreeManualDisplayTest); |
1535 }; | 1535 }; |
1536 | 1536 |
1537 TEST_F(WindowTreeManualDisplayTest, ClientCreatesDisplayRoot) { | 1537 TEST_F(WindowTreeManualDisplayTest, ClientCreatesDisplayRoot) { |
1538 const bool automatically_create_display_roots = false; | 1538 const bool automatically_create_display_roots = false; |
1539 AddWindowManager(window_server(), kTestUserId1, | 1539 AddWindowManager(window_server(), kTestUserId1, |
1540 automatically_create_display_roots); | 1540 automatically_create_display_roots); |
1541 const int64_t display_id = | |
1542 screen_manager().AddDisplay(MakeDisplay(0, 0, 1024, 768, 1.0f)); | |
1543 WindowManagerState* window_manager_state = | 1541 WindowManagerState* window_manager_state = |
1544 window_server()->GetWindowManagerStateForUser(kTestUserId1); | 1542 window_server()->GetWindowManagerStateForUser(kTestUserId1); |
1545 ASSERT_TRUE(window_manager_state); | 1543 ASSERT_TRUE(window_manager_state); |
1546 WindowTree* window_manager_tree = window_manager_state->window_tree(); | 1544 WindowTree* window_manager_tree = window_manager_state->window_tree(); |
1547 EXPECT_TRUE(window_manager_tree->roots().empty()); | 1545 EXPECT_TRUE(window_manager_tree->roots().empty()); |
1548 TestWindowManager* test_window_manager = | 1546 TestWindowManager* test_window_manager = |
1549 window_server_delegate()->last_binding()->window_manager(); | 1547 window_server_delegate()->last_binding()->window_manager(); |
1550 EXPECT_EQ(1, test_window_manager->connect_count()); | 1548 EXPECT_EQ(1, test_window_manager->connect_count()); |
1551 EXPECT_EQ(0, test_window_manager->display_added_count()); | 1549 EXPECT_EQ(0, test_window_manager->display_added_count()); |
1552 | 1550 |
1553 // Add another display and make sure WindowManager is not updated. | |
1554 screen_manager().AddDisplay(MakeDisplay(0, 0, 1024, 768, 1.0f)); | |
1555 EXPECT_EQ(0, test_window_manager->display_added_count()); | |
1556 | |
1557 // Create a window for the windowmanager and set it as the root. | 1551 // Create a window for the windowmanager and set it as the root. |
1558 ClientWindowId display_root_id = BuildClientWindowId(window_manager_tree, 10); | 1552 ClientWindowId display_root_id = BuildClientWindowId(window_manager_tree, 10); |
1559 ASSERT_TRUE(window_manager_tree->NewWindow(display_root_id, | 1553 ASSERT_TRUE(window_manager_tree->NewWindow(display_root_id, |
1560 ServerWindow::Properties())); | 1554 ServerWindow::Properties())); |
1561 ServerWindow* display_root = | 1555 ServerWindow* display_root = |
1562 window_manager_tree->GetWindowByClientId(display_root_id); | 1556 window_manager_tree->GetWindowByClientId(display_root_id); |
1563 ASSERT_TRUE(display_root); | 1557 ASSERT_TRUE(display_root); |
| 1558 display::Display display1 = MakeDisplay(0, 0, 1024, 768, 1.0f); |
| 1559 display1.set_id(101); |
| 1560 |
| 1561 mojom::WmViewportMetrics metrics; |
| 1562 metrics.bounds_in_pixels = display1.bounds(); |
| 1563 metrics.device_scale_factor = 1.5; |
| 1564 metrics.ui_scale_factor = 2.5; |
| 1565 const bool is_primary_display = true; |
1564 ASSERT_TRUE(WindowTreeTestApi(window_manager_tree) | 1566 ASSERT_TRUE(WindowTreeTestApi(window_manager_tree) |
1565 .ProcessSetDisplayRoot(display_id, display_root_id)); | 1567 .ProcessSetDisplayRoot(display1, metrics, is_primary_display, |
| 1568 display_root_id)); |
1566 EXPECT_TRUE(display_root->parent()); | 1569 EXPECT_TRUE(display_root->parent()); |
1567 EXPECT_TRUE(window_server_delegate() | 1570 EXPECT_TRUE(window_server_delegate() |
1568 ->last_binding() | 1571 ->last_binding() |
1569 ->client() | 1572 ->client() |
1570 ->tracker() | 1573 ->tracker() |
1571 ->changes() | 1574 ->changes() |
1572 ->empty()); | 1575 ->empty()); |
1573 ASSERT_EQ(1u, window_manager_tree->roots().size()); | 1576 EXPECT_EQ(1u, window_manager_tree->roots().size()); |
1574 EXPECT_EQ(display_root, *window_manager_tree->roots().begin()); | |
1575 ASSERT_EQ(2u, WindowManagerStateTestApi(window_manager_state) | |
1576 .window_manager_display_roots() | |
1577 .size()); | |
1578 | 1577 |
1579 // Delete the root, which should delete the WindowManagerDisplayRoot. | 1578 // Delete the root, which should delete the WindowManagerDisplayRoot. |
1580 EXPECT_TRUE(window_manager_tree->DeleteWindow(display_root_id)); | 1579 EXPECT_TRUE(window_manager_tree->DeleteWindow(display_root_id)); |
1581 ASSERT_TRUE(window_manager_tree->roots().empty()); | 1580 EXPECT_TRUE(window_manager_tree->roots().empty()); |
1582 ASSERT_EQ(1u, WindowManagerStateTestApi(window_manager_state) | 1581 EXPECT_TRUE(WindowManagerStateTestApi(window_manager_state) |
1583 .window_manager_display_roots() | 1582 .window_manager_display_roots() |
1584 .size()); | 1583 .empty()); |
1585 } | 1584 } |
1586 | 1585 |
1587 } // namespace test | 1586 } // namespace test |
1588 } // namespace ws | 1587 } // namespace ws |
1589 } // namespace ui | 1588 } // namespace ui |
OLD | NEW |