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, |
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)); | |
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")); |
449 #if defined(OS_MACOSX) | |
450 EXPECT_TRUE(edit_view->IsSelectAll()); | |
451 #else | |
411 EXPECT_FALSE(edit_view->IsSelectAll()); | 452 EXPECT_FALSE(edit_view->IsSelectAll()); |
453 #endif | |
Scott Hess - ex-Googler
2011/03/02 19:21:06
Is this expect even reasonable? It seems to be ma
James Su
2011/03/02 22:04:42
Done.
| |
412 popup->FocusLocationBar(); | 454 popup->FocusLocationBar(); |
413 EXPECT_TRUE(edit_view->IsSelectAll()); | 455 EXPECT_TRUE(edit_view->IsSelectAll()); |
414 | 456 |
415 // Try editing the location bar text -- should be disallowed. | 457 // Try editing the location bar text -- should be disallowed. |
416 ASSERT_NO_FATAL_FAILURE(SendKeyForBrowser(popup, ui::VKEY_RIGHT, false, | 458 ASSERT_NO_FATAL_FAILURE( |
417 false, false)); | 459 SendKeyForBrowser(popup, ui::VKEY_RIGHT, false, false, false, false)); |
460 #if defined(OS_MACOSX) | |
461 EXPECT_TRUE(edit_view->IsSelectAll()); | |
462 #else | |
418 EXPECT_FALSE(edit_view->IsSelectAll()); | 463 EXPECT_FALSE(edit_view->IsSelectAll()); |
419 ASSERT_NO_FATAL_FAILURE(SendKeyForBrowser(popup, ui::VKEY_S, false, false, | 464 #endif |
420 false)); | 465 |
466 ASSERT_NO_FATAL_FAILURE( | |
467 SendKeyForBrowser(popup, ui::VKEY_S, false, false, false, false)); | |
421 EXPECT_EQ(ASCIIToUTF16("Hello world"), edit_view->GetText()); | 468 EXPECT_EQ(ASCIIToUTF16("Hello world"), edit_view->GetText()); |
422 | 469 |
423 // Try ctrl-x to cut text -- should be disallowed. | 470 // Try ctrl-x to cut text -- should be disallowed. |
424 ASSERT_NO_FATAL_FAILURE(SendKeyForBrowser(popup, ui::VKEY_LEFT, true, true, | 471 #if defined(OS_MACOSX) |
425 false)); | 472 ASSERT_NO_FATAL_FAILURE( |
473 SendKeyForBrowser(popup, ui::VKEY_LEFT, false, true, true, false)); | |
474 EXPECT_TRUE(edit_view->IsSelectAll()); | |
475 #else | |
476 ASSERT_NO_FATAL_FAILURE( | |
477 SendKeyForBrowser(popup, ui::VKEY_LEFT, true, true, false, false)); | |
426 EXPECT_FALSE(edit_view->IsSelectAll()); | 478 EXPECT_FALSE(edit_view->IsSelectAll()); |
427 ASSERT_NO_FATAL_FAILURE(SendKeyForBrowser(popup, ui::VKEY_X, true, false, | 479 #endif |
428 false)); | 480 |
481 #if defined(OS_MACOSX) | |
482 ASSERT_NO_FATAL_FAILURE( | |
483 SendKeyForBrowser(popup, ui::VKEY_X, false, false, false, true)); | |
484 #else | |
485 ASSERT_NO_FATAL_FAILURE( | |
486 SendKeyForBrowser(popup, ui::VKEY_X, true, false, false, false)); | |
487 #endif | |
429 EXPECT_EQ(ASCIIToUTF16("Hello world"), edit_view->GetText()); | 488 EXPECT_EQ(ASCIIToUTF16("Hello world"), edit_view->GetText()); |
430 | 489 |
431 #if !defined(OS_CHROMEOS) | 490 #if !defined(OS_CHROMEOS) && !defined(OS_MACOSX) |
432 // Try alt-f4 to close the popup. | 491 // Try alt-f4 to close the popup. |
433 ASSERT_TRUE(ui_test_utils::SendKeyPressAndWait( | 492 ASSERT_TRUE(ui_test_utils::SendKeyPressAndWait( |
434 popup, ui::VKEY_F4, false, false, true, false, | 493 popup, ui::VKEY_F4, false, false, true, false, |
435 NotificationType::BROWSER_CLOSED, Source<Browser>(popup))); | 494 NotificationType::BROWSER_CLOSED, Source<Browser>(popup))); |
436 #endif | 495 #endif |
437 } | 496 } |
438 | 497 |
439 void BackspaceInKeywordModeTest() { | 498 void BackspaceInKeywordModeTest() { |
440 AutocompleteEditView* edit_view = NULL; | 499 AutocompleteEditView* edit_view = NULL; |
441 ASSERT_NO_FATAL_FAILURE(GetAutocompleteEditView(&edit_view)); | 500 ASSERT_NO_FATAL_FAILURE(GetAutocompleteEditView(&edit_view)); |
442 | 501 |
443 // Trigger keyword hint mode. | 502 // Trigger keyword hint mode. |
444 ASSERT_NO_FATAL_FAILURE(SendKeySequence(kSearchKeywordKeys)); | 503 ASSERT_NO_FATAL_FAILURE(SendKeySequence(kSearchKeywordKeys)); |
445 ASSERT_TRUE(edit_view->model()->is_keyword_hint()); | 504 ASSERT_TRUE(edit_view->model()->is_keyword_hint()); |
446 ASSERT_EQ(kSearchKeyword, UTF16ToUTF8(edit_view->model()->keyword())); | 505 ASSERT_EQ(kSearchKeyword, UTF16ToUTF8(edit_view->model()->keyword())); |
447 | 506 |
448 // Trigger keyword mode. | 507 // Trigger keyword mode. |
449 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_TAB, false, false, false)); | 508 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_TAB, false, false, false, false)); |
450 ASSERT_FALSE(edit_view->model()->is_keyword_hint()); | 509 ASSERT_FALSE(edit_view->model()->is_keyword_hint()); |
451 ASSERT_EQ(kSearchKeyword, UTF16ToUTF8(edit_view->model()->keyword())); | 510 ASSERT_EQ(kSearchKeyword, UTF16ToUTF8(edit_view->model()->keyword())); |
452 | 511 |
453 // Backspace without search text should bring back keyword hint mode. | 512 // Backspace without search text should bring back keyword hint mode. |
454 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_BACK, false, false, false)); | 513 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_BACK, false, false, false, false)); |
455 ASSERT_TRUE(edit_view->model()->is_keyword_hint()); | 514 ASSERT_TRUE(edit_view->model()->is_keyword_hint()); |
456 ASSERT_EQ(kSearchKeyword, UTF16ToUTF8(edit_view->model()->keyword())); | 515 ASSERT_EQ(kSearchKeyword, UTF16ToUTF8(edit_view->model()->keyword())); |
457 | 516 |
458 // Trigger keyword mode again. | 517 // Trigger keyword mode again. |
459 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_TAB, false, false, false)); | 518 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_TAB, false, false, false, false)); |
460 ASSERT_FALSE(edit_view->model()->is_keyword_hint()); | 519 ASSERT_FALSE(edit_view->model()->is_keyword_hint()); |
461 ASSERT_EQ(kSearchKeyword, UTF16ToUTF8(edit_view->model()->keyword())); | 520 ASSERT_EQ(kSearchKeyword, UTF16ToUTF8(edit_view->model()->keyword())); |
462 | 521 |
463 // Input something as search text. | 522 // Input something as search text. |
464 ASSERT_NO_FATAL_FAILURE(SendKeySequence(kSearchTextKeys)); | 523 ASSERT_NO_FATAL_FAILURE(SendKeySequence(kSearchTextKeys)); |
465 | 524 |
466 // Should stay in keyword mode while deleting search text by pressing | 525 // Should stay in keyword mode while deleting search text by pressing |
467 // backspace. | 526 // backspace. |
468 for (size_t i = 0; i < arraysize(kSearchText) - 1; ++i) { | 527 for (size_t i = 0; i < arraysize(kSearchText) - 1; ++i) { |
469 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_BACK, false, false, false)); | 528 ASSERT_NO_FATAL_FAILURE( |
529 SendKey(ui::VKEY_BACK, false, false, false, false)); | |
470 ASSERT_FALSE(edit_view->model()->is_keyword_hint()); | 530 ASSERT_FALSE(edit_view->model()->is_keyword_hint()); |
471 ASSERT_EQ(kSearchKeyword, UTF16ToUTF8(edit_view->model()->keyword())); | 531 ASSERT_EQ(kSearchKeyword, UTF16ToUTF8(edit_view->model()->keyword())); |
472 } | 532 } |
473 | 533 |
474 // Input something as search text. | 534 // Input something as search text. |
475 ASSERT_NO_FATAL_FAILURE(SendKeySequence(kSearchTextKeys)); | 535 ASSERT_NO_FATAL_FAILURE(SendKeySequence(kSearchTextKeys)); |
476 | 536 |
477 // Move cursor to the beginning of the search text. | 537 // Move cursor to the beginning of the search text. |
478 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_HOME, false, false, false)); | 538 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_HOME, false, false, false, false)); |
479 // Backspace at the beginning of the search text shall turn off | 539 // Backspace at the beginning of the search text shall turn off |
480 // the keyword mode. | 540 // the keyword mode. |
481 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_BACK, false, false, false)); | 541 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_BACK, false, false, false, false)); |
482 ASSERT_FALSE(edit_view->model()->is_keyword_hint()); | 542 ASSERT_FALSE(edit_view->model()->is_keyword_hint()); |
483 ASSERT_EQ(string16(), edit_view->model()->keyword()); | 543 ASSERT_EQ(string16(), edit_view->model()->keyword()); |
484 ASSERT_EQ(std::string(kSearchKeyword) + kSearchText, | 544 ASSERT_EQ(std::string(kSearchKeyword) + kSearchText, |
485 UTF16ToUTF8(edit_view->GetText())); | 545 UTF16ToUTF8(edit_view->GetText())); |
486 } | 546 } |
487 | 547 |
488 void EscapeTest() { | 548 void EscapeTest() { |
489 ui_test_utils::NavigateToURL(browser(), GURL(chrome::kChromeUIHistoryURL)); | 549 ui_test_utils::NavigateToURL(browser(), GURL(chrome::kChromeUIHistoryURL)); |
490 browser()->FocusLocationBar(); | 550 browser()->FocusLocationBar(); |
491 | 551 |
492 AutocompleteEditView* edit_view = NULL; | 552 AutocompleteEditView* edit_view = NULL; |
493 ASSERT_NO_FATAL_FAILURE(GetAutocompleteEditView(&edit_view)); | 553 ASSERT_NO_FATAL_FAILURE(GetAutocompleteEditView(&edit_view)); |
494 | 554 |
495 string16 old_text = edit_view->GetText(); | 555 string16 old_text = edit_view->GetText(); |
496 EXPECT_FALSE(old_text.empty()); | 556 EXPECT_FALSE(old_text.empty()); |
497 EXPECT_TRUE(edit_view->IsSelectAll()); | 557 EXPECT_TRUE(edit_view->IsSelectAll()); |
498 | 558 |
499 // Delete all text in omnibox. | 559 // Delete all text in omnibox. |
500 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_BACK, false, false, false)); | 560 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_BACK, false, false, false, false)); |
501 EXPECT_TRUE(edit_view->GetText().empty()); | 561 EXPECT_TRUE(edit_view->GetText().empty()); |
502 | 562 |
503 // Escape shall revert the text in omnibox. | 563 // Escape shall revert the text in omnibox. |
504 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_ESCAPE, false, false, false)); | 564 ASSERT_NO_FATAL_FAILURE( |
565 SendKey(ui::VKEY_ESCAPE, false, false, false, false)); | |
505 EXPECT_EQ(old_text, edit_view->GetText()); | 566 EXPECT_EQ(old_text, edit_view->GetText()); |
506 EXPECT_TRUE(edit_view->IsSelectAll()); | 567 EXPECT_TRUE(edit_view->IsSelectAll()); |
507 } | 568 } |
508 | 569 |
509 void DesiredTLDTest() { | 570 void DesiredTLDTest() { |
510 AutocompleteEditView* edit_view = NULL; | 571 AutocompleteEditView* edit_view = NULL; |
511 ASSERT_NO_FATAL_FAILURE(GetAutocompleteEditView(&edit_view)); | 572 ASSERT_NO_FATAL_FAILURE(GetAutocompleteEditView(&edit_view)); |
512 AutocompletePopupModel* popup_model = edit_view->model()->popup_model(); | 573 AutocompletePopupModel* popup_model = edit_view->model()->popup_model(); |
513 ASSERT_TRUE(popup_model); | 574 ASSERT_TRUE(popup_model); |
514 | 575 |
515 // Test ctrl-Enter. | 576 // Test ctrl-Enter. |
516 ASSERT_NO_FATAL_FAILURE(SendKeySequence(kDesiredTLDKeys)); | 577 ASSERT_NO_FATAL_FAILURE(SendKeySequence(kDesiredTLDKeys)); |
517 ASSERT_NO_FATAL_FAILURE(WaitForAutocompleteControllerDone()); | 578 ASSERT_NO_FATAL_FAILURE(WaitForAutocompleteControllerDone()); |
518 ASSERT_TRUE(popup_model->IsOpen()); | 579 ASSERT_TRUE(popup_model->IsOpen()); |
519 // ctrl-Enter triggers desired_tld feature, thus www.bar.com shall be | 580 // ctrl-Enter triggers desired_tld feature, thus www.bar.com shall be |
520 // opened. | 581 // opened. |
521 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_RETURN, true, false, false)); | 582 ASSERT_NO_FATAL_FAILURE( |
583 SendKey(ui::VKEY_RETURN, true, false, false, false)); | |
522 | 584 |
523 GURL url = browser()->GetSelectedTabContents()->GetURL(); | 585 GURL url = browser()->GetSelectedTabContents()->GetURL(); |
524 EXPECT_STREQ(kDesiredTLDHostname, url.host().c_str()); | 586 EXPECT_STREQ(kDesiredTLDHostname, url.host().c_str()); |
525 } | 587 } |
526 | 588 |
527 void AltEnterTest() { | 589 void AltEnterTest() { |
528 AutocompleteEditView* edit_view = NULL; | 590 AutocompleteEditView* edit_view = NULL; |
529 ASSERT_NO_FATAL_FAILURE(GetAutocompleteEditView(&edit_view)); | 591 ASSERT_NO_FATAL_FAILURE(GetAutocompleteEditView(&edit_view)); |
530 | 592 |
531 edit_view->SetUserText(ASCIIToUTF16(chrome::kChromeUIHistoryURL)); | 593 edit_view->SetUserText(ASCIIToUTF16(chrome::kChromeUIHistoryURL)); |
532 int tab_count = browser()->tab_count(); | 594 int tab_count = browser()->tab_count(); |
533 // alt-Enter opens a new tab. | 595 // alt-Enter opens a new tab. |
534 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_RETURN, false, false, true)); | 596 ASSERT_NO_FATAL_FAILURE( |
597 SendKey(ui::VKEY_RETURN, false, false, true, false)); | |
535 ASSERT_NO_FATAL_FAILURE(WaitForTabOpenOrClose(tab_count + 1)); | 598 ASSERT_NO_FATAL_FAILURE(WaitForTabOpenOrClose(tab_count + 1)); |
536 } | 599 } |
537 | 600 |
538 void EnterToSearchTest() { | 601 void EnterToSearchTest() { |
539 AutocompleteEditView* edit_view = NULL; | 602 AutocompleteEditView* edit_view = NULL; |
540 ASSERT_NO_FATAL_FAILURE(GetAutocompleteEditView(&edit_view)); | 603 ASSERT_NO_FATAL_FAILURE(GetAutocompleteEditView(&edit_view)); |
541 AutocompletePopupModel* popup_model = edit_view->model()->popup_model(); | 604 AutocompletePopupModel* popup_model = edit_view->model()->popup_model(); |
542 ASSERT_TRUE(popup_model); | 605 ASSERT_TRUE(popup_model); |
543 | 606 |
544 // Test Enter to search. | 607 // Test Enter to search. |
545 ASSERT_NO_FATAL_FAILURE(SendKeySequence(kSearchTextKeys)); | 608 ASSERT_NO_FATAL_FAILURE(SendKeySequence(kSearchTextKeys)); |
546 ASSERT_NO_FATAL_FAILURE(WaitForAutocompleteControllerDone()); | 609 ASSERT_NO_FATAL_FAILURE(WaitForAutocompleteControllerDone()); |
547 ASSERT_TRUE(popup_model->IsOpen()); | 610 ASSERT_TRUE(popup_model->IsOpen()); |
548 | 611 |
549 // Check if the default match result is Search Primary Provider. | 612 // Check if the default match result is Search Primary Provider. |
550 ASSERT_EQ(AutocompleteMatch::SEARCH_WHAT_YOU_TYPED, | 613 ASSERT_EQ(AutocompleteMatch::SEARCH_WHAT_YOU_TYPED, |
551 popup_model->result().default_match()->type); | 614 popup_model->result().default_match()->type); |
552 | 615 |
553 // Open the default match. | 616 // Open the default match. |
554 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_RETURN, false, false, false)); | 617 ASSERT_NO_FATAL_FAILURE( |
618 SendKey(ui::VKEY_RETURN, false, false, false, false)); | |
555 GURL url = browser()->GetSelectedTabContents()->GetURL(); | 619 GURL url = browser()->GetSelectedTabContents()->GetURL(); |
556 EXPECT_STREQ(kSearchTextURL, url.spec().c_str()); | 620 EXPECT_STREQ(kSearchTextURL, url.spec().c_str()); |
557 | 621 |
558 // Test that entering a single character then Enter performs a search. | 622 // Test that entering a single character then Enter performs a search. |
559 browser()->FocusLocationBar(); | 623 browser()->FocusLocationBar(); |
560 EXPECT_TRUE(edit_view->IsSelectAll()); | 624 EXPECT_TRUE(edit_view->IsSelectAll()); |
561 ASSERT_NO_FATAL_FAILURE(SendKeySequence(kSearchSingleCharKeys)); | 625 ASSERT_NO_FATAL_FAILURE(SendKeySequence(kSearchSingleCharKeys)); |
562 ASSERT_NO_FATAL_FAILURE(WaitForAutocompleteControllerDone()); | 626 ASSERT_NO_FATAL_FAILURE(WaitForAutocompleteControllerDone()); |
563 ASSERT_TRUE(popup_model->IsOpen()); | 627 ASSERT_TRUE(popup_model->IsOpen()); |
564 EXPECT_EQ(kSearchSingleChar, UTF16ToUTF8(edit_view->GetText())); | 628 EXPECT_EQ(kSearchSingleChar, UTF16ToUTF8(edit_view->GetText())); |
565 | 629 |
566 // Check if the default match result is Search Primary Provider. | 630 // Check if the default match result is Search Primary Provider. |
567 ASSERT_EQ(AutocompleteMatch::SEARCH_WHAT_YOU_TYPED, | 631 ASSERT_EQ(AutocompleteMatch::SEARCH_WHAT_YOU_TYPED, |
568 popup_model->result().default_match()->type); | 632 popup_model->result().default_match()->type); |
569 | 633 |
570 // Open the default match. | 634 // Open the default match. |
571 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_RETURN, false, false, false)); | 635 ASSERT_NO_FATAL_FAILURE( |
636 SendKey(ui::VKEY_RETURN, false, false, false, false)); | |
572 url = browser()->GetSelectedTabContents()->GetURL(); | 637 url = browser()->GetSelectedTabContents()->GetURL(); |
573 EXPECT_STREQ(kSearchSingleCharURL, url.spec().c_str()); | 638 EXPECT_STREQ(kSearchSingleCharURL, url.spec().c_str()); |
574 } | 639 } |
575 | 640 |
576 void EscapeToDefaultMatchTest() { | 641 void EscapeToDefaultMatchTest() { |
577 AutocompleteEditView* edit_view = NULL; | 642 AutocompleteEditView* edit_view = NULL; |
578 ASSERT_NO_FATAL_FAILURE(GetAutocompleteEditView(&edit_view)); | 643 ASSERT_NO_FATAL_FAILURE(GetAutocompleteEditView(&edit_view)); |
579 AutocompletePopupModel* popup_model = edit_view->model()->popup_model(); | 644 AutocompletePopupModel* popup_model = edit_view->model()->popup_model(); |
580 ASSERT_TRUE(popup_model); | 645 ASSERT_TRUE(popup_model); |
581 | 646 |
582 // Input something to trigger inline autocomplete. | 647 // Input something to trigger inline autocomplete. |
583 ASSERT_NO_FATAL_FAILURE(SendKeySequence(kInlineAutocompleteTextKeys)); | 648 ASSERT_NO_FATAL_FAILURE(SendKeySequence(kInlineAutocompleteTextKeys)); |
584 ASSERT_NO_FATAL_FAILURE(WaitForAutocompleteControllerDone()); | 649 ASSERT_NO_FATAL_FAILURE(WaitForAutocompleteControllerDone()); |
585 ASSERT_TRUE(popup_model->IsOpen()); | 650 ASSERT_TRUE(popup_model->IsOpen()); |
586 | 651 |
587 string16 old_text = edit_view->GetText(); | 652 string16 old_text = edit_view->GetText(); |
588 | 653 |
589 // Make sure inline autocomplete is triggerred. | 654 // Make sure inline autocomplete is triggerred. |
590 EXPECT_GT(old_text.length(), arraysize(kInlineAutocompleteText) - 1); | 655 EXPECT_GT(old_text.length(), arraysize(kInlineAutocompleteText) - 1); |
591 | 656 |
592 size_t old_selected_line = popup_model->selected_line(); | 657 size_t old_selected_line = popup_model->selected_line(); |
593 EXPECT_EQ(0U, old_selected_line); | 658 EXPECT_EQ(0U, old_selected_line); |
594 | 659 |
595 // Move to another line with different text. | 660 // Move to another line with different text. |
596 size_t size = popup_model->result().size(); | 661 size_t size = popup_model->result().size(); |
597 while (popup_model->selected_line() < size - 1) { | 662 while (popup_model->selected_line() < size - 1) { |
598 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_DOWN, false, false, false)); | 663 ASSERT_NO_FATAL_FAILURE( |
664 SendKey(ui::VKEY_DOWN, false, false, false, false)); | |
599 ASSERT_NE(old_selected_line, popup_model->selected_line()); | 665 ASSERT_NE(old_selected_line, popup_model->selected_line()); |
600 if (old_text != edit_view->GetText()) | 666 if (old_text != edit_view->GetText()) |
601 break; | 667 break; |
602 } | 668 } |
603 | 669 |
604 EXPECT_NE(old_text, edit_view->GetText()); | 670 EXPECT_NE(old_text, edit_view->GetText()); |
605 | 671 |
606 // Escape shall revert back to the default match item. | 672 // Escape shall revert back to the default match item. |
607 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_ESCAPE, false, false, false)); | 673 ASSERT_NO_FATAL_FAILURE( |
674 SendKey(ui::VKEY_ESCAPE, false, false, false, false)); | |
608 EXPECT_EQ(old_text, edit_view->GetText()); | 675 EXPECT_EQ(old_text, edit_view->GetText()); |
609 EXPECT_EQ(old_selected_line, popup_model->selected_line()); | 676 EXPECT_EQ(old_selected_line, popup_model->selected_line()); |
610 } | 677 } |
611 | 678 |
612 void BasicTextOperationsTest() { | 679 void BasicTextOperationsTest() { |
613 ui_test_utils::NavigateToURL(browser(), GURL(chrome::kAboutBlankURL)); | 680 ui_test_utils::NavigateToURL(browser(), GURL(chrome::kAboutBlankURL)); |
614 browser()->FocusLocationBar(); | 681 browser()->FocusLocationBar(); |
615 | 682 |
616 AutocompleteEditView* edit_view = NULL; | 683 AutocompleteEditView* edit_view = NULL; |
617 ASSERT_NO_FATAL_FAILURE(GetAutocompleteEditView(&edit_view)); | 684 ASSERT_NO_FATAL_FAILURE(GetAutocompleteEditView(&edit_view)); |
618 | 685 |
619 string16 old_text = edit_view->GetText(); | 686 string16 old_text = edit_view->GetText(); |
620 EXPECT_EQ(UTF8ToUTF16(chrome::kAboutBlankURL), old_text); | 687 EXPECT_EQ(UTF8ToUTF16(chrome::kAboutBlankURL), old_text); |
621 EXPECT_TRUE(edit_view->IsSelectAll()); | 688 EXPECT_TRUE(edit_view->IsSelectAll()); |
622 | 689 |
623 string16::size_type start, end; | 690 string16::size_type start, end; |
624 edit_view->GetSelectionBounds(&start, &end); | 691 edit_view->GetSelectionBounds(&start, &end); |
625 EXPECT_EQ(0U, start); | 692 EXPECT_EQ(0U, start); |
626 EXPECT_EQ(old_text.size(), end); | 693 EXPECT_EQ(old_text.size(), end); |
627 | 694 |
628 // Move the cursor to the end. | 695 // Move the cursor to the end. |
629 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_END, false, false, false)); | 696 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_END, false, false, false, false)); |
630 EXPECT_FALSE(edit_view->IsSelectAll()); | 697 EXPECT_FALSE(edit_view->IsSelectAll()); |
631 | 698 |
632 // Make sure the cursor is placed correctly. | 699 // Make sure the cursor is placed correctly. |
633 edit_view->GetSelectionBounds(&start, &end); | 700 edit_view->GetSelectionBounds(&start, &end); |
634 EXPECT_EQ(old_text.size(), start); | 701 EXPECT_EQ(old_text.size(), start); |
635 EXPECT_EQ(old_text.size(), end); | 702 EXPECT_EQ(old_text.size(), end); |
636 | 703 |
637 // Insert one character at the end. Make sure we won't insert | 704 // Insert one character at the end. Make sure we won't insert |
638 // anything after the special ZWS mark used in gtk implementation. | 705 // anything after the special ZWS mark used in gtk implementation. |
639 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_A, false, false, false)); | 706 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_A, false, false, false, false)); |
640 EXPECT_EQ(old_text + char16('a'), edit_view->GetText()); | 707 EXPECT_EQ(old_text + char16('a'), edit_view->GetText()); |
641 | 708 |
642 // Delete one character from the end. Make sure we won't delete the special | 709 // Delete one character from the end. Make sure we won't delete the special |
643 // ZWS mark used in gtk implementation. | 710 // ZWS mark used in gtk implementation. |
644 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_BACK, false, false, false)); | 711 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_BACK, false, false, false, false)); |
645 EXPECT_EQ(old_text, edit_view->GetText()); | 712 EXPECT_EQ(old_text, edit_view->GetText()); |
646 | 713 |
647 edit_view->SelectAll(true); | 714 edit_view->SelectAll(true); |
648 EXPECT_TRUE(edit_view->IsSelectAll()); | 715 EXPECT_TRUE(edit_view->IsSelectAll()); |
649 edit_view->GetSelectionBounds(&start, &end); | 716 edit_view->GetSelectionBounds(&start, &end); |
650 EXPECT_EQ(0U, start); | 717 EXPECT_EQ(0U, start); |
651 EXPECT_EQ(old_text.size(), end); | 718 EXPECT_EQ(old_text.size(), end); |
652 | 719 |
653 // Delete the content | 720 // Delete the content |
654 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_DELETE, false, false, false)); | 721 ASSERT_NO_FATAL_FAILURE( |
722 SendKey(ui::VKEY_DELETE, false, false, false, false)); | |
655 EXPECT_TRUE(edit_view->IsSelectAll()); | 723 EXPECT_TRUE(edit_view->IsSelectAll()); |
656 edit_view->GetSelectionBounds(&start, &end); | 724 edit_view->GetSelectionBounds(&start, &end); |
657 EXPECT_EQ(0U, start); | 725 EXPECT_EQ(0U, start); |
658 EXPECT_EQ(0U, end); | 726 EXPECT_EQ(0U, end); |
659 EXPECT_TRUE(edit_view->GetText().empty()); | 727 EXPECT_TRUE(edit_view->GetText().empty()); |
660 | 728 |
661 // Check if RevertAll() can set text and cursor correctly. | 729 // Check if RevertAll() can set text and cursor correctly. |
662 edit_view->RevertAll(); | 730 edit_view->RevertAll(); |
663 EXPECT_FALSE(edit_view->IsSelectAll()); | 731 EXPECT_FALSE(edit_view->IsSelectAll()); |
664 EXPECT_EQ(old_text, edit_view->GetText()); | 732 EXPECT_EQ(old_text, edit_view->GetText()); |
665 edit_view->GetSelectionBounds(&start, &end); | 733 edit_view->GetSelectionBounds(&start, &end); |
666 EXPECT_EQ(old_text.size(), start); | 734 EXPECT_EQ(old_text.size(), start); |
667 EXPECT_EQ(old_text.size(), end); | 735 EXPECT_EQ(old_text.size(), end); |
668 } | 736 } |
669 | 737 |
670 void AcceptKeywordBySpaceTest() { | 738 void AcceptKeywordBySpaceTest() { |
671 AutocompleteEditView* edit_view = NULL; | 739 AutocompleteEditView* edit_view = NULL; |
672 ASSERT_NO_FATAL_FAILURE(GetAutocompleteEditView(&edit_view)); | 740 ASSERT_NO_FATAL_FAILURE(GetAutocompleteEditView(&edit_view)); |
673 | 741 |
674 string16 text = UTF8ToUTF16(kSearchKeyword); | 742 string16 text = UTF8ToUTF16(kSearchKeyword); |
675 | 743 |
676 // Trigger keyword hint mode. | 744 // Trigger keyword hint mode. |
677 ASSERT_NO_FATAL_FAILURE(SendKeySequence(kSearchKeywordKeys)); | 745 ASSERT_NO_FATAL_FAILURE(SendKeySequence(kSearchKeywordKeys)); |
678 ASSERT_TRUE(edit_view->model()->is_keyword_hint()); | 746 ASSERT_TRUE(edit_view->model()->is_keyword_hint()); |
679 ASSERT_EQ(text, edit_view->model()->keyword()); | 747 ASSERT_EQ(text, edit_view->model()->keyword()); |
680 ASSERT_EQ(text, edit_view->GetText()); | 748 ASSERT_EQ(text, edit_view->GetText()); |
681 | 749 |
682 // Trigger keyword mode by space. | 750 // Trigger keyword mode by space. |
683 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_SPACE, false, false, false)); | 751 ASSERT_NO_FATAL_FAILURE( |
752 SendKey(ui::VKEY_SPACE, false, false, false, false)); | |
684 ASSERT_FALSE(edit_view->model()->is_keyword_hint()); | 753 ASSERT_FALSE(edit_view->model()->is_keyword_hint()); |
685 ASSERT_EQ(text, edit_view->model()->keyword()); | 754 ASSERT_EQ(text, edit_view->model()->keyword()); |
686 ASSERT_TRUE(edit_view->GetText().empty()); | 755 ASSERT_TRUE(edit_view->GetText().empty()); |
687 | 756 |
688 // Revert to keyword hint mode. | 757 // Revert to keyword hint mode. |
689 edit_view->model()->ClearKeyword(string16()); | 758 edit_view->model()->ClearKeyword(string16()); |
690 ASSERT_TRUE(edit_view->model()->is_keyword_hint()); | 759 ASSERT_TRUE(edit_view->model()->is_keyword_hint()); |
691 ASSERT_EQ(text, edit_view->model()->keyword()); | 760 ASSERT_EQ(text, edit_view->model()->keyword()); |
692 ASSERT_EQ(text, edit_view->GetText()); | 761 ASSERT_EQ(text, edit_view->GetText()); |
693 | 762 |
(...skipping 18 matching lines...) Expand all Loading... | |
712 edit_view->model()->on_paste(); | 781 edit_view->model()->on_paste(); |
713 edit_view->SetWindowTextAndCaretPos(text + char16(' '), text.length() + 1); | 782 edit_view->SetWindowTextAndCaretPos(text + char16(' '), text.length() + 1); |
714 edit_view->OnAfterPossibleChange(); | 783 edit_view->OnAfterPossibleChange(); |
715 // Should be still in keyword hint mode. | 784 // Should be still in keyword hint mode. |
716 ASSERT_TRUE(edit_view->model()->is_keyword_hint()); | 785 ASSERT_TRUE(edit_view->model()->is_keyword_hint()); |
717 ASSERT_EQ(text, edit_view->model()->keyword()); | 786 ASSERT_EQ(text, edit_view->model()->keyword()); |
718 ASSERT_EQ(text + char16(' '), edit_view->GetText()); | 787 ASSERT_EQ(text + char16(' '), edit_view->GetText()); |
719 | 788 |
720 // Keyword shouldn't be accepted by pressing space with a trailing | 789 // Keyword shouldn't be accepted by pressing space with a trailing |
721 // whitespace. | 790 // whitespace. |
722 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_SPACE, false, false, false)); | 791 ASSERT_NO_FATAL_FAILURE( |
792 SendKey(ui::VKEY_SPACE, false, false, false, false)); | |
723 ASSERT_TRUE(edit_view->model()->is_keyword_hint()); | 793 ASSERT_TRUE(edit_view->model()->is_keyword_hint()); |
724 ASSERT_EQ(text, edit_view->model()->keyword()); | 794 ASSERT_EQ(text, edit_view->model()->keyword()); |
725 ASSERT_EQ(text + ASCIIToUTF16(" "), edit_view->GetText()); | 795 ASSERT_EQ(text + ASCIIToUTF16(" "), edit_view->GetText()); |
726 | 796 |
727 // Keyword shouldn't be accepted by deleting the trailing space. | 797 // Keyword shouldn't be accepted by deleting the trailing space. |
728 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_BACK, false, false, false)); | 798 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_BACK, false, false, false, false)); |
729 ASSERT_TRUE(edit_view->model()->is_keyword_hint()); | 799 ASSERT_TRUE(edit_view->model()->is_keyword_hint()); |
730 ASSERT_EQ(text, edit_view->model()->keyword()); | 800 ASSERT_EQ(text, edit_view->model()->keyword()); |
731 ASSERT_EQ(text + char16(' '), edit_view->GetText()); | 801 ASSERT_EQ(text + char16(' '), edit_view->GetText()); |
732 | 802 |
733 // Keyword shouldn't be accepted by pressing space in the middle | 803 // Keyword shouldn't be accepted by pressing space in the middle |
734 // of content. | 804 // of content. |
735 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_LEFT, false, false, false)); | 805 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_LEFT, false, false, false, false)); |
736 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_SPACE, false, false, false)); | 806 ASSERT_NO_FATAL_FAILURE( |
807 SendKey(ui::VKEY_SPACE, false, false, false, false)); | |
737 ASSERT_TRUE(edit_view->model()->is_keyword_hint()); | 808 ASSERT_TRUE(edit_view->model()->is_keyword_hint()); |
738 ASSERT_EQ(text, edit_view->model()->keyword()); | 809 ASSERT_EQ(text, edit_view->model()->keyword()); |
739 ASSERT_EQ(text + ASCIIToUTF16(" "), edit_view->GetText()); | 810 ASSERT_EQ(text + ASCIIToUTF16(" "), edit_view->GetText()); |
740 | 811 |
741 // Keyword shouldn't be accepted by pasting "foo bar". | 812 // Keyword shouldn't be accepted by pasting "foo bar". |
742 edit_view->SetUserText(string16()); | 813 edit_view->SetUserText(string16()); |
743 ASSERT_FALSE(edit_view->model()->is_keyword_hint()); | 814 ASSERT_FALSE(edit_view->model()->is_keyword_hint()); |
744 ASSERT_TRUE(edit_view->model()->keyword().empty()); | 815 ASSERT_TRUE(edit_view->model()->keyword().empty()); |
745 | 816 |
746 edit_view->OnBeforePossibleChange(); | 817 edit_view->OnBeforePossibleChange(); |
(...skipping 11 matching lines...) Expand all Loading... | |
758 edit_view->OnInlineAutocompleteTextMaybeChanged( | 829 edit_view->OnInlineAutocompleteTextMaybeChanged( |
759 text + ASCIIToUTF16(" "), text.length()); | 830 text + ASCIIToUTF16(" "), text.length()); |
760 edit_view->OnAfterPossibleChange(); | 831 edit_view->OnAfterPossibleChange(); |
761 ASSERT_TRUE(edit_view->model()->is_keyword_hint()); | 832 ASSERT_TRUE(edit_view->model()->is_keyword_hint()); |
762 ASSERT_EQ(text, edit_view->model()->keyword()); | 833 ASSERT_EQ(text, edit_view->model()->keyword()); |
763 ASSERT_EQ(text + ASCIIToUTF16(" "), edit_view->GetText()); | 834 ASSERT_EQ(text + ASCIIToUTF16(" "), edit_view->GetText()); |
764 | 835 |
765 string16::size_type start, end; | 836 string16::size_type start, end; |
766 edit_view->GetSelectionBounds(&start, &end); | 837 edit_view->GetSelectionBounds(&start, &end); |
767 ASSERT_NE(start, end); | 838 ASSERT_NE(start, end); |
768 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_SPACE, false, false, false)); | 839 ASSERT_NO_FATAL_FAILURE( |
840 SendKey(ui::VKEY_SPACE, false, false, false, false)); | |
769 ASSERT_FALSE(edit_view->model()->is_keyword_hint()); | 841 ASSERT_FALSE(edit_view->model()->is_keyword_hint()); |
770 ASSERT_EQ(text, edit_view->model()->keyword()); | 842 ASSERT_EQ(text, edit_view->model()->keyword()); |
771 ASSERT_EQ(string16(), edit_view->GetText()); | 843 ASSERT_EQ(string16(), edit_view->GetText()); |
772 | 844 |
773 edit_view->SetUserText(string16()); | 845 edit_view->SetUserText(string16()); |
774 | 846 |
775 // Space should accept keyword even when inline autocomplete is available. | 847 // Space should accept keyword even when inline autocomplete is available. |
776 const TestHistoryEntry kHistoryFoobar = { | 848 const TestHistoryEntry kHistoryFoobar = { |
777 "http://www.foobar.com", "Page foobar", kSearchText, 10000, 10000, true | 849 "http://www.foobar.com", "Page foobar", kSearchText, 10000, 10000, true |
778 }; | 850 }; |
779 | 851 |
780 // Add a history entry to trigger inline autocomplete when typing "foo". | 852 // Add a history entry to trigger inline autocomplete when typing "foo". |
781 ASSERT_NO_FATAL_FAILURE( | 853 ASSERT_NO_FATAL_FAILURE( |
782 AddHistoryEntry(kHistoryFoobar, Time::Now() - TimeDelta::FromHours(1))); | 854 AddHistoryEntry(kHistoryFoobar, Time::Now() - TimeDelta::FromHours(1))); |
783 | 855 |
784 // Type "foo" to trigger inline autocomplete. | 856 // Type "foo" to trigger inline autocomplete. |
785 ASSERT_NO_FATAL_FAILURE(SendKeySequence(kSearchKeywordKeys)); | 857 ASSERT_NO_FATAL_FAILURE(SendKeySequence(kSearchKeywordKeys)); |
786 ASSERT_NO_FATAL_FAILURE(WaitForAutocompleteControllerDone()); | 858 ASSERT_NO_FATAL_FAILURE(WaitForAutocompleteControllerDone()); |
787 ASSERT_TRUE(edit_view->model()->popup_model()->IsOpen()); | 859 ASSERT_TRUE(edit_view->model()->popup_model()->IsOpen()); |
788 ASSERT_NE(text, edit_view->GetText()); | 860 ASSERT_NE(text, edit_view->GetText()); |
789 | 861 |
790 // Keyword hint shouldn't be visible. | 862 // Keyword hint shouldn't be visible. |
791 ASSERT_FALSE(edit_view->model()->is_keyword_hint()); | 863 ASSERT_FALSE(edit_view->model()->is_keyword_hint()); |
792 ASSERT_TRUE(edit_view->model()->keyword().empty()); | 864 ASSERT_TRUE(edit_view->model()->keyword().empty()); |
793 | 865 |
794 // Trigger keyword mode by space. | 866 // Trigger keyword mode by space. |
795 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_SPACE, false, false, false)); | 867 ASSERT_NO_FATAL_FAILURE( |
868 SendKey(ui::VKEY_SPACE, false, false, false, false)); | |
796 ASSERT_FALSE(edit_view->model()->is_keyword_hint()); | 869 ASSERT_FALSE(edit_view->model()->is_keyword_hint()); |
797 ASSERT_EQ(text, edit_view->model()->keyword()); | 870 ASSERT_EQ(text, edit_view->model()->keyword()); |
798 ASSERT_TRUE(edit_view->GetText().empty()); | 871 ASSERT_TRUE(edit_view->GetText().empty()); |
799 } | 872 } |
800 | 873 |
801 void NonSubstitutingKeywordTest() { | 874 void NonSubstitutingKeywordTest() { |
802 AutocompleteEditView* edit_view = NULL; | 875 AutocompleteEditView* edit_view = NULL; |
803 ASSERT_NO_FATAL_FAILURE(GetAutocompleteEditView(&edit_view)); | 876 ASSERT_NO_FATAL_FAILURE(GetAutocompleteEditView(&edit_view)); |
804 AutocompletePopupModel* popup_model = edit_view->model()->popup_model(); | 877 AutocompletePopupModel* popup_model = edit_view->model()->popup_model(); |
805 ASSERT_TRUE(popup_model); | 878 ASSERT_TRUE(popup_model); |
(...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
865 ASSERT_TRUE(popup_model); | 938 ASSERT_TRUE(popup_model); |
866 | 939 |
867 string16 old_text = edit_view->GetText(); | 940 string16 old_text = edit_view->GetText(); |
868 | 941 |
869 // Input something that can match history items. | 942 // Input something that can match history items. |
870 edit_view->SetUserText(ASCIIToUTF16("bar")); | 943 edit_view->SetUserText(ASCIIToUTF16("bar")); |
871 ASSERT_NO_FATAL_FAILURE(WaitForAutocompleteControllerDone()); | 944 ASSERT_NO_FATAL_FAILURE(WaitForAutocompleteControllerDone()); |
872 ASSERT_TRUE(popup_model->IsOpen()); | 945 ASSERT_TRUE(popup_model->IsOpen()); |
873 | 946 |
874 // Delete the inline autocomplete part. | 947 // Delete the inline autocomplete part. |
875 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_DELETE, false, false, false)); | 948 ASSERT_NO_FATAL_FAILURE( |
949 SendKey(ui::VKEY_DELETE, false, false, false, false)); | |
876 ASSERT_NO_FATAL_FAILURE(WaitForAutocompleteControllerDone()); | 950 ASSERT_NO_FATAL_FAILURE(WaitForAutocompleteControllerDone()); |
877 ASSERT_TRUE(popup_model->IsOpen()); | 951 ASSERT_TRUE(popup_model->IsOpen()); |
878 ASSERT_GE(popup_model->result().size(), 3U); | 952 ASSERT_GE(popup_model->result().size(), 3U); |
879 | 953 |
880 string16 user_text = edit_view->GetText(); | 954 string16 user_text = edit_view->GetText(); |
881 ASSERT_EQ(ASCIIToUTF16("bar"), user_text); | 955 ASSERT_EQ(ASCIIToUTF16("bar"), user_text); |
882 edit_view->SelectAll(true); | 956 edit_view->SelectAll(true); |
883 ASSERT_TRUE(edit_view->IsSelectAll()); | 957 ASSERT_TRUE(edit_view->IsSelectAll()); |
884 | 958 |
885 // The first item should be the default match. | 959 // 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()); | 1022 ASSERT_TRUE(edit_view->IsSelectAll()); |
949 } | 1023 } |
950 | 1024 |
951 void TabMoveCursorToEndTest() { | 1025 void TabMoveCursorToEndTest() { |
952 AutocompleteEditView* edit_view = NULL; | 1026 AutocompleteEditView* edit_view = NULL; |
953 ASSERT_NO_FATAL_FAILURE(GetAutocompleteEditView(&edit_view)); | 1027 ASSERT_NO_FATAL_FAILURE(GetAutocompleteEditView(&edit_view)); |
954 | 1028 |
955 edit_view->SetUserText(ASCIIToUTF16("Hello world")); | 1029 edit_view->SetUserText(ASCIIToUTF16("Hello world")); |
956 | 1030 |
957 // Move cursor to the beginning. | 1031 // Move cursor to the beginning. |
958 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_HOME, false, false, false)); | 1032 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_HOME, false, false, false, false)); |
959 | 1033 |
960 string16::size_type start, end; | 1034 string16::size_type start, end; |
961 edit_view->GetSelectionBounds(&start, &end); | 1035 edit_view->GetSelectionBounds(&start, &end); |
962 EXPECT_EQ(0U, start); | 1036 EXPECT_EQ(0U, start); |
963 EXPECT_EQ(0U, end); | 1037 EXPECT_EQ(0U, end); |
964 | 1038 |
965 // Pressing tab should move cursor to the end. | 1039 // Pressing tab should move cursor to the end. |
966 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_TAB, false, false, false)); | 1040 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_TAB, false, false, false, false)); |
967 | 1041 |
968 edit_view->GetSelectionBounds(&start, &end); | 1042 edit_view->GetSelectionBounds(&start, &end); |
969 EXPECT_EQ(edit_view->GetText().size(), start); | 1043 EXPECT_EQ(edit_view->GetText().size(), start); |
970 EXPECT_EQ(edit_view->GetText().size(), end); | 1044 EXPECT_EQ(edit_view->GetText().size(), end); |
971 | 1045 |
972 // The location bar should still have focus. | 1046 // The location bar should still have focus. |
973 ASSERT_TRUE(ui_test_utils::IsViewFocused(browser(), VIEW_ID_LOCATION_BAR)); | 1047 ASSERT_TRUE(ui_test_utils::IsViewFocused(browser(), VIEW_ID_LOCATION_BAR)); |
974 | 1048 |
975 // Select all text. | 1049 // Select all text. |
976 edit_view->SelectAll(true); | 1050 edit_view->SelectAll(true); |
977 EXPECT_TRUE(edit_view->IsSelectAll()); | 1051 EXPECT_TRUE(edit_view->IsSelectAll()); |
978 edit_view->GetSelectionBounds(&start, &end); | 1052 edit_view->GetSelectionBounds(&start, &end); |
979 EXPECT_EQ(0U, start); | 1053 EXPECT_EQ(0U, start); |
980 EXPECT_EQ(edit_view->GetText().size(), end); | 1054 EXPECT_EQ(edit_view->GetText().size(), end); |
981 | 1055 |
982 // Pressing tab should move cursor to the end. | 1056 // Pressing tab should move cursor to the end. |
983 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_TAB, false, false, false)); | 1057 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_TAB, false, false, false, false)); |
984 | 1058 |
985 edit_view->GetSelectionBounds(&start, &end); | 1059 edit_view->GetSelectionBounds(&start, &end); |
986 EXPECT_EQ(edit_view->GetText().size(), start); | 1060 EXPECT_EQ(edit_view->GetText().size(), start); |
987 EXPECT_EQ(edit_view->GetText().size(), end); | 1061 EXPECT_EQ(edit_view->GetText().size(), end); |
988 | 1062 |
989 // The location bar should still have focus. | 1063 // The location bar should still have focus. |
990 ASSERT_TRUE(ui_test_utils::IsViewFocused(browser(), VIEW_ID_LOCATION_BAR)); | 1064 ASSERT_TRUE(ui_test_utils::IsViewFocused(browser(), VIEW_ID_LOCATION_BAR)); |
991 | 1065 |
992 // Pressing tab when cursor is at the end should change focus. | 1066 // Pressing tab when cursor is at the end should change focus. |
993 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_TAB, false, false, false)); | 1067 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_TAB, false, false, false, false)); |
994 | 1068 |
995 ASSERT_FALSE(ui_test_utils::IsViewFocused(browser(), VIEW_ID_LOCATION_BAR)); | 1069 ASSERT_FALSE(ui_test_utils::IsViewFocused(browser(), VIEW_ID_LOCATION_BAR)); |
996 } | 1070 } |
997 | 1071 |
998 void PersistKeywordModeOnTabSwitch() { | 1072 void PersistKeywordModeOnTabSwitch() { |
999 AutocompleteEditView* edit_view = NULL; | 1073 AutocompleteEditView* edit_view = NULL; |
1000 ASSERT_NO_FATAL_FAILURE(GetAutocompleteEditView(&edit_view)); | 1074 ASSERT_NO_FATAL_FAILURE(GetAutocompleteEditView(&edit_view)); |
1001 | 1075 |
1002 // Trigger keyword hint mode. | 1076 // Trigger keyword hint mode. |
1003 ASSERT_NO_FATAL_FAILURE(SendKeySequence(kSearchKeywordKeys)); | 1077 ASSERT_NO_FATAL_FAILURE(SendKeySequence(kSearchKeywordKeys)); |
1004 ASSERT_TRUE(edit_view->model()->is_keyword_hint()); | 1078 ASSERT_TRUE(edit_view->model()->is_keyword_hint()); |
1005 ASSERT_EQ(kSearchKeyword, UTF16ToUTF8(edit_view->model()->keyword())); | 1079 ASSERT_EQ(kSearchKeyword, UTF16ToUTF8(edit_view->model()->keyword())); |
1006 | 1080 |
1007 // Trigger keyword mode. | 1081 // Trigger keyword mode. |
1008 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_TAB, false, false, false)); | 1082 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_TAB, false, false, false, false)); |
1009 ASSERT_FALSE(edit_view->model()->is_keyword_hint()); | 1083 ASSERT_FALSE(edit_view->model()->is_keyword_hint()); |
1010 ASSERT_EQ(kSearchKeyword, UTF16ToUTF8(edit_view->model()->keyword())); | 1084 ASSERT_EQ(kSearchKeyword, UTF16ToUTF8(edit_view->model()->keyword())); |
1011 | 1085 |
1012 // Input something as search text. | 1086 // Input something as search text. |
1013 ASSERT_NO_FATAL_FAILURE(SendKeySequence(kSearchTextKeys)); | 1087 ASSERT_NO_FATAL_FAILURE(SendKeySequence(kSearchTextKeys)); |
1014 | 1088 |
1015 // Create a new tab. | 1089 // Create a new tab. |
1016 browser()->NewTab(); | 1090 browser()->NewTab(); |
1017 | 1091 |
1018 // Switch back to the first tab. | 1092 // Switch back to the first tab. |
(...skipping 110 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
1129 browser()->FocusLocationBar(); | 1203 browser()->FocusLocationBar(); |
1130 | 1204 |
1131 AutocompleteEditView* edit_view = NULL; | 1205 AutocompleteEditView* edit_view = NULL; |
1132 ASSERT_NO_FATAL_FAILURE(GetAutocompleteEditView(&edit_view)); | 1206 ASSERT_NO_FATAL_FAILURE(GetAutocompleteEditView(&edit_view)); |
1133 | 1207 |
1134 string16 old_text = edit_view->GetText(); | 1208 string16 old_text = edit_view->GetText(); |
1135 EXPECT_EQ(UTF8ToUTF16(chrome::kAboutBlankURL), old_text); | 1209 EXPECT_EQ(UTF8ToUTF16(chrome::kAboutBlankURL), old_text); |
1136 EXPECT_TRUE(edit_view->IsSelectAll()); | 1210 EXPECT_TRUE(edit_view->IsSelectAll()); |
1137 | 1211 |
1138 // Undo should clear the omnibox. | 1212 // Undo should clear the omnibox. |
1139 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_Z, true, false, false)); | 1213 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_Z, true, false, false, false)); |
1140 EXPECT_TRUE(edit_view->GetText().empty()); | 1214 EXPECT_TRUE(edit_view->GetText().empty()); |
1141 | 1215 |
1142 // Nothing should happen if undo again. | 1216 // Nothing should happen if undo again. |
1143 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_Z, true, false, false)); | 1217 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_Z, true, false, false, false)); |
1144 EXPECT_TRUE(edit_view->GetText().empty()); | 1218 EXPECT_TRUE(edit_view->GetText().empty()); |
1145 | 1219 |
1146 // Redo should restore the original text. | 1220 // Redo should restore the original text. |
1147 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_Z, true, true, false)); | 1221 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_Z, true, true, false, false)); |
1148 EXPECT_EQ(old_text, edit_view->GetText()); | 1222 EXPECT_EQ(old_text, edit_view->GetText()); |
1149 | 1223 |
1150 // Looks like the undo manager doesn't support restoring selection. | 1224 // Looks like the undo manager doesn't support restoring selection. |
1151 EXPECT_FALSE(edit_view->IsSelectAll()); | 1225 EXPECT_FALSE(edit_view->IsSelectAll()); |
1152 | 1226 |
1153 // The cursor should be at the end. | 1227 // The cursor should be at the end. |
1154 string16::size_type start, end; | 1228 string16::size_type start, end; |
1155 edit_view->GetSelectionBounds(&start, &end); | 1229 edit_view->GetSelectionBounds(&start, &end); |
1156 EXPECT_EQ(old_text.size(), start); | 1230 EXPECT_EQ(old_text.size(), start); |
1157 EXPECT_EQ(old_text.size(), end); | 1231 EXPECT_EQ(old_text.size(), end); |
1158 | 1232 |
1159 // Delete two characters. | 1233 // Delete two characters. |
1160 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_BACK, false, false, false)); | 1234 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_BACK, false, false, false, false)); |
1161 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_BACK, false, false, false)); | 1235 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()); | 1236 EXPECT_EQ(old_text.substr(0, old_text.size() - 2), edit_view->GetText()); |
1163 | 1237 |
1164 // Undo delete. | 1238 // Undo delete. |
1165 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_Z, true, false, false)); | 1239 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_Z, true, false, false, false)); |
1166 EXPECT_EQ(old_text, edit_view->GetText()); | 1240 EXPECT_EQ(old_text, edit_view->GetText()); |
1167 | 1241 |
1168 // Redo delete. | 1242 // Redo delete. |
1169 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_Z, true, true, false)); | 1243 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()); | 1244 EXPECT_EQ(old_text.substr(0, old_text.size() - 2), edit_view->GetText()); |
1171 | 1245 |
1172 // Delete everything. | 1246 // Delete everything. |
1173 edit_view->SelectAll(true); | 1247 edit_view->SelectAll(true); |
1174 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_BACK, false, false, false)); | 1248 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_BACK, false, false, false, false)); |
1175 EXPECT_TRUE(edit_view->GetText().empty()); | 1249 EXPECT_TRUE(edit_view->GetText().empty()); |
1176 | 1250 |
1177 // Undo delete everything. | 1251 // Undo delete everything. |
1178 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_Z, true, false, false)); | 1252 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()); | 1253 EXPECT_EQ(old_text.substr(0, old_text.size() - 2), edit_view->GetText()); |
1180 | 1254 |
1181 // Undo delete two characters. | 1255 // Undo delete two characters. |
1182 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_Z, true, false, false)); | 1256 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_Z, true, false, false, false)); |
1183 EXPECT_EQ(old_text, edit_view->GetText()); | 1257 EXPECT_EQ(old_text, edit_view->GetText()); |
1184 | 1258 |
1185 // Undo again. | 1259 // Undo again. |
1186 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_Z, true, false, false)); | 1260 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_Z, true, false, false, false)); |
1187 EXPECT_TRUE(edit_view->GetText().empty()); | 1261 EXPECT_TRUE(edit_view->GetText().empty()); |
1188 } | 1262 } |
1189 | 1263 |
1190 // See http://crbug.com/63860 | 1264 // See http://crbug.com/63860 |
1191 IN_PROC_BROWSER_TEST_F(AutocompleteEditViewTest, PrimarySelection) { | 1265 IN_PROC_BROWSER_TEST_F(AutocompleteEditViewTest, PrimarySelection) { |
1192 AutocompleteEditView* edit_view = NULL; | 1266 AutocompleteEditView* edit_view = NULL; |
1193 ASSERT_NO_FATAL_FAILURE(GetAutocompleteEditView(&edit_view)); | 1267 ASSERT_NO_FATAL_FAILURE(GetAutocompleteEditView(&edit_view)); |
1194 edit_view->SetUserText(ASCIIToUTF16("Hello world")); | 1268 edit_view->SetUserText(ASCIIToUTF16("Hello world")); |
1195 EXPECT_FALSE(edit_view->IsSelectAll()); | 1269 EXPECT_FALSE(edit_view->IsSelectAll()); |
1196 | 1270 |
1197 // Move the cursor to the end. | 1271 // Move the cursor to the end. |
1198 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_END, false, false, false)); | 1272 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_END, false, false, false, false)); |
1199 | 1273 |
1200 // Select all text by pressing Shift+Home | 1274 // Select all text by pressing Shift+Home |
1201 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_HOME, false, true, false)); | 1275 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_HOME, false, true, false, false)); |
1202 EXPECT_TRUE(edit_view->IsSelectAll()); | 1276 EXPECT_TRUE(edit_view->IsSelectAll()); |
1203 | 1277 |
1204 // The selected content should be saved to the PRIMARY clipboard. | 1278 // The selected content should be saved to the PRIMARY clipboard. |
1205 EXPECT_EQ("Hello world", GetPrimarySelectionText()); | 1279 EXPECT_EQ("Hello world", GetPrimarySelectionText()); |
1206 | 1280 |
1207 // Move the cursor to the end. | 1281 // Move the cursor to the end. |
1208 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_END, false, false, false)); | 1282 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_END, false, false, false, false)); |
1209 EXPECT_FALSE(edit_view->IsSelectAll()); | 1283 EXPECT_FALSE(edit_view->IsSelectAll()); |
1210 | 1284 |
1211 // The content in the PRIMARY clipboard should not be cleared. | 1285 // The content in the PRIMARY clipboard should not be cleared. |
1212 EXPECT_EQ("Hello world", GetPrimarySelectionText()); | 1286 EXPECT_EQ("Hello world", GetPrimarySelectionText()); |
1213 } | 1287 } |
1214 | 1288 |
1215 // See http://crosbug.com/10306 | 1289 // See http://crosbug.com/10306 |
1216 IN_PROC_BROWSER_TEST_F(AutocompleteEditViewTest, | 1290 IN_PROC_BROWSER_TEST_F(AutocompleteEditViewTest, |
1217 BackspaceDeleteHalfWidthKatakana) { | 1291 BackspaceDeleteHalfWidthKatakana) { |
1218 AutocompleteEditView* edit_view = NULL; | 1292 AutocompleteEditView* edit_view = NULL; |
1219 ASSERT_NO_FATAL_FAILURE(GetAutocompleteEditView(&edit_view)); | 1293 ASSERT_NO_FATAL_FAILURE(GetAutocompleteEditView(&edit_view)); |
1220 // Insert text: ダ | 1294 // Insert text: ダ |
1221 edit_view->SetUserText(UTF8ToUTF16("\357\276\200\357\276\236")); | 1295 edit_view->SetUserText(UTF8ToUTF16("\357\276\200\357\276\236")); |
1222 | 1296 |
1223 // Move the cursor to the end. | 1297 // Move the cursor to the end. |
1224 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_END, false, false, false)); | 1298 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_END, false, false, false, false)); |
1225 | 1299 |
1226 // Backspace should delete one character. | 1300 // Backspace should delete one character. |
1227 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_BACK, false, false, false)); | 1301 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_BACK, false, false, false, false)); |
1228 EXPECT_EQ(UTF8ToUTF16("\357\276\200"), edit_view->GetText()); | 1302 EXPECT_EQ(UTF8ToUTF16("\357\276\200"), edit_view->GetText()); |
1229 } | 1303 } |
1230 | 1304 |
1231 // http://crbug.com/12316 | 1305 // http://crbug.com/12316 |
1232 IN_PROC_BROWSER_TEST_F(AutocompleteEditViewTest, PasteReplacingAll) { | 1306 IN_PROC_BROWSER_TEST_F(AutocompleteEditViewTest, PasteReplacingAll) { |
1233 AutocompleteEditView* edit_view = NULL; | 1307 AutocompleteEditView* edit_view = NULL; |
1234 ASSERT_NO_FATAL_FAILURE(GetAutocompleteEditView(&edit_view)); | 1308 ASSERT_NO_FATAL_FAILURE(GetAutocompleteEditView(&edit_view)); |
1235 AutocompletePopupModel* popup_model = edit_view->model()->popup_model(); | 1309 AutocompletePopupModel* popup_model = edit_view->model()->popup_model(); |
1236 ASSERT_TRUE(popup_model); | 1310 ASSERT_TRUE(popup_model); |
1237 | 1311 |
1238 SetClipboardText(kSearchText); | 1312 SetClipboardText(kSearchText); |
1239 | 1313 |
1240 // Paste text. | 1314 // Paste text. |
1241 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_V, true, false, false)); | 1315 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_V, true, false, false, false)); |
1242 ASSERT_NO_FATAL_FAILURE(WaitForAutocompleteControllerDone()); | 1316 ASSERT_NO_FATAL_FAILURE(WaitForAutocompleteControllerDone()); |
1243 ASSERT_TRUE(popup_model->IsOpen()); | 1317 ASSERT_TRUE(popup_model->IsOpen()); |
1244 | 1318 |
1245 // Inline autocomplete shouldn't be triggered. | 1319 // Inline autocomplete shouldn't be triggered. |
1246 ASSERT_EQ(ASCIIToUTF16("abc"), edit_view->GetText()); | 1320 ASSERT_EQ(ASCIIToUTF16("abc"), edit_view->GetText()); |
1247 } | 1321 } |
1248 #endif | 1322 #endif |
1249 | 1323 |
1250 #if defined(TOOLKIT_VIEWS) | 1324 #if defined(TOOLKIT_VIEWS) |
1251 class AutocompleteEditViewViewsTest : public AutocompleteEditViewTest { | 1325 class AutocompleteEditViewViewsTest : public AutocompleteEditViewTest { |
(...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
1316 PersistKeywordModeOnTabSwitch) { | 1390 PersistKeywordModeOnTabSwitch) { |
1317 PersistKeywordModeOnTabSwitch(); | 1391 PersistKeywordModeOnTabSwitch(); |
1318 } | 1392 } |
1319 | 1393 |
1320 IN_PROC_BROWSER_TEST_F(AutocompleteEditViewViewsTest, | 1394 IN_PROC_BROWSER_TEST_F(AutocompleteEditViewViewsTest, |
1321 CtrlKeyPressedWithInlineAutocompleteTest) { | 1395 CtrlKeyPressedWithInlineAutocompleteTest) { |
1322 CtrlKeyPressedWithInlineAutocompleteTest(); | 1396 CtrlKeyPressedWithInlineAutocompleteTest(); |
1323 } | 1397 } |
1324 | 1398 |
1325 #endif | 1399 #endif |
OLD | NEW |