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 <set> | 7 #include <set> |
8 #include <string> | 8 #include <string> |
9 #include <vector> | 9 #include <vector> |
10 | 10 |
(...skipping 579 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
590 } | 590 } |
591 | 591 |
592 gfx::Rect GetDisplayRect() { | 592 gfx::Rect GetDisplayRect() { |
593 return test_api_->GetRenderText()->display_rect(); | 593 return test_api_->GetRenderText()->display_rect(); |
594 } | 594 } |
595 | 595 |
596 // Mouse click on the point whose x-axis is |bound|'s x plus |x_offset| and | 596 // Mouse click on the point whose x-axis is |bound|'s x plus |x_offset| and |
597 // y-axis is in the middle of |bound|'s vertical range. | 597 // y-axis is in the middle of |bound|'s vertical range. |
598 void MouseClick(const gfx::Rect bound, int x_offset) { | 598 void MouseClick(const gfx::Rect bound, int x_offset) { |
599 gfx::Point point(bound.x() + x_offset, bound.y() + bound.height() / 2); | 599 gfx::Point point(bound.x() + x_offset, bound.y() + bound.height() / 2); |
600 ui::MouseEvent click(ui::ET_MOUSE_PRESSED, point, point, | 600 ui::MouseEvent click( |
601 ui::EventTimeForNow(), ui::EF_LEFT_MOUSE_BUTTON, | 601 ui::ET_MOUSE_PRESSED, point, point, ui::EventTimeForNow(), |
602 ui::EF_LEFT_MOUSE_BUTTON); | 602 ui::EF_LEFT_MOUSE_BUTTON, ui::EF_LEFT_MOUSE_BUTTON, |
| 603 ui::PointerEventDetails(ui::EventPointerType::POINTER_TYPE_MOUSE)); |
603 textfield_->OnMousePressed(click); | 604 textfield_->OnMousePressed(click); |
604 ui::MouseEvent release(ui::ET_MOUSE_RELEASED, point, point, | 605 ui::MouseEvent release( |
605 ui::EventTimeForNow(), ui::EF_LEFT_MOUSE_BUTTON, | 606 ui::ET_MOUSE_RELEASED, point, point, ui::EventTimeForNow(), |
606 ui::EF_LEFT_MOUSE_BUTTON); | 607 ui::EF_LEFT_MOUSE_BUTTON, ui::EF_LEFT_MOUSE_BUTTON, |
| 608 ui::PointerEventDetails(ui::EventPointerType::POINTER_TYPE_MOUSE)); |
607 textfield_->OnMouseReleased(release); | 609 textfield_->OnMouseReleased(release); |
608 } | 610 } |
609 | 611 |
610 // This is to avoid double/triple click. | 612 // This is to avoid double/triple click. |
611 void NonClientMouseClick() { | 613 void NonClientMouseClick() { |
612 ui::MouseEvent click(ui::ET_MOUSE_PRESSED, gfx::Point(), gfx::Point(), | 614 ui::MouseEvent click( |
613 ui::EventTimeForNow(), | 615 ui::ET_MOUSE_PRESSED, gfx::Point(), gfx::Point(), ui::EventTimeForNow(), |
614 ui::EF_LEFT_MOUSE_BUTTON | ui::EF_IS_NON_CLIENT, | 616 ui::EF_LEFT_MOUSE_BUTTON | ui::EF_IS_NON_CLIENT, |
615 ui::EF_LEFT_MOUSE_BUTTON); | 617 ui::EF_LEFT_MOUSE_BUTTON, |
| 618 ui::PointerEventDetails(ui::EventPointerType::POINTER_TYPE_MOUSE)); |
616 textfield_->OnMousePressed(click); | 619 textfield_->OnMousePressed(click); |
617 ui::MouseEvent release(ui::ET_MOUSE_RELEASED, gfx::Point(), gfx::Point(), | 620 ui::MouseEvent release( |
618 ui::EventTimeForNow(), | 621 ui::ET_MOUSE_RELEASED, gfx::Point(), gfx::Point(), |
619 ui::EF_LEFT_MOUSE_BUTTON | ui::EF_IS_NON_CLIENT, | 622 ui::EventTimeForNow(), ui::EF_LEFT_MOUSE_BUTTON | ui::EF_IS_NON_CLIENT, |
620 ui::EF_LEFT_MOUSE_BUTTON); | 623 ui::EF_LEFT_MOUSE_BUTTON, |
| 624 ui::PointerEventDetails(ui::EventPointerType::POINTER_TYPE_MOUSE)); |
621 textfield_->OnMouseReleased(release); | 625 textfield_->OnMouseReleased(release); |
622 } | 626 } |
623 | 627 |
624 void VerifyTextfieldContextMenuContents(bool textfield_has_selection, | 628 void VerifyTextfieldContextMenuContents(bool textfield_has_selection, |
625 bool can_undo, | 629 bool can_undo, |
626 ui::MenuModel* menu) { | 630 ui::MenuModel* menu) { |
627 EXPECT_EQ(can_undo, menu->IsEnabledAt(0 /* UNDO */)); | 631 EXPECT_EQ(can_undo, menu->IsEnabledAt(0 /* UNDO */)); |
628 EXPECT_TRUE(menu->IsEnabledAt(1 /* Separator */)); | 632 EXPECT_TRUE(menu->IsEnabledAt(1 /* Separator */)); |
629 EXPECT_EQ(textfield_has_selection, menu->IsEnabledAt(2 /* CUT */)); | 633 EXPECT_EQ(textfield_has_selection, menu->IsEnabledAt(2 /* CUT */)); |
630 EXPECT_EQ(textfield_has_selection, menu->IsEnabledAt(3 /* COPY */)); | 634 EXPECT_EQ(textfield_has_selection, menu->IsEnabledAt(3 /* COPY */)); |
(...skipping 409 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1040 widget_->GetFocusManager()->AdvanceFocus(true); | 1044 widget_->GetFocusManager()->AdvanceFocus(true); |
1041 EXPECT_EQ(3, GetFocusedView()->id()); | 1045 EXPECT_EQ(3, GetFocusedView()->id()); |
1042 | 1046 |
1043 // Request focus should still work. | 1047 // Request focus should still work. |
1044 textfield_->RequestFocus(); | 1048 textfield_->RequestFocus(); |
1045 EXPECT_EQ(1, GetFocusedView()->id()); | 1049 EXPECT_EQ(1, GetFocusedView()->id()); |
1046 | 1050 |
1047 // Test if clicking on textfield view sets the focus. | 1051 // Test if clicking on textfield view sets the focus. |
1048 widget_->GetFocusManager()->AdvanceFocus(true); | 1052 widget_->GetFocusManager()->AdvanceFocus(true); |
1049 EXPECT_EQ(3, GetFocusedView()->id()); | 1053 EXPECT_EQ(3, GetFocusedView()->id()); |
1050 ui::MouseEvent click(ui::ET_MOUSE_PRESSED, gfx::Point(), gfx::Point(), | 1054 ui::MouseEvent click( |
1051 ui::EventTimeForNow(), ui::EF_LEFT_MOUSE_BUTTON, | 1055 ui::ET_MOUSE_PRESSED, gfx::Point(), gfx::Point(), ui::EventTimeForNow(), |
1052 ui::EF_LEFT_MOUSE_BUTTON); | 1056 ui::EF_LEFT_MOUSE_BUTTON, ui::EF_LEFT_MOUSE_BUTTON, |
| 1057 ui::PointerEventDetails(ui::EventPointerType::POINTER_TYPE_MOUSE)); |
1053 textfield_->OnMousePressed(click); | 1058 textfield_->OnMousePressed(click); |
1054 EXPECT_EQ(1, GetFocusedView()->id()); | 1059 EXPECT_EQ(1, GetFocusedView()->id()); |
1055 | 1060 |
1056 // Tab/Shift+Tab should also cycle focus, not insert a tab character. | 1061 // Tab/Shift+Tab should also cycle focus, not insert a tab character. |
1057 SendKeyEvent(ui::VKEY_TAB, false, false); | 1062 SendKeyEvent(ui::VKEY_TAB, false, false); |
1058 EXPECT_EQ(2, GetFocusedView()->id()); | 1063 EXPECT_EQ(2, GetFocusedView()->id()); |
1059 SendKeyEvent(ui::VKEY_TAB, false, false); | 1064 SendKeyEvent(ui::VKEY_TAB, false, false); |
1060 EXPECT_EQ(3, GetFocusedView()->id()); | 1065 EXPECT_EQ(3, GetFocusedView()->id()); |
1061 // Cycle back to the first textfield. | 1066 // Cycle back to the first textfield. |
1062 SendKeyEvent(ui::VKEY_TAB, false, false); | 1067 SendKeyEvent(ui::VKEY_TAB, false, false); |
(...skipping 29 matching lines...) Expand all Loading... |
1092 VerifyTextfieldContextMenuContents(true, true, GetContextMenuModel()); | 1097 VerifyTextfieldContextMenuContents(true, true, GetContextMenuModel()); |
1093 | 1098 |
1094 // Exercise the "paste enabled?" check in the verifier. | 1099 // Exercise the "paste enabled?" check in the verifier. |
1095 SetClipboardText(ui::CLIPBOARD_TYPE_COPY_PASTE, "Test"); | 1100 SetClipboardText(ui::CLIPBOARD_TYPE_COPY_PASTE, "Test"); |
1096 VerifyTextfieldContextMenuContents(true, true, GetContextMenuModel()); | 1101 VerifyTextfieldContextMenuContents(true, true, GetContextMenuModel()); |
1097 } | 1102 } |
1098 | 1103 |
1099 TEST_F(TextfieldTest, DoubleAndTripleClickTest) { | 1104 TEST_F(TextfieldTest, DoubleAndTripleClickTest) { |
1100 InitTextfield(); | 1105 InitTextfield(); |
1101 textfield_->SetText(ASCIIToUTF16("hello world")); | 1106 textfield_->SetText(ASCIIToUTF16("hello world")); |
1102 ui::MouseEvent click(ui::ET_MOUSE_PRESSED, gfx::Point(), gfx::Point(), | 1107 ui::MouseEvent click( |
1103 ui::EventTimeForNow(), ui::EF_LEFT_MOUSE_BUTTON, | 1108 ui::ET_MOUSE_PRESSED, gfx::Point(), gfx::Point(), ui::EventTimeForNow(), |
1104 ui::EF_LEFT_MOUSE_BUTTON); | 1109 ui::EF_LEFT_MOUSE_BUTTON, ui::EF_LEFT_MOUSE_BUTTON, |
1105 ui::MouseEvent release(ui::ET_MOUSE_RELEASED, gfx::Point(), gfx::Point(), | 1110 ui::PointerEventDetails(ui::EventPointerType::POINTER_TYPE_MOUSE)); |
1106 ui::EventTimeForNow(), ui::EF_LEFT_MOUSE_BUTTON, | 1111 ui::MouseEvent release( |
1107 ui::EF_LEFT_MOUSE_BUTTON); | 1112 ui::ET_MOUSE_RELEASED, gfx::Point(), gfx::Point(), ui::EventTimeForNow(), |
1108 ui::MouseEvent double_click(ui::ET_MOUSE_PRESSED, gfx::Point(), gfx::Point(), | 1113 ui::EF_LEFT_MOUSE_BUTTON, ui::EF_LEFT_MOUSE_BUTTON, |
1109 ui::EventTimeForNow(), | 1114 ui::PointerEventDetails(ui::EventPointerType::POINTER_TYPE_MOUSE)); |
1110 ui::EF_LEFT_MOUSE_BUTTON | ui::EF_IS_DOUBLE_CLICK, | 1115 ui::MouseEvent double_click( |
1111 ui::EF_LEFT_MOUSE_BUTTON); | 1116 ui::ET_MOUSE_PRESSED, gfx::Point(), gfx::Point(), ui::EventTimeForNow(), |
| 1117 ui::EF_LEFT_MOUSE_BUTTON | ui::EF_IS_DOUBLE_CLICK, |
| 1118 ui::EF_LEFT_MOUSE_BUTTON, |
| 1119 ui::PointerEventDetails(ui::EventPointerType::POINTER_TYPE_MOUSE)); |
1112 | 1120 |
1113 // Test for double click. | 1121 // Test for double click. |
1114 textfield_->OnMousePressed(click); | 1122 textfield_->OnMousePressed(click); |
1115 textfield_->OnMouseReleased(release); | 1123 textfield_->OnMouseReleased(release); |
1116 EXPECT_TRUE(textfield_->GetSelectedText().empty()); | 1124 EXPECT_TRUE(textfield_->GetSelectedText().empty()); |
1117 textfield_->OnMousePressed(double_click); | 1125 textfield_->OnMousePressed(double_click); |
1118 textfield_->OnMouseReleased(release); | 1126 textfield_->OnMouseReleased(release); |
1119 EXPECT_STR_EQ("hello", textfield_->GetSelectedText()); | 1127 EXPECT_STR_EQ("hello", textfield_->GetSelectedText()); |
1120 | 1128 |
1121 // Test for triple click. | 1129 // Test for triple click. |
1122 textfield_->OnMousePressed(click); | 1130 textfield_->OnMousePressed(click); |
1123 textfield_->OnMouseReleased(release); | 1131 textfield_->OnMouseReleased(release); |
1124 EXPECT_STR_EQ("hello world", textfield_->GetSelectedText()); | 1132 EXPECT_STR_EQ("hello world", textfield_->GetSelectedText()); |
1125 | 1133 |
1126 // Another click should reset back to double click. | 1134 // Another click should reset back to double click. |
1127 textfield_->OnMousePressed(click); | 1135 textfield_->OnMousePressed(click); |
1128 textfield_->OnMouseReleased(release); | 1136 textfield_->OnMouseReleased(release); |
1129 EXPECT_STR_EQ("hello", textfield_->GetSelectedText()); | 1137 EXPECT_STR_EQ("hello", textfield_->GetSelectedText()); |
1130 } | 1138 } |
1131 | 1139 |
1132 TEST_F(TextfieldTest, DragToSelect) { | 1140 TEST_F(TextfieldTest, DragToSelect) { |
1133 InitTextfield(); | 1141 InitTextfield(); |
1134 textfield_->SetText(ASCIIToUTF16("hello world")); | 1142 textfield_->SetText(ASCIIToUTF16("hello world")); |
1135 const int kStart = GetCursorPositionX(5); | 1143 const int kStart = GetCursorPositionX(5); |
1136 const int kEnd = 500; | 1144 const int kEnd = 500; |
1137 gfx::Point start_point(kStart, 0); | 1145 gfx::Point start_point(kStart, 0); |
1138 gfx::Point end_point(kEnd, 0); | 1146 gfx::Point end_point(kEnd, 0); |
1139 ui::MouseEvent click_a(ui::ET_MOUSE_PRESSED, start_point, start_point, | 1147 ui::MouseEvent click_a( |
1140 ui::EventTimeForNow(), ui::EF_LEFT_MOUSE_BUTTON, | 1148 ui::ET_MOUSE_PRESSED, start_point, start_point, ui::EventTimeForNow(), |
1141 ui::EF_LEFT_MOUSE_BUTTON); | 1149 ui::EF_LEFT_MOUSE_BUTTON, ui::EF_LEFT_MOUSE_BUTTON, |
1142 ui::MouseEvent click_b(ui::ET_MOUSE_PRESSED, end_point, end_point, | 1150 ui::PointerEventDetails(ui::EventPointerType::POINTER_TYPE_MOUSE)); |
1143 ui::EventTimeForNow(), ui::EF_LEFT_MOUSE_BUTTON, | 1151 ui::MouseEvent click_b( |
1144 ui::EF_LEFT_MOUSE_BUTTON); | 1152 ui::ET_MOUSE_PRESSED, end_point, end_point, ui::EventTimeForNow(), |
1145 ui::MouseEvent drag_left(ui::ET_MOUSE_DRAGGED, gfx::Point(), gfx::Point(), | 1153 ui::EF_LEFT_MOUSE_BUTTON, ui::EF_LEFT_MOUSE_BUTTON, |
1146 ui::EventTimeForNow(), ui::EF_LEFT_MOUSE_BUTTON, 0); | 1154 ui::PointerEventDetails(ui::EventPointerType::POINTER_TYPE_MOUSE)); |
1147 ui::MouseEvent drag_right(ui::ET_MOUSE_DRAGGED, end_point, end_point, | 1155 ui::MouseEvent drag_left( |
1148 ui::EventTimeForNow(), ui::EF_LEFT_MOUSE_BUTTON, 0); | 1156 ui::ET_MOUSE_DRAGGED, gfx::Point(), gfx::Point(), ui::EventTimeForNow(), |
1149 ui::MouseEvent release(ui::ET_MOUSE_RELEASED, end_point, end_point, | 1157 ui::EF_LEFT_MOUSE_BUTTON, 0, |
1150 ui::EventTimeForNow(), ui::EF_LEFT_MOUSE_BUTTON, | 1158 ui::PointerEventDetails(ui::EventPointerType::POINTER_TYPE_MOUSE)); |
1151 ui::EF_LEFT_MOUSE_BUTTON); | 1159 ui::MouseEvent drag_right( |
| 1160 ui::ET_MOUSE_DRAGGED, end_point, end_point, ui::EventTimeForNow(), |
| 1161 ui::EF_LEFT_MOUSE_BUTTON, 0, |
| 1162 ui::PointerEventDetails(ui::EventPointerType::POINTER_TYPE_MOUSE)); |
| 1163 ui::MouseEvent release( |
| 1164 ui::ET_MOUSE_RELEASED, end_point, end_point, ui::EventTimeForNow(), |
| 1165 ui::EF_LEFT_MOUSE_BUTTON, ui::EF_LEFT_MOUSE_BUTTON, |
| 1166 ui::PointerEventDetails(ui::EventPointerType::POINTER_TYPE_MOUSE)); |
1152 textfield_->OnMousePressed(click_a); | 1167 textfield_->OnMousePressed(click_a); |
1153 EXPECT_TRUE(textfield_->GetSelectedText().empty()); | 1168 EXPECT_TRUE(textfield_->GetSelectedText().empty()); |
1154 // Check that dragging left selects the beginning of the string. | 1169 // Check that dragging left selects the beginning of the string. |
1155 textfield_->OnMouseDragged(drag_left); | 1170 textfield_->OnMouseDragged(drag_left); |
1156 base::string16 text_left = textfield_->GetSelectedText(); | 1171 base::string16 text_left = textfield_->GetSelectedText(); |
1157 EXPECT_STR_EQ("hello", text_left); | 1172 EXPECT_STR_EQ("hello", text_left); |
1158 // Check that dragging right selects the rest of the string. | 1173 // Check that dragging right selects the rest of the string. |
1159 textfield_->OnMouseDragged(drag_right); | 1174 textfield_->OnMouseDragged(drag_right); |
1160 base::string16 text_right = textfield_->GetSelectedText(); | 1175 base::string16 text_right = textfield_->GetSelectedText(); |
1161 EXPECT_STR_EQ(" world", text_right); | 1176 EXPECT_STR_EQ(" world", text_right); |
(...skipping 83 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1245 textfield_->ClearSelection(); | 1260 textfield_->ClearSelection(); |
1246 EXPECT_EQ(ui::DragDropTypes::DRAG_NONE, | 1261 EXPECT_EQ(ui::DragDropTypes::DRAG_NONE, |
1247 textfield_->GetDragOperationsForView(NULL, kStringPoint)); | 1262 textfield_->GetDragOperationsForView(NULL, kStringPoint)); |
1248 textfield_->SelectRange(kStringRange); | 1263 textfield_->SelectRange(kStringRange); |
1249 // Ensure that password textfields do not support drag operations. | 1264 // Ensure that password textfields do not support drag operations. |
1250 textfield_->SetTextInputType(ui::TEXT_INPUT_TYPE_PASSWORD); | 1265 textfield_->SetTextInputType(ui::TEXT_INPUT_TYPE_PASSWORD); |
1251 EXPECT_EQ(ui::DragDropTypes::DRAG_NONE, | 1266 EXPECT_EQ(ui::DragDropTypes::DRAG_NONE, |
1252 textfield_->GetDragOperationsForView(NULL, kStringPoint)); | 1267 textfield_->GetDragOperationsForView(NULL, kStringPoint)); |
1253 textfield_->SetTextInputType(ui::TEXT_INPUT_TYPE_TEXT); | 1268 textfield_->SetTextInputType(ui::TEXT_INPUT_TYPE_TEXT); |
1254 // Ensure that textfields only initiate drag operations inside the selection. | 1269 // Ensure that textfields only initiate drag operations inside the selection. |
1255 ui::MouseEvent press_event(ui::ET_MOUSE_PRESSED, kStringPoint, kStringPoint, | 1270 ui::MouseEvent press_event( |
1256 ui::EventTimeForNow(), ui::EF_LEFT_MOUSE_BUTTON, | 1271 ui::ET_MOUSE_PRESSED, kStringPoint, kStringPoint, ui::EventTimeForNow(), |
1257 ui::EF_LEFT_MOUSE_BUTTON); | 1272 ui::EF_LEFT_MOUSE_BUTTON, ui::EF_LEFT_MOUSE_BUTTON, |
| 1273 ui::PointerEventDetails(ui::EventPointerType::POINTER_TYPE_MOUSE)); |
1258 textfield_->OnMousePressed(press_event); | 1274 textfield_->OnMousePressed(press_event); |
1259 EXPECT_EQ(ui::DragDropTypes::DRAG_NONE, | 1275 EXPECT_EQ(ui::DragDropTypes::DRAG_NONE, |
1260 textfield_->GetDragOperationsForView(NULL, gfx::Point())); | 1276 textfield_->GetDragOperationsForView(NULL, gfx::Point())); |
1261 EXPECT_FALSE(textfield_->CanStartDragForView(NULL, gfx::Point(), | 1277 EXPECT_FALSE(textfield_->CanStartDragForView(NULL, gfx::Point(), |
1262 gfx::Point())); | 1278 gfx::Point())); |
1263 EXPECT_EQ(ui::DragDropTypes::DRAG_COPY, | 1279 EXPECT_EQ(ui::DragDropTypes::DRAG_COPY, |
1264 textfield_->GetDragOperationsForView(NULL, kStringPoint)); | 1280 textfield_->GetDragOperationsForView(NULL, kStringPoint)); |
1265 EXPECT_TRUE(textfield_->CanStartDragForView(NULL, kStringPoint, | 1281 EXPECT_TRUE(textfield_->CanStartDragForView(NULL, kStringPoint, |
1266 gfx::Point())); | 1282 gfx::Point())); |
1267 // Ensure that textfields support local moves. | 1283 // Ensure that textfields support local moves. |
1268 EXPECT_EQ(ui::DragDropTypes::DRAG_MOVE | ui::DragDropTypes::DRAG_COPY, | 1284 EXPECT_EQ(ui::DragDropTypes::DRAG_MOVE | ui::DragDropTypes::DRAG_COPY, |
1269 textfield_->GetDragOperationsForView(textfield_, kStringPoint)); | 1285 textfield_->GetDragOperationsForView(textfield_, kStringPoint)); |
1270 } | 1286 } |
1271 | 1287 |
1272 TEST_F(TextfieldTest, DragAndDrop_ToTheRight) { | 1288 TEST_F(TextfieldTest, DragAndDrop_ToTheRight) { |
1273 InitTextfield(); | 1289 InitTextfield(); |
1274 textfield_->SetText(ASCIIToUTF16("hello world")); | 1290 textfield_->SetText(ASCIIToUTF16("hello world")); |
1275 | 1291 |
1276 base::string16 string; | 1292 base::string16 string; |
1277 ui::OSExchangeData data; | 1293 ui::OSExchangeData data; |
1278 int formats = 0; | 1294 int formats = 0; |
1279 int operations = 0; | 1295 int operations = 0; |
1280 std::set<OSExchangeData::CustomFormat> custom_formats; | 1296 std::set<OSExchangeData::CustomFormat> custom_formats; |
1281 | 1297 |
1282 // Start dragging "ello". | 1298 // Start dragging "ello". |
1283 textfield_->SelectRange(gfx::Range(1, 5)); | 1299 textfield_->SelectRange(gfx::Range(1, 5)); |
1284 gfx::Point point(GetCursorPositionX(3), 0); | 1300 gfx::Point point(GetCursorPositionX(3), 0); |
1285 ui::MouseEvent click_a(ui::ET_MOUSE_PRESSED, point, point, | 1301 ui::MouseEvent click_a( |
1286 ui::EventTimeForNow(), ui::EF_LEFT_MOUSE_BUTTON, | 1302 ui::ET_MOUSE_PRESSED, point, point, ui::EventTimeForNow(), |
1287 ui::EF_LEFT_MOUSE_BUTTON); | 1303 ui::EF_LEFT_MOUSE_BUTTON, ui::EF_LEFT_MOUSE_BUTTON, |
| 1304 ui::PointerEventDetails(ui::EventPointerType::POINTER_TYPE_MOUSE)); |
1288 textfield_->OnMousePressed(click_a); | 1305 textfield_->OnMousePressed(click_a); |
1289 EXPECT_TRUE(textfield_->CanStartDragForView(textfield_, click_a.location(), | 1306 EXPECT_TRUE(textfield_->CanStartDragForView(textfield_, click_a.location(), |
1290 gfx::Point())); | 1307 gfx::Point())); |
1291 operations = textfield_->GetDragOperationsForView(textfield_, | 1308 operations = textfield_->GetDragOperationsForView(textfield_, |
1292 click_a.location()); | 1309 click_a.location()); |
1293 EXPECT_EQ(ui::DragDropTypes::DRAG_MOVE | ui::DragDropTypes::DRAG_COPY, | 1310 EXPECT_EQ(ui::DragDropTypes::DRAG_MOVE | ui::DragDropTypes::DRAG_COPY, |
1294 operations); | 1311 operations); |
1295 textfield_->WriteDragDataForView(NULL, click_a.location(), &data); | 1312 textfield_->WriteDragDataForView(NULL, click_a.location(), &data); |
1296 EXPECT_TRUE(data.GetString(&string)); | 1313 EXPECT_TRUE(data.GetString(&string)); |
1297 EXPECT_EQ(textfield_->GetSelectedText(), string); | 1314 EXPECT_EQ(textfield_->GetSelectedText(), string); |
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1329 | 1346 |
1330 base::string16 string; | 1347 base::string16 string; |
1331 ui::OSExchangeData data; | 1348 ui::OSExchangeData data; |
1332 int formats = 0; | 1349 int formats = 0; |
1333 int operations = 0; | 1350 int operations = 0; |
1334 std::set<OSExchangeData::CustomFormat> custom_formats; | 1351 std::set<OSExchangeData::CustomFormat> custom_formats; |
1335 | 1352 |
1336 // Start dragging " worl". | 1353 // Start dragging " worl". |
1337 textfield_->SelectRange(gfx::Range(5, 10)); | 1354 textfield_->SelectRange(gfx::Range(5, 10)); |
1338 gfx::Point point(GetCursorPositionX(7), 0); | 1355 gfx::Point point(GetCursorPositionX(7), 0); |
1339 ui::MouseEvent click_a(ui::ET_MOUSE_PRESSED, point, point, | 1356 ui::MouseEvent click_a( |
1340 ui::EventTimeForNow(), ui::EF_LEFT_MOUSE_BUTTON, | 1357 ui::ET_MOUSE_PRESSED, point, point, ui::EventTimeForNow(), |
1341 ui::EF_LEFT_MOUSE_BUTTON); | 1358 ui::EF_LEFT_MOUSE_BUTTON, ui::EF_LEFT_MOUSE_BUTTON, |
| 1359 ui::PointerEventDetails(ui::EventPointerType::POINTER_TYPE_MOUSE)); |
1342 textfield_->OnMousePressed(click_a); | 1360 textfield_->OnMousePressed(click_a); |
1343 EXPECT_TRUE(textfield_->CanStartDragForView(textfield_, click_a.location(), | 1361 EXPECT_TRUE(textfield_->CanStartDragForView(textfield_, click_a.location(), |
1344 gfx::Point())); | 1362 gfx::Point())); |
1345 operations = textfield_->GetDragOperationsForView(textfield_, | 1363 operations = textfield_->GetDragOperationsForView(textfield_, |
1346 click_a.location()); | 1364 click_a.location()); |
1347 EXPECT_EQ(ui::DragDropTypes::DRAG_MOVE | ui::DragDropTypes::DRAG_COPY, | 1365 EXPECT_EQ(ui::DragDropTypes::DRAG_MOVE | ui::DragDropTypes::DRAG_COPY, |
1348 operations); | 1366 operations); |
1349 textfield_->WriteDragDataForView(NULL, click_a.location(), &data); | 1367 textfield_->WriteDragDataForView(NULL, click_a.location(), &data); |
1350 EXPECT_TRUE(data.GetString(&string)); | 1368 EXPECT_TRUE(data.GetString(&string)); |
1351 EXPECT_EQ(textfield_->GetSelectedText(), string); | 1369 EXPECT_EQ(textfield_->GetSelectedText(), string); |
(...skipping 25 matching lines...) Expand all Loading... |
1377 EXPECT_STR_EQ("h worlellod", textfield_->text()); | 1395 EXPECT_STR_EQ("h worlellod", textfield_->text()); |
1378 } | 1396 } |
1379 | 1397 |
1380 TEST_F(TextfieldTest, DragAndDrop_Canceled) { | 1398 TEST_F(TextfieldTest, DragAndDrop_Canceled) { |
1381 InitTextfield(); | 1399 InitTextfield(); |
1382 textfield_->SetText(ASCIIToUTF16("hello world")); | 1400 textfield_->SetText(ASCIIToUTF16("hello world")); |
1383 | 1401 |
1384 // Start dragging "worl". | 1402 // Start dragging "worl". |
1385 textfield_->SelectRange(gfx::Range(6, 10)); | 1403 textfield_->SelectRange(gfx::Range(6, 10)); |
1386 gfx::Point point(GetCursorPositionX(8), 0); | 1404 gfx::Point point(GetCursorPositionX(8), 0); |
1387 ui::MouseEvent click(ui::ET_MOUSE_PRESSED, point, point, | 1405 ui::MouseEvent click( |
1388 ui::EventTimeForNow(), ui::EF_LEFT_MOUSE_BUTTON, | 1406 ui::ET_MOUSE_PRESSED, point, point, ui::EventTimeForNow(), |
1389 ui::EF_LEFT_MOUSE_BUTTON); | 1407 ui::EF_LEFT_MOUSE_BUTTON, ui::EF_LEFT_MOUSE_BUTTON, |
| 1408 ui::PointerEventDetails(ui::EventPointerType::POINTER_TYPE_MOUSE)); |
1390 textfield_->OnMousePressed(click); | 1409 textfield_->OnMousePressed(click); |
1391 ui::OSExchangeData data; | 1410 ui::OSExchangeData data; |
1392 textfield_->WriteDragDataForView(NULL, click.location(), &data); | 1411 textfield_->WriteDragDataForView(NULL, click.location(), &data); |
1393 EXPECT_TRUE(textfield_->CanDrop(data)); | 1412 EXPECT_TRUE(textfield_->CanDrop(data)); |
1394 // Drag the text over somewhere valid, outside the current selection. | 1413 // Drag the text over somewhere valid, outside the current selection. |
1395 gfx::Point drop_point(GetCursorPositionX(2), 0); | 1414 gfx::Point drop_point(GetCursorPositionX(2), 0); |
1396 ui::DropTargetEvent drop(data, drop_point, drop_point, | 1415 ui::DropTargetEvent drop(data, drop_point, drop_point, |
1397 ui::DragDropTypes::DRAG_MOVE); | 1416 ui::DragDropTypes::DRAG_MOVE); |
1398 EXPECT_EQ(ui::DragDropTypes::DRAG_MOVE, textfield_->OnDragUpdated(drop)); | 1417 EXPECT_EQ(ui::DragDropTypes::DRAG_MOVE, textfield_->OnDragUpdated(drop)); |
1399 // "Cancel" the drag, via move and release over the selection, and OnDragDone. | 1418 // "Cancel" the drag, via move and release over the selection, and OnDragDone. |
1400 gfx::Point drag_point(GetCursorPositionX(9), 0); | 1419 gfx::Point drag_point(GetCursorPositionX(9), 0); |
1401 ui::MouseEvent drag(ui::ET_MOUSE_DRAGGED, drag_point, drag_point, | 1420 ui::MouseEvent drag( |
1402 ui::EventTimeForNow(), ui::EF_LEFT_MOUSE_BUTTON, 0); | 1421 ui::ET_MOUSE_DRAGGED, drag_point, drag_point, ui::EventTimeForNow(), |
1403 ui::MouseEvent release(ui::ET_MOUSE_RELEASED, drag_point, drag_point, | 1422 ui::EF_LEFT_MOUSE_BUTTON, 0, |
1404 ui::EventTimeForNow(), ui::EF_LEFT_MOUSE_BUTTON, | 1423 ui::PointerEventDetails(ui::EventPointerType::POINTER_TYPE_MOUSE)); |
1405 ui::EF_LEFT_MOUSE_BUTTON); | 1424 ui::MouseEvent release( |
| 1425 ui::ET_MOUSE_RELEASED, drag_point, drag_point, ui::EventTimeForNow(), |
| 1426 ui::EF_LEFT_MOUSE_BUTTON, ui::EF_LEFT_MOUSE_BUTTON, |
| 1427 ui::PointerEventDetails(ui::EventPointerType::POINTER_TYPE_MOUSE)); |
1406 textfield_->OnMouseDragged(drag); | 1428 textfield_->OnMouseDragged(drag); |
1407 textfield_->OnMouseReleased(release); | 1429 textfield_->OnMouseReleased(release); |
1408 textfield_->OnDragDone(); | 1430 textfield_->OnDragDone(); |
1409 EXPECT_EQ(ASCIIToUTF16("hello world"), textfield_->text()); | 1431 EXPECT_EQ(ASCIIToUTF16("hello world"), textfield_->text()); |
1410 } | 1432 } |
1411 | 1433 |
1412 TEST_F(TextfieldTest, ReadOnlyTest) { | 1434 TEST_F(TextfieldTest, ReadOnlyTest) { |
1413 InitTextfield(); | 1435 InitTextfield(); |
1414 textfield_->SetText(ASCIIToUTF16("read only")); | 1436 textfield_->SetText(ASCIIToUTF16("read only")); |
1415 textfield_->SetReadOnly(true); | 1437 textfield_->SetReadOnly(true); |
(...skipping 756 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2172 | 2194 |
2173 textfield_->SelectRange(gfx::Range(5, 5)); | 2195 textfield_->SelectRange(gfx::Range(5, 5)); |
2174 const gfx::Rect middle_cursor = GetCursorBounds(); | 2196 const gfx::Rect middle_cursor = GetCursorBounds(); |
2175 textfield_->SelectRange(gfx::Range(0, 0)); | 2197 textfield_->SelectRange(gfx::Range(0, 0)); |
2176 const gfx::Point beginning = GetCursorBounds().origin(); | 2198 const gfx::Point beginning = GetCursorBounds().origin(); |
2177 | 2199 |
2178 // Double click, but do not release the left button. | 2200 // Double click, but do not release the left button. |
2179 MouseClick(middle_cursor, 0); | 2201 MouseClick(middle_cursor, 0); |
2180 const gfx::Point middle(middle_cursor.x(), | 2202 const gfx::Point middle(middle_cursor.x(), |
2181 middle_cursor.y() + middle_cursor.height() / 2); | 2203 middle_cursor.y() + middle_cursor.height() / 2); |
2182 ui::MouseEvent press_event(ui::ET_MOUSE_PRESSED, middle, middle, | 2204 ui::MouseEvent press_event( |
2183 ui::EventTimeForNow(), ui::EF_LEFT_MOUSE_BUTTON, | 2205 ui::ET_MOUSE_PRESSED, middle, middle, ui::EventTimeForNow(), |
2184 ui::EF_LEFT_MOUSE_BUTTON); | 2206 ui::EF_LEFT_MOUSE_BUTTON, ui::EF_LEFT_MOUSE_BUTTON, |
| 2207 ui::PointerEventDetails(ui::EventPointerType::POINTER_TYPE_MOUSE)); |
2185 textfield_->OnMousePressed(press_event); | 2208 textfield_->OnMousePressed(press_event); |
2186 EXPECT_EQ(gfx::Range(4, 7), textfield_->GetSelectedRange()); | 2209 EXPECT_EQ(gfx::Range(4, 7), textfield_->GetSelectedRange()); |
2187 | 2210 |
2188 // Drag the mouse to the beginning of the textfield. | 2211 // Drag the mouse to the beginning of the textfield. |
2189 ui::MouseEvent drag_event(ui::ET_MOUSE_DRAGGED, beginning, beginning, | 2212 ui::MouseEvent drag_event( |
2190 ui::EventTimeForNow(), ui::EF_LEFT_MOUSE_BUTTON, 0); | 2213 ui::ET_MOUSE_DRAGGED, beginning, beginning, ui::EventTimeForNow(), |
| 2214 ui::EF_LEFT_MOUSE_BUTTON, 0, |
| 2215 ui::PointerEventDetails(ui::EventPointerType::POINTER_TYPE_MOUSE)); |
2191 textfield_->OnMouseDragged(drag_event); | 2216 textfield_->OnMouseDragged(drag_event); |
2192 EXPECT_EQ(gfx::Range(7, 0), textfield_->GetSelectedRange()); | 2217 EXPECT_EQ(gfx::Range(7, 0), textfield_->GetSelectedRange()); |
2193 } | 2218 } |
2194 | 2219 |
2195 #if defined(OS_LINUX) && !defined(OS_CHROMEOS) | 2220 #if defined(OS_LINUX) && !defined(OS_CHROMEOS) |
2196 // flaky: http://crbug.com/396477 | 2221 // flaky: http://crbug.com/396477 |
2197 TEST_F(TextfieldTest, DISABLED_SelectionClipboard) { | 2222 TEST_F(TextfieldTest, DISABLED_SelectionClipboard) { |
2198 InitTextfield(); | 2223 InitTextfield(); |
2199 textfield_->SetText(ASCIIToUTF16("0123")); | 2224 textfield_->SetText(ASCIIToUTF16("0123")); |
2200 gfx::Point point_1(GetCursorPositionX(1), 0); | 2225 gfx::Point point_1(GetCursorPositionX(1), 0); |
2201 gfx::Point point_2(GetCursorPositionX(2), 0); | 2226 gfx::Point point_2(GetCursorPositionX(2), 0); |
2202 gfx::Point point_3(GetCursorPositionX(3), 0); | 2227 gfx::Point point_3(GetCursorPositionX(3), 0); |
2203 gfx::Point point_4(GetCursorPositionX(4), 0); | 2228 gfx::Point point_4(GetCursorPositionX(4), 0); |
2204 | 2229 |
2205 // Text selected by the mouse should be placed on the selection clipboard. | 2230 // Text selected by the mouse should be placed on the selection clipboard. |
2206 ui::MouseEvent press(ui::ET_MOUSE_PRESSED, point_1, point_1, | 2231 ui::MouseEvent press( |
2207 ui::EventTimeForNow(), ui::EF_LEFT_MOUSE_BUTTON, | 2232 ui::ET_MOUSE_PRESSED, point_1, point_1, ui::EventTimeForNow(), |
2208 ui::EF_LEFT_MOUSE_BUTTON); | 2233 ui::EF_LEFT_MOUSE_BUTTON, ui::EF_LEFT_MOUSE_BUTTON, |
| 2234 ui::PointerEventDetails(ui::EventPointerType::POINTER_TYPE_MOUSE)); |
2209 textfield_->OnMousePressed(press); | 2235 textfield_->OnMousePressed(press); |
2210 ui::MouseEvent drag(ui::ET_MOUSE_DRAGGED, point_3, point_3, | 2236 ui::MouseEvent drag( |
2211 ui::EventTimeForNow(), ui::EF_LEFT_MOUSE_BUTTON, | 2237 ui::ET_MOUSE_DRAGGED, point_3, point_3, ui::EventTimeForNow(), |
2212 ui::EF_LEFT_MOUSE_BUTTON); | 2238 ui::EF_LEFT_MOUSE_BUTTON, ui::EF_LEFT_MOUSE_BUTTON, |
| 2239 ui::PointerEventDetails(ui::EventPointerType::POINTER_TYPE_MOUSE)); |
2213 textfield_->OnMouseDragged(drag); | 2240 textfield_->OnMouseDragged(drag); |
2214 ui::MouseEvent release(ui::ET_MOUSE_RELEASED, point_3, point_3, | 2241 ui::MouseEvent release( |
2215 ui::EventTimeForNow(), ui::EF_LEFT_MOUSE_BUTTON, | 2242 ui::ET_MOUSE_RELEASED, point_3, point_3, ui::EventTimeForNow(), |
2216 ui::EF_LEFT_MOUSE_BUTTON); | 2243 ui::EF_LEFT_MOUSE_BUTTON, ui::EF_LEFT_MOUSE_BUTTON, |
| 2244 ui::PointerEventDetails(ui::EventPointerType::POINTER_TYPE_MOUSE)); |
2217 textfield_->OnMouseReleased(release); | 2245 textfield_->OnMouseReleased(release); |
2218 EXPECT_EQ(gfx::Range(1, 3), textfield_->GetSelectedRange()); | 2246 EXPECT_EQ(gfx::Range(1, 3), textfield_->GetSelectedRange()); |
2219 EXPECT_STR_EQ("12", GetClipboardText(ui::CLIPBOARD_TYPE_SELECTION)); | 2247 EXPECT_STR_EQ("12", GetClipboardText(ui::CLIPBOARD_TYPE_SELECTION)); |
2220 | 2248 |
2221 // Select-all should update the selection clipboard. | 2249 // Select-all should update the selection clipboard. |
2222 SendKeyEvent(ui::VKEY_A, false, true); | 2250 SendKeyEvent(ui::VKEY_A, false, true); |
2223 EXPECT_EQ(gfx::Range(0, 4), textfield_->GetSelectedRange()); | 2251 EXPECT_EQ(gfx::Range(0, 4), textfield_->GetSelectedRange()); |
2224 EXPECT_STR_EQ("0123", GetClipboardText(ui::CLIPBOARD_TYPE_SELECTION)); | 2252 EXPECT_STR_EQ("0123", GetClipboardText(ui::CLIPBOARD_TYPE_SELECTION)); |
2225 EXPECT_EQ(ui::CLIPBOARD_TYPE_SELECTION, GetAndResetCopiedToClipboard()); | 2253 EXPECT_EQ(ui::CLIPBOARD_TYPE_SELECTION, GetAndResetCopiedToClipboard()); |
2226 | 2254 |
2227 // Shift-click selection modifications should update the clipboard. | 2255 // Shift-click selection modifications should update the clipboard. |
2228 NonClientMouseClick(); | 2256 NonClientMouseClick(); |
2229 ui::MouseEvent press_2(ui::ET_MOUSE_PRESSED, point_2, point_2, | 2257 ui::MouseEvent press_2( |
2230 ui::EventTimeForNow(), ui::EF_LEFT_MOUSE_BUTTON, | 2258 ui::ET_MOUSE_PRESSED, point_2, point_2, ui::EventTimeForNow(), |
2231 ui::EF_LEFT_MOUSE_BUTTON); | 2259 ui::EF_LEFT_MOUSE_BUTTON, ui::EF_LEFT_MOUSE_BUTTON, |
| 2260 ui::PointerEventDetails(ui::EventPointerType::POINTER_TYPE_MOUSE)); |
2232 press_2.set_flags(press_2.flags() | ui::EF_SHIFT_DOWN); | 2261 press_2.set_flags(press_2.flags() | ui::EF_SHIFT_DOWN); |
2233 #if defined(USE_X11) | 2262 #if defined(USE_X11) |
2234 ui::UpdateX11EventForFlags(&press_2); | 2263 ui::UpdateX11EventForFlags(&press_2); |
2235 #endif | 2264 #endif |
2236 textfield_->OnMousePressed(press_2); | 2265 textfield_->OnMousePressed(press_2); |
2237 ui::MouseEvent release_2(ui::ET_MOUSE_RELEASED, point_2, point_2, | 2266 ui::MouseEvent release_2( |
2238 ui::EventTimeForNow(), ui::EF_LEFT_MOUSE_BUTTON, | 2267 ui::ET_MOUSE_RELEASED, point_2, point_2, ui::EventTimeForNow(), |
2239 ui::EF_LEFT_MOUSE_BUTTON); | 2268 ui::EF_LEFT_MOUSE_BUTTON, ui::EF_LEFT_MOUSE_BUTTON, |
| 2269 ui::PointerEventDetails(ui::EventPointerType::POINTER_TYPE_MOUSE)); |
2240 textfield_->OnMouseReleased(release_2); | 2270 textfield_->OnMouseReleased(release_2); |
2241 EXPECT_EQ(gfx::Range(0, 2), textfield_->GetSelectedRange()); | 2271 EXPECT_EQ(gfx::Range(0, 2), textfield_->GetSelectedRange()); |
2242 EXPECT_STR_EQ("01", GetClipboardText(ui::CLIPBOARD_TYPE_SELECTION)); | 2272 EXPECT_STR_EQ("01", GetClipboardText(ui::CLIPBOARD_TYPE_SELECTION)); |
2243 EXPECT_EQ(ui::CLIPBOARD_TYPE_SELECTION, GetAndResetCopiedToClipboard()); | 2273 EXPECT_EQ(ui::CLIPBOARD_TYPE_SELECTION, GetAndResetCopiedToClipboard()); |
2244 | 2274 |
2245 // Shift-Left/Right should update the selection clipboard. | 2275 // Shift-Left/Right should update the selection clipboard. |
2246 SendKeyEvent(ui::VKEY_RIGHT, true, false); | 2276 SendKeyEvent(ui::VKEY_RIGHT, true, false); |
2247 EXPECT_STR_EQ("012", GetClipboardText(ui::CLIPBOARD_TYPE_SELECTION)); | 2277 EXPECT_STR_EQ("012", GetClipboardText(ui::CLIPBOARD_TYPE_SELECTION)); |
2248 EXPECT_EQ(ui::CLIPBOARD_TYPE_SELECTION, GetAndResetCopiedToClipboard()); | 2278 EXPECT_EQ(ui::CLIPBOARD_TYPE_SELECTION, GetAndResetCopiedToClipboard()); |
2249 SendKeyEvent(ui::VKEY_LEFT, true, false); | 2279 SendKeyEvent(ui::VKEY_LEFT, true, false); |
2250 EXPECT_STR_EQ("01", GetClipboardText(ui::CLIPBOARD_TYPE_SELECTION)); | 2280 EXPECT_STR_EQ("01", GetClipboardText(ui::CLIPBOARD_TYPE_SELECTION)); |
2251 EXPECT_EQ(ui::CLIPBOARD_TYPE_SELECTION, GetAndResetCopiedToClipboard()); | 2281 EXPECT_EQ(ui::CLIPBOARD_TYPE_SELECTION, GetAndResetCopiedToClipboard()); |
2252 SendKeyEvent(ui::VKEY_RIGHT, true, true); | 2282 SendKeyEvent(ui::VKEY_RIGHT, true, true); |
2253 EXPECT_STR_EQ("0123", GetClipboardText(ui::CLIPBOARD_TYPE_SELECTION)); | 2283 EXPECT_STR_EQ("0123", GetClipboardText(ui::CLIPBOARD_TYPE_SELECTION)); |
2254 EXPECT_EQ(ui::CLIPBOARD_TYPE_SELECTION, GetAndResetCopiedToClipboard()); | 2284 EXPECT_EQ(ui::CLIPBOARD_TYPE_SELECTION, GetAndResetCopiedToClipboard()); |
2255 | 2285 |
2256 // Moving the cursor without a selection should not change the clipboard. | 2286 // Moving the cursor without a selection should not change the clipboard. |
2257 SendKeyEvent(ui::VKEY_LEFT, false, false); | 2287 SendKeyEvent(ui::VKEY_LEFT, false, false); |
2258 EXPECT_EQ(gfx::Range(0, 0), textfield_->GetSelectedRange()); | 2288 EXPECT_EQ(gfx::Range(0, 0), textfield_->GetSelectedRange()); |
2259 EXPECT_STR_EQ("0123", GetClipboardText(ui::CLIPBOARD_TYPE_SELECTION)); | 2289 EXPECT_STR_EQ("0123", GetClipboardText(ui::CLIPBOARD_TYPE_SELECTION)); |
2260 EXPECT_EQ(ui::CLIPBOARD_TYPE_LAST, GetAndResetCopiedToClipboard()); | 2290 EXPECT_EQ(ui::CLIPBOARD_TYPE_LAST, GetAndResetCopiedToClipboard()); |
2261 | 2291 |
2262 // Middle clicking should paste at the mouse (not cursor) location. | 2292 // Middle clicking should paste at the mouse (not cursor) location. |
2263 // The cursor should be placed at the end of the pasted text. | 2293 // The cursor should be placed at the end of the pasted text. |
2264 ui::MouseEvent middle(ui::ET_MOUSE_PRESSED, point_4, point_4, | 2294 ui::MouseEvent middle( |
2265 ui::EventTimeForNow(), ui::EF_MIDDLE_MOUSE_BUTTON, | 2295 ui::ET_MOUSE_PRESSED, point_4, point_4, ui::EventTimeForNow(), |
2266 ui::EF_MIDDLE_MOUSE_BUTTON); | 2296 ui::EF_MIDDLE_MOUSE_BUTTON, ui::EF_MIDDLE_MOUSE_BUTTON, |
| 2297 ui::PointerEventDetails(ui::EventPointerType::POINTER_TYPE_MOUSE)); |
2267 textfield_->OnMousePressed(middle); | 2298 textfield_->OnMousePressed(middle); |
2268 EXPECT_STR_EQ("01230123", textfield_->text()); | 2299 EXPECT_STR_EQ("01230123", textfield_->text()); |
2269 EXPECT_EQ(gfx::Range(8, 8), textfield_->GetSelectedRange()); | 2300 EXPECT_EQ(gfx::Range(8, 8), textfield_->GetSelectedRange()); |
2270 EXPECT_STR_EQ("0123", GetClipboardText(ui::CLIPBOARD_TYPE_SELECTION)); | 2301 EXPECT_STR_EQ("0123", GetClipboardText(ui::CLIPBOARD_TYPE_SELECTION)); |
2271 | 2302 |
2272 // Middle clicking on an unfocused textfield should focus it and paste. | 2303 // Middle clicking on an unfocused textfield should focus it and paste. |
2273 textfield_->GetFocusManager()->ClearFocus(); | 2304 textfield_->GetFocusManager()->ClearFocus(); |
2274 EXPECT_FALSE(textfield_->HasFocus()); | 2305 EXPECT_FALSE(textfield_->HasFocus()); |
2275 textfield_->OnMousePressed(middle); | 2306 textfield_->OnMousePressed(middle); |
2276 EXPECT_TRUE(textfield_->HasFocus()); | 2307 EXPECT_TRUE(textfield_->HasFocus()); |
(...skipping 15 matching lines...) Expand all Loading... |
2292 SetClipboardText(ui::CLIPBOARD_TYPE_COPY_PASTE, "foo"); | 2323 SetClipboardText(ui::CLIPBOARD_TYPE_COPY_PASTE, "foo"); |
2293 textfield_->SelectRange(gfx::Range(2, 6)); | 2324 textfield_->SelectRange(gfx::Range(2, 6)); |
2294 textfield_->OnMousePressed(middle); | 2325 textfield_->OnMousePressed(middle); |
2295 EXPECT_STR_EQ("012301230123", textfield_->text()); | 2326 EXPECT_STR_EQ("012301230123", textfield_->text()); |
2296 EXPECT_EQ(gfx::Range(6, 6), textfield_->GetSelectedRange()); | 2327 EXPECT_EQ(gfx::Range(6, 6), textfield_->GetSelectedRange()); |
2297 EXPECT_TRUE(GetClipboardText(ui::CLIPBOARD_TYPE_SELECTION).empty()); | 2328 EXPECT_TRUE(GetClipboardText(ui::CLIPBOARD_TYPE_SELECTION).empty()); |
2298 | 2329 |
2299 // Double and triple clicking should update the clipboard contents. | 2330 // Double and triple clicking should update the clipboard contents. |
2300 textfield_->SetText(ASCIIToUTF16("ab cd ef")); | 2331 textfield_->SetText(ASCIIToUTF16("ab cd ef")); |
2301 gfx::Point word(GetCursorPositionX(4), 0); | 2332 gfx::Point word(GetCursorPositionX(4), 0); |
2302 ui::MouseEvent press_word(ui::ET_MOUSE_PRESSED, word, word, | 2333 ui::MouseEvent press_word( |
2303 ui::EventTimeForNow(), ui::EF_LEFT_MOUSE_BUTTON, | 2334 ui::ET_MOUSE_PRESSED, word, word, ui::EventTimeForNow(), |
2304 ui::EF_LEFT_MOUSE_BUTTON); | 2335 ui::EF_LEFT_MOUSE_BUTTON, ui::EF_LEFT_MOUSE_BUTTON, |
| 2336 ui::PointerEventDetails(ui::EventPointerType::POINTER_TYPE_MOUSE)); |
2305 textfield_->OnMousePressed(press_word); | 2337 textfield_->OnMousePressed(press_word); |
2306 ui::MouseEvent release_word(ui::ET_MOUSE_RELEASED, word, word, | 2338 ui::MouseEvent release_word( |
2307 ui::EventTimeForNow(), ui::EF_LEFT_MOUSE_BUTTON, | 2339 ui::ET_MOUSE_RELEASED, word, word, ui::EventTimeForNow(), |
2308 ui::EF_LEFT_MOUSE_BUTTON); | 2340 ui::EF_LEFT_MOUSE_BUTTON, ui::EF_LEFT_MOUSE_BUTTON, |
| 2341 ui::PointerEventDetails(ui::EventPointerType::POINTER_TYPE_MOUSE)); |
2309 textfield_->OnMouseReleased(release_word); | 2342 textfield_->OnMouseReleased(release_word); |
2310 ui::MouseEvent double_click(ui::ET_MOUSE_PRESSED, word, word, | 2343 ui::MouseEvent double_click( |
2311 ui::EventTimeForNow(), | 2344 ui::ET_MOUSE_PRESSED, word, word, ui::EventTimeForNow(), |
2312 ui::EF_LEFT_MOUSE_BUTTON | ui::EF_IS_DOUBLE_CLICK, | 2345 ui::EF_LEFT_MOUSE_BUTTON | ui::EF_IS_DOUBLE_CLICK, |
2313 ui::EF_LEFT_MOUSE_BUTTON); | 2346 ui::EF_LEFT_MOUSE_BUTTON, |
| 2347 ui::PointerEventDetails(ui::EventPointerType::POINTER_TYPE_MOUSE)); |
2314 textfield_->OnMousePressed(double_click); | 2348 textfield_->OnMousePressed(double_click); |
2315 textfield_->OnMouseReleased(release_word); | 2349 textfield_->OnMouseReleased(release_word); |
2316 EXPECT_EQ(gfx::Range(3, 5), textfield_->GetSelectedRange()); | 2350 EXPECT_EQ(gfx::Range(3, 5), textfield_->GetSelectedRange()); |
2317 EXPECT_STR_EQ("cd", GetClipboardText(ui::CLIPBOARD_TYPE_SELECTION)); | 2351 EXPECT_STR_EQ("cd", GetClipboardText(ui::CLIPBOARD_TYPE_SELECTION)); |
2318 EXPECT_EQ(ui::CLIPBOARD_TYPE_SELECTION, GetAndResetCopiedToClipboard()); | 2352 EXPECT_EQ(ui::CLIPBOARD_TYPE_SELECTION, GetAndResetCopiedToClipboard()); |
2319 textfield_->OnMousePressed(press_word); | 2353 textfield_->OnMousePressed(press_word); |
2320 textfield_->OnMouseReleased(release_word); | 2354 textfield_->OnMouseReleased(release_word); |
2321 EXPECT_EQ(gfx::Range(0, 8), textfield_->GetSelectedRange()); | 2355 EXPECT_EQ(gfx::Range(0, 8), textfield_->GetSelectedRange()); |
2322 EXPECT_STR_EQ("ab cd ef", GetClipboardText(ui::CLIPBOARD_TYPE_SELECTION)); | 2356 EXPECT_STR_EQ("ab cd ef", GetClipboardText(ui::CLIPBOARD_TYPE_SELECTION)); |
2323 EXPECT_EQ(ui::CLIPBOARD_TYPE_SELECTION, GetAndResetCopiedToClipboard()); | 2357 EXPECT_EQ(ui::CLIPBOARD_TYPE_SELECTION, GetAndResetCopiedToClipboard()); |
(...skipping 227 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2551 | 2585 |
2552 textfield_->SetTextInputType(ui::TEXT_INPUT_TYPE_PASSWORD); | 2586 textfield_->SetTextInputType(ui::TEXT_INPUT_TYPE_PASSWORD); |
2553 ui::AXViewState state_protected; | 2587 ui::AXViewState state_protected; |
2554 textfield_->GetAccessibleState(&state_protected); | 2588 textfield_->GetAccessibleState(&state_protected); |
2555 EXPECT_EQ(ui::AX_ROLE_TEXT_FIELD, state_protected.role); | 2589 EXPECT_EQ(ui::AX_ROLE_TEXT_FIELD, state_protected.role); |
2556 EXPECT_EQ(ASCIIToUTF16("********"), state_protected.value); | 2590 EXPECT_EQ(ASCIIToUTF16("********"), state_protected.value); |
2557 EXPECT_TRUE(state_protected.HasStateFlag(ui::AX_STATE_PROTECTED)); | 2591 EXPECT_TRUE(state_protected.HasStateFlag(ui::AX_STATE_PROTECTED)); |
2558 } | 2592 } |
2559 | 2593 |
2560 } // namespace views | 2594 } // namespace views |
OLD | NEW |