| Index: ui/views/mus/native_widget_mus_unittest.cc
|
| diff --git a/ui/views/mus/native_widget_mus_unittest.cc b/ui/views/mus/native_widget_mus_unittest.cc
|
| index 8dcebbcd8015e20124e8ab3bb7c1dd944a37160b..5f5df30c7c6f1ef42b08d5d8ba5478984b11e36c 100644
|
| --- a/ui/views/mus/native_widget_mus_unittest.cc
|
| +++ b/ui/views/mus/native_widget_mus_unittest.cc
|
| @@ -31,6 +31,43 @@ SkBitmap MakeBitmap(SkColor color) {
|
| return bitmap;
|
| }
|
|
|
| +// A Widget that tracks activation changes.
|
| +class TestWidget : public Widget {
|
| + public:
|
| + TestWidget() {}
|
| + ~TestWidget() override {}
|
| +
|
| + bool last_activation_change() const { return last_activation_change_; }
|
| + int focus_count() const { return focus_count_; }
|
| + int blur_count() const { return blur_count_; }
|
| +
|
| + void ResetCounts() {
|
| + focus_count_ = 0;
|
| + blur_count_ = 0;
|
| + }
|
| +
|
| + // views::internal::NativeWidgetDelegate:
|
| + void OnNativeWidgetActivationChanged(bool active) override {
|
| + last_activation_change_ = active;
|
| + Widget::OnNativeWidgetActivationChanged(active);
|
| + }
|
| + void OnNativeFocus() override {
|
| + focus_count_++;
|
| + Widget::OnNativeFocus();
|
| + }
|
| + void OnNativeBlur() override {
|
| + blur_count_++;
|
| + Widget::OnNativeBlur();
|
| + }
|
| +
|
| + private:
|
| + bool last_activation_change_ = false;
|
| + int focus_count_ = 0;
|
| + int blur_count_ = 0;
|
| +
|
| + DISALLOW_COPY_AND_ASSIGN(TestWidget);
|
| +};
|
| +
|
| // A WidgetDelegate that supplies an app icon.
|
| class TestWidgetDelegate : public WidgetDelegateView {
|
| public:
|
| @@ -58,8 +95,8 @@ class NativeWidgetMusTest : public ViewsTestBase {
|
| ~NativeWidgetMusTest() override {}
|
|
|
| // Creates a test widget. Takes ownership of |delegate|.
|
| - Widget* CreateWidget(TestWidgetDelegate* delegate) {
|
| - Widget* widget = new Widget();
|
| + TestWidget* CreateWidget(TestWidgetDelegate* delegate) {
|
| + TestWidget* widget = new TestWidget();
|
| Widget::InitParams params = CreateParams(Widget::InitParams::TYPE_WINDOW);
|
| params.delegate = delegate;
|
| params.ownership = Widget::InitParams::WIDGET_OWNS_NATIVE_WIDGET;
|
| @@ -72,6 +109,27 @@ class NativeWidgetMusTest : public ViewsTestBase {
|
| DISALLOW_COPY_AND_ASSIGN(NativeWidgetMusTest);
|
| };
|
|
|
| +// Tests that native window activation and focus is passed to the Widget.
|
| +TEST_F(NativeWidgetMusTest, OnActivationChanged) {
|
| + scoped_ptr<TestWidget> widget(CreateWidget(nullptr));
|
| + NativeWidgetMus* native_widget = static_cast<NativeWidgetMus*>(widget
|
| + ->native_widget_private());
|
| +
|
| + // Simulate native widget being activated.
|
| + native_widget->OnActivationChanged(true);
|
| + EXPECT_EQ(1, widget->focus_count());
|
| + EXPECT_EQ(0, widget->blur_count());
|
| + EXPECT_TRUE(widget->last_activation_change());
|
| +
|
| + widget->ResetCounts();
|
| +
|
| + // Simulate native widget being deactivated.
|
| + native_widget->OnActivationChanged(false);
|
| + EXPECT_EQ(0, widget->focus_count());
|
| + EXPECT_EQ(1, widget->blur_count());
|
| + EXPECT_FALSE(widget->last_activation_change());
|
| +}
|
| +
|
| // Tests that a window with an icon sets the mus::Window icon property.
|
| TEST_F(NativeWidgetMusTest, AppIcon) {
|
| // Create a Widget with a bitmap as the icon.
|
|
|