Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(173)

Side by Side Diff: views/controls/textfield/native_textfield_views_unittest.cc

Issue 8150001: Quick fix for NativeTextfieldViewsTest on win aura. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 9 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « no previous file | views/events/event.cc » ('j') | views/events/event_aura.cc » ('J')
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 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 <string> 5 #include <string>
6 #include <vector> 6 #include <vector>
7 7
8 #include "base/auto_reset.h" 8 #include "base/auto_reset.h"
9 #include "base/bind.h" 9 #include "base/bind.h"
10 #include "base/bind_helpers.h" 10 #include "base/bind_helpers.h"
(...skipping 16 matching lines...) Expand all
27 #include "views/events/event.h" 27 #include "views/events/event.h"
28 #include "views/focus/focus_manager.h" 28 #include "views/focus/focus_manager.h"
29 #include "views/ime/mock_input_method.h" 29 #include "views/ime/mock_input_method.h"
30 #include "views/ime/text_input_client.h" 30 #include "views/ime/text_input_client.h"
31 #include "views/test/test_views_delegate.h" 31 #include "views/test/test_views_delegate.h"
32 #include "views/test/views_test_base.h" 32 #include "views/test/views_test_base.h"
33 #include "views/views_delegate.h" 33 #include "views/views_delegate.h"
34 #include "views/widget/native_widget_private.h" 34 #include "views/widget/native_widget_private.h"
35 #include "views/widget/widget.h" 35 #include "views/widget/widget.h"
36 36
37 // Bug 99128.
oshima 2011/10/05 21:02:19 Can you keep the comment and say still a lot of te
sadrul 2011/10/05 21:44:56 FYI http://codereview.chromium.org/8143021/ Some
msw 2011/10/05 22:52:20 I merged with your changes from http://codereview.
38 #if defined(USE_AURA)
39 #define MAYBE_KeyTest FAILS_KeyTest
40 #define MAYBE_ControlAndSelectTest FAILS_ControlAndSelectTest
41 #define MAYBE_InsertionDeletionTest FAILS_InsertionDeletionTest
42 #define MAYBE_OnKeyPressReturnValueTest FAILS_OnKeyPressReturnValueTest
43 #define MAYBE_CursorMovement FAILS_CursorMovement
44 #define MAYBE_DragAndDrop_ToTheRight FAILS_DragAndDrop_ToTheRight
45 #define MAYBE_DragAndDrop_ToTheLeft FAILS_DragAndDrop_ToTheLeft
46 #define MAYBE_ReadOnlyTest FAILS_ReadOnlyTest
47 #define MAYBE_TextInputClientTest FAILS_TextInputClientTest
48 #define MAYBE_UndoRedoTest FAILS_UndoRedoTest
49 #define MAYBE_TextCursorDisplayTest FAILS_TextCursorDisplayTest
50 #define MAYBE_TextCursorDisplayInRTLTest FAILS_TextCursorDisplayInRTLTest
51 #define MAYBE_HitOutsideTextAreaTest FAILS_HitOutsideTextAreaTest
52 #define MAYBE_HitOutsideTextAreaInRTLTest FAILS_HitOutsideTextAreaInRTLTest
53 #define MAYBE_OverflowTest FAILS_OverflowTest
54 #define MAYBE_OverflowInRTLTest FAILS_OverflowInRTLTest
55 #else
56 #define MAYBE_KeyTest KeyTest
57 #define MAYBE_ControlAndSelectTest ControlAndSelectTest
58 #define MAYBE_InsertionDeletionTest InsertionDeletionTest
59 #define MAYBE_OnKeyPressReturnValueTest OnKeyPressReturnValueTest
60 #define MAYBE_CursorMovement CursorMovement
61 #define MAYBE_DragAndDrop_ToTheRight DragAndDrop_ToTheRight
62 #define MAYBE_DragAndDrop_ToTheLeft DragAndDrop_ToTheLeft
63 #define MAYBE_ReadOnlyTest ReadOnlyTest
64 #define MAYBE_TextInputClientTest TextInputClientTest
65 #define MAYBE_UndoRedoTest UndoRedoTest
66 #define MAYBE_TextCursorDisplayTest TextCursorDisplayTest
67 #define MAYBE_TextCursorDisplayInRTLTest TextCursorDisplayInRTLTest
68 #define MAYBE_HitOutsideTextAreaTest HitOutsideTextAreaTest
69 #define MAYBE_HitOutsideTextAreaInRTLTest HitOutsideTextAreaInRTLTest
70 #define MAYBE_OverflowTest OverflowTest
71 #define MAYBE_OverflowInRTLTest OverflowInRTLTest
72 #endif
73
74 namespace { 37 namespace {
75 38
76 // A wrapper of Textfield to intercept the result of OnKeyPressed() and 39 // A wrapper of Textfield to intercept the result of OnKeyPressed() and
77 // OnKeyReleased() methods. 40 // OnKeyReleased() methods.
78 class TestTextfield : public views::Textfield { 41 class TestTextfield : public views::Textfield {
79 public: 42 public:
80 TestTextfield() 43 TestTextfield()
81 : key_handled_(false), 44 : key_handled_(false),
82 key_received_(false) { 45 key_received_(false) {
83 } 46 }
(...skipping 280 matching lines...) Expand 10 before | Expand all | Expand 10 after
364 EXPECT_STR_EQ("this is a test", model_->GetText()); 327 EXPECT_STR_EQ("this is a test", model_->GetText());
365 EXPECT_STR_EQ("this is a test", textfield_->text()); 328 EXPECT_STR_EQ("this is a test", textfield_->text());
366 EXPECT_TRUE(last_contents_.empty()); 329 EXPECT_TRUE(last_contents_.empty());
367 330
368 EXPECT_EQ(string16(), textfield_->GetSelectedText()); 331 EXPECT_EQ(string16(), textfield_->GetSelectedText());
369 textfield_->SelectAll(); 332 textfield_->SelectAll();
370 EXPECT_STR_EQ("this is a test", textfield_->GetSelectedText()); 333 EXPECT_STR_EQ("this is a test", textfield_->GetSelectedText());
371 EXPECT_TRUE(last_contents_.empty()); 334 EXPECT_TRUE(last_contents_.empty());
372 } 335 }
373 336
374 TEST_F(NativeTextfieldViewsTest, MAYBE_KeyTest) { 337 TEST_F(NativeTextfieldViewsTest, KeyTest) {
375 InitTextfield(Textfield::STYLE_DEFAULT); 338 InitTextfield(Textfield::STYLE_DEFAULT);
376 SendKeyEvent(ui::VKEY_C, true, false); 339 SendKeyEvent(ui::VKEY_C, true, false);
377 EXPECT_STR_EQ("C", textfield_->text()); 340 EXPECT_STR_EQ("C", textfield_->text());
378 EXPECT_STR_EQ("C", last_contents_); 341 EXPECT_STR_EQ("C", last_contents_);
379 last_contents_.clear(); 342 last_contents_.clear();
380 343
381 SendKeyEvent(ui::VKEY_R, false, false); 344 SendKeyEvent(ui::VKEY_R, false, false);
382 EXPECT_STR_EQ("Cr", textfield_->text()); 345 EXPECT_STR_EQ("Cr", textfield_->text());
383 EXPECT_STR_EQ("Cr", last_contents_); 346 EXPECT_STR_EQ("Cr", last_contents_);
384 347
385 textfield_->SetText(ASCIIToUTF16("")); 348 textfield_->SetText(ASCIIToUTF16(""));
386 SendKeyEvent(ui::VKEY_C, true, false, true); 349 SendKeyEvent(ui::VKEY_C, true, false, true);
387 SendKeyEvent(ui::VKEY_C, false, false, true); 350 SendKeyEvent(ui::VKEY_C, false, false, true);
388 SendKeyEvent(ui::VKEY_1, false, false, true); 351 SendKeyEvent(ui::VKEY_1, false, false, true);
389 SendKeyEvent(ui::VKEY_1, true, false, true); 352 SendKeyEvent(ui::VKEY_1, true, false, true);
390 SendKeyEvent(ui::VKEY_1, true, false, false); 353 SendKeyEvent(ui::VKEY_1, true, false, false);
391 EXPECT_STR_EQ("cC1!!", textfield_->text()); 354 EXPECT_STR_EQ("cC1!!", textfield_->text());
392 EXPECT_STR_EQ("cC1!!", last_contents_); 355 EXPECT_STR_EQ("cC1!!", last_contents_);
393 } 356 }
394 357
395 TEST_F(NativeTextfieldViewsTest, MAYBE_ControlAndSelectTest) { 358 TEST_F(NativeTextfieldViewsTest, ControlAndSelectTest) {
396 // Insert a test string in a textfield. 359 // Insert a test string in a textfield.
397 InitTextfield(Textfield::STYLE_DEFAULT); 360 InitTextfield(Textfield::STYLE_DEFAULT);
398 textfield_->SetText(ASCIIToUTF16("one two three")); 361 textfield_->SetText(ASCIIToUTF16("one two three"));
399 SendKeyEvent(ui::VKEY_RIGHT, 362 SendKeyEvent(ui::VKEY_RIGHT,
400 true /* shift */, false /* control */); 363 true /* shift */, false /* control */);
401 SendKeyEvent(ui::VKEY_RIGHT, true, false); 364 SendKeyEvent(ui::VKEY_RIGHT, true, false);
402 SendKeyEvent(ui::VKEY_RIGHT, true, false); 365 SendKeyEvent(ui::VKEY_RIGHT, true, false);
403 366
404 EXPECT_STR_EQ("one", textfield_->GetSelectedText()); 367 EXPECT_STR_EQ("one", textfield_->GetSelectedText());
405 368
(...skipping 14 matching lines...) Expand all
420 SendKeyEvent(ui::VKEY_O, true, false); 383 SendKeyEvent(ui::VKEY_O, true, false);
421 SendKeyEvent(ui::VKEY_SPACE, false, false); 384 SendKeyEvent(ui::VKEY_SPACE, false, false);
422 EXPECT_STR_EQ("ZERO two three", textfield_->text()); 385 EXPECT_STR_EQ("ZERO two three", textfield_->text());
423 386
424 SendKeyEvent(ui::VKEY_END, true, false); 387 SendKeyEvent(ui::VKEY_END, true, false);
425 EXPECT_STR_EQ("two three", textfield_->GetSelectedText()); 388 EXPECT_STR_EQ("two three", textfield_->GetSelectedText());
426 SendKeyEvent(ui::VKEY_HOME, true, false); 389 SendKeyEvent(ui::VKEY_HOME, true, false);
427 EXPECT_STR_EQ("ZERO ", textfield_->GetSelectedText()); 390 EXPECT_STR_EQ("ZERO ", textfield_->GetSelectedText());
428 } 391 }
429 392
430 TEST_F(NativeTextfieldViewsTest, MAYBE_InsertionDeletionTest) { 393 TEST_F(NativeTextfieldViewsTest, InsertionDeletionTest) {
431 // Insert a test string in a textfield. 394 // Insert a test string in a textfield.
432 InitTextfield(Textfield::STYLE_DEFAULT); 395 InitTextfield(Textfield::STYLE_DEFAULT);
433 char test_str[] = "this is a test"; 396 char test_str[] = "this is a test";
434 for (size_t i = 0; i < sizeof(test_str); i++) { 397 for (size_t i = 0; i < sizeof(test_str); i++) {
435 // This is ugly and should be replaced by a utility standard function. 398 // This is ugly and should be replaced by a utility standard function.
436 // See comment in NativeTextfieldViews::GetPrintableChar. 399 // See comment in NativeTextfieldViews::GetPrintableChar.
437 char c = test_str[i]; 400 char c = test_str[i];
438 ui::KeyboardCode code = 401 ui::KeyboardCode code =
439 c == ' ' ? ui::VKEY_SPACE : 402 c == ' ' ? ui::VKEY_SPACE :
440 static_cast<ui::KeyboardCode>(ui::VKEY_A + c - 'a'); 403 static_cast<ui::KeyboardCode>(ui::VKEY_A + c - 'a');
(...skipping 108 matching lines...) Expand 10 before | Expand all | Expand 10 after
549 EXPECT_EQ(ui::TEXT_INPUT_TYPE_NONE, GetTextInputType()); 512 EXPECT_EQ(ui::TEXT_INPUT_TYPE_NONE, GetTextInputType());
550 513
551 textfield_->SetReadOnly(false); 514 textfield_->SetReadOnly(false);
552 EXPECT_EQ(ui::TEXT_INPUT_TYPE_URL, GetTextInputType()); 515 EXPECT_EQ(ui::TEXT_INPUT_TYPE_URL, GetTextInputType());
553 516
554 // As do disabled textfields 517 // As do disabled textfields
555 textfield_->SetEnabled(false); 518 textfield_->SetEnabled(false);
556 EXPECT_EQ(ui::TEXT_INPUT_TYPE_NONE, GetTextInputType()); 519 EXPECT_EQ(ui::TEXT_INPUT_TYPE_NONE, GetTextInputType());
557 } 520 }
558 521
559 TEST_F(NativeTextfieldViewsTest, MAYBE_OnKeyPressReturnValueTest) { 522 TEST_F(NativeTextfieldViewsTest, OnKeyPressReturnValueTest) {
560 InitTextfield(Textfield::STYLE_DEFAULT); 523 InitTextfield(Textfield::STYLE_DEFAULT);
561 524
562 // Character keys will be handled by input method. 525 // Character keys will be handled by input method.
563 SendKeyEvent(ui::VKEY_A); 526 SendKeyEvent(ui::VKEY_A);
564 EXPECT_TRUE(textfield_->key_received()); 527 EXPECT_TRUE(textfield_->key_received());
565 EXPECT_FALSE(textfield_->key_handled()); 528 EXPECT_FALSE(textfield_->key_handled());
566 textfield_->clear(); 529 textfield_->clear();
567 530
568 // Home will be handled. 531 // Home will be handled.
569 SendKeyEvent(ui::VKEY_HOME); 532 SendKeyEvent(ui::VKEY_HOME);
(...skipping 10 matching lines...) Expand all
580 SendKeyEvent(ui::VKEY_UP); 543 SendKeyEvent(ui::VKEY_UP);
581 EXPECT_TRUE(textfield_->key_received()); 544 EXPECT_TRUE(textfield_->key_received());
582 EXPECT_FALSE(textfield_->key_handled()); 545 EXPECT_FALSE(textfield_->key_handled());
583 textfield_->clear(); 546 textfield_->clear();
584 547
585 SendKeyEvent(ui::VKEY_DOWN); 548 SendKeyEvent(ui::VKEY_DOWN);
586 EXPECT_TRUE(textfield_->key_received()); 549 EXPECT_TRUE(textfield_->key_received());
587 EXPECT_FALSE(textfield_->key_handled()); 550 EXPECT_FALSE(textfield_->key_handled());
588 } 551 }
589 552
590 TEST_F(NativeTextfieldViewsTest, MAYBE_CursorMovement) { 553 TEST_F(NativeTextfieldViewsTest, CursorMovement) {
591 InitTextfield(Textfield::STYLE_DEFAULT); 554 InitTextfield(Textfield::STYLE_DEFAULT);
592 555
593 // Test with trailing whitespace. 556 // Test with trailing whitespace.
594 textfield_->SetText(ASCIIToUTF16("one two hre ")); 557 textfield_->SetText(ASCIIToUTF16("one two hre "));
595 558
596 // Send the cursor at the end. 559 // Send the cursor at the end.
597 SendKeyEvent(ui::VKEY_END); 560 SendKeyEvent(ui::VKEY_END);
598 561
599 // Ctrl+Left should move the cursor just before the last word. 562 // Ctrl+Left should move the cursor just before the last word.
600 SendKeyEvent(ui::VKEY_LEFT, false, true); 563 SendKeyEvent(ui::VKEY_LEFT, false, true);
(...skipping 239 matching lines...) Expand 10 before | Expand all | Expand 10 after
840 gfx::Point())); 803 gfx::Point()));
841 EXPECT_EQ(ui::DragDropTypes::DRAG_COPY, 804 EXPECT_EQ(ui::DragDropTypes::DRAG_COPY,
842 textfield_view_->GetDragOperationsForView(NULL, kStringPoint)); 805 textfield_view_->GetDragOperationsForView(NULL, kStringPoint));
843 EXPECT_TRUE(textfield_view_->CanStartDragForView(NULL, kStringPoint, 806 EXPECT_TRUE(textfield_view_->CanStartDragForView(NULL, kStringPoint,
844 gfx::Point())); 807 gfx::Point()));
845 // Ensure that textfields support local moves. 808 // Ensure that textfields support local moves.
846 EXPECT_EQ(ui::DragDropTypes::DRAG_MOVE | ui::DragDropTypes::DRAG_COPY, 809 EXPECT_EQ(ui::DragDropTypes::DRAG_MOVE | ui::DragDropTypes::DRAG_COPY,
847 textfield_view_->GetDragOperationsForView(textfield_view_, kStringPoint)); 810 textfield_view_->GetDragOperationsForView(textfield_view_, kStringPoint));
848 } 811 }
849 812
850 TEST_F(NativeTextfieldViewsTest, MAYBE_DragAndDrop_ToTheRight) { 813 TEST_F(NativeTextfieldViewsTest, DragAndDrop_ToTheRight) {
851 InitTextfield(Textfield::STYLE_DEFAULT); 814 InitTextfield(Textfield::STYLE_DEFAULT);
852 textfield_->SetText(ASCIIToUTF16("hello world")); 815 textfield_->SetText(ASCIIToUTF16("hello world"));
853 816
854 string16 string; 817 string16 string;
855 ui::OSExchangeData data; 818 ui::OSExchangeData data;
856 int formats = 0; 819 int formats = 0;
857 int operations = 0; 820 int operations = 0;
858 std::set<OSExchangeData::CustomFormat> custom_formats; 821 std::set<OSExchangeData::CustomFormat> custom_formats;
859 822
860 // Start dragging "ello". 823 // Start dragging "ello".
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
894 SendKeyEvent(ui::VKEY_Z, false, true); 857 SendKeyEvent(ui::VKEY_Z, false, true);
895 EXPECT_STR_EQ("", textfield_->text()); 858 EXPECT_STR_EQ("", textfield_->text());
896 SendKeyEvent(ui::VKEY_Y, false, true); 859 SendKeyEvent(ui::VKEY_Y, false, true);
897 EXPECT_STR_EQ("hello world", textfield_->text()); 860 EXPECT_STR_EQ("hello world", textfield_->text());
898 SendKeyEvent(ui::VKEY_Y, false, true); 861 SendKeyEvent(ui::VKEY_Y, false, true);
899 EXPECT_STR_EQ("h welloorld", textfield_->text()); 862 EXPECT_STR_EQ("h welloorld", textfield_->text());
900 SendKeyEvent(ui::VKEY_Y, false, true); 863 SendKeyEvent(ui::VKEY_Y, false, true);
901 EXPECT_STR_EQ("h welloorld", textfield_->text()); 864 EXPECT_STR_EQ("h welloorld", textfield_->text());
902 } 865 }
903 866
904 TEST_F(NativeTextfieldViewsTest, MAYBE_DragAndDrop_ToTheLeft) { 867 TEST_F(NativeTextfieldViewsTest, DragAndDrop_ToTheLeft) {
905 InitTextfield(Textfield::STYLE_DEFAULT); 868 InitTextfield(Textfield::STYLE_DEFAULT);
906 textfield_->SetText(ASCIIToUTF16("hello world")); 869 textfield_->SetText(ASCIIToUTF16("hello world"));
907 870
908 string16 string; 871 string16 string;
909 ui::OSExchangeData data; 872 ui::OSExchangeData data;
910 int formats = 0; 873 int formats = 0;
911 int operations = 0; 874 int operations = 0;
912 std::set<OSExchangeData::CustomFormat> custom_formats; 875 std::set<OSExchangeData::CustomFormat> custom_formats;
913 876
914 // Start dragging " worl". 877 // Start dragging " worl".
(...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after
975 ui::EF_LEFT_BUTTON_DOWN); 938 ui::EF_LEFT_BUTTON_DOWN);
976 MouseEvent release(ui::ET_MOUSE_RELEASED, GetCursorPositionX(9), 0, 939 MouseEvent release(ui::ET_MOUSE_RELEASED, GetCursorPositionX(9), 0,
977 ui::EF_LEFT_BUTTON_DOWN); 940 ui::EF_LEFT_BUTTON_DOWN);
978 textfield_view_->OnMouseDragged(drag); 941 textfield_view_->OnMouseDragged(drag);
979 textfield_view_->OnMouseReleased(release); 942 textfield_view_->OnMouseReleased(release);
980 textfield_view_->OnDragDone(); 943 textfield_view_->OnDragDone();
981 EXPECT_EQ(ASCIIToUTF16("hello world"), textfield_->text()); 944 EXPECT_EQ(ASCIIToUTF16("hello world"), textfield_->text());
982 } 945 }
983 #endif 946 #endif
984 947
985 TEST_F(NativeTextfieldViewsTest, MAYBE_ReadOnlyTest) { 948 TEST_F(NativeTextfieldViewsTest, ReadOnlyTest) {
986 InitTextfield(Textfield::STYLE_DEFAULT); 949 InitTextfield(Textfield::STYLE_DEFAULT);
987 textfield_->SetText(ASCIIToUTF16(" one two three ")); 950 textfield_->SetText(ASCIIToUTF16(" one two three "));
988 textfield_->SetReadOnly(true); 951 textfield_->SetReadOnly(true);
989 SendKeyEvent(ui::VKEY_HOME); 952 SendKeyEvent(ui::VKEY_HOME);
990 EXPECT_EQ(0U, textfield_->GetCursorPosition()); 953 EXPECT_EQ(0U, textfield_->GetCursorPosition());
991 954
992 SendKeyEvent(ui::VKEY_END); 955 SendKeyEvent(ui::VKEY_END);
993 EXPECT_EQ(15U, textfield_->GetCursorPosition()); 956 EXPECT_EQ(15U, textfield_->GetCursorPosition());
994 957
995 SendKeyEvent(ui::VKEY_LEFT, false, false); 958 SendKeyEvent(ui::VKEY_LEFT, false, false);
(...skipping 13 matching lines...) Expand all
1009 SendKeyEvent(ui::VKEY_X, false, true); 972 SendKeyEvent(ui::VKEY_X, false, true);
1010 EXPECT_STR_EQ(" one two three ", textfield_->GetSelectedText()); 973 EXPECT_STR_EQ(" one two three ", textfield_->GetSelectedText());
1011 string16 str; 974 string16 str;
1012 views::ViewsDelegate::views_delegate->GetClipboard()-> 975 views::ViewsDelegate::views_delegate->GetClipboard()->
1013 ReadText(ui::Clipboard::BUFFER_STANDARD, &str); 976 ReadText(ui::Clipboard::BUFFER_STANDARD, &str);
1014 EXPECT_STR_NE(" one two three ", str); 977 EXPECT_STR_NE(" one two three ", str);
1015 978
1016 SendKeyEvent(ui::VKEY_C, false, true); 979 SendKeyEvent(ui::VKEY_C, false, true);
1017 views::ViewsDelegate::views_delegate->GetClipboard()-> 980 views::ViewsDelegate::views_delegate->GetClipboard()->
1018 ReadText(ui::Clipboard::BUFFER_STANDARD, &str); 981 ReadText(ui::Clipboard::BUFFER_STANDARD, &str);
1019 EXPECT_STR_EQ(" one two three ", str); 982 EXPECT_STR_EQ(" one two three ", str);
oshima 2011/10/05 20:15:09 Did this work? It failed on linux because clipboar
msw 2011/10/05 20:45:34 Yes, it does work, via clipboard_win's ui::Clipboa
oshima 2011/10/05 21:02:19 I see. I think we added aura because linux impl us
1020 983
1021 // SetText should work even in read only mode. 984 // SetText should work even in read only mode.
1022 textfield_->SetText(ASCIIToUTF16(" four five six ")); 985 textfield_->SetText(ASCIIToUTF16(" four five six "));
1023 EXPECT_STR_EQ(" four five six ", textfield_->text()); 986 EXPECT_STR_EQ(" four five six ", textfield_->text());
1024 987
1025 // Paste shouldn't work. 988 // Paste shouldn't work.
1026 SendKeyEvent(ui::VKEY_V, false, true); 989 SendKeyEvent(ui::VKEY_V, false, true);
1027 EXPECT_STR_EQ(" four five six ", textfield_->text()); 990 EXPECT_STR_EQ(" four five six ", textfield_->text());
1028 EXPECT_TRUE(textfield_->GetSelectedText().empty()); 991 EXPECT_TRUE(textfield_->GetSelectedText().empty());
1029 992
1030 textfield_->SelectAll(); 993 textfield_->SelectAll();
1031 EXPECT_STR_EQ(" four five six ", textfield_->GetSelectedText()); 994 EXPECT_STR_EQ(" four five six ", textfield_->GetSelectedText());
1032 995
1033 // Text field is unmodifiable and selection shouldn't change. 996 // Text field is unmodifiable and selection shouldn't change.
1034 SendKeyEvent(ui::VKEY_DELETE); 997 SendKeyEvent(ui::VKEY_DELETE);
1035 EXPECT_STR_EQ(" four five six ", textfield_->GetSelectedText()); 998 EXPECT_STR_EQ(" four five six ", textfield_->GetSelectedText());
1036 SendKeyEvent(ui::VKEY_BACK); 999 SendKeyEvent(ui::VKEY_BACK);
1037 EXPECT_STR_EQ(" four five six ", textfield_->GetSelectedText()); 1000 EXPECT_STR_EQ(" four five six ", textfield_->GetSelectedText());
1038 SendKeyEvent(ui::VKEY_T); 1001 SendKeyEvent(ui::VKEY_T);
1039 EXPECT_STR_EQ(" four five six ", textfield_->GetSelectedText()); 1002 EXPECT_STR_EQ(" four five six ", textfield_->GetSelectedText());
1040 } 1003 }
1041 1004
1042 TEST_F(NativeTextfieldViewsTest, MAYBE_TextInputClientTest) { 1005 TEST_F(NativeTextfieldViewsTest, TextInputClientTest) {
1043 InitTextfield(Textfield::STYLE_DEFAULT); 1006 InitTextfield(Textfield::STYLE_DEFAULT);
1044 TextInputClient* client = textfield_->GetTextInputClient(); 1007 TextInputClient* client = textfield_->GetTextInputClient();
1045 EXPECT_TRUE(client); 1008 EXPECT_TRUE(client);
1046 EXPECT_EQ(ui::TEXT_INPUT_TYPE_TEXT, client->GetTextInputType()); 1009 EXPECT_EQ(ui::TEXT_INPUT_TYPE_TEXT, client->GetTextInputType());
1047 1010
1048 textfield_->SetText(ASCIIToUTF16("0123456789")); 1011 textfield_->SetText(ASCIIToUTF16("0123456789"));
1049 ui::Range range; 1012 ui::Range range;
1050 EXPECT_TRUE(client->GetTextRange(&range)); 1013 EXPECT_TRUE(client->GetTextRange(&range));
1051 EXPECT_EQ(0U, range.start()); 1014 EXPECT_EQ(0U, range.start());
1052 EXPECT_EQ(10U, range.end()); 1015 EXPECT_EQ(10U, range.end());
(...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after
1122 EXPECT_TRUE(input_method_->text_input_type_changed()); 1085 EXPECT_TRUE(input_method_->text_input_type_changed());
1123 EXPECT_FALSE(textfield_->GetTextInputClient()); 1086 EXPECT_FALSE(textfield_->GetTextInputClient());
1124 1087
1125 textfield_->SetReadOnly(false); 1088 textfield_->SetReadOnly(false);
1126 input_method_->Clear(); 1089 input_method_->Clear();
1127 textfield_->SetPassword(true); 1090 textfield_->SetPassword(true);
1128 EXPECT_TRUE(input_method_->text_input_type_changed()); 1091 EXPECT_TRUE(input_method_->text_input_type_changed());
1129 EXPECT_TRUE(textfield_->GetTextInputClient()); 1092 EXPECT_TRUE(textfield_->GetTextInputClient());
1130 } 1093 }
1131 1094
1132 TEST_F(NativeTextfieldViewsTest, MAYBE_UndoRedoTest) { 1095 TEST_F(NativeTextfieldViewsTest, UndoRedoTest) {
1133 InitTextfield(Textfield::STYLE_DEFAULT); 1096 InitTextfield(Textfield::STYLE_DEFAULT);
1134 SendKeyEvent(ui::VKEY_A); 1097 SendKeyEvent(ui::VKEY_A);
1135 EXPECT_STR_EQ("a", textfield_->text()); 1098 EXPECT_STR_EQ("a", textfield_->text());
1136 SendKeyEvent(ui::VKEY_Z, false, true); 1099 SendKeyEvent(ui::VKEY_Z, false, true);
1137 EXPECT_STR_EQ("", textfield_->text()); 1100 EXPECT_STR_EQ("", textfield_->text());
1138 SendKeyEvent(ui::VKEY_Z, false, true); 1101 SendKeyEvent(ui::VKEY_Z, false, true);
1139 EXPECT_STR_EQ("", textfield_->text()); 1102 EXPECT_STR_EQ("", textfield_->text());
1140 SendKeyEvent(ui::VKEY_Y, false, true); 1103 SendKeyEvent(ui::VKEY_Y, false, true);
1141 EXPECT_STR_EQ("a", textfield_->text()); 1104 EXPECT_STR_EQ("a", textfield_->text());
1142 SendKeyEvent(ui::VKEY_Y, false, true); 1105 SendKeyEvent(ui::VKEY_Y, false, true);
(...skipping 87 matching lines...) Expand 10 before | Expand all | Expand 10 after
1230 SendKeyEvent(ui::VKEY_A); 1193 SendKeyEvent(ui::VKEY_A);
1231 EXPECT_STR_EQ("a23", textfield_->text()); 1194 EXPECT_STR_EQ("a23", textfield_->text());
1232 SendKeyEvent(ui::VKEY_B); 1195 SendKeyEvent(ui::VKEY_B);
1233 EXPECT_STR_EQ("ab3", textfield_->text()); 1196 EXPECT_STR_EQ("ab3", textfield_->text());
1234 SendKeyEvent(ui::VKEY_Z, false, true); 1197 SendKeyEvent(ui::VKEY_Z, false, true);
1235 EXPECT_STR_EQ("123", textfield_->text()); 1198 EXPECT_STR_EQ("123", textfield_->text());
1236 SendKeyEvent(ui::VKEY_Y, false, true); 1199 SendKeyEvent(ui::VKEY_Y, false, true);
1237 EXPECT_STR_EQ("ab3", textfield_->text()); 1200 EXPECT_STR_EQ("ab3", textfield_->text());
1238 } 1201 }
1239 1202
1240 TEST_F(NativeTextfieldViewsTest, MAYBE_TextCursorDisplayTest) { 1203 TEST_F(NativeTextfieldViewsTest, TextCursorDisplayTest) {
1241 InitTextfield(Textfield::STYLE_DEFAULT); 1204 InitTextfield(Textfield::STYLE_DEFAULT);
1242 // LTR-RTL string in LTR context. 1205 // LTR-RTL string in LTR context.
1243 SendKeyEvent('a'); 1206 SendKeyEvent('a');
1244 EXPECT_STR_EQ("a", textfield_->text()); 1207 EXPECT_STR_EQ("a", textfield_->text());
1245 int x = GetCursorBounds().x(); 1208 int x = GetCursorBounds().x();
1246 int prev_x = x; 1209 int prev_x = x;
1247 1210
1248 SendKeyEvent('b'); 1211 SendKeyEvent('b');
1249 EXPECT_STR_EQ("ab", textfield_->text()); 1212 EXPECT_STR_EQ("ab", textfield_->text());
1250 x = GetCursorBounds().x(); 1213 x = GetCursorBounds().x();
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
1282 x = GetCursorBounds().x(); 1245 x = GetCursorBounds().x();
1283 EXPECT_LT(prev_x, x); 1246 EXPECT_LT(prev_x, x);
1284 prev_x = x; 1247 prev_x = x;
1285 1248
1286 SendKeyEvent('b'); 1249 SendKeyEvent('b');
1287 EXPECT_EQ(WideToUTF16(L"\x05E1\x5E2"L"ab"), textfield_->text()); 1250 EXPECT_EQ(WideToUTF16(L"\x05E1\x5E2"L"ab"), textfield_->text());
1288 x = GetCursorBounds().x(); 1251 x = GetCursorBounds().x();
1289 EXPECT_LT(prev_x, x); 1252 EXPECT_LT(prev_x, x);
1290 } 1253 }
1291 1254
1292 TEST_F(NativeTextfieldViewsTest, MAYBE_TextCursorDisplayInRTLTest) { 1255 TEST_F(NativeTextfieldViewsTest, TextCursorDisplayInRTLTest) {
1293 std::string locale = l10n_util::GetApplicationLocale(""); 1256 std::string locale = l10n_util::GetApplicationLocale("");
1294 base::i18n::SetICUDefaultLocale("he"); 1257 base::i18n::SetICUDefaultLocale("he");
1295 1258
1296 InitTextfield(Textfield::STYLE_DEFAULT); 1259 InitTextfield(Textfield::STYLE_DEFAULT);
1297 // LTR-RTL string in RTL context. 1260 // LTR-RTL string in RTL context.
1298 SendKeyEvent('a'); 1261 SendKeyEvent('a');
1299 EXPECT_STR_EQ("a", textfield_->text()); 1262 EXPECT_STR_EQ("a", textfield_->text());
1300 int x = GetCursorBounds().x(); 1263 int x = GetCursorBounds().x();
1301 EXPECT_EQ(GetDisplayRect().right() - 1, x); 1264 EXPECT_EQ(GetDisplayRect().right() - 1, x);
1302 int prev_x = x; 1265 int prev_x = x;
(...skipping 97 matching lines...) Expand 10 before | Expand all | Expand 10 after
1400 // for the test to run if using sleep(). 1363 // for the test to run if using sleep().
1401 NonClientMouseClick(); 1364 NonClientMouseClick();
1402 1365
1403 MouseClick(cursor_bounds[i + 1], - (half_width / 2)); 1366 MouseClick(cursor_bounds[i + 1], - (half_width / 2));
1404 EXPECT_EQ(cursor_pos_expected[index++], textfield_->GetCursorPosition()); 1367 EXPECT_EQ(cursor_pos_expected[index++], textfield_->GetCursorPosition());
1405 1368
1406 NonClientMouseClick(); 1369 NonClientMouseClick();
1407 } 1370 }
1408 } 1371 }
1409 1372
1410 TEST_F(NativeTextfieldViewsTest, MAYBE_HitOutsideTextAreaTest) { 1373 TEST_F(NativeTextfieldViewsTest, HitOutsideTextAreaTest) {
1411 InitTextfield(Textfield::STYLE_DEFAULT); 1374 InitTextfield(Textfield::STYLE_DEFAULT);
1412 1375
1413 // LTR-RTL string in LTR context. 1376 // LTR-RTL string in LTR context.
1414 textfield_->SetText(WideToUTF16(L"ab\x05E1\x5E2")); 1377 textfield_->SetText(WideToUTF16(L"ab\x05E1\x5E2"));
1415 1378
1416 SendKeyEvent(ui::VKEY_HOME); 1379 SendKeyEvent(ui::VKEY_HOME);
1417 gfx::Rect bound = GetCursorBounds(); 1380 gfx::Rect bound = GetCursorBounds();
1418 MouseClick(bound, -10); 1381 MouseClick(bound, -10);
1419 EXPECT_EQ(bound, GetCursorBounds()); 1382 EXPECT_EQ(bound, GetCursorBounds());
1420 1383
(...skipping 19 matching lines...) Expand all
1440 SendKeyEvent(ui::VKEY_END); 1403 SendKeyEvent(ui::VKEY_END);
1441 bound = GetCursorBounds(); 1404 bound = GetCursorBounds();
1442 #if defined(OS_WIN) 1405 #if defined(OS_WIN)
1443 MouseClick(bound, 10); 1406 MouseClick(bound, 10);
1444 #else 1407 #else
1445 MouseClick(bound, -10); 1408 MouseClick(bound, -10);
1446 #endif 1409 #endif
1447 EXPECT_EQ(bound, GetCursorBounds()); 1410 EXPECT_EQ(bound, GetCursorBounds());
1448 } 1411 }
1449 1412
1450 TEST_F(NativeTextfieldViewsTest, MAYBE_HitOutsideTextAreaInRTLTest) { 1413 TEST_F(NativeTextfieldViewsTest, HitOutsideTextAreaInRTLTest) {
1451 std::string locale = l10n_util::GetApplicationLocale(""); 1414 std::string locale = l10n_util::GetApplicationLocale("");
1452 base::i18n::SetICUDefaultLocale("he"); 1415 base::i18n::SetICUDefaultLocale("he");
1453 1416
1454 InitTextfield(Textfield::STYLE_DEFAULT); 1417 InitTextfield(Textfield::STYLE_DEFAULT);
1455 1418
1456 // RTL-LTR string in RTL context. 1419 // RTL-LTR string in RTL context.
1457 textfield_->SetText(WideToUTF16(L"\x05E1\x5E2"L"ab")); 1420 textfield_->SetText(WideToUTF16(L"\x05E1\x5E2"L"ab"));
1458 SendKeyEvent(ui::VKEY_HOME); 1421 SendKeyEvent(ui::VKEY_HOME);
1459 gfx::Rect bound = GetCursorBounds(); 1422 gfx::Rect bound = GetCursorBounds();
1460 MouseClick(bound, 10); 1423 MouseClick(bound, 10);
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
1494 // This verifies that |bound| is contained by |display|. |bound|'s right edge 1457 // This verifies that |bound| is contained by |display|. |bound|'s right edge
1495 // must be less than |diaplay|'s right edge. 1458 // must be less than |diaplay|'s right edge.
1496 void OverflowCursorBoundTestVerifier(const gfx::Rect& display, 1459 void OverflowCursorBoundTestVerifier(const gfx::Rect& display,
1497 const gfx::Rect& bound) { 1460 const gfx::Rect& bound) {
1498 EXPECT_LE(display.x(), bound.x()); 1461 EXPECT_LE(display.x(), bound.x());
1499 EXPECT_GT(display.right(), bound.right()); 1462 EXPECT_GT(display.right(), bound.right());
1500 EXPECT_LE(display.y(), bound.y()); 1463 EXPECT_LE(display.y(), bound.y());
1501 EXPECT_GE(display.bottom(), bound.bottom()); 1464 EXPECT_GE(display.bottom(), bound.bottom());
1502 } 1465 }
1503 1466
1504 TEST_F(NativeTextfieldViewsTest, MAYBE_OverflowTest) { 1467 TEST_F(NativeTextfieldViewsTest, OverflowTest) {
1505 InitTextfield(Textfield::STYLE_DEFAULT); 1468 InitTextfield(Textfield::STYLE_DEFAULT);
1506 1469
1507 string16 str; 1470 string16 str;
1508 for (int i = 0; i < 500; ++i) 1471 for (int i = 0; i < 500; ++i)
1509 SendKeyEvent('a'); 1472 SendKeyEvent('a');
1510 SendKeyEvent(kHebrewLetterSamekh); 1473 SendKeyEvent(kHebrewLetterSamekh);
1511 gfx::Rect bound = GetCursorBounds(); 1474 gfx::Rect bound = GetCursorBounds();
1512 gfx::Rect display = GetDisplayRect(); 1475 gfx::Rect display = GetDisplayRect();
1513 OverflowCursorBoundTestVerifier(display, bound); 1476 OverflowCursorBoundTestVerifier(display, bound);
1514 1477
1515 // Test mouse pointing. 1478 // Test mouse pointing.
1516 MouseClick(bound, -1); 1479 MouseClick(bound, -1);
1517 EXPECT_EQ(500U, textfield_->GetCursorPosition()); 1480 EXPECT_EQ(500U, textfield_->GetCursorPosition());
1518 1481
1519 // Clear text. 1482 // Clear text.
1520 SendKeyEvent(ui::VKEY_A, false, true); 1483 SendKeyEvent(ui::VKEY_A, false, true);
1521 SendKeyEvent('\n'); 1484 SendKeyEvent('\n');
1522 1485
1523 for (int i = 0; i < 500; ++i) 1486 for (int i = 0; i < 500; ++i)
1524 SendKeyEvent(kHebrewLetterSamekh); 1487 SendKeyEvent(kHebrewLetterSamekh);
1525 SendKeyEvent('a'); 1488 SendKeyEvent('a');
1526 bound = GetCursorBounds(); 1489 bound = GetCursorBounds();
1527 display = GetDisplayRect(); 1490 display = GetDisplayRect();
1528 OverflowCursorBoundTestVerifier(display, bound); 1491 OverflowCursorBoundTestVerifier(display, bound);
1529 1492
1530 MouseClick(bound, -1); 1493 MouseClick(bound, -1);
1531 EXPECT_EQ(501U, textfield_->GetCursorPosition()); 1494 EXPECT_EQ(501U, textfield_->GetCursorPosition());
1532 } 1495 }
1533 1496
1534 TEST_F(NativeTextfieldViewsTest, MAYBE_OverflowInRTLTest) { 1497 TEST_F(NativeTextfieldViewsTest, OverflowInRTLTest) {
1535 std::string locale = l10n_util::GetApplicationLocale(""); 1498 std::string locale = l10n_util::GetApplicationLocale("");
1536 base::i18n::SetICUDefaultLocale("he"); 1499 base::i18n::SetICUDefaultLocale("he");
1537 1500
1538 InitTextfield(Textfield::STYLE_DEFAULT); 1501 InitTextfield(Textfield::STYLE_DEFAULT);
1539 1502
1540 string16 str; 1503 string16 str;
1541 for (int i = 0; i < 500; ++i) 1504 for (int i = 0; i < 500; ++i)
1542 SendKeyEvent('a'); 1505 SendKeyEvent('a');
1543 SendKeyEvent(kHebrewLetterSamekh); 1506 SendKeyEvent(kHebrewLetterSamekh);
1544 gfx::Rect bound = GetCursorBounds(); 1507 gfx::Rect bound = GetCursorBounds();
(...skipping 22 matching lines...) Expand all
1567 EXPECT_EQ(0U, textfield_->GetCursorPosition()); 1530 EXPECT_EQ(0U, textfield_->GetCursorPosition());
1568 #else 1531 #else
1569 EXPECT_EQ(500U, textfield_->GetCursorPosition()); 1532 EXPECT_EQ(500U, textfield_->GetCursorPosition());
1570 #endif 1533 #endif
1571 1534
1572 // Reset locale. 1535 // Reset locale.
1573 base::i18n::SetICUDefaultLocale(locale); 1536 base::i18n::SetICUDefaultLocale(locale);
1574 } 1537 }
1575 1538
1576 } // namespace views 1539 } // namespace views
OLDNEW
« no previous file with comments | « no previous file | views/events/event.cc » ('j') | views/events/event_aura.cc » ('J')

Powered by Google App Engine
This is Rietveld 408576698