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

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

Issue 6318004: Add TextRange and related methods to Textfield Views. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: " Created 9 years, 11 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 | « views/controls/textfield/textfield_views_model.cc ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2010 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/auto_reset.h" 5 #include "base/auto_reset.h"
6 #include "base/message_loop.h" 6 #include "base/message_loop.h"
7 #include "base/scoped_ptr.h" 7 #include "base/scoped_ptr.h"
8 #include "base/utf_string_conversions.h" 8 #include "base/utf_string_conversions.h"
9 #include "testing/gtest/include/gtest/gtest.h" 9 #include "testing/gtest/include/gtest/gtest.h"
10 #include "ui/base/clipboard/clipboard.h" 10 #include "ui/base/clipboard/clipboard.h"
11 #include "ui/base/clipboard/scoped_clipboard_writer.h" 11 #include "ui/base/clipboard/scoped_clipboard_writer.h"
12 #include "views/controls/textfield/textfield.h"
12 #include "views/controls/textfield/textfield_views_model.h" 13 #include "views/controls/textfield/textfield_views_model.h"
13 #include "views/test/test_views_delegate.h" 14 #include "views/test/test_views_delegate.h"
15 #include "views/test/views_test_base.h"
14 #include "views/views_delegate.h" 16 #include "views/views_delegate.h"
15 17
16 namespace views { 18 namespace views {
17 19
20 #include "views/test/views_test_base.h"
21
22 class TextfieldViewsModelTest : public ViewsTestBase {
23 public:
24 TextfieldViewsModelTest() : ViewsTestBase() {}
25
26 private:
27 DISALLOW_COPY_AND_ASSIGN(TextfieldViewsModelTest);
28 };
29
18 #define EXPECT_STR_EQ(ascii, utf16) \ 30 #define EXPECT_STR_EQ(ascii, utf16) \
19 EXPECT_EQ(ASCIIToWide(ascii), UTF16ToWide(utf16)) 31 EXPECT_EQ(ASCIIToWide(ascii), UTF16ToWide(utf16))
20 32
21 TEST(TextfieldViewsModelTest, EditString) { 33 TEST_F(TextfieldViewsModelTest, EditString) {
22 TextfieldViewsModel model; 34 TextfieldViewsModel model;
23 // append two strings 35 // append two strings
24 model.Append(ASCIIToUTF16("HILL")); 36 model.Append(ASCIIToUTF16("HILL"));
25 EXPECT_STR_EQ("HILL", model.text()); 37 EXPECT_STR_EQ("HILL", model.text());
26 model.Append(ASCIIToUTF16("WORLD")); 38 model.Append(ASCIIToUTF16("WORLD"));
27 EXPECT_STR_EQ("HILLWORLD", model.text()); 39 EXPECT_STR_EQ("HILLWORLD", model.text());
28 40
29 // Insert "E" to make hello 41 // Insert "E" to make hello
30 model.MoveCursorRight(false); 42 model.MoveCursorRight(false);
31 model.Insert('E'); 43 model.Insert('E');
(...skipping 19 matching lines...) Expand all
51 EXPECT_STR_EQ("HELLORLD", model.text()); 63 EXPECT_STR_EQ("HELLORLD", model.text());
52 // Move the cursor to the end. delete should fail. 64 // Move the cursor to the end. delete should fail.
53 model.MoveCursorToEnd(false); 65 model.MoveCursorToEnd(false);
54 EXPECT_FALSE(model.Delete()); 66 EXPECT_FALSE(model.Delete());
55 EXPECT_STR_EQ("HELLORLD", model.text()); 67 EXPECT_STR_EQ("HELLORLD", model.text());
56 // but backspace should work. 68 // but backspace should work.
57 EXPECT_TRUE(model.Backspace()); 69 EXPECT_TRUE(model.Backspace());
58 EXPECT_STR_EQ("HELLORL", model.text()); 70 EXPECT_STR_EQ("HELLORL", model.text());
59 } 71 }
60 72
61 TEST(TextfieldViewsModelTest, EmptyString) { 73 TEST_F(TextfieldViewsModelTest, EmptyString) {
62 TextfieldViewsModel model; 74 TextfieldViewsModel model;
63 EXPECT_EQ(string16(), model.text()); 75 EXPECT_EQ(string16(), model.text());
64 EXPECT_EQ(string16(), model.GetSelectedText()); 76 EXPECT_EQ(string16(), model.GetSelectedText());
65 EXPECT_EQ(string16(), model.GetVisibleText()); 77 EXPECT_EQ(string16(), model.GetVisibleText());
66 78
67 model.MoveCursorLeft(true); 79 model.MoveCursorLeft(true);
68 EXPECT_EQ(0U, model.cursor_pos()); 80 EXPECT_EQ(0U, model.cursor_pos());
69 model.MoveCursorRight(true); 81 model.MoveCursorRight(true);
70 EXPECT_EQ(0U, model.cursor_pos()); 82 EXPECT_EQ(0U, model.cursor_pos());
71 83
72 EXPECT_EQ(string16(), model.GetSelectedText()); 84 EXPECT_EQ(string16(), model.GetSelectedText());
73 85
74 EXPECT_FALSE(model.Delete()); 86 EXPECT_FALSE(model.Delete());
75 EXPECT_FALSE(model.Backspace()); 87 EXPECT_FALSE(model.Backspace());
76 } 88 }
77 89
78 TEST(TextfieldViewsModelTest, Selection) { 90 TEST_F(TextfieldViewsModelTest, Selection) {
79 TextfieldViewsModel model; 91 TextfieldViewsModel model;
80 model.Append(ASCIIToUTF16("HELLO")); 92 model.Append(ASCIIToUTF16("HELLO"));
81 model.MoveCursorRight(false); 93 model.MoveCursorRight(false);
82 model.MoveCursorRight(true); 94 model.MoveCursorRight(true);
83 EXPECT_STR_EQ("E", model.GetSelectedText()); 95 EXPECT_STR_EQ("E", model.GetSelectedText());
84 model.MoveCursorRight(true); 96 model.MoveCursorRight(true);
85 EXPECT_STR_EQ("EL", model.GetSelectedText()); 97 EXPECT_STR_EQ("EL", model.GetSelectedText());
86 98
87 model.MoveCursorToStart(true); 99 model.MoveCursorToStart(true);
88 EXPECT_STR_EQ("H", model.GetSelectedText()); 100 EXPECT_STR_EQ("H", model.GetSelectedText());
(...skipping 17 matching lines...) Expand all
106 118
107 // Select all and move cursor 119 // Select all and move cursor
108 model.SelectAll(); 120 model.SelectAll();
109 model.MoveCursorLeft(false); 121 model.MoveCursorLeft(false);
110 EXPECT_EQ(0U, model.cursor_pos()); 122 EXPECT_EQ(0U, model.cursor_pos());
111 model.SelectAll(); 123 model.SelectAll();
112 model.MoveCursorRight(false); 124 model.MoveCursorRight(false);
113 EXPECT_EQ(5U, model.cursor_pos()); 125 EXPECT_EQ(5U, model.cursor_pos());
114 } 126 }
115 127
116 TEST(TextfieldViewsModelTest, SelectionAndEdit) { 128 TEST_F(TextfieldViewsModelTest, SelectionAndEdit) {
117 TextfieldViewsModel model; 129 TextfieldViewsModel model;
118 model.Append(ASCIIToUTF16("HELLO")); 130 model.Append(ASCIIToUTF16("HELLO"));
119 model.MoveCursorRight(false); 131 model.MoveCursorRight(false);
120 model.MoveCursorRight(true); 132 model.MoveCursorRight(true);
121 model.MoveCursorRight(true); // select "EL" 133 model.MoveCursorRight(true); // select "EL"
122 EXPECT_TRUE(model.Backspace()); 134 EXPECT_TRUE(model.Backspace());
123 EXPECT_STR_EQ("HLO", model.text()); 135 EXPECT_STR_EQ("HLO", model.text());
124 136
125 model.Append(ASCIIToUTF16("ILL")); 137 model.Append(ASCIIToUTF16("ILL"));
126 model.MoveCursorRight(true); 138 model.MoveCursorRight(true);
127 model.MoveCursorRight(true); // select "LO" 139 model.MoveCursorRight(true); // select "LO"
128 EXPECT_TRUE(model.Delete()); 140 EXPECT_TRUE(model.Delete());
129 EXPECT_STR_EQ("HILL", model.text()); 141 EXPECT_STR_EQ("HILL", model.text());
130 EXPECT_EQ(1U, model.cursor_pos()); 142 EXPECT_EQ(1U, model.cursor_pos());
131 model.MoveCursorRight(true); // select "I" 143 model.MoveCursorRight(true); // select "I"
132 model.Insert('E'); 144 model.Insert('E');
133 EXPECT_STR_EQ("HELL", model.text()); 145 EXPECT_STR_EQ("HELL", model.text());
134 model.MoveCursorToStart(false); 146 model.MoveCursorToStart(false);
135 model.MoveCursorRight(true); // select "H" 147 model.MoveCursorRight(true); // select "H"
136 model.Replace('B'); 148 model.Replace('B');
137 EXPECT_STR_EQ("BELL", model.text()); 149 EXPECT_STR_EQ("BELL", model.text());
138 model.MoveCursorToEnd(false); 150 model.MoveCursorToEnd(false);
139 model.MoveCursorLeft(true); 151 model.MoveCursorLeft(true);
140 model.MoveCursorLeft(true); // select ">LL" 152 model.MoveCursorLeft(true); // select ">LL"
141 model.Replace('E'); 153 model.Replace('E');
142 EXPECT_STR_EQ("BEE", model.text()); 154 EXPECT_STR_EQ("BEE", model.text());
143 } 155 }
144 156
145 TEST(TextfieldViewsModelTest, Password) { 157 TEST_F(TextfieldViewsModelTest, Password) {
146 TextfieldViewsModel model; 158 TextfieldViewsModel model;
147 model.set_is_password(true); 159 model.set_is_password(true);
148 model.Append(ASCIIToUTF16("HELLO")); 160 model.Append(ASCIIToUTF16("HELLO"));
149 EXPECT_STR_EQ("*****", model.GetVisibleText()); 161 EXPECT_STR_EQ("*****", model.GetVisibleText());
150 EXPECT_STR_EQ("HELLO", model.text()); 162 EXPECT_STR_EQ("HELLO", model.text());
151 EXPECT_TRUE(model.Delete()); 163 EXPECT_TRUE(model.Delete());
152 164
153 EXPECT_STR_EQ("****", model.GetVisibleText()); 165 EXPECT_STR_EQ("****", model.GetVisibleText());
154 EXPECT_STR_EQ("ELLO", model.text()); 166 EXPECT_STR_EQ("ELLO", model.text());
155 EXPECT_EQ(0U, model.cursor_pos()); 167 EXPECT_EQ(0U, model.cursor_pos());
156 168
157 model.SelectAll(); 169 model.SelectAll();
158 EXPECT_STR_EQ("ELLO", model.GetSelectedText()); 170 EXPECT_STR_EQ("ELLO", model.GetSelectedText());
159 EXPECT_EQ(0U, model.cursor_pos()); 171 EXPECT_EQ(0U, model.cursor_pos());
160 172
161 model.Insert('X'); 173 model.Insert('X');
162 EXPECT_STR_EQ("*", model.GetVisibleText()); 174 EXPECT_STR_EQ("*", model.GetVisibleText());
163 EXPECT_STR_EQ("X", model.text()); 175 EXPECT_STR_EQ("X", model.text());
164 } 176 }
165 177
166 TEST(TextfieldViewsModelTest, Word) { 178 TEST_F(TextfieldViewsModelTest, Word) {
167 TextfieldViewsModel model; 179 TextfieldViewsModel model;
168 model.Append( 180 model.Append(
169 ASCIIToUTF16("The answer to Life, the Universe, and Everything")); 181 ASCIIToUTF16("The answer to Life, the Universe, and Everything"));
170 model.MoveCursorToNextWord(false); 182 model.MoveCursorToNextWord(false);
171 EXPECT_EQ(3U, model.cursor_pos()); 183 EXPECT_EQ(3U, model.cursor_pos());
172 model.MoveCursorToNextWord(false); 184 model.MoveCursorToNextWord(false);
173 EXPECT_EQ(10U, model.cursor_pos()); 185 EXPECT_EQ(10U, model.cursor_pos());
174 model.MoveCursorToNextWord(false); 186 model.MoveCursorToNextWord(false);
175 model.MoveCursorToNextWord(false); 187 model.MoveCursorToNextWord(false);
176 EXPECT_EQ(18U, model.cursor_pos()); 188 EXPECT_EQ(18U, model.cursor_pos());
(...skipping 26 matching lines...) Expand all
203 model.MoveCursorToPreviousWord(true); // Select to the begining. 215 model.MoveCursorToPreviousWord(true); // Select to the begining.
204 EXPECT_STR_EQ("The answer to Life", model.GetSelectedText()); 216 EXPECT_STR_EQ("The answer to Life", model.GetSelectedText());
205 // Should be safe to go pervious word at the begining. 217 // Should be safe to go pervious word at the begining.
206 model.MoveCursorToPreviousWord(true); 218 model.MoveCursorToPreviousWord(true);
207 EXPECT_STR_EQ("The answer to Life", model.GetSelectedText()); 219 EXPECT_STR_EQ("The answer to Life", model.GetSelectedText());
208 model.Replace('4'); 220 model.Replace('4');
209 EXPECT_EQ(string16(), model.GetSelectedText()); 221 EXPECT_EQ(string16(), model.GetSelectedText());
210 EXPECT_STR_EQ("42", model.GetVisibleText()); 222 EXPECT_STR_EQ("42", model.GetVisibleText());
211 } 223 }
212 224
213 TEST(TextfieldViewsModelTest, TextFragment) { 225 TEST_F(TextfieldViewsModelTest, TextFragment) {
214 TextfieldViewsModel model; 226 TextfieldViewsModel model;
215 TextfieldViewsModel::TextFragments fragments; 227 TextfieldViewsModel::TextFragments fragments;
216 // Empty string 228 // Empty string
217 model.GetFragments(&fragments); 229 model.GetFragments(&fragments);
218 EXPECT_EQ(1U, fragments.size()); 230 EXPECT_EQ(1U, fragments.size());
219 EXPECT_EQ(0U, fragments[0].begin); 231 EXPECT_EQ(0U, fragments[0].begin);
220 EXPECT_EQ(0U, fragments[0].end); 232 EXPECT_EQ(0U, fragments[0].end);
221 EXPECT_FALSE(fragments[0].selected); 233 EXPECT_FALSE(fragments[0].selected);
222 234
223 // Some string 235 // Some string
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after
260 model.GetFragments(&fragments); 272 model.GetFragments(&fragments);
261 EXPECT_EQ(2U, fragments.size()); 273 EXPECT_EQ(2U, fragments.size());
262 EXPECT_EQ(0U, fragments[0].begin); 274 EXPECT_EQ(0U, fragments[0].begin);
263 EXPECT_EQ(5U, fragments[0].end); 275 EXPECT_EQ(5U, fragments[0].end);
264 EXPECT_FALSE(fragments[0].selected); 276 EXPECT_FALSE(fragments[0].selected);
265 EXPECT_EQ(5U, fragments[1].begin); 277 EXPECT_EQ(5U, fragments[1].begin);
266 EXPECT_EQ(11U, fragments[1].end); 278 EXPECT_EQ(11U, fragments[1].end);
267 EXPECT_TRUE(fragments[1].selected); 279 EXPECT_TRUE(fragments[1].selected);
268 } 280 }
269 281
270 TEST(TextfieldViewsModelTest, SetText) { 282 TEST_F(TextfieldViewsModelTest, SetText) {
271 TextfieldViewsModel model; 283 TextfieldViewsModel model;
272 model.Append(ASCIIToUTF16("HELLO")); 284 model.Append(ASCIIToUTF16("HELLO"));
273 model.MoveCursorToEnd(false); 285 model.MoveCursorToEnd(false);
274 model.SetText(ASCIIToUTF16("GOODBYE")); 286 model.SetText(ASCIIToUTF16("GOODBYE"));
275 EXPECT_STR_EQ("GOODBYE", model.text()); 287 EXPECT_STR_EQ("GOODBYE", model.text());
276 EXPECT_EQ(5U, model.cursor_pos()); 288 EXPECT_EQ(5U, model.cursor_pos());
277 model.SelectAll(); 289 model.SelectAll();
278 EXPECT_STR_EQ("GOODBYE", model.GetSelectedText()); 290 EXPECT_STR_EQ("GOODBYE", model.GetSelectedText());
279 // Selection move the current pos to the begining. 291 // Selection move the current pos to the begining.
280 EXPECT_EQ(0U, model.cursor_pos()); 292 EXPECT_EQ(0U, model.cursor_pos());
281 model.MoveCursorToEnd(false); 293 model.MoveCursorToEnd(false);
282 EXPECT_EQ(7U, model.cursor_pos()); 294 EXPECT_EQ(7U, model.cursor_pos());
283 295
284 model.SetText(ASCIIToUTF16("BYE")); 296 model.SetText(ASCIIToUTF16("BYE"));
285 EXPECT_EQ(3U, model.cursor_pos()); 297 EXPECT_EQ(3U, model.cursor_pos());
286 EXPECT_EQ(string16(), model.GetSelectedText()); 298 EXPECT_EQ(string16(), model.GetSelectedText());
287 model.SetText(ASCIIToUTF16("")); 299 model.SetText(ASCIIToUTF16(""));
288 EXPECT_EQ(0U, model.cursor_pos()); 300 EXPECT_EQ(0U, model.cursor_pos());
289 } 301 }
290 302
291 #if defined(OS_WIN) 303 TEST_F(TextfieldViewsModelTest, Clipboard) {
292 #define MAYBE_Clipboard DISABLED_Clipboard
293 #else
294 #define MAYBE_Clipboard Clipboard
295 #endif
296 TEST(TextfieldViewsModelTest, MAYBE_Clipboard) {
297 scoped_ptr<TestViewsDelegate> test_views_delegate(new TestViewsDelegate()); 304 scoped_ptr<TestViewsDelegate> test_views_delegate(new TestViewsDelegate());
298 AutoReset<views::ViewsDelegate*> auto_reset( 305 AutoReset<views::ViewsDelegate*> auto_reset(
299 &views::ViewsDelegate::views_delegate, test_views_delegate.get()); 306 &views::ViewsDelegate::views_delegate, test_views_delegate.get());
300 ui::Clipboard* clipboard 307 ui::Clipboard* clipboard
301 = views::ViewsDelegate::views_delegate->GetClipboard(); 308 = views::ViewsDelegate::views_delegate->GetClipboard();
302 string16 initial_clipboard_text; 309 string16 initial_clipboard_text;
303 clipboard->ReadText(ui::Clipboard::BUFFER_STANDARD, &initial_clipboard_text); 310 clipboard->ReadText(ui::Clipboard::BUFFER_STANDARD, &initial_clipboard_text);
304 string16 clipboard_text; 311 string16 clipboard_text;
305 TextfieldViewsModel model; 312 TextfieldViewsModel model;
306 model.Append(ASCIIToUTF16("HELLO WORLD")); 313 model.Append(ASCIIToUTF16("HELLO WORLD"));
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
341 model.ClearSelection(); 348 model.ClearSelection();
342 model.MoveCursorToEnd(false); 349 model.MoveCursorToEnd(false);
343 model.MoveCursorToPreviousWord(true); 350 model.MoveCursorToPreviousWord(true);
344 EXPECT_TRUE(model.Paste()); 351 EXPECT_TRUE(model.Paste());
345 clipboard->ReadText(ui::Clipboard::BUFFER_STANDARD, &clipboard_text); 352 clipboard->ReadText(ui::Clipboard::BUFFER_STANDARD, &clipboard_text);
346 EXPECT_STR_EQ("HELLO HELLO WORLD", clipboard_text); 353 EXPECT_STR_EQ("HELLO HELLO WORLD", clipboard_text);
347 EXPECT_STR_EQ("HELLO HELLO HELLO HELLO WORLD", model.text()); 354 EXPECT_STR_EQ("HELLO HELLO HELLO HELLO WORLD", model.text());
348 EXPECT_EQ(29U, model.cursor_pos()); 355 EXPECT_EQ(29U, model.cursor_pos());
349 } 356 }
350 357
358 TEST_F(TextfieldViewsModelTest, RangeTest) {
359 TextfieldViewsModel model;
360 model.Append(ASCIIToUTF16("HELLO WORLD"));
361 model.MoveCursorToStart(false);
362 TextRange range;
363 model.GetSelectedRange(&range);
364 EXPECT_TRUE(range.is_empty());
365 EXPECT_EQ(0U, range.start());
366 EXPECT_EQ(0U, range.end());
367
368 model.MoveCursorToNextWord(true);
369 model.GetSelectedRange(&range);
370 EXPECT_FALSE(range.is_empty());
371 EXPECT_FALSE(range.is_reverse());
372 EXPECT_EQ(0U, range.start());
373 EXPECT_EQ(5U, range.end());
374
375 model.MoveCursorLeft(true);
376 model.GetSelectedRange(&range);
377 EXPECT_FALSE(range.is_empty());
378 EXPECT_EQ(0U, range.start());
379 EXPECT_EQ(4U, range.end());
380
381 model.MoveCursorToPreviousWord(true);
382 model.GetSelectedRange(&range);
383 EXPECT_TRUE(range.is_empty());
384 EXPECT_EQ(0U, range.start());
385 EXPECT_EQ(0U, range.end());
386
387 // now from the end.
388 model.MoveCursorToEnd(false);
389 model.GetSelectedRange(&range);
390 EXPECT_TRUE(range.is_empty());
391 EXPECT_EQ(11U, range.start());
392 EXPECT_EQ(11U, range.end());
393
394 model.MoveCursorToPreviousWord(true);
395 model.GetSelectedRange(&range);
396 EXPECT_FALSE(range.is_empty());
397 EXPECT_TRUE(range.is_reverse());
398 EXPECT_EQ(11U, range.start());
399 EXPECT_EQ(6U, range.end());
400
401 model.MoveCursorRight(true);
402 model.GetSelectedRange(&range);
403 EXPECT_FALSE(range.is_empty());
404 EXPECT_TRUE(range.is_reverse());
405 EXPECT_EQ(11U, range.start());
406 EXPECT_EQ(7U, range.end());
407
408 model.MoveCursorToNextWord(true);
409 model.GetSelectedRange(&range);
410 EXPECT_TRUE(range.is_empty());
411 EXPECT_EQ(11U, range.start());
412 EXPECT_EQ(11U, range.end());
413
414 // Select All
415 model.MoveCursorToStart(true);
416 model.GetSelectedRange(&range);
417 EXPECT_FALSE(range.is_empty());
418 EXPECT_TRUE(range.is_reverse());
419 EXPECT_EQ(11U, range.start());
420 EXPECT_EQ(0U, range.end());
421 }
422
423 TEST_F(TextfieldViewsModelTest, SelectRangeTest) {
424 TextfieldViewsModel model;
425 model.Append(ASCIIToUTF16("HELLO WORLD"));
426 TextRange range(0, 6);
427 EXPECT_FALSE(range.is_reverse());
428 model.SelectRange(range);
429 EXPECT_STR_EQ("HELLO ", model.GetSelectedText());
430
431 range.SetRange(6, 1);
432 EXPECT_TRUE(range.is_reverse());
433 model.SelectRange(range);
434 EXPECT_STR_EQ("ELLO ", model.GetSelectedText());
435
436 range.SetRange(2, 1000);
437 EXPECT_FALSE(range.is_reverse());
438 model.SelectRange(range);
439 EXPECT_STR_EQ("LLO WORLD", model.GetSelectedText());
440
441 range.SetRange(1000, 3);
442 EXPECT_TRUE(range.is_reverse());
443 model.SelectRange(range);
444 EXPECT_STR_EQ("LO WORLD", model.GetSelectedText());
445
446 range.SetRange(0, 0);
447 EXPECT_TRUE(range.is_empty());
448 model.SelectRange(range);
449 EXPECT_TRUE(model.GetSelectedText().empty());
450
451 range.SetRange(3, 3);
452 EXPECT_TRUE(range.is_empty());
453 model.SelectRange(range);
454 EXPECT_TRUE(model.GetSelectedText().empty());
455
456 range.SetRange(1000, 100);
457 EXPECT_FALSE(range.is_empty());
458 model.SelectRange(range);
459 EXPECT_TRUE(model.GetSelectedText().empty());
460
461 range.SetRange(1000, 1000);
462 EXPECT_TRUE(range.is_empty());
463 model.SelectRange(range);
464 EXPECT_TRUE(model.GetSelectedText().empty());
465 }
466
351 } // namespace views 467 } // namespace views
OLDNEW
« no previous file with comments | « views/controls/textfield/textfield_views_model.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698