Chromium Code Reviews| Index: ui/views/widget/native_widget_mac_unittest.mm |
| diff --git a/ui/views/widget/native_widget_mac_unittest.mm b/ui/views/widget/native_widget_mac_unittest.mm |
| index 0b41b9ca50afba088099a2b92a0badf2db17f429..52c425c532687729754ddd45b75ec6181a2b7658 100644 |
| --- a/ui/views/widget/native_widget_mac_unittest.mm |
| +++ b/ui/views/widget/native_widget_mac_unittest.mm |
| @@ -19,10 +19,12 @@ |
| #include "third_party/skia/include/core/SkCanvas.h" |
| #import "ui/base/cocoa/constrained_window/constrained_window_animation.h" |
| #import "ui/base/cocoa/window_size_constants.h" |
| +#import "ui/base/test/scoped_fake_full_keyboard_access.h" |
| #import "ui/events/test/cocoa_test_event_utils.h" |
| #include "ui/events/test/event_generator.h" |
| #import "ui/gfx/mac/coordinate_conversion.h" |
| #include "ui/views/bubble/bubble_dialog_delegate.h" |
| +#import "ui/views/cocoa/bridged_content_view.h" |
| #import "ui/views/cocoa/bridged_native_widget.h" |
| #import "ui/views/cocoa/native_widget_mac_nswindow.h" |
| #include "ui/views/controls/button/label_button.h" |
| @@ -1373,6 +1375,79 @@ TEST_F(NativeWidgetMacTest, ChangeFocusOnChangeFirstResponder) { |
| widget->CloseNow(); |
| } |
| +// Test class for Full Keyboard Access related tests. |
| +class NativeWidgetMacFullKeyboardAccessTest : public NativeWidgetMacTest { |
| + public: |
| + NativeWidgetMacFullKeyboardAccessTest() {} |
| + |
| + protected: |
| + // testing::Test: |
| + void SetUp() override { |
| + NativeWidgetMacTest::SetUp(); |
| + |
| + widget_ = CreateTopLevelPlatformWidget(); |
| + bridge_ = |
| + NativeWidgetMac::GetBridgeForNativeWindow(widget_->GetNativeWindow()); |
| + fake_full_keyboard_access_ = |
| + ui::test::ScopedFakeFullKeyboardAccess::GetInstance(); |
| + DCHECK(fake_full_keyboard_access_); |
| + widget_->Show(); |
| + } |
| + |
| + void TearDown() override { |
| + widget_->CloseNow(); |
| + NativeWidgetMacTest::TearDown(); |
| + } |
| + |
| + Widget* widget_ = nullptr; |
| + BridgedNativeWidget* bridge_ = nullptr; |
| + ui::test::ScopedFakeFullKeyboardAccess* fake_full_keyboard_access_ = nullptr; |
| +}; |
| + |
| +// Test that updateFullKeyboardAccess method on BridgedContentView correctly |
| +// sets the keyboard accessibility mode on the associated focus manager. |
| +TEST_F(NativeWidgetMacFullKeyboardAccessTest, FullKeyboardToggle) { |
| + EXPECT_TRUE(widget_->GetFocusManager()->keyboard_accessible()); |
| + fake_full_keyboard_access_->SetFullKeyboardAccessState(false); |
| + [bridge_->ns_view() updateFullKeyboardAccess]; |
| + EXPECT_FALSE(widget_->GetFocusManager()->keyboard_accessible()); |
| + fake_full_keyboard_access_->SetFullKeyboardAccessState(true); |
| + [bridge_->ns_view() updateFullKeyboardAccess]; |
| + EXPECT_TRUE(widget_->GetFocusManager()->keyboard_accessible()); |
| +} |
| + |
| +// Test that a widget's associated focus manager is initialized with the correct |
|
tapted
2016/05/03 08:08:26
nit: widget -> Widget, focus manager -> FocusManag
karandeepb
2016/05/04 01:56:38
Done.
|
| +// keyboard accessibility value. |
| +TEST_F(NativeWidgetMacFullKeyboardAccessTest, Initialization) { |
| + EXPECT_TRUE(widget_->GetFocusManager()->keyboard_accessible()); |
| + |
| + fake_full_keyboard_access_->SetFullKeyboardAccessState(false); |
| + Widget* widget2 = CreateTopLevelPlatformWidget(); |
| + EXPECT_FALSE(widget2->GetFocusManager()->keyboard_accessible()); |
| + widget2->CloseNow(); |
| +} |
| + |
| +// Test that the correct keyboard accessibility mode is set when the window |
| +// becomes active. |
| +TEST_F(NativeWidgetMacFullKeyboardAccessTest, Activation) { |
| + EXPECT_TRUE(widget_->GetFocusManager()->keyboard_accessible()); |
| + |
| + widget_->Hide(); |
| + fake_full_keyboard_access_->SetFullKeyboardAccessState(false); |
| + // [bridge_->ns_view() updateFullKeyboardAccess] is not explicitly called |
| + // since we may not receive full keyboard access toggle notifications when our |
| + // application is inactive. |
| + |
| + widget_->Show(); |
| + EXPECT_FALSE(widget_->GetFocusManager()->keyboard_accessible()); |
| + |
| + widget_->Hide(); |
| + fake_full_keyboard_access_->SetFullKeyboardAccessState(true); |
| + |
| + widget_->Show(); |
| + EXPECT_TRUE(widget_->GetFocusManager()->keyboard_accessible()); |
| +} |
| + |
| class NativeWidgetMacViewsOrderTest : public WidgetTest { |
| public: |
| NativeWidgetMacViewsOrderTest() {} |