Index: ui/views/widget/widget_unittest.cc |
diff --git a/ui/views/widget/widget_unittest.cc b/ui/views/widget/widget_unittest.cc |
index 9716a6c7ff51c63884d2dd0380dbb4e7163bbbb5..ddda8f1b43c9f379e8c95bf732545ab97bbbf375 100644 |
--- a/ui/views/widget/widget_unittest.cc |
+++ b/ui/views/widget/widget_unittest.cc |
@@ -60,6 +60,20 @@ class NativeWidgetCapture : public NativeWidgetPlatform { |
}; |
#endif |
+class NonActivatableDelegate : public WidgetDelegateView { |
+ public: |
+ NonActivatableDelegate() {} |
+ virtual ~NonActivatableDelegate() {} |
+ |
+ // Overridden from WidgetDelegate. |
+ virtual bool CanActivate() const OVERRIDE { |
+ return false; |
+ } |
+ |
+ private: |
+ DISALLOW_COPY_AND_ASSIGN(NonActivatableDelegate); |
+}; |
+ |
// A typedef that inserts our mock-capture NativeWidget implementation for |
// relevant platforms. |
#if defined(USE_AURA) |
@@ -323,6 +337,27 @@ TEST_F(WidgetTest, Visibility_ChildPopup) { |
} |
#endif |
+TEST_F(WidgetTest, ActivationCapture) { |
+ Widget* first = CreateTopLevelPlatformWidget(); |
+ first->Show(); |
+ first->SetMouseCapture(NULL); |
+ RunPendingMessages(); |
+ EXPECT_TRUE(WidgetHasMouseCapture(first)); |
+ |
+ Widget* second = new Widget; |
+ Widget::InitParams params(Widget::InitParams::TYPE_BUBBLE); |
+ params.transparent = true; |
+ params.close_on_deactivate = true; |
+ params.delegate = new NonActivatableDelegate; |
+ second->Init(params); |
+ second->Show(); |
+ RunPendingMessages(); |
+ EXPECT_FALSE(WidgetHasMouseCapture(second)); |
+ |
+ second->CloseNow(); |
+ first->CloseNow(); |
+} |
+ |
//////////////////////////////////////////////////////////////////////////////// |
// Widget ownership tests. |
// |