OLD | NEW |
---|---|
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 <stdio.h> | 5 #include <stdio.h> |
6 | 6 |
7 #include "base/message_loop.h" | 7 #include "base/message_loop.h" |
8 #include "base/string16.h" | 8 #include "base/string16.h" |
9 #include "base/string_util.h" | 9 #include "base/string_util.h" |
10 #include "base/time.h" | 10 #include "base/time.h" |
(...skipping 13 matching lines...) Expand all Loading... | |
24 #include "chrome/browser/tab_contents/tab_contents.h" | 24 #include "chrome/browser/tab_contents/tab_contents.h" |
25 #include "chrome/browser/ui/browser.h" | 25 #include "chrome/browser/ui/browser.h" |
26 #include "chrome/browser/ui/omnibox/location_bar.h" | 26 #include "chrome/browser/ui/omnibox/location_bar.h" |
27 #include "chrome/common/chrome_paths.h" | 27 #include "chrome/common/chrome_paths.h" |
28 #include "chrome/common/notification_service.h" | 28 #include "chrome/common/notification_service.h" |
29 #include "chrome/common/url_constants.h" | 29 #include "chrome/common/url_constants.h" |
30 #include "chrome/test/in_process_browser_test.h" | 30 #include "chrome/test/in_process_browser_test.h" |
31 #include "chrome/test/ui_test_utils.h" | 31 #include "chrome/test/ui_test_utils.h" |
32 #include "net/base/mock_host_resolver.h" | 32 #include "net/base/mock_host_resolver.h" |
33 #include "ui/base/keycodes/keyboard_codes.h" | 33 #include "ui/base/keycodes/keyboard_codes.h" |
34 #include "views/events/event.h" | |
35 | 34 |
36 #if defined(OS_LINUX) | 35 #if defined(OS_LINUX) |
37 #include <gdk/gdk.h> | 36 #include <gdk/gdk.h> |
38 #include <gtk/gtk.h> | 37 #include <gtk/gtk.h> |
39 #endif | 38 #endif |
40 | 39 |
41 #if defined(TOOLKIT_VIEWS) | 40 #if defined(TOOLKIT_VIEWS) |
42 #include "views/controls/textfield/native_textfield_views.h" | 41 #include "views/controls/textfield/native_textfield_views.h" |
42 #include "views/events/event.h" | |
43 #endif | 43 #endif |
44 | 44 |
45 using base::Time; | 45 using base::Time; |
46 using base::TimeDelta; | 46 using base::TimeDelta; |
47 | 47 |
48 namespace { | 48 namespace { |
49 | 49 |
50 const char kSearchKeyword[] = "foo"; | 50 const char kSearchKeyword[] = "foo"; |
51 const wchar_t kSearchKeywordKeys[] = { | 51 const wchar_t kSearchKeywordKeys[] = { |
52 ui::VKEY_F, ui::VKEY_O, ui::VKEY_O, 0 | 52 ui::VKEY_F, ui::VKEY_O, ui::VKEY_O, 0 |
(...skipping 111 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
164 } | 164 } |
165 | 165 |
166 void GetAutocompleteEditView(AutocompleteEditView** edit_view) { | 166 void GetAutocompleteEditView(AutocompleteEditView** edit_view) { |
167 GetAutocompleteEditViewForBrowser(browser(), edit_view); | 167 GetAutocompleteEditViewForBrowser(browser(), edit_view); |
168 } | 168 } |
169 | 169 |
170 static void SendKeyForBrowser(const Browser* browser, | 170 static void SendKeyForBrowser(const Browser* browser, |
171 ui::KeyboardCode key, | 171 ui::KeyboardCode key, |
172 bool control, | 172 bool control, |
173 bool shift, | 173 bool shift, |
174 bool alt) { | 174 bool alt, |
175 bool command) { | |
175 ASSERT_TRUE(ui_test_utils::SendKeyPressSync( | 176 ASSERT_TRUE(ui_test_utils::SendKeyPressSync( |
176 browser, key, control, shift, alt, false /* command */)); | 177 browser, key, control, shift, alt, command)); |
177 } | 178 } |
178 | 179 |
179 void SendKey(ui::KeyboardCode key, bool control, bool shift, bool alt) { | 180 void SendKey(ui::KeyboardCode key, |
sky
2011/03/02 22:45:51
Holy unreadable boolean parameters! You can probab
James Su
2011/03/02 22:59:09
Totally agree. But it would be a huge change if we
sky
2011/03/03 00:51:19
Could you at least make this class take the int fo
James Su
2011/03/03 02:22:37
Done.
| |
180 SendKeyForBrowser(browser(), key, control, shift, alt); | 181 bool control, |
182 bool shift, | |
183 bool alt, | |
184 bool command) { | |
185 SendKeyForBrowser(browser(), key, control, shift, alt, command); | |
181 } | 186 } |
182 | 187 |
183 void SendKeySequence(const wchar_t* keys) { | 188 void SendKeySequence(const wchar_t* keys) { |
184 for (; *keys; ++keys) | 189 for (; *keys; ++keys) |
185 ASSERT_NO_FATAL_FAILURE(SendKey(static_cast<ui::KeyboardCode>(*keys), | 190 ASSERT_NO_FATAL_FAILURE(SendKey(static_cast<ui::KeyboardCode>(*keys), |
186 false, false, false)); | 191 false, false, false, false)); |
187 } | 192 } |
188 | 193 |
189 void WaitForTabOpenOrCloseForBrowser(const Browser* browser, | 194 void WaitForTabOpenOrCloseForBrowser(const Browser* browser, |
190 int expected_tab_count) { | 195 int expected_tab_count) { |
191 int tab_count = browser->tab_count(); | 196 int tab_count = browser->tab_count(); |
192 if (tab_count == expected_tab_count) | 197 if (tab_count == expected_tab_count) |
193 return; | 198 return; |
194 | 199 |
195 NotificationRegistrar registrar; | 200 NotificationRegistrar registrar; |
196 registrar.Add(this, | 201 registrar.Add(this, |
(...skipping 142 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
339 AutocompleteEditView* edit_view = NULL; | 344 AutocompleteEditView* edit_view = NULL; |
340 ASSERT_NO_FATAL_FAILURE(GetAutocompleteEditView(&edit_view)); | 345 ASSERT_NO_FATAL_FAILURE(GetAutocompleteEditView(&edit_view)); |
341 | 346 |
342 int tab_count = browser()->tab_count(); | 347 int tab_count = browser()->tab_count(); |
343 | 348 |
344 // Create a new Tab. | 349 // Create a new Tab. |
345 browser()->NewTab(); | 350 browser()->NewTab(); |
346 ASSERT_NO_FATAL_FAILURE(WaitForTabOpenOrClose(tab_count + 1)); | 351 ASSERT_NO_FATAL_FAILURE(WaitForTabOpenOrClose(tab_count + 1)); |
347 | 352 |
348 // Select the first Tab. | 353 // Select the first Tab. |
349 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_1, true, false, false)); | 354 #if defined(OS_MACOSX) |
355 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_1, false, false, false, true)); | |
sky
2011/03/02 22:45:51
Isn't there some way to isolate this so we don't h
James Su
2011/03/02 22:59:09
If we change ui_test_utils following your suggesti
| |
356 #else | |
357 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_1, true, false, false, false)); | |
358 #endif | |
350 ASSERT_EQ(0, browser()->selected_index()); | 359 ASSERT_EQ(0, browser()->selected_index()); |
351 | 360 |
352 browser()->FocusLocationBar(); | 361 browser()->FocusLocationBar(); |
353 | 362 |
354 // Select the second Tab. | 363 // Select the second Tab. |
355 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_2, true, false, false)); | 364 #if defined(OS_MACOSX) |
365 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_2, false, false, false, true)); | |
366 #else | |
367 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_2, true, false, false, false)); | |
368 #endif | |
356 ASSERT_EQ(1, browser()->selected_index()); | 369 ASSERT_EQ(1, browser()->selected_index()); |
357 | 370 |
358 browser()->FocusLocationBar(); | 371 browser()->FocusLocationBar(); |
359 | 372 |
360 // Try ctrl-w to close a Tab. | 373 // Try ctrl-w to close a Tab. |
361 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_W, true, false, false)); | 374 #if defined(OS_MACOSX) |
375 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_W, false, false, false, true)); | |
376 #else | |
377 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_W, true, false, false, false)); | |
378 #endif | |
362 ASSERT_NO_FATAL_FAILURE(WaitForTabOpenOrClose(tab_count)); | 379 ASSERT_NO_FATAL_FAILURE(WaitForTabOpenOrClose(tab_count)); |
363 | 380 |
364 // Try ctrl-l to focus location bar. | 381 // Try ctrl-l to focus location bar. |
365 edit_view->SetUserText(ASCIIToUTF16("Hello world")); | 382 edit_view->SetUserText(ASCIIToUTF16("Hello world")); |
366 EXPECT_FALSE(edit_view->IsSelectAll()); | 383 EXPECT_FALSE(edit_view->IsSelectAll()); |
367 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_L, true, false, false)); | 384 #if defined(OS_MACOSX) |
385 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_L, false, false, false, true)); | |
386 #else | |
387 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_L, true, false, false, false)); | |
388 #endif | |
368 EXPECT_TRUE(edit_view->IsSelectAll()); | 389 EXPECT_TRUE(edit_view->IsSelectAll()); |
369 | 390 |
370 // Try editing the location bar text. | 391 // Try editing the location bar text. |
371 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_RIGHT, false, false, false)); | 392 ASSERT_NO_FATAL_FAILURE( |
393 SendKey(ui::VKEY_RIGHT, false, false, false, false)); | |
372 EXPECT_FALSE(edit_view->IsSelectAll()); | 394 EXPECT_FALSE(edit_view->IsSelectAll()); |
373 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_S, false, false, false)); | 395 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_S, false, false, false, false)); |
374 EXPECT_EQ(ASCIIToUTF16("Hello worlds"), edit_view->GetText()); | 396 EXPECT_EQ(ASCIIToUTF16("Hello worlds"), edit_view->GetText()); |
375 | 397 |
376 // Try ctrl-x to cut text. | 398 // Try ctrl-x to cut text. |
377 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_LEFT, true, true, false)); | 399 #if defined(OS_MACOSX) |
400 // Mac uses alt-left/right to select a word. | |
401 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_LEFT, false, true, true, false)); | |
402 #else | |
403 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_LEFT, true, true, false, false)); | |
404 #endif | |
378 EXPECT_FALSE(edit_view->IsSelectAll()); | 405 EXPECT_FALSE(edit_view->IsSelectAll()); |
379 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_X, true, false, false)); | 406 #if defined(OS_MACOSX) |
407 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_X, false, false, false, true)); | |
408 #else | |
409 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_X, true, false, false, false)); | |
410 #endif | |
380 EXPECT_EQ(ASCIIToUTF16("Hello "), edit_view->GetText()); | 411 EXPECT_EQ(ASCIIToUTF16("Hello "), edit_view->GetText()); |
381 | 412 |
382 #if !defined(OS_CHROMEOS) | 413 #if !defined(OS_CHROMEOS) && !defined(OS_MACOSX) |
383 // Try alt-f4 to close the browser. | 414 // Try alt-f4 to close the browser. |
384 ASSERT_TRUE(ui_test_utils::SendKeyPressAndWait( | 415 ASSERT_TRUE(ui_test_utils::SendKeyPressAndWait( |
385 browser(), ui::VKEY_F4, false, false, true, false, | 416 browser(), ui::VKEY_F4, false, false, true, false, |
386 NotificationType::BROWSER_CLOSED, Source<Browser>(browser()))); | 417 NotificationType::BROWSER_CLOSED, Source<Browser>(browser()))); |
387 #endif | 418 #endif |
388 } | 419 } |
389 | 420 |
390 void PopupAcceleratorsTest() { | 421 void PopupAcceleratorsTest() { |
391 // Create a popup. | 422 // Create a popup. |
392 Browser* popup = CreateBrowserForPopup(browser()->profile()); | 423 Browser* popup = CreateBrowserForPopup(browser()->profile()); |
424 ASSERT_TRUE(ui_test_utils::BringBrowserWindowToFront(popup)); | |
393 AutocompleteEditView* edit_view = NULL; | 425 AutocompleteEditView* edit_view = NULL; |
394 ASSERT_NO_FATAL_FAILURE( | 426 ASSERT_NO_FATAL_FAILURE( |
395 GetAutocompleteEditViewForBrowser(popup, &edit_view)); | 427 GetAutocompleteEditViewForBrowser(popup, &edit_view)); |
396 popup->FocusLocationBar(); | 428 popup->FocusLocationBar(); |
397 EXPECT_TRUE(edit_view->IsSelectAll()); | 429 EXPECT_TRUE(edit_view->IsSelectAll()); |
398 | 430 |
431 #if !defined(OS_MACOSX) | |
399 // Try ctrl-w to close the popup. | 432 // Try ctrl-w to close the popup. |
433 // This piece of code doesn't work on Mac, because the Browser object won't | |
434 // be destroyed before finishing the current message loop iteration, thus | |
435 // No BROWSER_CLOSED notification will be sent. | |
400 ASSERT_TRUE(ui_test_utils::SendKeyPressAndWait( | 436 ASSERT_TRUE(ui_test_utils::SendKeyPressAndWait( |
401 popup, ui::VKEY_W, true, false, false, false, | 437 popup, ui::VKEY_W, true, false, false, false, |
402 NotificationType::BROWSER_CLOSED, Source<Browser>(popup))); | 438 NotificationType::BROWSER_CLOSED, Source<Browser>(popup))); |
403 | 439 |
404 // Create another popup. | 440 // Create another popup. |
405 popup = CreateBrowserForPopup(browser()->profile()); | 441 popup = CreateBrowserForPopup(browser()->profile()); |
442 ASSERT_TRUE(ui_test_utils::BringBrowserWindowToFront(popup)); | |
406 ASSERT_NO_FATAL_FAILURE( | 443 ASSERT_NO_FATAL_FAILURE( |
407 GetAutocompleteEditViewForBrowser(popup, &edit_view)); | 444 GetAutocompleteEditViewForBrowser(popup, &edit_view)); |
445 #endif | |
408 | 446 |
409 // Set the edit text to "Hello world". | 447 // Set the edit text to "Hello world". |
410 edit_view->SetUserText(ASCIIToUTF16("Hello world")); | 448 edit_view->SetUserText(ASCIIToUTF16("Hello world")); |
411 EXPECT_FALSE(edit_view->IsSelectAll()); | |
412 popup->FocusLocationBar(); | 449 popup->FocusLocationBar(); |
413 EXPECT_TRUE(edit_view->IsSelectAll()); | 450 EXPECT_TRUE(edit_view->IsSelectAll()); |
414 | 451 |
415 // Try editing the location bar text -- should be disallowed. | 452 // Try editing the location bar text -- should be disallowed. |
416 ASSERT_NO_FATAL_FAILURE(SendKeyForBrowser(popup, ui::VKEY_RIGHT, false, | 453 ASSERT_NO_FATAL_FAILURE( |
417 false, false)); | 454 SendKeyForBrowser(popup, ui::VKEY_S, false, false, false, false)); |
418 EXPECT_FALSE(edit_view->IsSelectAll()); | |
419 ASSERT_NO_FATAL_FAILURE(SendKeyForBrowser(popup, ui::VKEY_S, false, false, | |
420 false)); | |
421 EXPECT_EQ(ASCIIToUTF16("Hello world"), edit_view->GetText()); | 455 EXPECT_EQ(ASCIIToUTF16("Hello world"), edit_view->GetText()); |
456 EXPECT_TRUE(edit_view->IsSelectAll()); | |
422 | 457 |
423 // Try ctrl-x to cut text -- should be disallowed. | 458 #if defined(OS_MACOSX) |
424 ASSERT_NO_FATAL_FAILURE(SendKeyForBrowser(popup, ui::VKEY_LEFT, true, true, | 459 ASSERT_NO_FATAL_FAILURE( |
425 false)); | 460 SendKeyForBrowser(popup, ui::VKEY_X, false, false, false, true)); |
426 EXPECT_FALSE(edit_view->IsSelectAll()); | 461 #else |
427 ASSERT_NO_FATAL_FAILURE(SendKeyForBrowser(popup, ui::VKEY_X, true, false, | 462 ASSERT_NO_FATAL_FAILURE( |
428 false)); | 463 SendKeyForBrowser(popup, ui::VKEY_X, true, false, false, false)); |
464 #endif | |
429 EXPECT_EQ(ASCIIToUTF16("Hello world"), edit_view->GetText()); | 465 EXPECT_EQ(ASCIIToUTF16("Hello world"), edit_view->GetText()); |
466 EXPECT_TRUE(edit_view->IsSelectAll()); | |
430 | 467 |
431 #if !defined(OS_CHROMEOS) | 468 #if !defined(OS_CHROMEOS) && !defined(OS_MACOSX) |
432 // Try alt-f4 to close the popup. | 469 // Try alt-f4 to close the popup. |
433 ASSERT_TRUE(ui_test_utils::SendKeyPressAndWait( | 470 ASSERT_TRUE(ui_test_utils::SendKeyPressAndWait( |
434 popup, ui::VKEY_F4, false, false, true, false, | 471 popup, ui::VKEY_F4, false, false, true, false, |
435 NotificationType::BROWSER_CLOSED, Source<Browser>(popup))); | 472 NotificationType::BROWSER_CLOSED, Source<Browser>(popup))); |
436 #endif | 473 #endif |
437 } | 474 } |
438 | 475 |
439 void BackspaceInKeywordModeTest() { | 476 void BackspaceInKeywordModeTest() { |
440 AutocompleteEditView* edit_view = NULL; | 477 AutocompleteEditView* edit_view = NULL; |
441 ASSERT_NO_FATAL_FAILURE(GetAutocompleteEditView(&edit_view)); | 478 ASSERT_NO_FATAL_FAILURE(GetAutocompleteEditView(&edit_view)); |
442 | 479 |
443 // Trigger keyword hint mode. | 480 // Trigger keyword hint mode. |
444 ASSERT_NO_FATAL_FAILURE(SendKeySequence(kSearchKeywordKeys)); | 481 ASSERT_NO_FATAL_FAILURE(SendKeySequence(kSearchKeywordKeys)); |
445 ASSERT_TRUE(edit_view->model()->is_keyword_hint()); | 482 ASSERT_TRUE(edit_view->model()->is_keyword_hint()); |
446 ASSERT_EQ(kSearchKeyword, UTF16ToUTF8(edit_view->model()->keyword())); | 483 ASSERT_EQ(kSearchKeyword, UTF16ToUTF8(edit_view->model()->keyword())); |
447 | 484 |
448 // Trigger keyword mode. | 485 // Trigger keyword mode. |
449 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_TAB, false, false, false)); | 486 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_TAB, false, false, false, false)); |
450 ASSERT_FALSE(edit_view->model()->is_keyword_hint()); | 487 ASSERT_FALSE(edit_view->model()->is_keyword_hint()); |
451 ASSERT_EQ(kSearchKeyword, UTF16ToUTF8(edit_view->model()->keyword())); | 488 ASSERT_EQ(kSearchKeyword, UTF16ToUTF8(edit_view->model()->keyword())); |
452 | 489 |
453 // Backspace without search text should bring back keyword hint mode. | 490 // Backspace without search text should bring back keyword hint mode. |
454 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_BACK, false, false, false)); | 491 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_BACK, false, false, false, false)); |
455 ASSERT_TRUE(edit_view->model()->is_keyword_hint()); | 492 ASSERT_TRUE(edit_view->model()->is_keyword_hint()); |
456 ASSERT_EQ(kSearchKeyword, UTF16ToUTF8(edit_view->model()->keyword())); | 493 ASSERT_EQ(kSearchKeyword, UTF16ToUTF8(edit_view->model()->keyword())); |
457 | 494 |
458 // Trigger keyword mode again. | 495 // Trigger keyword mode again. |
459 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_TAB, false, false, false)); | 496 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_TAB, false, false, false, false)); |
460 ASSERT_FALSE(edit_view->model()->is_keyword_hint()); | 497 ASSERT_FALSE(edit_view->model()->is_keyword_hint()); |
461 ASSERT_EQ(kSearchKeyword, UTF16ToUTF8(edit_view->model()->keyword())); | 498 ASSERT_EQ(kSearchKeyword, UTF16ToUTF8(edit_view->model()->keyword())); |
462 | 499 |
463 // Input something as search text. | 500 // Input something as search text. |
464 ASSERT_NO_FATAL_FAILURE(SendKeySequence(kSearchTextKeys)); | 501 ASSERT_NO_FATAL_FAILURE(SendKeySequence(kSearchTextKeys)); |
465 | 502 |
466 // Should stay in keyword mode while deleting search text by pressing | 503 // Should stay in keyword mode while deleting search text by pressing |
467 // backspace. | 504 // backspace. |
468 for (size_t i = 0; i < arraysize(kSearchText) - 1; ++i) { | 505 for (size_t i = 0; i < arraysize(kSearchText) - 1; ++i) { |
469 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_BACK, false, false, false)); | 506 ASSERT_NO_FATAL_FAILURE( |
507 SendKey(ui::VKEY_BACK, false, false, false, false)); | |
470 ASSERT_FALSE(edit_view->model()->is_keyword_hint()); | 508 ASSERT_FALSE(edit_view->model()->is_keyword_hint()); |
471 ASSERT_EQ(kSearchKeyword, UTF16ToUTF8(edit_view->model()->keyword())); | 509 ASSERT_EQ(kSearchKeyword, UTF16ToUTF8(edit_view->model()->keyword())); |
472 } | 510 } |
473 | 511 |
474 // Input something as search text. | 512 // Input something as search text. |
475 ASSERT_NO_FATAL_FAILURE(SendKeySequence(kSearchTextKeys)); | 513 ASSERT_NO_FATAL_FAILURE(SendKeySequence(kSearchTextKeys)); |
476 | 514 |
477 // Move cursor to the beginning of the search text. | 515 // Move cursor to the beginning of the search text. |
478 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_HOME, false, false, false)); | 516 #if defined(OS_MACOSX) |
517 // Home doesn't work on Mac trybot. | |
518 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_A, true, false, false, false)); | |
519 #else | |
520 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_HOME, false, false, false, false)); | |
521 #endif | |
479 // Backspace at the beginning of the search text shall turn off | 522 // Backspace at the beginning of the search text shall turn off |
480 // the keyword mode. | 523 // the keyword mode. |
481 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_BACK, false, false, false)); | 524 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_BACK, false, false, false, false)); |
482 ASSERT_FALSE(edit_view->model()->is_keyword_hint()); | 525 ASSERT_FALSE(edit_view->model()->is_keyword_hint()); |
483 ASSERT_EQ(string16(), edit_view->model()->keyword()); | 526 ASSERT_EQ(string16(), edit_view->model()->keyword()); |
484 ASSERT_EQ(std::string(kSearchKeyword) + kSearchText, | 527 ASSERT_EQ(std::string(kSearchKeyword) + kSearchText, |
485 UTF16ToUTF8(edit_view->GetText())); | 528 UTF16ToUTF8(edit_view->GetText())); |
486 } | 529 } |
487 | 530 |
488 void EscapeTest() { | 531 void EscapeTest() { |
489 ui_test_utils::NavigateToURL(browser(), GURL(chrome::kChromeUIHistoryURL)); | 532 ui_test_utils::NavigateToURL(browser(), GURL(chrome::kChromeUIHistoryURL)); |
490 browser()->FocusLocationBar(); | 533 browser()->FocusLocationBar(); |
491 | 534 |
492 AutocompleteEditView* edit_view = NULL; | 535 AutocompleteEditView* edit_view = NULL; |
493 ASSERT_NO_FATAL_FAILURE(GetAutocompleteEditView(&edit_view)); | 536 ASSERT_NO_FATAL_FAILURE(GetAutocompleteEditView(&edit_view)); |
494 | 537 |
495 string16 old_text = edit_view->GetText(); | 538 string16 old_text = edit_view->GetText(); |
496 EXPECT_FALSE(old_text.empty()); | 539 EXPECT_FALSE(old_text.empty()); |
497 EXPECT_TRUE(edit_view->IsSelectAll()); | 540 EXPECT_TRUE(edit_view->IsSelectAll()); |
498 | 541 |
499 // Delete all text in omnibox. | 542 // Delete all text in omnibox. |
500 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_BACK, false, false, false)); | 543 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_BACK, false, false, false, false)); |
501 EXPECT_TRUE(edit_view->GetText().empty()); | 544 EXPECT_TRUE(edit_view->GetText().empty()); |
502 | 545 |
503 // Escape shall revert the text in omnibox. | 546 // Escape shall revert the text in omnibox. |
504 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_ESCAPE, false, false, false)); | 547 ASSERT_NO_FATAL_FAILURE( |
548 SendKey(ui::VKEY_ESCAPE, false, false, false, false)); | |
505 EXPECT_EQ(old_text, edit_view->GetText()); | 549 EXPECT_EQ(old_text, edit_view->GetText()); |
506 EXPECT_TRUE(edit_view->IsSelectAll()); | 550 EXPECT_TRUE(edit_view->IsSelectAll()); |
507 } | 551 } |
508 | 552 |
509 void DesiredTLDTest() { | 553 void DesiredTLDTest() { |
510 AutocompleteEditView* edit_view = NULL; | 554 AutocompleteEditView* edit_view = NULL; |
511 ASSERT_NO_FATAL_FAILURE(GetAutocompleteEditView(&edit_view)); | 555 ASSERT_NO_FATAL_FAILURE(GetAutocompleteEditView(&edit_view)); |
512 AutocompletePopupModel* popup_model = edit_view->model()->popup_model(); | 556 AutocompletePopupModel* popup_model = edit_view->model()->popup_model(); |
513 ASSERT_TRUE(popup_model); | 557 ASSERT_TRUE(popup_model); |
514 | 558 |
515 // Test ctrl-Enter. | 559 // Test ctrl-Enter. |
516 ASSERT_NO_FATAL_FAILURE(SendKeySequence(kDesiredTLDKeys)); | 560 ASSERT_NO_FATAL_FAILURE(SendKeySequence(kDesiredTLDKeys)); |
517 ASSERT_NO_FATAL_FAILURE(WaitForAutocompleteControllerDone()); | 561 ASSERT_NO_FATAL_FAILURE(WaitForAutocompleteControllerDone()); |
518 ASSERT_TRUE(popup_model->IsOpen()); | 562 ASSERT_TRUE(popup_model->IsOpen()); |
519 // ctrl-Enter triggers desired_tld feature, thus www.bar.com shall be | 563 // ctrl-Enter triggers desired_tld feature, thus www.bar.com shall be |
520 // opened. | 564 // opened. |
521 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_RETURN, true, false, false)); | 565 ASSERT_NO_FATAL_FAILURE( |
566 SendKey(ui::VKEY_RETURN, true, false, false, false)); | |
522 | 567 |
523 GURL url = browser()->GetSelectedTabContents()->GetURL(); | 568 GURL url = browser()->GetSelectedTabContents()->GetURL(); |
524 EXPECT_STREQ(kDesiredTLDHostname, url.host().c_str()); | 569 EXPECT_STREQ(kDesiredTLDHostname, url.host().c_str()); |
525 } | 570 } |
526 | 571 |
527 void AltEnterTest() { | 572 void AltEnterTest() { |
528 AutocompleteEditView* edit_view = NULL; | 573 AutocompleteEditView* edit_view = NULL; |
529 ASSERT_NO_FATAL_FAILURE(GetAutocompleteEditView(&edit_view)); | 574 ASSERT_NO_FATAL_FAILURE(GetAutocompleteEditView(&edit_view)); |
530 | 575 |
531 edit_view->SetUserText(ASCIIToUTF16(chrome::kChromeUIHistoryURL)); | 576 edit_view->SetUserText(ASCIIToUTF16(chrome::kChromeUIHistoryURL)); |
532 int tab_count = browser()->tab_count(); | 577 int tab_count = browser()->tab_count(); |
533 // alt-Enter opens a new tab. | 578 // alt-Enter opens a new tab. |
534 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_RETURN, false, false, true)); | 579 ASSERT_NO_FATAL_FAILURE( |
580 SendKey(ui::VKEY_RETURN, false, false, true, false)); | |
535 ASSERT_NO_FATAL_FAILURE(WaitForTabOpenOrClose(tab_count + 1)); | 581 ASSERT_NO_FATAL_FAILURE(WaitForTabOpenOrClose(tab_count + 1)); |
536 } | 582 } |
537 | 583 |
538 void EnterToSearchTest() { | 584 void EnterToSearchTest() { |
539 AutocompleteEditView* edit_view = NULL; | 585 AutocompleteEditView* edit_view = NULL; |
540 ASSERT_NO_FATAL_FAILURE(GetAutocompleteEditView(&edit_view)); | 586 ASSERT_NO_FATAL_FAILURE(GetAutocompleteEditView(&edit_view)); |
541 AutocompletePopupModel* popup_model = edit_view->model()->popup_model(); | 587 AutocompletePopupModel* popup_model = edit_view->model()->popup_model(); |
542 ASSERT_TRUE(popup_model); | 588 ASSERT_TRUE(popup_model); |
543 | 589 |
544 // Test Enter to search. | 590 // Test Enter to search. |
545 ASSERT_NO_FATAL_FAILURE(SendKeySequence(kSearchTextKeys)); | 591 ASSERT_NO_FATAL_FAILURE(SendKeySequence(kSearchTextKeys)); |
546 ASSERT_NO_FATAL_FAILURE(WaitForAutocompleteControllerDone()); | 592 ASSERT_NO_FATAL_FAILURE(WaitForAutocompleteControllerDone()); |
547 ASSERT_TRUE(popup_model->IsOpen()); | 593 ASSERT_TRUE(popup_model->IsOpen()); |
548 | 594 |
549 // Check if the default match result is Search Primary Provider. | 595 // Check if the default match result is Search Primary Provider. |
550 ASSERT_EQ(AutocompleteMatch::SEARCH_WHAT_YOU_TYPED, | 596 ASSERT_EQ(AutocompleteMatch::SEARCH_WHAT_YOU_TYPED, |
551 popup_model->result().default_match()->type); | 597 popup_model->result().default_match()->type); |
552 | 598 |
553 // Open the default match. | 599 // Open the default match. |
554 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_RETURN, false, false, false)); | 600 ASSERT_NO_FATAL_FAILURE( |
601 SendKey(ui::VKEY_RETURN, false, false, false, false)); | |
555 GURL url = browser()->GetSelectedTabContents()->GetURL(); | 602 GURL url = browser()->GetSelectedTabContents()->GetURL(); |
556 EXPECT_STREQ(kSearchTextURL, url.spec().c_str()); | 603 EXPECT_STREQ(kSearchTextURL, url.spec().c_str()); |
557 | 604 |
558 // Test that entering a single character then Enter performs a search. | 605 // Test that entering a single character then Enter performs a search. |
559 browser()->FocusLocationBar(); | 606 browser()->FocusLocationBar(); |
560 EXPECT_TRUE(edit_view->IsSelectAll()); | 607 EXPECT_TRUE(edit_view->IsSelectAll()); |
561 ASSERT_NO_FATAL_FAILURE(SendKeySequence(kSearchSingleCharKeys)); | 608 ASSERT_NO_FATAL_FAILURE(SendKeySequence(kSearchSingleCharKeys)); |
562 ASSERT_NO_FATAL_FAILURE(WaitForAutocompleteControllerDone()); | 609 ASSERT_NO_FATAL_FAILURE(WaitForAutocompleteControllerDone()); |
563 ASSERT_TRUE(popup_model->IsOpen()); | 610 ASSERT_TRUE(popup_model->IsOpen()); |
564 EXPECT_EQ(kSearchSingleChar, UTF16ToUTF8(edit_view->GetText())); | 611 EXPECT_EQ(kSearchSingleChar, UTF16ToUTF8(edit_view->GetText())); |
565 | 612 |
566 // Check if the default match result is Search Primary Provider. | 613 // Check if the default match result is Search Primary Provider. |
567 ASSERT_EQ(AutocompleteMatch::SEARCH_WHAT_YOU_TYPED, | 614 ASSERT_EQ(AutocompleteMatch::SEARCH_WHAT_YOU_TYPED, |
568 popup_model->result().default_match()->type); | 615 popup_model->result().default_match()->type); |
569 | 616 |
570 // Open the default match. | 617 // Open the default match. |
571 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_RETURN, false, false, false)); | 618 ASSERT_NO_FATAL_FAILURE( |
619 SendKey(ui::VKEY_RETURN, false, false, false, false)); | |
572 url = browser()->GetSelectedTabContents()->GetURL(); | 620 url = browser()->GetSelectedTabContents()->GetURL(); |
573 EXPECT_STREQ(kSearchSingleCharURL, url.spec().c_str()); | 621 EXPECT_STREQ(kSearchSingleCharURL, url.spec().c_str()); |
574 } | 622 } |
575 | 623 |
576 void EscapeToDefaultMatchTest() { | 624 void EscapeToDefaultMatchTest() { |
577 AutocompleteEditView* edit_view = NULL; | 625 AutocompleteEditView* edit_view = NULL; |
578 ASSERT_NO_FATAL_FAILURE(GetAutocompleteEditView(&edit_view)); | 626 ASSERT_NO_FATAL_FAILURE(GetAutocompleteEditView(&edit_view)); |
579 AutocompletePopupModel* popup_model = edit_view->model()->popup_model(); | 627 AutocompletePopupModel* popup_model = edit_view->model()->popup_model(); |
580 ASSERT_TRUE(popup_model); | 628 ASSERT_TRUE(popup_model); |
581 | 629 |
582 // Input something to trigger inline autocomplete. | 630 // Input something to trigger inline autocomplete. |
583 ASSERT_NO_FATAL_FAILURE(SendKeySequence(kInlineAutocompleteTextKeys)); | 631 ASSERT_NO_FATAL_FAILURE(SendKeySequence(kInlineAutocompleteTextKeys)); |
584 ASSERT_NO_FATAL_FAILURE(WaitForAutocompleteControllerDone()); | 632 ASSERT_NO_FATAL_FAILURE(WaitForAutocompleteControllerDone()); |
585 ASSERT_TRUE(popup_model->IsOpen()); | 633 ASSERT_TRUE(popup_model->IsOpen()); |
586 | 634 |
587 string16 old_text = edit_view->GetText(); | 635 string16 old_text = edit_view->GetText(); |
588 | 636 |
589 // Make sure inline autocomplete is triggerred. | 637 // Make sure inline autocomplete is triggerred. |
590 EXPECT_GT(old_text.length(), arraysize(kInlineAutocompleteText) - 1); | 638 EXPECT_GT(old_text.length(), arraysize(kInlineAutocompleteText) - 1); |
591 | 639 |
592 size_t old_selected_line = popup_model->selected_line(); | 640 size_t old_selected_line = popup_model->selected_line(); |
593 EXPECT_EQ(0U, old_selected_line); | 641 EXPECT_EQ(0U, old_selected_line); |
594 | 642 |
595 // Move to another line with different text. | 643 // Move to another line with different text. |
596 size_t size = popup_model->result().size(); | 644 size_t size = popup_model->result().size(); |
597 while (popup_model->selected_line() < size - 1) { | 645 while (popup_model->selected_line() < size - 1) { |
598 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_DOWN, false, false, false)); | 646 ASSERT_NO_FATAL_FAILURE( |
647 SendKey(ui::VKEY_DOWN, false, false, false, false)); | |
599 ASSERT_NE(old_selected_line, popup_model->selected_line()); | 648 ASSERT_NE(old_selected_line, popup_model->selected_line()); |
600 if (old_text != edit_view->GetText()) | 649 if (old_text != edit_view->GetText()) |
601 break; | 650 break; |
602 } | 651 } |
603 | 652 |
604 EXPECT_NE(old_text, edit_view->GetText()); | 653 EXPECT_NE(old_text, edit_view->GetText()); |
605 | 654 |
606 // Escape shall revert back to the default match item. | 655 // Escape shall revert back to the default match item. |
607 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_ESCAPE, false, false, false)); | 656 ASSERT_NO_FATAL_FAILURE( |
657 SendKey(ui::VKEY_ESCAPE, false, false, false, false)); | |
608 EXPECT_EQ(old_text, edit_view->GetText()); | 658 EXPECT_EQ(old_text, edit_view->GetText()); |
609 EXPECT_EQ(old_selected_line, popup_model->selected_line()); | 659 EXPECT_EQ(old_selected_line, popup_model->selected_line()); |
610 } | 660 } |
611 | 661 |
612 void BasicTextOperationsTest() { | 662 void BasicTextOperationsTest() { |
613 ui_test_utils::NavigateToURL(browser(), GURL(chrome::kAboutBlankURL)); | 663 ui_test_utils::NavigateToURL(browser(), GURL(chrome::kAboutBlankURL)); |
614 browser()->FocusLocationBar(); | 664 browser()->FocusLocationBar(); |
615 | 665 |
616 AutocompleteEditView* edit_view = NULL; | 666 AutocompleteEditView* edit_view = NULL; |
617 ASSERT_NO_FATAL_FAILURE(GetAutocompleteEditView(&edit_view)); | 667 ASSERT_NO_FATAL_FAILURE(GetAutocompleteEditView(&edit_view)); |
618 | 668 |
619 string16 old_text = edit_view->GetText(); | 669 string16 old_text = edit_view->GetText(); |
620 EXPECT_EQ(UTF8ToUTF16(chrome::kAboutBlankURL), old_text); | 670 EXPECT_EQ(UTF8ToUTF16(chrome::kAboutBlankURL), old_text); |
621 EXPECT_TRUE(edit_view->IsSelectAll()); | 671 EXPECT_TRUE(edit_view->IsSelectAll()); |
622 | 672 |
623 string16::size_type start, end; | 673 string16::size_type start, end; |
624 edit_view->GetSelectionBounds(&start, &end); | 674 edit_view->GetSelectionBounds(&start, &end); |
625 EXPECT_EQ(0U, start); | 675 EXPECT_EQ(0U, start); |
626 EXPECT_EQ(old_text.size(), end); | 676 EXPECT_EQ(old_text.size(), end); |
627 | 677 |
628 // Move the cursor to the end. | 678 // Move the cursor to the end. |
629 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_END, false, false, false)); | 679 #if defined(OS_MACOSX) |
680 // End doesn't work on Mac trybot. | |
681 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_E, true, false, false, false)); | |
682 #else | |
683 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_END, false, false, false, false)); | |
684 #endif | |
630 EXPECT_FALSE(edit_view->IsSelectAll()); | 685 EXPECT_FALSE(edit_view->IsSelectAll()); |
631 | 686 |
632 // Make sure the cursor is placed correctly. | 687 // Make sure the cursor is placed correctly. |
633 edit_view->GetSelectionBounds(&start, &end); | 688 edit_view->GetSelectionBounds(&start, &end); |
634 EXPECT_EQ(old_text.size(), start); | 689 EXPECT_EQ(old_text.size(), start); |
635 EXPECT_EQ(old_text.size(), end); | 690 EXPECT_EQ(old_text.size(), end); |
636 | 691 |
637 // Insert one character at the end. Make sure we won't insert | 692 // Insert one character at the end. Make sure we won't insert |
638 // anything after the special ZWS mark used in gtk implementation. | 693 // anything after the special ZWS mark used in gtk implementation. |
639 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_A, false, false, false)); | 694 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_A, false, false, false, false)); |
640 EXPECT_EQ(old_text + char16('a'), edit_view->GetText()); | 695 EXPECT_EQ(old_text + char16('a'), edit_view->GetText()); |
641 | 696 |
642 // Delete one character from the end. Make sure we won't delete the special | 697 // Delete one character from the end. Make sure we won't delete the special |
643 // ZWS mark used in gtk implementation. | 698 // ZWS mark used in gtk implementation. |
644 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_BACK, false, false, false)); | 699 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_BACK, false, false, false, false)); |
645 EXPECT_EQ(old_text, edit_view->GetText()); | 700 EXPECT_EQ(old_text, edit_view->GetText()); |
646 | 701 |
647 edit_view->SelectAll(true); | 702 edit_view->SelectAll(true); |
648 EXPECT_TRUE(edit_view->IsSelectAll()); | 703 EXPECT_TRUE(edit_view->IsSelectAll()); |
649 edit_view->GetSelectionBounds(&start, &end); | 704 edit_view->GetSelectionBounds(&start, &end); |
650 EXPECT_EQ(0U, start); | 705 EXPECT_EQ(0U, start); |
651 EXPECT_EQ(old_text.size(), end); | 706 EXPECT_EQ(old_text.size(), end); |
652 | 707 |
653 // Delete the content | 708 // Delete the content |
654 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_DELETE, false, false, false)); | 709 ASSERT_NO_FATAL_FAILURE( |
710 SendKey(ui::VKEY_DELETE, false, false, false, false)); | |
655 EXPECT_TRUE(edit_view->IsSelectAll()); | 711 EXPECT_TRUE(edit_view->IsSelectAll()); |
656 edit_view->GetSelectionBounds(&start, &end); | 712 edit_view->GetSelectionBounds(&start, &end); |
657 EXPECT_EQ(0U, start); | 713 EXPECT_EQ(0U, start); |
658 EXPECT_EQ(0U, end); | 714 EXPECT_EQ(0U, end); |
659 EXPECT_TRUE(edit_view->GetText().empty()); | 715 EXPECT_TRUE(edit_view->GetText().empty()); |
660 | 716 |
661 // Check if RevertAll() can set text and cursor correctly. | 717 // Check if RevertAll() can set text and cursor correctly. |
662 edit_view->RevertAll(); | 718 edit_view->RevertAll(); |
663 EXPECT_FALSE(edit_view->IsSelectAll()); | 719 EXPECT_FALSE(edit_view->IsSelectAll()); |
664 EXPECT_EQ(old_text, edit_view->GetText()); | 720 EXPECT_EQ(old_text, edit_view->GetText()); |
665 edit_view->GetSelectionBounds(&start, &end); | 721 edit_view->GetSelectionBounds(&start, &end); |
666 EXPECT_EQ(old_text.size(), start); | 722 EXPECT_EQ(old_text.size(), start); |
667 EXPECT_EQ(old_text.size(), end); | 723 EXPECT_EQ(old_text.size(), end); |
668 } | 724 } |
669 | 725 |
670 void AcceptKeywordBySpaceTest() { | 726 void AcceptKeywordBySpaceTest() { |
671 AutocompleteEditView* edit_view = NULL; | 727 AutocompleteEditView* edit_view = NULL; |
672 ASSERT_NO_FATAL_FAILURE(GetAutocompleteEditView(&edit_view)); | 728 ASSERT_NO_FATAL_FAILURE(GetAutocompleteEditView(&edit_view)); |
673 | 729 |
674 string16 text = UTF8ToUTF16(kSearchKeyword); | 730 string16 text = UTF8ToUTF16(kSearchKeyword); |
675 | 731 |
676 // Trigger keyword hint mode. | 732 // Trigger keyword hint mode. |
677 ASSERT_NO_FATAL_FAILURE(SendKeySequence(kSearchKeywordKeys)); | 733 ASSERT_NO_FATAL_FAILURE(SendKeySequence(kSearchKeywordKeys)); |
678 ASSERT_TRUE(edit_view->model()->is_keyword_hint()); | 734 ASSERT_TRUE(edit_view->model()->is_keyword_hint()); |
679 ASSERT_EQ(text, edit_view->model()->keyword()); | 735 ASSERT_EQ(text, edit_view->model()->keyword()); |
680 ASSERT_EQ(text, edit_view->GetText()); | 736 ASSERT_EQ(text, edit_view->GetText()); |
681 | 737 |
682 // Trigger keyword mode by space. | 738 // Trigger keyword mode by space. |
683 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_SPACE, false, false, false)); | 739 ASSERT_NO_FATAL_FAILURE( |
740 SendKey(ui::VKEY_SPACE, false, false, false, false)); | |
684 ASSERT_FALSE(edit_view->model()->is_keyword_hint()); | 741 ASSERT_FALSE(edit_view->model()->is_keyword_hint()); |
685 ASSERT_EQ(text, edit_view->model()->keyword()); | 742 ASSERT_EQ(text, edit_view->model()->keyword()); |
686 ASSERT_TRUE(edit_view->GetText().empty()); | 743 ASSERT_TRUE(edit_view->GetText().empty()); |
687 | 744 |
688 // Revert to keyword hint mode. | 745 // Revert to keyword hint mode. |
689 edit_view->model()->ClearKeyword(string16()); | 746 edit_view->model()->ClearKeyword(string16()); |
690 ASSERT_TRUE(edit_view->model()->is_keyword_hint()); | 747 ASSERT_TRUE(edit_view->model()->is_keyword_hint()); |
691 ASSERT_EQ(text, edit_view->model()->keyword()); | 748 ASSERT_EQ(text, edit_view->model()->keyword()); |
692 ASSERT_EQ(text, edit_view->GetText()); | 749 ASSERT_EQ(text, edit_view->GetText()); |
693 | 750 |
(...skipping 18 matching lines...) Expand all Loading... | |
712 edit_view->model()->on_paste(); | 769 edit_view->model()->on_paste(); |
713 edit_view->SetWindowTextAndCaretPos(text + char16(' '), text.length() + 1); | 770 edit_view->SetWindowTextAndCaretPos(text + char16(' '), text.length() + 1); |
714 edit_view->OnAfterPossibleChange(); | 771 edit_view->OnAfterPossibleChange(); |
715 // Should be still in keyword hint mode. | 772 // Should be still in keyword hint mode. |
716 ASSERT_TRUE(edit_view->model()->is_keyword_hint()); | 773 ASSERT_TRUE(edit_view->model()->is_keyword_hint()); |
717 ASSERT_EQ(text, edit_view->model()->keyword()); | 774 ASSERT_EQ(text, edit_view->model()->keyword()); |
718 ASSERT_EQ(text + char16(' '), edit_view->GetText()); | 775 ASSERT_EQ(text + char16(' '), edit_view->GetText()); |
719 | 776 |
720 // Keyword shouldn't be accepted by pressing space with a trailing | 777 // Keyword shouldn't be accepted by pressing space with a trailing |
721 // whitespace. | 778 // whitespace. |
722 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_SPACE, false, false, false)); | 779 ASSERT_NO_FATAL_FAILURE( |
780 SendKey(ui::VKEY_SPACE, false, false, false, false)); | |
723 ASSERT_TRUE(edit_view->model()->is_keyword_hint()); | 781 ASSERT_TRUE(edit_view->model()->is_keyword_hint()); |
724 ASSERT_EQ(text, edit_view->model()->keyword()); | 782 ASSERT_EQ(text, edit_view->model()->keyword()); |
725 ASSERT_EQ(text + ASCIIToUTF16(" "), edit_view->GetText()); | 783 ASSERT_EQ(text + ASCIIToUTF16(" "), edit_view->GetText()); |
726 | 784 |
727 // Keyword shouldn't be accepted by deleting the trailing space. | 785 // Keyword shouldn't be accepted by deleting the trailing space. |
728 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_BACK, false, false, false)); | 786 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_BACK, false, false, false, false)); |
729 ASSERT_TRUE(edit_view->model()->is_keyword_hint()); | 787 ASSERT_TRUE(edit_view->model()->is_keyword_hint()); |
730 ASSERT_EQ(text, edit_view->model()->keyword()); | 788 ASSERT_EQ(text, edit_view->model()->keyword()); |
731 ASSERT_EQ(text + char16(' '), edit_view->GetText()); | 789 ASSERT_EQ(text + char16(' '), edit_view->GetText()); |
732 | 790 |
733 // Keyword shouldn't be accepted by pressing space in the middle | 791 // Keyword shouldn't be accepted by pressing space in the middle |
734 // of content. | 792 // of content. |
735 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_LEFT, false, false, false)); | 793 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_LEFT, false, false, false, false)); |
736 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_SPACE, false, false, false)); | 794 ASSERT_NO_FATAL_FAILURE( |
795 SendKey(ui::VKEY_SPACE, false, false, false, false)); | |
737 ASSERT_TRUE(edit_view->model()->is_keyword_hint()); | 796 ASSERT_TRUE(edit_view->model()->is_keyword_hint()); |
738 ASSERT_EQ(text, edit_view->model()->keyword()); | 797 ASSERT_EQ(text, edit_view->model()->keyword()); |
739 ASSERT_EQ(text + ASCIIToUTF16(" "), edit_view->GetText()); | 798 ASSERT_EQ(text + ASCIIToUTF16(" "), edit_view->GetText()); |
740 | 799 |
741 // Keyword shouldn't be accepted by pasting "foo bar". | 800 // Keyword shouldn't be accepted by pasting "foo bar". |
742 edit_view->SetUserText(string16()); | 801 edit_view->SetUserText(string16()); |
743 ASSERT_FALSE(edit_view->model()->is_keyword_hint()); | 802 ASSERT_FALSE(edit_view->model()->is_keyword_hint()); |
744 ASSERT_TRUE(edit_view->model()->keyword().empty()); | 803 ASSERT_TRUE(edit_view->model()->keyword().empty()); |
745 | 804 |
746 edit_view->OnBeforePossibleChange(); | 805 edit_view->OnBeforePossibleChange(); |
(...skipping 11 matching lines...) Expand all Loading... | |
758 edit_view->OnInlineAutocompleteTextMaybeChanged( | 817 edit_view->OnInlineAutocompleteTextMaybeChanged( |
759 text + ASCIIToUTF16(" "), text.length()); | 818 text + ASCIIToUTF16(" "), text.length()); |
760 edit_view->OnAfterPossibleChange(); | 819 edit_view->OnAfterPossibleChange(); |
761 ASSERT_TRUE(edit_view->model()->is_keyword_hint()); | 820 ASSERT_TRUE(edit_view->model()->is_keyword_hint()); |
762 ASSERT_EQ(text, edit_view->model()->keyword()); | 821 ASSERT_EQ(text, edit_view->model()->keyword()); |
763 ASSERT_EQ(text + ASCIIToUTF16(" "), edit_view->GetText()); | 822 ASSERT_EQ(text + ASCIIToUTF16(" "), edit_view->GetText()); |
764 | 823 |
765 string16::size_type start, end; | 824 string16::size_type start, end; |
766 edit_view->GetSelectionBounds(&start, &end); | 825 edit_view->GetSelectionBounds(&start, &end); |
767 ASSERT_NE(start, end); | 826 ASSERT_NE(start, end); |
768 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_SPACE, false, false, false)); | 827 ASSERT_NO_FATAL_FAILURE( |
828 SendKey(ui::VKEY_SPACE, false, false, false, false)); | |
769 ASSERT_FALSE(edit_view->model()->is_keyword_hint()); | 829 ASSERT_FALSE(edit_view->model()->is_keyword_hint()); |
770 ASSERT_EQ(text, edit_view->model()->keyword()); | 830 ASSERT_EQ(text, edit_view->model()->keyword()); |
771 ASSERT_EQ(string16(), edit_view->GetText()); | 831 ASSERT_EQ(string16(), edit_view->GetText()); |
772 | 832 |
773 edit_view->SetUserText(string16()); | 833 edit_view->SetUserText(string16()); |
774 | 834 |
775 // Space should accept keyword even when inline autocomplete is available. | 835 // Space should accept keyword even when inline autocomplete is available. |
776 const TestHistoryEntry kHistoryFoobar = { | 836 const TestHistoryEntry kHistoryFoobar = { |
777 "http://www.foobar.com", "Page foobar", kSearchText, 10000, 10000, true | 837 "http://www.foobar.com", "Page foobar", kSearchText, 10000, 10000, true |
778 }; | 838 }; |
779 | 839 |
780 // Add a history entry to trigger inline autocomplete when typing "foo". | 840 // Add a history entry to trigger inline autocomplete when typing "foo". |
781 ASSERT_NO_FATAL_FAILURE( | 841 ASSERT_NO_FATAL_FAILURE( |
782 AddHistoryEntry(kHistoryFoobar, Time::Now() - TimeDelta::FromHours(1))); | 842 AddHistoryEntry(kHistoryFoobar, Time::Now() - TimeDelta::FromHours(1))); |
783 | 843 |
784 // Type "foo" to trigger inline autocomplete. | 844 // Type "foo" to trigger inline autocomplete. |
785 ASSERT_NO_FATAL_FAILURE(SendKeySequence(kSearchKeywordKeys)); | 845 ASSERT_NO_FATAL_FAILURE(SendKeySequence(kSearchKeywordKeys)); |
786 ASSERT_NO_FATAL_FAILURE(WaitForAutocompleteControllerDone()); | 846 ASSERT_NO_FATAL_FAILURE(WaitForAutocompleteControllerDone()); |
787 ASSERT_TRUE(edit_view->model()->popup_model()->IsOpen()); | 847 ASSERT_TRUE(edit_view->model()->popup_model()->IsOpen()); |
788 ASSERT_NE(text, edit_view->GetText()); | 848 ASSERT_NE(text, edit_view->GetText()); |
789 | 849 |
790 // Keyword hint shouldn't be visible. | 850 // Keyword hint shouldn't be visible. |
791 ASSERT_FALSE(edit_view->model()->is_keyword_hint()); | 851 ASSERT_FALSE(edit_view->model()->is_keyword_hint()); |
792 ASSERT_TRUE(edit_view->model()->keyword().empty()); | 852 ASSERT_TRUE(edit_view->model()->keyword().empty()); |
793 | 853 |
794 // Trigger keyword mode by space. | 854 // Trigger keyword mode by space. |
795 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_SPACE, false, false, false)); | 855 ASSERT_NO_FATAL_FAILURE( |
856 SendKey(ui::VKEY_SPACE, false, false, false, false)); | |
796 ASSERT_FALSE(edit_view->model()->is_keyword_hint()); | 857 ASSERT_FALSE(edit_view->model()->is_keyword_hint()); |
797 ASSERT_EQ(text, edit_view->model()->keyword()); | 858 ASSERT_EQ(text, edit_view->model()->keyword()); |
798 ASSERT_TRUE(edit_view->GetText().empty()); | 859 ASSERT_TRUE(edit_view->GetText().empty()); |
799 } | 860 } |
800 | 861 |
801 void NonSubstitutingKeywordTest() { | 862 void NonSubstitutingKeywordTest() { |
802 AutocompleteEditView* edit_view = NULL; | 863 AutocompleteEditView* edit_view = NULL; |
803 ASSERT_NO_FATAL_FAILURE(GetAutocompleteEditView(&edit_view)); | 864 ASSERT_NO_FATAL_FAILURE(GetAutocompleteEditView(&edit_view)); |
804 AutocompletePopupModel* popup_model = edit_view->model()->popup_model(); | 865 AutocompletePopupModel* popup_model = edit_view->model()->popup_model(); |
805 ASSERT_TRUE(popup_model); | 866 ASSERT_TRUE(popup_model); |
(...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
865 ASSERT_TRUE(popup_model); | 926 ASSERT_TRUE(popup_model); |
866 | 927 |
867 string16 old_text = edit_view->GetText(); | 928 string16 old_text = edit_view->GetText(); |
868 | 929 |
869 // Input something that can match history items. | 930 // Input something that can match history items. |
870 edit_view->SetUserText(ASCIIToUTF16("bar")); | 931 edit_view->SetUserText(ASCIIToUTF16("bar")); |
871 ASSERT_NO_FATAL_FAILURE(WaitForAutocompleteControllerDone()); | 932 ASSERT_NO_FATAL_FAILURE(WaitForAutocompleteControllerDone()); |
872 ASSERT_TRUE(popup_model->IsOpen()); | 933 ASSERT_TRUE(popup_model->IsOpen()); |
873 | 934 |
874 // Delete the inline autocomplete part. | 935 // Delete the inline autocomplete part. |
875 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_DELETE, false, false, false)); | 936 ASSERT_NO_FATAL_FAILURE( |
937 SendKey(ui::VKEY_DELETE, false, false, false, false)); | |
876 ASSERT_NO_FATAL_FAILURE(WaitForAutocompleteControllerDone()); | 938 ASSERT_NO_FATAL_FAILURE(WaitForAutocompleteControllerDone()); |
877 ASSERT_TRUE(popup_model->IsOpen()); | 939 ASSERT_TRUE(popup_model->IsOpen()); |
878 ASSERT_GE(popup_model->result().size(), 3U); | 940 ASSERT_GE(popup_model->result().size(), 3U); |
879 | 941 |
880 string16 user_text = edit_view->GetText(); | 942 string16 user_text = edit_view->GetText(); |
881 ASSERT_EQ(ASCIIToUTF16("bar"), user_text); | 943 ASSERT_EQ(ASCIIToUTF16("bar"), user_text); |
882 edit_view->SelectAll(true); | 944 edit_view->SelectAll(true); |
883 ASSERT_TRUE(edit_view->IsSelectAll()); | 945 ASSERT_TRUE(edit_view->IsSelectAll()); |
884 | 946 |
885 // The first item should be the default match. | 947 // The first item should be the default match. |
(...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
948 ASSERT_TRUE(edit_view->IsSelectAll()); | 1010 ASSERT_TRUE(edit_view->IsSelectAll()); |
949 } | 1011 } |
950 | 1012 |
951 void TabMoveCursorToEndTest() { | 1013 void TabMoveCursorToEndTest() { |
952 AutocompleteEditView* edit_view = NULL; | 1014 AutocompleteEditView* edit_view = NULL; |
953 ASSERT_NO_FATAL_FAILURE(GetAutocompleteEditView(&edit_view)); | 1015 ASSERT_NO_FATAL_FAILURE(GetAutocompleteEditView(&edit_view)); |
954 | 1016 |
955 edit_view->SetUserText(ASCIIToUTF16("Hello world")); | 1017 edit_view->SetUserText(ASCIIToUTF16("Hello world")); |
956 | 1018 |
957 // Move cursor to the beginning. | 1019 // Move cursor to the beginning. |
958 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_HOME, false, false, false)); | 1020 #if defined(OS_MACOSX) |
1021 // Home doesn't work on Mac trybot. | |
1022 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_A, true, false, false, false)); | |
1023 #else | |
1024 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_HOME, false, false, false, false)); | |
1025 #endif | |
959 | 1026 |
960 string16::size_type start, end; | 1027 string16::size_type start, end; |
961 edit_view->GetSelectionBounds(&start, &end); | 1028 edit_view->GetSelectionBounds(&start, &end); |
962 EXPECT_EQ(0U, start); | 1029 EXPECT_EQ(0U, start); |
963 EXPECT_EQ(0U, end); | 1030 EXPECT_EQ(0U, end); |
964 | 1031 |
965 // Pressing tab should move cursor to the end. | 1032 // Pressing tab should move cursor to the end. |
966 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_TAB, false, false, false)); | 1033 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_TAB, false, false, false, false)); |
967 | 1034 |
968 edit_view->GetSelectionBounds(&start, &end); | 1035 edit_view->GetSelectionBounds(&start, &end); |
969 EXPECT_EQ(edit_view->GetText().size(), start); | 1036 EXPECT_EQ(edit_view->GetText().size(), start); |
970 EXPECT_EQ(edit_view->GetText().size(), end); | 1037 EXPECT_EQ(edit_view->GetText().size(), end); |
971 | 1038 |
972 // The location bar should still have focus. | 1039 // The location bar should still have focus. |
973 ASSERT_TRUE(ui_test_utils::IsViewFocused(browser(), VIEW_ID_LOCATION_BAR)); | 1040 ASSERT_TRUE(ui_test_utils::IsViewFocused(browser(), VIEW_ID_LOCATION_BAR)); |
974 | 1041 |
975 // Select all text. | 1042 // Select all text. |
976 edit_view->SelectAll(true); | 1043 edit_view->SelectAll(true); |
977 EXPECT_TRUE(edit_view->IsSelectAll()); | 1044 EXPECT_TRUE(edit_view->IsSelectAll()); |
978 edit_view->GetSelectionBounds(&start, &end); | 1045 edit_view->GetSelectionBounds(&start, &end); |
979 EXPECT_EQ(0U, start); | 1046 EXPECT_EQ(0U, start); |
980 EXPECT_EQ(edit_view->GetText().size(), end); | 1047 EXPECT_EQ(edit_view->GetText().size(), end); |
981 | 1048 |
982 // Pressing tab should move cursor to the end. | 1049 // Pressing tab should move cursor to the end. |
983 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_TAB, false, false, false)); | 1050 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_TAB, false, false, false, false)); |
984 | 1051 |
985 edit_view->GetSelectionBounds(&start, &end); | 1052 edit_view->GetSelectionBounds(&start, &end); |
986 EXPECT_EQ(edit_view->GetText().size(), start); | 1053 EXPECT_EQ(edit_view->GetText().size(), start); |
987 EXPECT_EQ(edit_view->GetText().size(), end); | 1054 EXPECT_EQ(edit_view->GetText().size(), end); |
988 | 1055 |
989 // The location bar should still have focus. | 1056 // The location bar should still have focus. |
990 ASSERT_TRUE(ui_test_utils::IsViewFocused(browser(), VIEW_ID_LOCATION_BAR)); | 1057 ASSERT_TRUE(ui_test_utils::IsViewFocused(browser(), VIEW_ID_LOCATION_BAR)); |
991 | 1058 |
992 // Pressing tab when cursor is at the end should change focus. | 1059 // Pressing tab when cursor is at the end should change focus. |
993 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_TAB, false, false, false)); | 1060 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_TAB, false, false, false, false)); |
994 | 1061 |
995 ASSERT_FALSE(ui_test_utils::IsViewFocused(browser(), VIEW_ID_LOCATION_BAR)); | 1062 ASSERT_FALSE(ui_test_utils::IsViewFocused(browser(), VIEW_ID_LOCATION_BAR)); |
996 } | 1063 } |
997 | 1064 |
998 void PersistKeywordModeOnTabSwitch() { | 1065 void PersistKeywordModeOnTabSwitch() { |
999 AutocompleteEditView* edit_view = NULL; | 1066 AutocompleteEditView* edit_view = NULL; |
1000 ASSERT_NO_FATAL_FAILURE(GetAutocompleteEditView(&edit_view)); | 1067 ASSERT_NO_FATAL_FAILURE(GetAutocompleteEditView(&edit_view)); |
1001 | 1068 |
1002 // Trigger keyword hint mode. | 1069 // Trigger keyword hint mode. |
1003 ASSERT_NO_FATAL_FAILURE(SendKeySequence(kSearchKeywordKeys)); | 1070 ASSERT_NO_FATAL_FAILURE(SendKeySequence(kSearchKeywordKeys)); |
1004 ASSERT_TRUE(edit_view->model()->is_keyword_hint()); | 1071 ASSERT_TRUE(edit_view->model()->is_keyword_hint()); |
1005 ASSERT_EQ(kSearchKeyword, UTF16ToUTF8(edit_view->model()->keyword())); | 1072 ASSERT_EQ(kSearchKeyword, UTF16ToUTF8(edit_view->model()->keyword())); |
1006 | 1073 |
1007 // Trigger keyword mode. | 1074 // Trigger keyword mode. |
1008 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_TAB, false, false, false)); | 1075 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_TAB, false, false, false, false)); |
1009 ASSERT_FALSE(edit_view->model()->is_keyword_hint()); | 1076 ASSERT_FALSE(edit_view->model()->is_keyword_hint()); |
1010 ASSERT_EQ(kSearchKeyword, UTF16ToUTF8(edit_view->model()->keyword())); | 1077 ASSERT_EQ(kSearchKeyword, UTF16ToUTF8(edit_view->model()->keyword())); |
1011 | 1078 |
1012 // Input something as search text. | 1079 // Input something as search text. |
1013 ASSERT_NO_FATAL_FAILURE(SendKeySequence(kSearchTextKeys)); | 1080 ASSERT_NO_FATAL_FAILURE(SendKeySequence(kSearchTextKeys)); |
1014 | 1081 |
1015 // Create a new tab. | 1082 // Create a new tab. |
1016 browser()->NewTab(); | 1083 browser()->NewTab(); |
1017 | 1084 |
1018 // Switch back to the first tab. | 1085 // Switch back to the first tab. |
(...skipping 110 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
1129 browser()->FocusLocationBar(); | 1196 browser()->FocusLocationBar(); |
1130 | 1197 |
1131 AutocompleteEditView* edit_view = NULL; | 1198 AutocompleteEditView* edit_view = NULL; |
1132 ASSERT_NO_FATAL_FAILURE(GetAutocompleteEditView(&edit_view)); | 1199 ASSERT_NO_FATAL_FAILURE(GetAutocompleteEditView(&edit_view)); |
1133 | 1200 |
1134 string16 old_text = edit_view->GetText(); | 1201 string16 old_text = edit_view->GetText(); |
1135 EXPECT_EQ(UTF8ToUTF16(chrome::kAboutBlankURL), old_text); | 1202 EXPECT_EQ(UTF8ToUTF16(chrome::kAboutBlankURL), old_text); |
1136 EXPECT_TRUE(edit_view->IsSelectAll()); | 1203 EXPECT_TRUE(edit_view->IsSelectAll()); |
1137 | 1204 |
1138 // Undo should clear the omnibox. | 1205 // Undo should clear the omnibox. |
1139 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_Z, true, false, false)); | 1206 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_Z, true, false, false, false)); |
1140 EXPECT_TRUE(edit_view->GetText().empty()); | 1207 EXPECT_TRUE(edit_view->GetText().empty()); |
1141 | 1208 |
1142 // Nothing should happen if undo again. | 1209 // Nothing should happen if undo again. |
1143 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_Z, true, false, false)); | 1210 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_Z, true, false, false, false)); |
1144 EXPECT_TRUE(edit_view->GetText().empty()); | 1211 EXPECT_TRUE(edit_view->GetText().empty()); |
1145 | 1212 |
1146 // Redo should restore the original text. | 1213 // Redo should restore the original text. |
1147 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_Z, true, true, false)); | 1214 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_Z, true, true, false, false)); |
1148 EXPECT_EQ(old_text, edit_view->GetText()); | 1215 EXPECT_EQ(old_text, edit_view->GetText()); |
1149 | 1216 |
1150 // Looks like the undo manager doesn't support restoring selection. | 1217 // Looks like the undo manager doesn't support restoring selection. |
1151 EXPECT_FALSE(edit_view->IsSelectAll()); | 1218 EXPECT_FALSE(edit_view->IsSelectAll()); |
1152 | 1219 |
1153 // The cursor should be at the end. | 1220 // The cursor should be at the end. |
1154 string16::size_type start, end; | 1221 string16::size_type start, end; |
1155 edit_view->GetSelectionBounds(&start, &end); | 1222 edit_view->GetSelectionBounds(&start, &end); |
1156 EXPECT_EQ(old_text.size(), start); | 1223 EXPECT_EQ(old_text.size(), start); |
1157 EXPECT_EQ(old_text.size(), end); | 1224 EXPECT_EQ(old_text.size(), end); |
1158 | 1225 |
1159 // Delete two characters. | 1226 // Delete two characters. |
1160 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_BACK, false, false, false)); | 1227 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_BACK, false, false, false, false)); |
1161 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_BACK, false, false, false)); | 1228 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_BACK, false, false, false, false)); |
1162 EXPECT_EQ(old_text.substr(0, old_text.size() - 2), edit_view->GetText()); | 1229 EXPECT_EQ(old_text.substr(0, old_text.size() - 2), edit_view->GetText()); |
1163 | 1230 |
1164 // Undo delete. | 1231 // Undo delete. |
1165 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_Z, true, false, false)); | 1232 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_Z, true, false, false, false)); |
1166 EXPECT_EQ(old_text, edit_view->GetText()); | 1233 EXPECT_EQ(old_text, edit_view->GetText()); |
1167 | 1234 |
1168 // Redo delete. | 1235 // Redo delete. |
1169 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_Z, true, true, false)); | 1236 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_Z, true, true, false, false)); |
1170 EXPECT_EQ(old_text.substr(0, old_text.size() - 2), edit_view->GetText()); | 1237 EXPECT_EQ(old_text.substr(0, old_text.size() - 2), edit_view->GetText()); |
1171 | 1238 |
1172 // Delete everything. | 1239 // Delete everything. |
1173 edit_view->SelectAll(true); | 1240 edit_view->SelectAll(true); |
1174 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_BACK, false, false, false)); | 1241 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_BACK, false, false, false, false)); |
1175 EXPECT_TRUE(edit_view->GetText().empty()); | 1242 EXPECT_TRUE(edit_view->GetText().empty()); |
1176 | 1243 |
1177 // Undo delete everything. | 1244 // Undo delete everything. |
1178 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_Z, true, false, false)); | 1245 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_Z, true, false, false, false)); |
1179 EXPECT_EQ(old_text.substr(0, old_text.size() - 2), edit_view->GetText()); | 1246 EXPECT_EQ(old_text.substr(0, old_text.size() - 2), edit_view->GetText()); |
1180 | 1247 |
1181 // Undo delete two characters. | 1248 // Undo delete two characters. |
1182 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_Z, true, false, false)); | 1249 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_Z, true, false, false, false)); |
1183 EXPECT_EQ(old_text, edit_view->GetText()); | 1250 EXPECT_EQ(old_text, edit_view->GetText()); |
1184 | 1251 |
1185 // Undo again. | 1252 // Undo again. |
1186 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_Z, true, false, false)); | 1253 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_Z, true, false, false, false)); |
1187 EXPECT_TRUE(edit_view->GetText().empty()); | 1254 EXPECT_TRUE(edit_view->GetText().empty()); |
1188 } | 1255 } |
1189 | 1256 |
1190 // See http://crbug.com/63860 | 1257 // See http://crbug.com/63860 |
1191 IN_PROC_BROWSER_TEST_F(AutocompleteEditViewTest, PrimarySelection) { | 1258 IN_PROC_BROWSER_TEST_F(AutocompleteEditViewTest, PrimarySelection) { |
1192 AutocompleteEditView* edit_view = NULL; | 1259 AutocompleteEditView* edit_view = NULL; |
1193 ASSERT_NO_FATAL_FAILURE(GetAutocompleteEditView(&edit_view)); | 1260 ASSERT_NO_FATAL_FAILURE(GetAutocompleteEditView(&edit_view)); |
1194 edit_view->SetUserText(ASCIIToUTF16("Hello world")); | 1261 edit_view->SetUserText(ASCIIToUTF16("Hello world")); |
1195 EXPECT_FALSE(edit_view->IsSelectAll()); | 1262 EXPECT_FALSE(edit_view->IsSelectAll()); |
1196 | 1263 |
1197 // Move the cursor to the end. | 1264 // Move the cursor to the end. |
1198 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_END, false, false, false)); | 1265 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_END, false, false, false, false)); |
1199 | 1266 |
1200 // Select all text by pressing Shift+Home | 1267 // Select all text by pressing Shift+Home |
1201 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_HOME, false, true, false)); | 1268 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_HOME, false, true, false, false)); |
1202 EXPECT_TRUE(edit_view->IsSelectAll()); | 1269 EXPECT_TRUE(edit_view->IsSelectAll()); |
1203 | 1270 |
1204 // The selected content should be saved to the PRIMARY clipboard. | 1271 // The selected content should be saved to the PRIMARY clipboard. |
1205 EXPECT_EQ("Hello world", GetPrimarySelectionText()); | 1272 EXPECT_EQ("Hello world", GetPrimarySelectionText()); |
1206 | 1273 |
1207 // Move the cursor to the end. | 1274 // Move the cursor to the end. |
1208 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_END, false, false, false)); | 1275 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_END, false, false, false, false)); |
1209 EXPECT_FALSE(edit_view->IsSelectAll()); | 1276 EXPECT_FALSE(edit_view->IsSelectAll()); |
1210 | 1277 |
1211 // The content in the PRIMARY clipboard should not be cleared. | 1278 // The content in the PRIMARY clipboard should not be cleared. |
1212 EXPECT_EQ("Hello world", GetPrimarySelectionText()); | 1279 EXPECT_EQ("Hello world", GetPrimarySelectionText()); |
1213 } | 1280 } |
1214 | 1281 |
1215 // See http://crosbug.com/10306 | 1282 // See http://crosbug.com/10306 |
1216 IN_PROC_BROWSER_TEST_F(AutocompleteEditViewTest, | 1283 IN_PROC_BROWSER_TEST_F(AutocompleteEditViewTest, |
1217 BackspaceDeleteHalfWidthKatakana) { | 1284 BackspaceDeleteHalfWidthKatakana) { |
1218 AutocompleteEditView* edit_view = NULL; | 1285 AutocompleteEditView* edit_view = NULL; |
1219 ASSERT_NO_FATAL_FAILURE(GetAutocompleteEditView(&edit_view)); | 1286 ASSERT_NO_FATAL_FAILURE(GetAutocompleteEditView(&edit_view)); |
1220 // Insert text: ダ | 1287 // Insert text: ダ |
1221 edit_view->SetUserText(UTF8ToUTF16("\357\276\200\357\276\236")); | 1288 edit_view->SetUserText(UTF8ToUTF16("\357\276\200\357\276\236")); |
1222 | 1289 |
1223 // Move the cursor to the end. | 1290 // Move the cursor to the end. |
1224 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_END, false, false, false)); | 1291 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_END, false, false, false, false)); |
1225 | 1292 |
1226 // Backspace should delete one character. | 1293 // Backspace should delete one character. |
1227 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_BACK, false, false, false)); | 1294 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_BACK, false, false, false, false)); |
1228 EXPECT_EQ(UTF8ToUTF16("\357\276\200"), edit_view->GetText()); | 1295 EXPECT_EQ(UTF8ToUTF16("\357\276\200"), edit_view->GetText()); |
1229 } | 1296 } |
1230 | 1297 |
1231 // http://crbug.com/12316 | 1298 // http://crbug.com/12316 |
1232 IN_PROC_BROWSER_TEST_F(AutocompleteEditViewTest, PasteReplacingAll) { | 1299 IN_PROC_BROWSER_TEST_F(AutocompleteEditViewTest, PasteReplacingAll) { |
1233 AutocompleteEditView* edit_view = NULL; | 1300 AutocompleteEditView* edit_view = NULL; |
1234 ASSERT_NO_FATAL_FAILURE(GetAutocompleteEditView(&edit_view)); | 1301 ASSERT_NO_FATAL_FAILURE(GetAutocompleteEditView(&edit_view)); |
1235 AutocompletePopupModel* popup_model = edit_view->model()->popup_model(); | 1302 AutocompletePopupModel* popup_model = edit_view->model()->popup_model(); |
1236 ASSERT_TRUE(popup_model); | 1303 ASSERT_TRUE(popup_model); |
1237 | 1304 |
1238 SetClipboardText(kSearchText); | 1305 SetClipboardText(kSearchText); |
1239 | 1306 |
1240 // Paste text. | 1307 // Paste text. |
1241 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_V, true, false, false)); | 1308 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_V, true, false, false, false)); |
1242 ASSERT_NO_FATAL_FAILURE(WaitForAutocompleteControllerDone()); | 1309 ASSERT_NO_FATAL_FAILURE(WaitForAutocompleteControllerDone()); |
1243 ASSERT_TRUE(popup_model->IsOpen()); | 1310 ASSERT_TRUE(popup_model->IsOpen()); |
1244 | 1311 |
1245 // Inline autocomplete shouldn't be triggered. | 1312 // Inline autocomplete shouldn't be triggered. |
1246 ASSERT_EQ(ASCIIToUTF16("abc"), edit_view->GetText()); | 1313 ASSERT_EQ(ASCIIToUTF16("abc"), edit_view->GetText()); |
1247 } | 1314 } |
1248 #endif | 1315 #endif |
1249 | 1316 |
1250 #if defined(TOOLKIT_VIEWS) | 1317 #if defined(TOOLKIT_VIEWS) |
1251 class AutocompleteEditViewViewsTest : public AutocompleteEditViewTest { | 1318 class AutocompleteEditViewViewsTest : public AutocompleteEditViewTest { |
(...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
1316 PersistKeywordModeOnTabSwitch) { | 1383 PersistKeywordModeOnTabSwitch) { |
1317 PersistKeywordModeOnTabSwitch(); | 1384 PersistKeywordModeOnTabSwitch(); |
1318 } | 1385 } |
1319 | 1386 |
1320 IN_PROC_BROWSER_TEST_F(AutocompleteEditViewViewsTest, | 1387 IN_PROC_BROWSER_TEST_F(AutocompleteEditViewViewsTest, |
1321 CtrlKeyPressedWithInlineAutocompleteTest) { | 1388 CtrlKeyPressedWithInlineAutocompleteTest) { |
1322 CtrlKeyPressedWithInlineAutocompleteTest(); | 1389 CtrlKeyPressedWithInlineAutocompleteTest(); |
1323 } | 1390 } |
1324 | 1391 |
1325 #endif | 1392 #endif |
OLD | NEW |