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

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

Issue 8044004: Clean up of SelectionModel (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: add comment about 'next' in ReplaceTextInternal 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
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 762 matching lines...) Expand 10 before | Expand all | Expand 10 after
773 #endif 773 #endif
774 774
775 #if !defined(TOUCH_UI) 775 #if !defined(TOUCH_UI)
776 TEST_F(NativeTextfieldViewsTest, DragAndDrop_InitiateDrag) { 776 TEST_F(NativeTextfieldViewsTest, DragAndDrop_InitiateDrag) {
777 InitTextfield(Textfield::STYLE_DEFAULT); 777 InitTextfield(Textfield::STYLE_DEFAULT);
778 textfield_->SetText(ASCIIToUTF16("hello string world")); 778 textfield_->SetText(ASCIIToUTF16("hello string world"));
779 779
780 // Ensure the textfield will provide selected text for drag data. 780 // Ensure the textfield will provide selected text for drag data.
781 string16 string; 781 string16 string;
782 ui::OSExchangeData data; 782 ui::OSExchangeData data;
783 textfield_->SelectSelectionModel(gfx::SelectionModel(6, 12)); 783 const ui::Range kStringRange(6, 12);
784 textfield_->SelectRange(kStringRange);
784 const gfx::Point kStringPoint(GetCursorPositionX(9), 0); 785 const gfx::Point kStringPoint(GetCursorPositionX(9), 0);
785 textfield_view_->WriteDragDataForView(NULL, kStringPoint, &data); 786 textfield_view_->WriteDragDataForView(NULL, kStringPoint, &data);
786 EXPECT_TRUE(data.GetString(&string)); 787 EXPECT_TRUE(data.GetString(&string));
787 EXPECT_EQ(textfield_->GetSelectedText(), string); 788 EXPECT_EQ(textfield_->GetSelectedText(), string);
788 789
789 // Ensure that disabled textfields do not support drag operations. 790 // Ensure that disabled textfields do not support drag operations.
790 textfield_->SetEnabled(false); 791 textfield_->SetEnabled(false);
791 EXPECT_EQ(ui::DragDropTypes::DRAG_NONE, 792 EXPECT_EQ(ui::DragDropTypes::DRAG_NONE,
792 textfield_view_->GetDragOperationsForView(NULL, kStringPoint)); 793 textfield_view_->GetDragOperationsForView(NULL, kStringPoint));
793 textfield_->SetEnabled(true); 794 textfield_->SetEnabled(true);
794 // Ensure that textfields without selections do not support drag operations. 795 // Ensure that textfields without selections do not support drag operations.
795 textfield_->ClearSelection(); 796 textfield_->ClearSelection();
796 EXPECT_EQ(ui::DragDropTypes::DRAG_NONE, 797 EXPECT_EQ(ui::DragDropTypes::DRAG_NONE,
797 textfield_view_->GetDragOperationsForView(NULL, kStringPoint)); 798 textfield_view_->GetDragOperationsForView(NULL, kStringPoint));
798 textfield_->SelectSelectionModel(gfx::SelectionModel(6, 12)); 799 textfield_->SelectRange(kStringRange);
799 // Ensure that textfields only initiate drag operations inside the selection. 800 // Ensure that textfields only initiate drag operations inside the selection.
800 EXPECT_EQ(ui::DragDropTypes::DRAG_NONE, 801 EXPECT_EQ(ui::DragDropTypes::DRAG_NONE,
801 textfield_view_->GetDragOperationsForView(NULL, gfx::Point())); 802 textfield_view_->GetDragOperationsForView(NULL, gfx::Point()));
802 EXPECT_FALSE(textfield_view_->CanStartDragForView(NULL, gfx::Point(), 803 EXPECT_FALSE(textfield_view_->CanStartDragForView(NULL, gfx::Point(),
803 gfx::Point())); 804 gfx::Point()));
804 EXPECT_EQ(ui::DragDropTypes::DRAG_COPY, 805 EXPECT_EQ(ui::DragDropTypes::DRAG_COPY,
805 textfield_view_->GetDragOperationsForView(NULL, kStringPoint)); 806 textfield_view_->GetDragOperationsForView(NULL, kStringPoint));
806 EXPECT_TRUE(textfield_view_->CanStartDragForView(NULL, kStringPoint, 807 EXPECT_TRUE(textfield_view_->CanStartDragForView(NULL, kStringPoint,
807 gfx::Point())); 808 gfx::Point()));
808 // Ensure that textfields support local moves. 809 // Ensure that textfields support local moves.
809 EXPECT_EQ(ui::DragDropTypes::DRAG_MOVE | ui::DragDropTypes::DRAG_COPY, 810 EXPECT_EQ(ui::DragDropTypes::DRAG_MOVE | ui::DragDropTypes::DRAG_COPY,
810 textfield_view_->GetDragOperationsForView(textfield_view_, kStringPoint)); 811 textfield_view_->GetDragOperationsForView(textfield_view_, kStringPoint));
811 } 812 }
812 813
813 TEST_F(NativeTextfieldViewsTest, DragAndDrop_ToTheRight) { 814 TEST_F(NativeTextfieldViewsTest, DragAndDrop_ToTheRight) {
814 InitTextfield(Textfield::STYLE_DEFAULT); 815 InitTextfield(Textfield::STYLE_DEFAULT);
815 textfield_->SetText(ASCIIToUTF16("hello world")); 816 textfield_->SetText(ASCIIToUTF16("hello world"));
816 817
817 string16 string; 818 string16 string;
818 ui::OSExchangeData data; 819 ui::OSExchangeData data;
819 int formats = 0; 820 int formats = 0;
820 int operations = 0; 821 int operations = 0;
821 std::set<OSExchangeData::CustomFormat> custom_formats; 822 std::set<OSExchangeData::CustomFormat> custom_formats;
822 823
823 // Start dragging "ello". 824 // Start dragging "ello".
824 textfield_->SelectSelectionModel(gfx::SelectionModel(1, 5)); 825 textfield_->SelectRange(ui::Range(1, 5));
825 MouseEvent click_a(ui::ET_MOUSE_PRESSED, GetCursorPositionX(3), 0, 826 MouseEvent click_a(ui::ET_MOUSE_PRESSED, GetCursorPositionX(3), 0,
826 ui::EF_LEFT_BUTTON_DOWN); 827 ui::EF_LEFT_BUTTON_DOWN);
827 textfield_view_->OnMousePressed(click_a); 828 textfield_view_->OnMousePressed(click_a);
828 EXPECT_TRUE(textfield_view_->CanStartDragForView(textfield_view_, 829 EXPECT_TRUE(textfield_view_->CanStartDragForView(textfield_view_,
829 click_a.location(), gfx::Point())); 830 click_a.location(), gfx::Point()));
830 operations = textfield_view_->GetDragOperationsForView(textfield_view_, 831 operations = textfield_view_->GetDragOperationsForView(textfield_view_,
831 click_a.location()); 832 click_a.location());
832 EXPECT_EQ(ui::DragDropTypes::DRAG_MOVE | ui::DragDropTypes::DRAG_COPY, 833 EXPECT_EQ(ui::DragDropTypes::DRAG_MOVE | ui::DragDropTypes::DRAG_COPY,
833 operations); 834 operations);
834 textfield_view_->WriteDragDataForView(NULL, click_a.location(), &data); 835 textfield_view_->WriteDragDataForView(NULL, click_a.location(), &data);
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
868 InitTextfield(Textfield::STYLE_DEFAULT); 869 InitTextfield(Textfield::STYLE_DEFAULT);
869 textfield_->SetText(ASCIIToUTF16("hello world")); 870 textfield_->SetText(ASCIIToUTF16("hello world"));
870 871
871 string16 string; 872 string16 string;
872 ui::OSExchangeData data; 873 ui::OSExchangeData data;
873 int formats = 0; 874 int formats = 0;
874 int operations = 0; 875 int operations = 0;
875 std::set<OSExchangeData::CustomFormat> custom_formats; 876 std::set<OSExchangeData::CustomFormat> custom_formats;
876 877
877 // Start dragging " worl". 878 // Start dragging " worl".
878 textfield_->SelectSelectionModel(gfx::SelectionModel(5, 10)); 879 textfield_->SelectRange(ui::Range(5, 10));
879 MouseEvent click_a(ui::ET_MOUSE_PRESSED, GetCursorPositionX(7), 0, 880 MouseEvent click_a(ui::ET_MOUSE_PRESSED, GetCursorPositionX(7), 0,
880 ui::EF_LEFT_BUTTON_DOWN); 881 ui::EF_LEFT_BUTTON_DOWN);
881 textfield_view_->OnMousePressed(click_a); 882 textfield_view_->OnMousePressed(click_a);
882 EXPECT_TRUE(textfield_view_->CanStartDragForView(textfield_view_, 883 EXPECT_TRUE(textfield_view_->CanStartDragForView(textfield_view_,
883 click_a.location(), gfx::Point())); 884 click_a.location(), gfx::Point()));
884 operations = textfield_view_->GetDragOperationsForView(textfield_view_, 885 operations = textfield_view_->GetDragOperationsForView(textfield_view_,
885 click_a.location()); 886 click_a.location());
886 EXPECT_EQ(ui::DragDropTypes::DRAG_MOVE | ui::DragDropTypes::DRAG_COPY, 887 EXPECT_EQ(ui::DragDropTypes::DRAG_MOVE | ui::DragDropTypes::DRAG_COPY,
887 operations); 888 operations);
888 textfield_view_->WriteDragDataForView(NULL, click_a.location(), &data); 889 textfield_view_->WriteDragDataForView(NULL, click_a.location(), &data);
(...skipping 26 matching lines...) Expand all
915 EXPECT_STR_EQ("h worlellod", textfield_->text()); 916 EXPECT_STR_EQ("h worlellod", textfield_->text());
916 SendKeyEvent(ui::VKEY_Y, false, true); 917 SendKeyEvent(ui::VKEY_Y, false, true);
917 EXPECT_STR_EQ("h worlellod", textfield_->text()); 918 EXPECT_STR_EQ("h worlellod", textfield_->text());
918 } 919 }
919 920
920 TEST_F(NativeTextfieldViewsTest, DragAndDrop_Canceled) { 921 TEST_F(NativeTextfieldViewsTest, DragAndDrop_Canceled) {
921 InitTextfield(Textfield::STYLE_DEFAULT); 922 InitTextfield(Textfield::STYLE_DEFAULT);
922 textfield_->SetText(ASCIIToUTF16("hello world")); 923 textfield_->SetText(ASCIIToUTF16("hello world"));
923 924
924 // Start dragging "worl". 925 // Start dragging "worl".
925 textfield_->SelectSelectionModel(gfx::SelectionModel(6, 10)); 926 textfield_->SelectRange(ui::Range(6, 10));
926 MouseEvent click(ui::ET_MOUSE_PRESSED, GetCursorPositionX(8), 0, 927 MouseEvent click(ui::ET_MOUSE_PRESSED, GetCursorPositionX(8), 0,
927 ui::EF_LEFT_BUTTON_DOWN); 928 ui::EF_LEFT_BUTTON_DOWN);
928 textfield_view_->OnMousePressed(click); 929 textfield_view_->OnMousePressed(click);
929 ui::OSExchangeData data; 930 ui::OSExchangeData data;
930 textfield_view_->WriteDragDataForView(NULL, click.location(), &data); 931 textfield_view_->WriteDragDataForView(NULL, click.location(), &data);
931 EXPECT_TRUE(textfield_view_->CanDrop(data)); 932 EXPECT_TRUE(textfield_view_->CanDrop(data));
932 // Drag the text over somewhere valid, outside the current selection. 933 // Drag the text over somewhere valid, outside the current selection.
933 DropTargetEvent drop(data, GetCursorPositionX(2), 0, 934 DropTargetEvent drop(data, GetCursorPositionX(2), 0,
934 ui::DragDropTypes::DRAG_MOVE); 935 ui::DragDropTypes::DRAG_MOVE);
935 EXPECT_EQ(ui::DragDropTypes::DRAG_MOVE, textfield_view_->OnDragUpdated(drop)); 936 EXPECT_EQ(ui::DragDropTypes::DRAG_MOVE, textfield_view_->OnDragUpdated(drop));
(...skipping 594 matching lines...) Expand 10 before | Expand all | Expand 10 after
1530 EXPECT_EQ(0U, textfield_->GetCursorPosition()); 1531 EXPECT_EQ(0U, textfield_->GetCursorPosition());
1531 #else 1532 #else
1532 EXPECT_EQ(500U, textfield_->GetCursorPosition()); 1533 EXPECT_EQ(500U, textfield_->GetCursorPosition());
1533 #endif 1534 #endif
1534 1535
1535 // Reset locale. 1536 // Reset locale.
1536 base::i18n::SetICUDefaultLocale(locale); 1537 base::i18n::SetICUDefaultLocale(locale);
1537 } 1538 }
1538 1539
1539 } // namespace views 1540 } // namespace views
OLDNEW
« no previous file with comments | « views/controls/textfield/native_textfield_views.cc ('k') | views/controls/textfield/native_textfield_win.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698