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

Side by Side Diff: components/mus/ws/focus_controller_unittest.cc

Issue 1459463004: mus: Allow the WM to specify the windows that can have active children. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: tot-merge Created 5 years, 1 month 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 unified diff | Download patch
OLDNEW
1 // Copyright 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 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 "components/mus/ws/focus_controller.h" 5 #include "components/mus/ws/focus_controller.h"
6 6
7 #include "components/mus/ws/focus_controller_delegate.h"
7 #include "components/mus/ws/focus_controller_observer.h" 8 #include "components/mus/ws/focus_controller_observer.h"
8 #include "components/mus/ws/server_window.h" 9 #include "components/mus/ws/server_window.h"
9 #include "components/mus/ws/test_server_window_delegate.h" 10 #include "components/mus/ws/test_server_window_delegate.h"
10 #include "testing/gtest/include/gtest/gtest.h" 11 #include "testing/gtest/include/gtest/gtest.h"
11 12
12 namespace mus { 13 namespace mus {
13 14
14 namespace ws { 15 namespace ws {
15 namespace { 16 namespace {
16 17
17 class TestFocusControllerObserver : public FocusControllerObserver { 18 class TestFocusControllerObserver : public FocusControllerObserver,
19 public FocusControllerDelegate {
18 public: 20 public:
19 TestFocusControllerObserver() 21 TestFocusControllerObserver()
20 : change_count_(0u), 22 : change_count_(0u),
21 old_focused_window_(nullptr), 23 old_focused_window_(nullptr),
22 new_focused_window_(nullptr) {} 24 new_focused_window_(nullptr) {}
23 25
24 void ClearAll() { 26 void ClearAll() {
25 change_count_ = 0u; 27 change_count_ = 0u;
26 old_focused_window_ = nullptr; 28 old_focused_window_ = nullptr;
27 new_focused_window_ = nullptr; 29 new_focused_window_ = nullptr;
28 } 30 }
29 size_t change_count() const { return change_count_; } 31 size_t change_count() const { return change_count_; }
30 ServerWindow* old_focused_window() { return old_focused_window_; } 32 ServerWindow* old_focused_window() { return old_focused_window_; }
31 ServerWindow* new_focused_window() { return new_focused_window_; } 33 ServerWindow* new_focused_window() { return new_focused_window_; }
32 34
33 private: 35 private:
36 // FocusControllerDelegate:
37 bool CanHaveActiveChildren(ServerWindow* window) const override {
38 return true;
39 }
34 // FocusControllerObserver: 40 // FocusControllerObserver:
41 void OnActivationChanged(ServerWindow* old_active_window,
42 ServerWindow* new_active_window) override {}
35 void OnFocusChanged(FocusControllerChangeSource source, 43 void OnFocusChanged(FocusControllerChangeSource source,
36 ServerWindow* old_focused_window, 44 ServerWindow* old_focused_window,
37 ServerWindow* new_focused_window) override { 45 ServerWindow* new_focused_window) override {
38 if (source == FocusControllerChangeSource::EXPLICIT) 46 if (source == FocusControllerChangeSource::EXPLICIT)
39 return; 47 return;
40 48
41 change_count_++; 49 change_count_++;
42 old_focused_window_ = old_focused_window; 50 old_focused_window_ = old_focused_window;
43 new_focused_window_ = new_focused_window; 51 new_focused_window_ = new_focused_window;
44 } 52 }
(...skipping 13 matching lines...) Expand all
58 server_window_delegate.set_root_window(&root); 66 server_window_delegate.set_root_window(&root);
59 root.SetVisible(true); 67 root.SetVisible(true);
60 ServerWindow child(&server_window_delegate, WindowId()); 68 ServerWindow child(&server_window_delegate, WindowId());
61 child.SetVisible(true); 69 child.SetVisible(true);
62 root.Add(&child); 70 root.Add(&child);
63 ServerWindow child_child(&server_window_delegate, WindowId()); 71 ServerWindow child_child(&server_window_delegate, WindowId());
64 child_child.SetVisible(true); 72 child_child.SetVisible(true);
65 child.Add(&child_child); 73 child.Add(&child_child);
66 74
67 TestFocusControllerObserver focus_observer; 75 TestFocusControllerObserver focus_observer;
68 FocusController focus_controller; 76 FocusController focus_controller(&focus_observer);
69 focus_controller.AddObserver(&focus_observer); 77 focus_controller.AddObserver(&focus_observer);
70 78
71 focus_controller.SetFocusedWindow(&child_child); 79 focus_controller.SetFocusedWindow(&child_child);
72 EXPECT_EQ(0u, focus_observer.change_count()); 80 EXPECT_EQ(0u, focus_observer.change_count());
73 81
74 // Remove the ancestor of the focused window, focus should go to the |root|. 82 // Remove the ancestor of the focused window, focus should go to the |root|.
75 root.Remove(&child); 83 root.Remove(&child);
76 EXPECT_EQ(1u, focus_observer.change_count()); 84 EXPECT_EQ(1u, focus_observer.change_count());
77 EXPECT_EQ(&root, focus_observer.new_focused_window()); 85 EXPECT_EQ(&root, focus_observer.new_focused_window());
78 EXPECT_EQ(&child_child, focus_observer.old_focused_window()); 86 EXPECT_EQ(&child_child, focus_observer.old_focused_window());
(...skipping 29 matching lines...) Expand all
108 EXPECT_EQ(1u, focus_observer.change_count()); 116 EXPECT_EQ(1u, focus_observer.change_count());
109 EXPECT_EQ(&root, focus_observer.new_focused_window()); 117 EXPECT_EQ(&root, focus_observer.new_focused_window());
110 EXPECT_EQ(&child_child, focus_observer.old_focused_window()); 118 EXPECT_EQ(&child_child, focus_observer.old_focused_window());
111 focus_observer.ClearAll(); 119 focus_observer.ClearAll();
112 focus_controller.RemoveObserver(&focus_observer); 120 focus_controller.RemoveObserver(&focus_observer);
113 } 121 }
114 122
115 } // namespace ws 123 } // namespace ws
116 124
117 } // namespace mus 125 } // namespace mus
OLDNEW
« no previous file with comments | « components/mus/ws/focus_controller_observer.h ('k') | components/mus/ws/window_manager_client_apptest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698