Index: components/mus/ws/focus_controller_unittest.cc |
diff --git a/components/mus/ws/focus_controller_unittest.cc b/components/mus/ws/focus_controller_unittest.cc |
index 5c97936b0513476ad1f5bf2c4ca6d8c714cc8e1a..7e9cdf800e4534583bcfe610209b415adba51d2d 100644 |
--- a/components/mus/ws/focus_controller_unittest.cc |
+++ b/components/mus/ws/focus_controller_unittest.cc |
@@ -4,7 +4,7 @@ |
#include "components/mus/ws/focus_controller.h" |
-#include "components/mus/ws/focus_controller_delegate.h" |
+#include "components/mus/ws/focus_controller_observer.h" |
#include "components/mus/ws/server_window.h" |
#include "components/mus/ws/test_server_window_delegate.h" |
#include "testing/gtest/include/gtest/gtest.h" |
@@ -14,9 +14,9 @@ namespace mus { |
namespace ws { |
namespace { |
-class TestFocusControllerDelegate : public FocusControllerDelegate { |
+class TestFocusControllerObserver : public FocusControllerObserver { |
public: |
- TestFocusControllerDelegate() |
+ TestFocusControllerObserver() |
: change_count_(0u), |
old_focused_window_(nullptr), |
new_focused_window_(nullptr) {} |
@@ -31,9 +31,13 @@ class TestFocusControllerDelegate : public FocusControllerDelegate { |
ServerWindow* new_focused_window() { return new_focused_window_; } |
private: |
- // FocusControllerDelegate: |
- void OnFocusChanged(ServerWindow* old_focused_window, |
+ // FocusControllerObserver: |
+ void OnFocusChanged(FocusControllerChangeSource source, |
+ ServerWindow* old_focused_window, |
ServerWindow* new_focused_window) override { |
+ if (source == FocusControllerChangeSource::EXPLICIT) |
+ return; |
+ |
change_count_++; |
old_focused_window_ = old_focused_window; |
new_focused_window_ = new_focused_window; |
@@ -43,7 +47,7 @@ class TestFocusControllerDelegate : public FocusControllerDelegate { |
ServerWindow* old_focused_window_; |
ServerWindow* new_focused_window_; |
- DISALLOW_COPY_AND_ASSIGN(TestFocusControllerDelegate); |
+ DISALLOW_COPY_AND_ASSIGN(TestFocusControllerObserver); |
}; |
} // namespace |
@@ -60,50 +64,52 @@ TEST(FocusControllerTest, Basic) { |
child_child.SetVisible(true); |
child.Add(&child_child); |
- TestFocusControllerDelegate focus_delegate; |
- FocusController focus_controller(&focus_delegate); |
+ TestFocusControllerObserver focus_observer; |
+ FocusController focus_controller; |
+ focus_controller.AddObserver(&focus_observer); |
focus_controller.SetFocusedWindow(&child_child); |
- EXPECT_EQ(0u, focus_delegate.change_count()); |
+ EXPECT_EQ(0u, focus_observer.change_count()); |
// Remove the ancestor of the focused window, focus should go to the |root|. |
root.Remove(&child); |
- EXPECT_EQ(1u, focus_delegate.change_count()); |
- EXPECT_EQ(&root, focus_delegate.new_focused_window()); |
- EXPECT_EQ(&child_child, focus_delegate.old_focused_window()); |
- focus_delegate.ClearAll(); |
+ EXPECT_EQ(1u, focus_observer.change_count()); |
+ EXPECT_EQ(&root, focus_observer.new_focused_window()); |
+ EXPECT_EQ(&child_child, focus_observer.old_focused_window()); |
+ focus_observer.ClearAll(); |
// Make the focused window invisible. Focus is lost in this case (as no one |
// to give focus to). |
root.SetVisible(false); |
- EXPECT_EQ(1u, focus_delegate.change_count()); |
- EXPECT_EQ(nullptr, focus_delegate.new_focused_window()); |
- EXPECT_EQ(&root, focus_delegate.old_focused_window()); |
- focus_delegate.ClearAll(); |
+ EXPECT_EQ(1u, focus_observer.change_count()); |
+ EXPECT_EQ(nullptr, focus_observer.new_focused_window()); |
+ EXPECT_EQ(&root, focus_observer.old_focused_window()); |
+ focus_observer.ClearAll(); |
// Go back to initial state and focus |child_child|. |
root.SetVisible(true); |
root.Add(&child); |
focus_controller.SetFocusedWindow(&child_child); |
- EXPECT_EQ(0u, focus_delegate.change_count()); |
+ EXPECT_EQ(0u, focus_observer.change_count()); |
// Hide the focused window, focus should go to parent. |
child_child.SetVisible(false); |
- EXPECT_EQ(1u, focus_delegate.change_count()); |
- EXPECT_EQ(&child, focus_delegate.new_focused_window()); |
- EXPECT_EQ(&child_child, focus_delegate.old_focused_window()); |
- focus_delegate.ClearAll(); |
+ EXPECT_EQ(1u, focus_observer.change_count()); |
+ EXPECT_EQ(&child, focus_observer.new_focused_window()); |
+ EXPECT_EQ(&child_child, focus_observer.old_focused_window()); |
+ focus_observer.ClearAll(); |
child_child.SetVisible(true); |
focus_controller.SetFocusedWindow(&child_child); |
- EXPECT_EQ(0u, focus_delegate.change_count()); |
+ EXPECT_EQ(0u, focus_observer.change_count()); |
// Hide the parent of the focused window. |
child.SetVisible(false); |
- EXPECT_EQ(1u, focus_delegate.change_count()); |
- EXPECT_EQ(&root, focus_delegate.new_focused_window()); |
- EXPECT_EQ(&child_child, focus_delegate.old_focused_window()); |
- focus_delegate.ClearAll(); |
+ EXPECT_EQ(1u, focus_observer.change_count()); |
+ EXPECT_EQ(&root, focus_observer.new_focused_window()); |
+ EXPECT_EQ(&child_child, focus_observer.old_focused_window()); |
+ focus_observer.ClearAll(); |
+ focus_controller.RemoveObserver(&focus_observer); |
} |
} // namespace ws |