OLD | NEW |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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 "ui/views/controls/textfield/textfield.h" | 5 #include "ui/views/controls/textfield/textfield.h" |
6 | 6 |
7 #include <stddef.h> | 7 #include <stddef.h> |
8 #include <stdint.h> | 8 #include <stdint.h> |
9 | 9 |
10 #include <set> | 10 #include <set> |
(...skipping 429 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
440 | 440 |
441 // Since the window type is activatable, showing the widget will also | 441 // Since the window type is activatable, showing the widget will also |
442 // activate it. Calling Activate directly is insufficient, since that does | 442 // activate it. Calling Activate directly is insufficient, since that does |
443 // not also _focus_ an aura::Window (i.e. using the FocusClient). Both the | 443 // not also _focus_ an aura::Window (i.e. using the FocusClient). Both the |
444 // widget and the textfield must have focus to properly handle input. | 444 // widget and the textfield must have focus to properly handle input. |
445 widget_->Show(); | 445 widget_->Show(); |
446 textfield_->RequestFocus(); | 446 textfield_->RequestFocus(); |
447 | 447 |
448 event_generator_.reset( | 448 event_generator_.reset( |
449 new ui::test::EventGenerator(widget_->GetNativeWindow())); | 449 new ui::test::EventGenerator(widget_->GetNativeWindow())); |
| 450 event_generator_->set_target(ui::test::EventGenerator::Target::WINDOW); |
450 } | 451 } |
451 ui::MenuModel* GetContextMenuModel() { | 452 ui::MenuModel* GetContextMenuModel() { |
452 test_api_->UpdateContextMenu(); | 453 test_api_->UpdateContextMenu(); |
453 return test_api_->context_menu_contents(); | 454 return test_api_->context_menu_contents(); |
454 } | 455 } |
455 | 456 |
456 // True if native Mac keystrokes should be used (to avoid ifdef litter). | 457 // True if native Mac keystrokes should be used (to avoid ifdef litter). |
457 bool TestingNativeMac() { | 458 bool TestingNativeMac() { |
458 #if defined(OS_MACOSX) | 459 #if defined(OS_MACOSX) |
459 return true; | 460 return true; |
(...skipping 785 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1245 EXPECT_TRUE(textfield_->key_handled()); | 1246 EXPECT_TRUE(textfield_->key_handled()); |
1246 textfield_->clear(); | 1247 textfield_->clear(); |
1247 | 1248 |
1248 SendEndEvent(shift); | 1249 SendEndEvent(shift); |
1249 EXPECT_TRUE(textfield_->key_received()); | 1250 EXPECT_TRUE(textfield_->key_received()); |
1250 EXPECT_TRUE(textfield_->key_handled()); | 1251 EXPECT_TRUE(textfield_->key_handled()); |
1251 textfield_->clear(); | 1252 textfield_->clear(); |
1252 | 1253 |
1253 // F20 key won't be handled. | 1254 // F20 key won't be handled. |
1254 SendKeyEvent(ui::VKEY_F20); | 1255 SendKeyEvent(ui::VKEY_F20); |
1255 #if defined(OS_MACOSX) | |
1256 // On Mac, key combinations that don't map to editing commands are forwarded | |
1257 // on to the next responder, usually ending up at the window, which will beep. | |
1258 EXPECT_FALSE(textfield_->key_received()); | |
1259 #else | |
1260 EXPECT_TRUE(textfield_->key_received()); | 1256 EXPECT_TRUE(textfield_->key_received()); |
1261 #endif | |
1262 EXPECT_FALSE(textfield_->key_handled()); | 1257 EXPECT_FALSE(textfield_->key_handled()); |
1263 textfield_->clear(); | 1258 textfield_->clear(); |
1264 } | 1259 } |
1265 | 1260 |
1266 // Tests that default key bindings are handled even with a delegate installed. | 1261 // Tests that default key bindings are handled even with a delegate installed. |
1267 TEST_F(TextfieldTest, OnKeyPressBinding) { | 1262 TEST_F(TextfieldTest, OnKeyPressBinding) { |
1268 InitTextfield(); | 1263 InitTextfield(); |
1269 | 1264 |
1270 #if defined(OS_LINUX) && !defined(OS_CHROMEOS) | 1265 #if defined(OS_LINUX) && !defined(OS_CHROMEOS) |
1271 // Install a TextEditKeyBindingsDelegateAuraLinux that does nothing. | 1266 // Install a TextEditKeyBindingsDelegateAuraLinux that does nothing. |
(...skipping 1736 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3008 ui::AXNodeData node_data_protected; | 3003 ui::AXNodeData node_data_protected; |
3009 node_data_protected.state = 0; | 3004 node_data_protected.state = 0; |
3010 textfield_->GetAccessibleNodeData(&node_data_protected); | 3005 textfield_->GetAccessibleNodeData(&node_data_protected); |
3011 EXPECT_EQ(ui::AX_ROLE_TEXT_FIELD, node_data_protected.role); | 3006 EXPECT_EQ(ui::AX_ROLE_TEXT_FIELD, node_data_protected.role); |
3012 EXPECT_EQ(ASCIIToUTF16("********"), | 3007 EXPECT_EQ(ASCIIToUTF16("********"), |
3013 node_data_protected.GetString16Attribute(ui::AX_ATTR_VALUE)); | 3008 node_data_protected.GetString16Attribute(ui::AX_ATTR_VALUE)); |
3014 EXPECT_TRUE(node_data_protected.HasStateFlag(ui::AX_STATE_PROTECTED)); | 3009 EXPECT_TRUE(node_data_protected.HasStateFlag(ui::AX_STATE_PROTECTED)); |
3015 } | 3010 } |
3016 | 3011 |
3017 } // namespace views | 3012 } // namespace views |
OLD | NEW |