OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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/native_textfield_views.h" | 5 #include "ui/views/controls/textfield/native_textfield_views.h" |
6 | 6 |
7 #include <set> | 7 #include <set> |
8 #include <string> | 8 #include <string> |
9 #include <vector> | 9 #include <vector> |
10 | 10 |
(...skipping 494 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
505 } | 505 } |
506 | 506 |
507 TEST_F(NativeTextfieldViewsTest, InsertionDeletionTest) { | 507 TEST_F(NativeTextfieldViewsTest, InsertionDeletionTest) { |
508 // Insert a test string in a textfield. | 508 // Insert a test string in a textfield. |
509 InitTextfield(Textfield::STYLE_DEFAULT); | 509 InitTextfield(Textfield::STYLE_DEFAULT); |
510 for (size_t i = 0; i < 10; i++) | 510 for (size_t i = 0; i < 10; i++) |
511 SendKeyEvent(static_cast<ui::KeyboardCode>(ui::VKEY_A + i)); | 511 SendKeyEvent(static_cast<ui::KeyboardCode>(ui::VKEY_A + i)); |
512 EXPECT_STR_EQ("abcdefghij", textfield_->text()); | 512 EXPECT_STR_EQ("abcdefghij", textfield_->text()); |
513 | 513 |
514 // Test the delete and backspace keys. | 514 // Test the delete and backspace keys. |
515 textfield_->SelectRange(ui::Range(5)); | 515 textfield_->SelectRange(gfx::Range(5)); |
516 for (int i = 0; i < 3; i++) | 516 for (int i = 0; i < 3; i++) |
517 SendKeyEvent(ui::VKEY_BACK); | 517 SendKeyEvent(ui::VKEY_BACK); |
518 EXPECT_STR_EQ("abfghij", textfield_->text()); | 518 EXPECT_STR_EQ("abfghij", textfield_->text()); |
519 for (int i = 0; i < 3; i++) | 519 for (int i = 0; i < 3; i++) |
520 SendKeyEvent(ui::VKEY_DELETE); | 520 SendKeyEvent(ui::VKEY_DELETE); |
521 EXPECT_STR_EQ("abij", textfield_->text()); | 521 EXPECT_STR_EQ("abij", textfield_->text()); |
522 | 522 |
523 // Select all and replace with "k". | 523 // Select all and replace with "k". |
524 textfield_->SelectAll(false); | 524 textfield_->SelectAll(false); |
525 SendKeyEvent(ui::VKEY_K); | 525 SendKeyEvent(ui::VKEY_K); |
(...skipping 407 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
933 } | 933 } |
934 #endif | 934 #endif |
935 | 935 |
936 TEST_F(NativeTextfieldViewsTest, DragAndDrop_InitiateDrag) { | 936 TEST_F(NativeTextfieldViewsTest, DragAndDrop_InitiateDrag) { |
937 InitTextfield(Textfield::STYLE_DEFAULT); | 937 InitTextfield(Textfield::STYLE_DEFAULT); |
938 textfield_->SetText(ASCIIToUTF16("hello string world")); | 938 textfield_->SetText(ASCIIToUTF16("hello string world")); |
939 | 939 |
940 // Ensure the textfield will provide selected text for drag data. | 940 // Ensure the textfield will provide selected text for drag data. |
941 string16 string; | 941 string16 string; |
942 ui::OSExchangeData data; | 942 ui::OSExchangeData data; |
943 const ui::Range kStringRange(6, 12); | 943 const gfx::Range kStringRange(6, 12); |
944 textfield_->SelectRange(kStringRange); | 944 textfield_->SelectRange(kStringRange); |
945 const gfx::Point kStringPoint(GetCursorPositionX(9), 0); | 945 const gfx::Point kStringPoint(GetCursorPositionX(9), 0); |
946 textfield_view_->WriteDragDataForView(NULL, kStringPoint, &data); | 946 textfield_view_->WriteDragDataForView(NULL, kStringPoint, &data); |
947 EXPECT_TRUE(data.GetString(&string)); | 947 EXPECT_TRUE(data.GetString(&string)); |
948 EXPECT_EQ(textfield_->GetSelectedText(), string); | 948 EXPECT_EQ(textfield_->GetSelectedText(), string); |
949 | 949 |
950 // Ensure that disabled textfields do not support drag operations. | 950 // Ensure that disabled textfields do not support drag operations. |
951 textfield_->SetEnabled(false); | 951 textfield_->SetEnabled(false); |
952 EXPECT_EQ(ui::DragDropTypes::DRAG_NONE, | 952 EXPECT_EQ(ui::DragDropTypes::DRAG_NONE, |
953 textfield_view_->GetDragOperationsForView(NULL, kStringPoint)); | 953 textfield_view_->GetDragOperationsForView(NULL, kStringPoint)); |
(...skipping 29 matching lines...) Expand all Loading... |
983 InitTextfield(Textfield::STYLE_DEFAULT); | 983 InitTextfield(Textfield::STYLE_DEFAULT); |
984 textfield_->SetText(ASCIIToUTF16("hello world")); | 984 textfield_->SetText(ASCIIToUTF16("hello world")); |
985 | 985 |
986 string16 string; | 986 string16 string; |
987 ui::OSExchangeData data; | 987 ui::OSExchangeData data; |
988 int formats = 0; | 988 int formats = 0; |
989 int operations = 0; | 989 int operations = 0; |
990 std::set<OSExchangeData::CustomFormat> custom_formats; | 990 std::set<OSExchangeData::CustomFormat> custom_formats; |
991 | 991 |
992 // Start dragging "ello". | 992 // Start dragging "ello". |
993 textfield_->SelectRange(ui::Range(1, 5)); | 993 textfield_->SelectRange(gfx::Range(1, 5)); |
994 gfx::Point point(GetCursorPositionX(3), 0); | 994 gfx::Point point(GetCursorPositionX(3), 0); |
995 ui::MouseEvent click_a(ui::ET_MOUSE_PRESSED, point, point, | 995 ui::MouseEvent click_a(ui::ET_MOUSE_PRESSED, point, point, |
996 ui::EF_LEFT_MOUSE_BUTTON); | 996 ui::EF_LEFT_MOUSE_BUTTON); |
997 textfield_view_->OnMousePressed(click_a); | 997 textfield_view_->OnMousePressed(click_a); |
998 EXPECT_TRUE(textfield_view_->CanStartDragForView(textfield_view_, | 998 EXPECT_TRUE(textfield_view_->CanStartDragForView(textfield_view_, |
999 click_a.location(), gfx::Point())); | 999 click_a.location(), gfx::Point())); |
1000 operations = textfield_view_->GetDragOperationsForView(textfield_view_, | 1000 operations = textfield_view_->GetDragOperationsForView(textfield_view_, |
1001 click_a.location()); | 1001 click_a.location()); |
1002 EXPECT_EQ(ui::DragDropTypes::DRAG_MOVE | ui::DragDropTypes::DRAG_COPY, | 1002 EXPECT_EQ(ui::DragDropTypes::DRAG_MOVE | ui::DragDropTypes::DRAG_COPY, |
1003 operations); | 1003 operations); |
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1038 InitTextfield(Textfield::STYLE_DEFAULT); | 1038 InitTextfield(Textfield::STYLE_DEFAULT); |
1039 textfield_->SetText(ASCIIToUTF16("hello world")); | 1039 textfield_->SetText(ASCIIToUTF16("hello world")); |
1040 | 1040 |
1041 string16 string; | 1041 string16 string; |
1042 ui::OSExchangeData data; | 1042 ui::OSExchangeData data; |
1043 int formats = 0; | 1043 int formats = 0; |
1044 int operations = 0; | 1044 int operations = 0; |
1045 std::set<OSExchangeData::CustomFormat> custom_formats; | 1045 std::set<OSExchangeData::CustomFormat> custom_formats; |
1046 | 1046 |
1047 // Start dragging " worl". | 1047 // Start dragging " worl". |
1048 textfield_->SelectRange(ui::Range(5, 10)); | 1048 textfield_->SelectRange(gfx::Range(5, 10)); |
1049 gfx::Point point(GetCursorPositionX(7), 0); | 1049 gfx::Point point(GetCursorPositionX(7), 0); |
1050 ui::MouseEvent click_a(ui::ET_MOUSE_PRESSED, point, point, | 1050 ui::MouseEvent click_a(ui::ET_MOUSE_PRESSED, point, point, |
1051 ui::EF_LEFT_MOUSE_BUTTON); | 1051 ui::EF_LEFT_MOUSE_BUTTON); |
1052 textfield_view_->OnMousePressed(click_a); | 1052 textfield_view_->OnMousePressed(click_a); |
1053 EXPECT_TRUE(textfield_view_->CanStartDragForView(textfield_view_, | 1053 EXPECT_TRUE(textfield_view_->CanStartDragForView(textfield_view_, |
1054 click_a.location(), gfx::Point())); | 1054 click_a.location(), gfx::Point())); |
1055 operations = textfield_view_->GetDragOperationsForView(textfield_view_, | 1055 operations = textfield_view_->GetDragOperationsForView(textfield_view_, |
1056 click_a.location()); | 1056 click_a.location()); |
1057 EXPECT_EQ(ui::DragDropTypes::DRAG_MOVE | ui::DragDropTypes::DRAG_COPY, | 1057 EXPECT_EQ(ui::DragDropTypes::DRAG_MOVE | ui::DragDropTypes::DRAG_COPY, |
1058 operations); | 1058 operations); |
(...skipping 28 matching lines...) Expand all Loading... |
1087 EXPECT_STR_EQ("h worlellod", textfield_->text()); | 1087 EXPECT_STR_EQ("h worlellod", textfield_->text()); |
1088 SendKeyEvent(ui::VKEY_Y, false, true); | 1088 SendKeyEvent(ui::VKEY_Y, false, true); |
1089 EXPECT_STR_EQ("h worlellod", textfield_->text()); | 1089 EXPECT_STR_EQ("h worlellod", textfield_->text()); |
1090 } | 1090 } |
1091 | 1091 |
1092 TEST_F(NativeTextfieldViewsTest, DragAndDrop_Canceled) { | 1092 TEST_F(NativeTextfieldViewsTest, DragAndDrop_Canceled) { |
1093 InitTextfield(Textfield::STYLE_DEFAULT); | 1093 InitTextfield(Textfield::STYLE_DEFAULT); |
1094 textfield_->SetText(ASCIIToUTF16("hello world")); | 1094 textfield_->SetText(ASCIIToUTF16("hello world")); |
1095 | 1095 |
1096 // Start dragging "worl". | 1096 // Start dragging "worl". |
1097 textfield_->SelectRange(ui::Range(6, 10)); | 1097 textfield_->SelectRange(gfx::Range(6, 10)); |
1098 gfx::Point point(GetCursorPositionX(8), 0); | 1098 gfx::Point point(GetCursorPositionX(8), 0); |
1099 ui::MouseEvent click(ui::ET_MOUSE_PRESSED, point, point, | 1099 ui::MouseEvent click(ui::ET_MOUSE_PRESSED, point, point, |
1100 ui::EF_LEFT_MOUSE_BUTTON); | 1100 ui::EF_LEFT_MOUSE_BUTTON); |
1101 textfield_view_->OnMousePressed(click); | 1101 textfield_view_->OnMousePressed(click); |
1102 ui::OSExchangeData data; | 1102 ui::OSExchangeData data; |
1103 textfield_view_->WriteDragDataForView(NULL, click.location(), &data); | 1103 textfield_view_->WriteDragDataForView(NULL, click.location(), &data); |
1104 EXPECT_TRUE(textfield_view_->CanDrop(data)); | 1104 EXPECT_TRUE(textfield_view_->CanDrop(data)); |
1105 // Drag the text over somewhere valid, outside the current selection. | 1105 // Drag the text over somewhere valid, outside the current selection. |
1106 gfx::Point drop_point(GetCursorPositionX(2), 0); | 1106 gfx::Point drop_point(GetCursorPositionX(2), 0); |
1107 ui::DropTargetEvent drop(data, drop_point, drop_point, | 1107 ui::DropTargetEvent drop(data, drop_point, drop_point, |
(...skipping 77 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1185 EXPECT_STR_EQ(" four five six ", textfield_->GetSelectedText()); | 1185 EXPECT_STR_EQ(" four five six ", textfield_->GetSelectedText()); |
1186 } | 1186 } |
1187 | 1187 |
1188 TEST_F(NativeTextfieldViewsTest, TextInputClientTest) { | 1188 TEST_F(NativeTextfieldViewsTest, TextInputClientTest) { |
1189 InitTextfield(Textfield::STYLE_DEFAULT); | 1189 InitTextfield(Textfield::STYLE_DEFAULT); |
1190 ui::TextInputClient* client = textfield_->GetTextInputClient(); | 1190 ui::TextInputClient* client = textfield_->GetTextInputClient(); |
1191 EXPECT_TRUE(client); | 1191 EXPECT_TRUE(client); |
1192 EXPECT_EQ(ui::TEXT_INPUT_TYPE_TEXT, client->GetTextInputType()); | 1192 EXPECT_EQ(ui::TEXT_INPUT_TYPE_TEXT, client->GetTextInputType()); |
1193 | 1193 |
1194 textfield_->SetText(ASCIIToUTF16("0123456789")); | 1194 textfield_->SetText(ASCIIToUTF16("0123456789")); |
1195 ui::Range range; | 1195 gfx::Range range; |
1196 EXPECT_TRUE(client->GetTextRange(&range)); | 1196 EXPECT_TRUE(client->GetTextRange(&range)); |
1197 EXPECT_EQ(0U, range.start()); | 1197 EXPECT_EQ(0U, range.start()); |
1198 EXPECT_EQ(10U, range.end()); | 1198 EXPECT_EQ(10U, range.end()); |
1199 | 1199 |
1200 EXPECT_TRUE(client->SetSelectionRange(ui::Range(1, 4))); | 1200 EXPECT_TRUE(client->SetSelectionRange(gfx::Range(1, 4))); |
1201 EXPECT_TRUE(client->GetSelectionRange(&range)); | 1201 EXPECT_TRUE(client->GetSelectionRange(&range)); |
1202 EXPECT_EQ(ui::Range(1, 4), range); | 1202 EXPECT_EQ(gfx::Range(1, 4), range); |
1203 | 1203 |
1204 // This code can't be compiled because of a bug in base::Callback. | 1204 // This code can't be compiled because of a bug in base::Callback. |
1205 #if 0 | 1205 #if 0 |
1206 GetTextHelper helper; | 1206 GetTextHelper helper; |
1207 base::Callback<void(string16)> callback = | 1207 base::Callback<void(string16)> callback = |
1208 base::Bind(&GetTextHelper::set_text, base::Unretained(&helper)); | 1208 base::Bind(&GetTextHelper::set_text, base::Unretained(&helper)); |
1209 | 1209 |
1210 EXPECT_TRUE(client->GetTextFromRange(range, callback)); | 1210 EXPECT_TRUE(client->GetTextFromRange(range, callback)); |
1211 EXPECT_STR_EQ("123", helper.text()); | 1211 EXPECT_STR_EQ("123", helper.text()); |
1212 #endif | 1212 #endif |
1213 | 1213 |
1214 EXPECT_TRUE(client->DeleteRange(range)); | 1214 EXPECT_TRUE(client->DeleteRange(range)); |
1215 EXPECT_STR_EQ("0456789", textfield_->text()); | 1215 EXPECT_STR_EQ("0456789", textfield_->text()); |
1216 | 1216 |
1217 ui::CompositionText composition; | 1217 ui::CompositionText composition; |
1218 composition.text = UTF8ToUTF16("321"); | 1218 composition.text = UTF8ToUTF16("321"); |
1219 // Set composition through input method. | 1219 // Set composition through input method. |
1220 input_method_->Clear(); | 1220 input_method_->Clear(); |
1221 input_method_->SetCompositionTextForNextKey(composition); | 1221 input_method_->SetCompositionTextForNextKey(composition); |
1222 textfield_->clear(); | 1222 textfield_->clear(); |
1223 | 1223 |
1224 on_before_user_action_ = on_after_user_action_ = 0; | 1224 on_before_user_action_ = on_after_user_action_ = 0; |
1225 SendKeyEvent(ui::VKEY_A); | 1225 SendKeyEvent(ui::VKEY_A); |
1226 EXPECT_TRUE(textfield_->key_received()); | 1226 EXPECT_TRUE(textfield_->key_received()); |
1227 EXPECT_FALSE(textfield_->key_handled()); | 1227 EXPECT_FALSE(textfield_->key_handled()); |
1228 EXPECT_TRUE(client->HasCompositionText()); | 1228 EXPECT_TRUE(client->HasCompositionText()); |
1229 EXPECT_TRUE(client->GetCompositionTextRange(&range)); | 1229 EXPECT_TRUE(client->GetCompositionTextRange(&range)); |
1230 EXPECT_STR_EQ("0321456789", textfield_->text()); | 1230 EXPECT_STR_EQ("0321456789", textfield_->text()); |
1231 EXPECT_EQ(ui::Range(1, 4), range); | 1231 EXPECT_EQ(gfx::Range(1, 4), range); |
1232 EXPECT_EQ(2, on_before_user_action_); | 1232 EXPECT_EQ(2, on_before_user_action_); |
1233 EXPECT_EQ(2, on_after_user_action_); | 1233 EXPECT_EQ(2, on_after_user_action_); |
1234 | 1234 |
1235 input_method_->SetResultTextForNextKey(UTF8ToUTF16("123")); | 1235 input_method_->SetResultTextForNextKey(UTF8ToUTF16("123")); |
1236 on_before_user_action_ = on_after_user_action_ = 0; | 1236 on_before_user_action_ = on_after_user_action_ = 0; |
1237 textfield_->clear(); | 1237 textfield_->clear(); |
1238 SendKeyEvent(ui::VKEY_A); | 1238 SendKeyEvent(ui::VKEY_A); |
1239 EXPECT_TRUE(textfield_->key_received()); | 1239 EXPECT_TRUE(textfield_->key_received()); |
1240 EXPECT_FALSE(textfield_->key_handled()); | 1240 EXPECT_FALSE(textfield_->key_handled()); |
1241 EXPECT_FALSE(client->HasCompositionText()); | 1241 EXPECT_FALSE(client->HasCompositionText()); |
(...skipping 16 matching lines...) Expand all Loading... |
1258 EXPECT_TRUE(input_method_->cancel_composition_called()); | 1258 EXPECT_TRUE(input_method_->cancel_composition_called()); |
1259 EXPECT_TRUE(textfield_->key_received()); | 1259 EXPECT_TRUE(textfield_->key_received()); |
1260 EXPECT_TRUE(textfield_->key_handled()); | 1260 EXPECT_TRUE(textfield_->key_handled()); |
1261 EXPECT_STR_EQ("0123321456789", textfield_->text()); | 1261 EXPECT_STR_EQ("0123321456789", textfield_->text()); |
1262 EXPECT_EQ(8U, textfield_->GetCursorPosition()); | 1262 EXPECT_EQ(8U, textfield_->GetCursorPosition()); |
1263 EXPECT_EQ(1, on_before_user_action_); | 1263 EXPECT_EQ(1, on_before_user_action_); |
1264 EXPECT_EQ(1, on_after_user_action_); | 1264 EXPECT_EQ(1, on_after_user_action_); |
1265 | 1265 |
1266 textfield_->clear(); | 1266 textfield_->clear(); |
1267 textfield_->SetText(ASCIIToUTF16("0123456789")); | 1267 textfield_->SetText(ASCIIToUTF16("0123456789")); |
1268 EXPECT_TRUE(client->SetSelectionRange(ui::Range(5, 5))); | 1268 EXPECT_TRUE(client->SetSelectionRange(gfx::Range(5, 5))); |
1269 client->ExtendSelectionAndDelete(4, 2); | 1269 client->ExtendSelectionAndDelete(4, 2); |
1270 EXPECT_STR_EQ("0789", textfield_->text()); | 1270 EXPECT_STR_EQ("0789", textfield_->text()); |
1271 | 1271 |
1272 // On{Before,After}UserAction should be called by whatever user action | 1272 // On{Before,After}UserAction should be called by whatever user action |
1273 // triggers clearing or setting a selection if appropriate. | 1273 // triggers clearing or setting a selection if appropriate. |
1274 on_before_user_action_ = on_after_user_action_ = 0; | 1274 on_before_user_action_ = on_after_user_action_ = 0; |
1275 textfield_->clear(); | 1275 textfield_->clear(); |
1276 textfield_->ClearSelection(); | 1276 textfield_->ClearSelection(); |
1277 textfield_->SelectAll(false); | 1277 textfield_->SelectAll(false); |
1278 EXPECT_EQ(0, on_before_user_action_); | 1278 EXPECT_EQ(0, on_before_user_action_); |
(...skipping 487 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1766 ui::TextInputClient* client = textfield_->GetTextInputClient(); | 1766 ui::TextInputClient* client = textfield_->GetTextInputClient(); |
1767 | 1767 |
1768 // Return false if there is no composition text. | 1768 // Return false if there is no composition text. |
1769 gfx::Rect rect; | 1769 gfx::Rect rect; |
1770 EXPECT_FALSE(client->GetCompositionCharacterBounds(0, &rect)); | 1770 EXPECT_FALSE(client->GetCompositionCharacterBounds(0, &rect)); |
1771 | 1771 |
1772 // Get each character boundary by cursor. | 1772 // Get each character boundary by cursor. |
1773 gfx::Rect char_rect_in_screen_coord[char_count]; | 1773 gfx::Rect char_rect_in_screen_coord[char_count]; |
1774 gfx::Rect prev_cursor = GetCursorBounds(); | 1774 gfx::Rect prev_cursor = GetCursorBounds(); |
1775 for (uint32 i = 0; i < char_count; ++i) { | 1775 for (uint32 i = 0; i < char_count; ++i) { |
1776 composition.selection = ui::Range(0, i+1); | 1776 composition.selection = gfx::Range(0, i+1); |
1777 client->SetCompositionText(composition); | 1777 client->SetCompositionText(composition); |
1778 EXPECT_TRUE(client->HasCompositionText()) << " i=" << i; | 1778 EXPECT_TRUE(client->HasCompositionText()) << " i=" << i; |
1779 gfx::Rect cursor_bounds = GetCursorBounds(); | 1779 gfx::Rect cursor_bounds = GetCursorBounds(); |
1780 gfx::Point top_left(prev_cursor.x(), prev_cursor.y()); | 1780 gfx::Point top_left(prev_cursor.x(), prev_cursor.y()); |
1781 gfx::Point bottom_right(cursor_bounds.x(), prev_cursor.bottom()); | 1781 gfx::Point bottom_right(cursor_bounds.x(), prev_cursor.bottom()); |
1782 views::View::ConvertPointToScreen(textfield_view_, &top_left); | 1782 views::View::ConvertPointToScreen(textfield_view_, &top_left); |
1783 views::View::ConvertPointToScreen(textfield_view_, &bottom_right); | 1783 views::View::ConvertPointToScreen(textfield_view_, &bottom_right); |
1784 char_rect_in_screen_coord[i].set_origin(top_left); | 1784 char_rect_in_screen_coord[i].set_origin(top_left); |
1785 char_rect_in_screen_coord[i].set_width(bottom_right.x() - top_left.x()); | 1785 char_rect_in_screen_coord[i].set_width(bottom_right.x() - top_left.x()); |
1786 char_rect_in_screen_coord[i].set_height(bottom_right.y() - top_left.y()); | 1786 char_rect_in_screen_coord[i].set_height(bottom_right.y() - top_left.y()); |
(...skipping 13 matching lines...) Expand all Loading... |
1800 EXPECT_FALSE(client->GetCompositionCharacterBounds(char_count + 100, &rect)); | 1800 EXPECT_FALSE(client->GetCompositionCharacterBounds(char_count + 100, &rect)); |
1801 } | 1801 } |
1802 | 1802 |
1803 // The word we select by double clicking should remain selected regardless of | 1803 // The word we select by double clicking should remain selected regardless of |
1804 // where we drag the mouse afterwards without releasing the left button. | 1804 // where we drag the mouse afterwards without releasing the left button. |
1805 TEST_F(NativeTextfieldViewsTest, KeepInitiallySelectedWord) { | 1805 TEST_F(NativeTextfieldViewsTest, KeepInitiallySelectedWord) { |
1806 InitTextfield(Textfield::STYLE_DEFAULT); | 1806 InitTextfield(Textfield::STYLE_DEFAULT); |
1807 | 1807 |
1808 textfield_->SetText(ASCIIToUTF16("abc def ghi")); | 1808 textfield_->SetText(ASCIIToUTF16("abc def ghi")); |
1809 | 1809 |
1810 textfield_->SelectRange(ui::Range(5, 5)); | 1810 textfield_->SelectRange(gfx::Range(5, 5)); |
1811 const gfx::Rect middle_cursor = GetCursorBounds(); | 1811 const gfx::Rect middle_cursor = GetCursorBounds(); |
1812 textfield_->SelectRange(ui::Range(0, 0)); | 1812 textfield_->SelectRange(gfx::Range(0, 0)); |
1813 const gfx::Point beginning = GetCursorBounds().origin(); | 1813 const gfx::Point beginning = GetCursorBounds().origin(); |
1814 | 1814 |
1815 // Double click, but do not release the left button. | 1815 // Double click, but do not release the left button. |
1816 MouseClick(middle_cursor, 0); | 1816 MouseClick(middle_cursor, 0); |
1817 const gfx::Point middle(middle_cursor.x(), | 1817 const gfx::Point middle(middle_cursor.x(), |
1818 middle_cursor.y() + middle_cursor.height() / 2); | 1818 middle_cursor.y() + middle_cursor.height() / 2); |
1819 ui::MouseEvent press_event(ui::ET_MOUSE_PRESSED, middle, middle, | 1819 ui::MouseEvent press_event(ui::ET_MOUSE_PRESSED, middle, middle, |
1820 ui::EF_LEFT_MOUSE_BUTTON); | 1820 ui::EF_LEFT_MOUSE_BUTTON); |
1821 textfield_view_->OnMousePressed(press_event); | 1821 textfield_view_->OnMousePressed(press_event); |
1822 EXPECT_EQ(ui::Range(4, 7), textfield_->GetSelectedRange()); | 1822 EXPECT_EQ(gfx::Range(4, 7), textfield_->GetSelectedRange()); |
1823 | 1823 |
1824 // Drag the mouse to the beginning of the textfield. | 1824 // Drag the mouse to the beginning of the textfield. |
1825 ui::MouseEvent drag_event(ui::ET_MOUSE_DRAGGED, beginning, beginning, | 1825 ui::MouseEvent drag_event(ui::ET_MOUSE_DRAGGED, beginning, beginning, |
1826 ui::EF_LEFT_MOUSE_BUTTON); | 1826 ui::EF_LEFT_MOUSE_BUTTON); |
1827 textfield_view_->OnMouseDragged(drag_event); | 1827 textfield_view_->OnMouseDragged(drag_event); |
1828 EXPECT_EQ(ui::Range(7, 0), textfield_->GetSelectedRange()); | 1828 EXPECT_EQ(gfx::Range(7, 0), textfield_->GetSelectedRange()); |
1829 } | 1829 } |
1830 | 1830 |
1831 // Touch selection and draggin currently only works for chromeos. | 1831 // Touch selection and draggin currently only works for chromeos. |
1832 #if defined(OS_CHROMEOS) | 1832 #if defined(OS_CHROMEOS) |
1833 TEST_F(NativeTextfieldViewsTest, TouchSelectionAndDraggingTest) { | 1833 TEST_F(NativeTextfieldViewsTest, TouchSelectionAndDraggingTest) { |
1834 InitTextfield(Textfield::STYLE_DEFAULT); | 1834 InitTextfield(Textfield::STYLE_DEFAULT); |
1835 textfield_->SetText(ASCIIToUTF16("hello world")); | 1835 textfield_->SetText(ASCIIToUTF16("hello world")); |
1836 EXPECT_FALSE(GetTouchSelectionController()); | 1836 EXPECT_FALSE(GetTouchSelectionController()); |
1837 const int eventX = GetCursorPositionX(2); | 1837 const int eventX = GetCursorPositionX(2); |
1838 const int eventY = 0; | 1838 const int eventY = 0; |
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1879 EXPECT_FALSE(GetTouchSelectionController()); | 1879 EXPECT_FALSE(GetTouchSelectionController()); |
1880 } | 1880 } |
1881 #endif | 1881 #endif |
1882 | 1882 |
1883 // Long_Press gesture in NativeTextfieldViews can initiate a drag and drop now. | 1883 // Long_Press gesture in NativeTextfieldViews can initiate a drag and drop now. |
1884 TEST_F(NativeTextfieldViewsTest, TestLongPressInitiatesDragDrop) { | 1884 TEST_F(NativeTextfieldViewsTest, TestLongPressInitiatesDragDrop) { |
1885 InitTextfield(Textfield::STYLE_DEFAULT); | 1885 InitTextfield(Textfield::STYLE_DEFAULT); |
1886 textfield_->SetText(ASCIIToUTF16("Hello string world")); | 1886 textfield_->SetText(ASCIIToUTF16("Hello string world")); |
1887 | 1887 |
1888 // Ensure the textfield will provide selected text for drag data. | 1888 // Ensure the textfield will provide selected text for drag data. |
1889 textfield_->SelectRange(ui::Range(6, 12)); | 1889 textfield_->SelectRange(gfx::Range(6, 12)); |
1890 const gfx::Point kStringPoint(GetCursorPositionX(9), 0); | 1890 const gfx::Point kStringPoint(GetCursorPositionX(9), 0); |
1891 | 1891 |
1892 // Enable touch-drag-drop to make long press effective. | 1892 // Enable touch-drag-drop to make long press effective. |
1893 CommandLine::ForCurrentProcess()->AppendSwitch( | 1893 CommandLine::ForCurrentProcess()->AppendSwitch( |
1894 switches::kEnableTouchDragDrop); | 1894 switches::kEnableTouchDragDrop); |
1895 | 1895 |
1896 // Create a long press event in the selected region should start a drag. | 1896 // Create a long press event in the selected region should start a drag. |
1897 GestureEventForTest long_press(ui::ET_GESTURE_LONG_PRESS, | 1897 GestureEventForTest long_press(ui::ET_GESTURE_LONG_PRESS, |
1898 kStringPoint.x(), kStringPoint.y(), 0); | 1898 kStringPoint.x(), kStringPoint.y(), 0); |
1899 textfield_view_->OnGestureEvent(&long_press); | 1899 textfield_view_->OnGestureEvent(&long_press); |
(...skipping 16 matching lines...) Expand all Loading... |
1916 | 1916 |
1917 // Set text which may fall back to a font which has taller baseline than | 1917 // Set text which may fall back to a font which has taller baseline than |
1918 // the default font. |new_baseline| will be greater than |old_baseline|. | 1918 // the default font. |new_baseline| will be greater than |old_baseline|. |
1919 textfield_->SetText(UTF8ToUTF16("\xE0\xB9\x91")); | 1919 textfield_->SetText(UTF8ToUTF16("\xE0\xB9\x91")); |
1920 const int new_baseline = textfield_->GetBaseline(); | 1920 const int new_baseline = textfield_->GetBaseline(); |
1921 | 1921 |
1922 EXPECT_GT(new_baseline, old_baseline); | 1922 EXPECT_GT(new_baseline, old_baseline); |
1923 } | 1923 } |
1924 | 1924 |
1925 } // namespace views | 1925 } // namespace views |
OLD | NEW |