Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(287)

Unified Diff: components/mus/ws/display_unittest.cc

Issue 2119963002: Move mus to //services/ui (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: . Created 4 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « components/mus/ws/display_manager_delegate.h ('k') | components/mus/ws/event_dispatcher.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: components/mus/ws/display_unittest.cc
diff --git a/components/mus/ws/display_unittest.cc b/components/mus/ws/display_unittest.cc
deleted file mode 100644
index dfc24ef25a802af1b401923b03b84798976d34be..0000000000000000000000000000000000000000
--- a/components/mus/ws/display_unittest.cc
+++ /dev/null
@@ -1,308 +0,0 @@
-// Copyright 2016 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include <stdint.h>
-
-#include <string>
-
-#include "base/macros.h"
-#include "base/message_loop/message_loop.h"
-#include "components/mus/common/types.h"
-#include "components/mus/common/util.h"
-#include "components/mus/public/interfaces/window_tree.mojom.h"
-#include "components/mus/surfaces/surfaces_state.h"
-#include "components/mus/ws/display_manager.h"
-#include "components/mus/ws/ids.h"
-#include "components/mus/ws/platform_display.h"
-#include "components/mus/ws/platform_display_factory.h"
-#include "components/mus/ws/server_window.h"
-#include "components/mus/ws/test_utils.h"
-#include "components/mus/ws/window_manager_display_root.h"
-#include "components/mus/ws/window_manager_state.h"
-#include "components/mus/ws/window_server.h"
-#include "components/mus/ws/window_server_delegate.h"
-#include "components/mus/ws/window_tree.h"
-#include "components/mus/ws/window_tree_binding.h"
-#include "testing/gtest/include/gtest/gtest.h"
-#include "ui/events/event.h"
-#include "ui/gfx/geometry/rect.h"
-
-namespace mus {
-namespace ws {
-namespace test {
-namespace {
-
-const UserId kTestId1 = "2";
-const UserId kTestId2 = "21";
-
-ClientWindowId ClientWindowIdForFirstRoot(WindowTree* tree) {
- if (tree->roots().empty())
- return ClientWindowId();
- return ClientWindowIdForWindow(tree, *tree->roots().begin());
-}
-
-WindowManagerState* GetWindowManagerStateForUser(Display* display,
- const UserId& user_id) {
- WindowManagerDisplayRoot* display_root =
- display->GetWindowManagerDisplayRootForUser(user_id);
- return display_root ? display_root->window_manager_state() : nullptr;
-}
-
-} // namespace
-
-// -----------------------------------------------------------------------------
-
-class DisplayTest : public testing::Test {
- public:
- DisplayTest() : cursor_id_(0), platform_display_factory_(&cursor_id_) {}
- ~DisplayTest() override {}
-
- protected:
- // testing::Test:
- void SetUp() override {
- PlatformDisplay::set_factory_for_testing(&platform_display_factory_);
- window_server_.reset(new WindowServer(&window_server_delegate_,
- scoped_refptr<SurfacesState>()));
- window_server_delegate_.set_window_server(window_server_.get());
- window_server_->user_id_tracker()->AddUserId(kTestId1);
- window_server_->user_id_tracker()->AddUserId(kTestId2);
- }
-
- protected:
- int32_t cursor_id_;
- TestPlatformDisplayFactory platform_display_factory_;
- TestWindowServerDelegate window_server_delegate_;
- std::unique_ptr<WindowServer> window_server_;
- base::MessageLoop message_loop_;
-
- private:
- DISALLOW_COPY_AND_ASSIGN(DisplayTest);
-};
-
-TEST_F(DisplayTest, CallsCreateDefaultDisplays) {
- const int kNumHostsToCreate = 2;
- window_server_delegate_.set_num_displays_to_create(kNumHostsToCreate);
-
- DisplayManager* display_manager = window_server_->display_manager();
- WindowManagerWindowTreeFactorySetTestApi(
- window_server_->window_manager_window_tree_factory_set())
- .Add(kTestId1);
- // The first register should trigger creation of the default
- // Displays. There should be kNumHostsToCreate Displays.
- EXPECT_EQ(static_cast<size_t>(kNumHostsToCreate),
- display_manager->displays().size());
-
- // Each host should have a WindowManagerState for kTestId1.
- for (Display* display : display_manager->displays()) {
- EXPECT_EQ(1u, display->num_window_manger_states());
- EXPECT_TRUE(GetWindowManagerStateForUser(display, kTestId1));
- EXPECT_FALSE(GetWindowManagerStateForUser(display, kTestId2));
- }
-
- // Add another registry, should trigger creation of another wm.
- WindowManagerWindowTreeFactorySetTestApi(
- window_server_->window_manager_window_tree_factory_set())
- .Add(kTestId2);
- for (Display* display : display_manager->displays()) {
- ASSERT_EQ(2u, display->num_window_manger_states());
- WindowManagerDisplayRoot* root1 =
- display->GetWindowManagerDisplayRootForUser(kTestId1);
- ASSERT_TRUE(root1);
- WindowManagerDisplayRoot* root2 =
- display->GetWindowManagerDisplayRootForUser(kTestId2);
- ASSERT_TRUE(root2);
- // Verify the two states have different roots.
- EXPECT_NE(root1, root2);
- EXPECT_NE(root1->root(), root2->root());
- }
-}
-
-TEST_F(DisplayTest, Destruction) {
- window_server_delegate_.set_num_displays_to_create(1);
-
- WindowManagerWindowTreeFactorySetTestApi(
- window_server_->window_manager_window_tree_factory_set())
- .Add(kTestId1);
-
- // Add another registry, should trigger creation of another wm.
- DisplayManager* display_manager = window_server_->display_manager();
- WindowManagerWindowTreeFactorySetTestApi(
- window_server_->window_manager_window_tree_factory_set())
- .Add(kTestId2);
- ASSERT_EQ(1u, display_manager->displays().size());
- Display* display = *display_manager->displays().begin();
- ASSERT_EQ(2u, display->num_window_manger_states());
- // There should be two trees, one for each windowmanager.
- EXPECT_EQ(2u, window_server_->num_trees());
-
- {
- WindowManagerState* state = GetWindowManagerStateForUser(display, kTestId1);
- // Destroy the tree associated with |state|. Should result in deleting
- // |state|.
- window_server_->DestroyTree(state->window_tree());
- ASSERT_EQ(1u, display->num_window_manger_states());
- EXPECT_FALSE(GetWindowManagerStateForUser(display, kTestId1));
- EXPECT_EQ(1u, display_manager->displays().size());
- EXPECT_EQ(1u, window_server_->num_trees());
- }
-
- EXPECT_FALSE(window_server_delegate_.got_on_no_more_displays());
- window_server_->display_manager()->DestroyDisplay(display);
- // There is still one tree left.
- EXPECT_EQ(1u, window_server_->num_trees());
- EXPECT_TRUE(window_server_delegate_.got_on_no_more_displays());
-}
-
-TEST_F(DisplayTest, EventStateResetOnUserSwitch) {
- window_server_delegate_.set_num_displays_to_create(1);
-
- WindowManagerWindowTreeFactorySetTestApi(
- window_server_->window_manager_window_tree_factory_set())
- .Add(kTestId1);
- WindowManagerWindowTreeFactorySetTestApi(
- window_server_->window_manager_window_tree_factory_set())
- .Add(kTestId2);
-
- window_server_->user_id_tracker()->SetActiveUserId(kTestId1);
-
- DisplayManager* display_manager = window_server_->display_manager();
- ASSERT_EQ(1u, display_manager->displays().size());
- Display* display = *display_manager->displays().begin();
- WindowManagerState* active_wms =
- display->GetActiveWindowManagerDisplayRoot()->window_manager_state();
- ASSERT_TRUE(active_wms);
- EXPECT_EQ(kTestId1, active_wms->user_id());
-
- static_cast<PlatformDisplayDelegate*>(display)->OnEvent(ui::PointerEvent(
- ui::MouseEvent(ui::ET_MOUSE_PRESSED, gfx::Point(20, 25),
- gfx::Point(20, 25), base::TimeTicks(),
- ui::EF_LEFT_MOUSE_BUTTON, ui::EF_LEFT_MOUSE_BUTTON)));
-
- EXPECT_TRUE(EventDispatcherTestApi(active_wms->event_dispatcher())
- .AreAnyPointersDown());
- EXPECT_EQ(gfx::Point(20, 25),
- active_wms->event_dispatcher()->mouse_pointer_last_location());
-
- // Switch the user. Should trigger resetting state in old event dispatcher
- // and update state in new event dispatcher.
- window_server_->user_id_tracker()->SetActiveUserId(kTestId2);
- EXPECT_NE(
- active_wms,
- display->GetActiveWindowManagerDisplayRoot()->window_manager_state());
- EXPECT_FALSE(EventDispatcherTestApi(active_wms->event_dispatcher())
- .AreAnyPointersDown());
- active_wms =
- display->GetActiveWindowManagerDisplayRoot()->window_manager_state();
- EXPECT_EQ(kTestId2, active_wms->user_id());
- EXPECT_EQ(gfx::Point(20, 25),
- active_wms->event_dispatcher()->mouse_pointer_last_location());
- EXPECT_FALSE(EventDispatcherTestApi(active_wms->event_dispatcher())
- .AreAnyPointersDown());
-}
-
-// Verifies capture fails when wm is inactive and succeeds when wm is active.
-TEST_F(DisplayTest, SetCaptureFromWindowManager) {
- window_server_delegate_.set_num_displays_to_create(1);
- WindowManagerWindowTreeFactorySetTestApi(
- window_server_->window_manager_window_tree_factory_set())
- .Add(kTestId1);
- WindowManagerWindowTreeFactorySetTestApi(
- window_server_->window_manager_window_tree_factory_set())
- .Add(kTestId2);
- window_server_->user_id_tracker()->SetActiveUserId(kTestId1);
- DisplayManager* display_manager = window_server_->display_manager();
- ASSERT_EQ(1u, display_manager->displays().size());
- Display* display = *display_manager->displays().begin();
- WindowManagerState* wms_for_id2 =
- GetWindowManagerStateForUser(display, kTestId2);
- ASSERT_TRUE(wms_for_id2);
- EXPECT_FALSE(wms_for_id2->IsActive());
-
- // Create a child of the root that we can set capture on.
- WindowTree* tree = wms_for_id2->window_tree();
- ClientWindowId child_window_id;
- ASSERT_TRUE(NewWindowInTree(tree, &child_window_id));
-
- WindowTreeTestApi(tree).EnableCapture();
-
- // SetCapture() should fail for user id2 as it is inactive.
- EXPECT_FALSE(tree->SetCapture(child_window_id));
-
- // Make the second user active and verify capture works.
- window_server_->user_id_tracker()->SetActiveUserId(kTestId2);
- EXPECT_TRUE(wms_for_id2->IsActive());
- EXPECT_TRUE(tree->SetCapture(child_window_id));
-}
-
-TEST_F(DisplayTest, FocusFailsForInactiveUser) {
- window_server_delegate_.set_num_displays_to_create(1);
- WindowManagerWindowTreeFactorySetTestApi(
- window_server_->window_manager_window_tree_factory_set())
- .Add(kTestId1);
- TestWindowTreeClient* window_tree_client1 =
- window_server_delegate_.last_client();
- ASSERT_TRUE(window_tree_client1);
- WindowManagerWindowTreeFactorySetTestApi(
- window_server_->window_manager_window_tree_factory_set())
- .Add(kTestId2);
- window_server_->user_id_tracker()->SetActiveUserId(kTestId1);
- DisplayManager* display_manager = window_server_->display_manager();
- ASSERT_EQ(1u, display_manager->displays().size());
- Display* display = *display_manager->displays().begin();
- WindowManagerState* wms_for_id2 =
- GetWindowManagerStateForUser(display, kTestId2);
- wms_for_id2->window_tree()->AddActivationParent(
- ClientWindowIdForFirstRoot(wms_for_id2->window_tree()));
- ASSERT_TRUE(wms_for_id2);
- EXPECT_FALSE(wms_for_id2->IsActive());
- ClientWindowId child2_id;
- NewWindowInTree(wms_for_id2->window_tree(), &child2_id);
-
- // Focus should fail for windows in inactive window managers.
- EXPECT_FALSE(wms_for_id2->window_tree()->SetFocus(child2_id));
-
- // Focus should succeed for the active window manager.
- WindowManagerState* wms_for_id1 =
- GetWindowManagerStateForUser(display, kTestId1);
- ASSERT_TRUE(wms_for_id1);
- wms_for_id1->window_tree()->AddActivationParent(
- ClientWindowIdForFirstRoot(wms_for_id1->window_tree()));
- ClientWindowId child1_id;
- NewWindowInTree(wms_for_id1->window_tree(), &child1_id);
- EXPECT_TRUE(wms_for_id1->IsActive());
- EXPECT_TRUE(wms_for_id1->window_tree()->SetFocus(child1_id));
-}
-
-// Verifies a single tree is used for multiple displays.
-TEST_F(DisplayTest, MultipleDisplays) {
- window_server_delegate_.set_num_displays_to_create(2);
- WindowManagerWindowTreeFactorySetTestApi(
- window_server_->window_manager_window_tree_factory_set())
- .Add(kTestId1);
- window_server_->user_id_tracker()->SetActiveUserId(kTestId1);
- ASSERT_EQ(1u, window_server_delegate_.bindings()->size());
- TestWindowTreeBinding* window_tree_binding =
- (*window_server_delegate_.bindings())[0];
- WindowTree* tree = window_tree_binding->tree();
- ASSERT_EQ(2u, tree->roots().size());
- std::set<const ServerWindow*> roots = tree->roots();
- auto it = roots.begin();
- ServerWindow* root1 = tree->GetWindow((*it)->id());
- ++it;
- ServerWindow* root2 = tree->GetWindow((*it)->id());
- ASSERT_NE(root1, root2);
- Display* display1 = tree->GetDisplay(root1);
- WindowManagerState* display1_wms =
- display1->GetWindowManagerDisplayRootForUser(kTestId1)
- ->window_manager_state();
- Display* display2 = tree->GetDisplay(root2);
- WindowManagerState* display2_wms =
- display2->GetWindowManagerDisplayRootForUser(kTestId1)
- ->window_manager_state();
- EXPECT_EQ(display1_wms->window_tree(), display2_wms->window_tree());
-}
-
-} // namespace test
-} // namespace ws
-} // namespace mus
« no previous file with comments | « components/mus/ws/display_manager_delegate.h ('k') | components/mus/ws/event_dispatcher.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698