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

Side by Side Diff: views/touchui/touch_selection_controller_impl_unittest.cc

Issue 8044004: Clean up of SelectionModel (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
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 "base/utf_string_conversions.h" 5 #include "base/utf_string_conversions.h"
6 #include "ui/gfx/point.h" 6 #include "ui/gfx/point.h"
7 #include "ui/gfx/rect.h" 7 #include "ui/gfx/rect.h"
8 #include "ui/gfx/render_text.h" 8 #include "ui/gfx/render_text.h"
9 #include "views/controls/textfield/native_textfield_views.h" 9 #include "views/controls/textfield/native_textfield_views.h"
10 #include "views/controls/textfield/textfield.h" 10 #include "views/controls/textfield/textfield.h"
(...skipping 104 matching lines...) Expand 10 before | Expand all | Expand 10 after
115 DISALLOW_COPY_AND_ASSIGN(TouchSelectionControllerImplTest); 115 DISALLOW_COPY_AND_ASSIGN(TouchSelectionControllerImplTest);
116 }; 116 };
117 117
118 // Tests that the selection handles are placed appropriately when selection in 118 // Tests that the selection handles are placed appropriately when selection in
119 // a Textfield changes. 119 // a Textfield changes.
120 TEST_F(TouchSelectionControllerImplTest, SelectionInTextfieldTest) { 120 TEST_F(TouchSelectionControllerImplTest, SelectionInTextfieldTest) {
121 CreateTextfield(); 121 CreateTextfield();
122 textfield_->SetText(ASCIIToUTF16("some text")); 122 textfield_->SetText(ASCIIToUTF16("some text"));
123 123
124 // Test selecting a range. 124 // Test selecting a range.
125 textfield_->SelectSelectionModel(gfx::SelectionModel(3, 7)); 125 textfield_->SelectRange(ui::Range(3, 7));
126 VerifySelectionHandlePositions(false); 126 VerifySelectionHandlePositions(false);
127 127
128 // Test selecting everything. 128 // Test selecting everything.
129 textfield_->SelectAll(); 129 textfield_->SelectAll();
130 VerifySelectionHandlePositions(false); 130 VerifySelectionHandlePositions(false);
131 131
132 // Test with no selection. 132 // Test with no selection.
133 textfield_->ClearSelection(); 133 textfield_->ClearSelection();
134 VerifySelectionHandlePositions(false); 134 VerifySelectionHandlePositions(false);
135 135
(...skipping 10 matching lines...) Expand all
146 TEST_F(TouchSelectionControllerImplTest, SelectionInBidiTextfieldTest) { 146 TEST_F(TouchSelectionControllerImplTest, SelectionInBidiTextfieldTest) {
147 CreateTextfield(); 147 CreateTextfield();
148 textfield_->SetText(WideToUTF16(L"abc\x05d0\x05d1\x05d2")); 148 textfield_->SetText(WideToUTF16(L"abc\x05d0\x05d1\x05d2"));
149 149
150 // Test cursor at run boundary and with empty selection. 150 // Test cursor at run boundary and with empty selection.
151 textfield_->SelectSelectionModel( 151 textfield_->SelectSelectionModel(
152 gfx::SelectionModel(3, 2, gfx::SelectionModel::TRAILING)); 152 gfx::SelectionModel(3, 2, gfx::SelectionModel::TRAILING));
153 VerifySelectionHandlePositions(false); 153 VerifySelectionHandlePositions(false);
154 154
155 // Test selection range inside one run and starts or ends at run boundary. 155 // Test selection range inside one run and starts or ends at run boundary.
156 textfield_->SelectSelectionModel( 156 textfield_->SelectRange(ui::Range(2, 3));
157 gfx::SelectionModel(2, 3, 2, gfx::SelectionModel::TRAILING));
158 VerifySelectionHandlePositions(false); 157 VerifySelectionHandlePositions(false);
159 158
160 // TODO(xji): change to textfield_->SelectRange(3, 2). 159 textfield_->SelectRange(ui::Range(3, 2));
161 textfield_->SelectSelectionModel(
162 gfx::SelectionModel(3, 2, 2, gfx::SelectionModel::LEADING));
163 VerifySelectionHandlePositions(false); 160 VerifySelectionHandlePositions(false);
164 161
165 textfield_->SelectSelectionModel( 162 textfield_->SelectRange(ui::Range(3, 4));
166 gfx::SelectionModel(3, 4, 3, gfx::SelectionModel::TRAILING));
167 VerifySelectionHandlePositions(false); 163 VerifySelectionHandlePositions(false);
168 164
169 textfield_->SelectSelectionModel( 165 textfield_->SelectRange(ui::Range(4, 3));
170 gfx::SelectionModel(4, 3, 3, gfx::SelectionModel::LEADING));
171 VerifySelectionHandlePositions(false); 166 VerifySelectionHandlePositions(false);
172 167
173 textfield_->SelectSelectionModel( 168 textfield_->SelectRange(ui::Range(3, 6));
174 gfx::SelectionModel(3, 6, 5, gfx::SelectionModel::TRAILING));
175 VerifySelectionHandlePositions(false); 169 VerifySelectionHandlePositions(false);
176 170
177 textfield_->SelectSelectionModel( 171 textfield_->SelectRange(ui::Range(6, 3));
178 gfx::SelectionModel(6, 3, 3, gfx::SelectionModel::LEADING));
179 VerifySelectionHandlePositions(false); 172 VerifySelectionHandlePositions(false);
180 173
181 // Test selection range accross runs. 174 // Test selection range accross runs.
182 textfield_->SelectSelectionModel( 175 textfield_->SelectRange(ui::Range(0, 6));
183 gfx::SelectionModel(0, 6, 5, gfx::SelectionModel::TRAILING));
184 VerifySelectionHandlePositions(false); 176 VerifySelectionHandlePositions(false);
185 177
186 textfield_->SelectSelectionModel( 178 textfield_->SelectRange(ui::Range(6, 0));
187 gfx::SelectionModel(6, 0, 0, gfx::SelectionModel::LEADING));
188 VerifySelectionHandlePositions(false); 179 VerifySelectionHandlePositions(false);
189 180
190 textfield_->SelectSelectionModel( 181 textfield_->SelectRange(ui::Range(1, 4));
191 gfx::SelectionModel(1, 4, 3, gfx::SelectionModel::TRAILING));
192 VerifySelectionHandlePositions(false); 182 VerifySelectionHandlePositions(false);
193 183
194 textfield_->SelectSelectionModel( 184 textfield_->SelectRange(ui::Range(4, 1));
195 gfx::SelectionModel(4, 1, 1, gfx::SelectionModel::LEADING));
196 VerifySelectionHandlePositions(false); 185 VerifySelectionHandlePositions(false);
197 } 186 }
198 187
199 // Tests if the SelectRect callback is called appropriately when selection 188 // Tests if the SelectRect callback is called appropriately when selection
200 // handles are moved. 189 // handles are moved.
201 TEST_F(TouchSelectionControllerImplTest, SelectRectCallbackTest) { 190 TEST_F(TouchSelectionControllerImplTest, SelectRectCallbackTest) {
202 CreateTextfield(); 191 CreateTextfield();
203 textfield_->SetText(ASCIIToUTF16("textfield with selected text")); 192 textfield_->SetText(ASCIIToUTF16("textfield with selected text"));
204 textfield_->SelectSelectionModel(gfx::SelectionModel(3, 7)); 193 textfield_->SelectRange(ui::Range(3, 7));
205 194
206 EXPECT_EQ(UTF16ToUTF8(textfield_->GetSelectedText()), "tfie"); 195 EXPECT_EQ(UTF16ToUTF8(textfield_->GetSelectedText()), "tfie");
207 VerifySelectionHandlePositions(false); 196 VerifySelectionHandlePositions(false);
208 197
209 // Drag selection handle 2 to right by 3 chars. 198 // Drag selection handle 2 to right by 3 chars.
210 int x = textfield_->font().GetStringWidth(ASCIIToUTF16("ld ")); 199 int x = textfield_->font().GetStringWidth(ASCIIToUTF16("ld "));
211 SimulateSelectionHandleDrag(gfx::Point(x, 0), 2); 200 SimulateSelectionHandleDrag(gfx::Point(x, 0), 2);
212 EXPECT_EQ(UTF16ToUTF8(textfield_->GetSelectedText()), "tfield "); 201 EXPECT_EQ(UTF16ToUTF8(textfield_->GetSelectedText()), "tfield ");
213 VerifySelectionHandlePositions(false); 202 VerifySelectionHandlePositions(false);
214 203
(...skipping 10 matching lines...) Expand all
225 VerifySelectionHandlePositions(true); 214 VerifySelectionHandlePositions(true);
226 215
227 // Drag selection handle 2 across selection handle 1. 216 // Drag selection handle 2 across selection handle 1.
228 x = textfield_->font().GetStringWidth(ASCIIToUTF16("with selected ")); 217 x = textfield_->font().GetStringWidth(ASCIIToUTF16("with selected "));
229 SimulateSelectionHandleDrag(gfx::Point(x, 0), 2); 218 SimulateSelectionHandleDrag(gfx::Point(x, 0), 2);
230 EXPECT_EQ(UTF16ToUTF8(textfield_->GetSelectedText()), "selected "); 219 EXPECT_EQ(UTF16ToUTF8(textfield_->GetSelectedText()), "selected ");
231 VerifySelectionHandlePositions(false); 220 VerifySelectionHandlePositions(false);
232 } 221 }
233 222
234 } // namespace views 223 } // namespace views
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698