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

Side by Side Diff: chrome/browser/translate/translate_manager_browsertest.cc

Issue 10952016: Simplify the translate infobar code some. (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: Created 8 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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 5
6 #include <algorithm> 6 #include <algorithm>
7 #include <set> 7 #include <set>
8 #include <vector> 8 #include <vector>
9 9
10 #include "base/json/json_writer.h" 10 #include "base/json/json_writer.h"
(...skipping 382 matching lines...) Expand 10 before | Expand all | Expand 10 after
393 RenderViewHostTester::TestOnMessageReceived( 393 RenderViewHostTester::TestOnMessageReceived(
394 rvh(), 394 rvh(),
395 ChromeViewHostMsg_PageTranslated( 395 ChromeViewHostMsg_PageTranslated(
396 0, 0, "fr", "en", TranslateErrors::NONE)); 396 0, 0, "fr", "en", TranslateErrors::NONE));
397 397
398 // The after translate infobar should be showing. 398 // The after translate infobar should be showing.
399 infobar = GetTranslateInfoBar(); 399 infobar = GetTranslateInfoBar();
400 ASSERT_TRUE(infobar != NULL); 400 ASSERT_TRUE(infobar != NULL);
401 EXPECT_EQ(TranslateInfoBarDelegate::AFTER_TRANSLATE, infobar->type()); 401 EXPECT_EQ(TranslateInfoBarDelegate::AFTER_TRANSLATE, infobar->type());
402 402
403 // Simulate changing the original language, this should trigger a translation. 403 // Simulate changing the original language and translating.
404 process()->sink().ClearMessages(); 404 process()->sink().ClearMessages();
405 std::string new_original_lang = infobar->GetLanguageCodeAt(0); 405 std::string new_original_lang = infobar->language_code_at(0);
406 infobar->SetOriginalLanguage(0); 406 infobar->set_original_language_index(0);
407 infobar->Translate();
407 EXPECT_TRUE(GetTranslateMessage(&page_id, &original_lang, &target_lang)); 408 EXPECT_TRUE(GetTranslateMessage(&page_id, &original_lang, &target_lang));
408 EXPECT_EQ(new_original_lang, original_lang); 409 EXPECT_EQ(new_original_lang, original_lang);
409 EXPECT_EQ("en", target_lang); 410 EXPECT_EQ("en", target_lang);
410 // Simulate the render notifying the translation has been done. 411 // Simulate the render notifying the translation has been done.
411 RenderViewHostTester::TestOnMessageReceived( 412 RenderViewHostTester::TestOnMessageReceived(
412 rvh(), 413 rvh(),
413 ChromeViewHostMsg_PageTranslated( 414 ChromeViewHostMsg_PageTranslated(
414 0, 0, new_original_lang, "en", TranslateErrors::NONE)); 415 0, 0, new_original_lang, "en", TranslateErrors::NONE));
415 // infobar is now invalid. 416 // infobar is now invalid.
416 TranslateInfoBarDelegate* new_infobar = GetTranslateInfoBar(); 417 TranslateInfoBarDelegate* new_infobar = GetTranslateInfoBar();
417 ASSERT_TRUE(new_infobar != NULL); 418 ASSERT_TRUE(new_infobar != NULL);
418 infobar = new_infobar; 419 infobar = new_infobar;
419 420
420 // Simulate changing the target language, this should trigger a translation. 421 // Simulate changing the target language and translating.
421 process()->sink().ClearMessages(); 422 process()->sink().ClearMessages();
422 std::string new_target_lang = infobar->GetLanguageCodeAt(1); 423 std::string new_target_lang = infobar->language_code_at(1);
423 infobar->SetTargetLanguage(1); 424 infobar->set_target_language_index(1);
425 infobar->Translate();
424 EXPECT_TRUE(GetTranslateMessage(&page_id, &original_lang, &target_lang)); 426 EXPECT_TRUE(GetTranslateMessage(&page_id, &original_lang, &target_lang));
425 EXPECT_EQ(new_original_lang, original_lang); 427 EXPECT_EQ(new_original_lang, original_lang);
426 EXPECT_EQ(new_target_lang, target_lang); 428 EXPECT_EQ(new_target_lang, target_lang);
427 // Simulate the render notifying the translation has been done. 429 // Simulate the render notifying the translation has been done.
428 RenderViewHostTester::TestOnMessageReceived( 430 RenderViewHostTester::TestOnMessageReceived(
429 rvh(), 431 rvh(),
430 ChromeViewHostMsg_PageTranslated( 432 ChromeViewHostMsg_PageTranslated(
431 0, 0, new_original_lang, new_target_lang, TranslateErrors::NONE)); 433 0, 0, new_original_lang, new_target_lang, TranslateErrors::NONE));
432 // infobar is now invalid. 434 // infobar is now invalid.
433 new_infobar = GetTranslateInfoBar(); 435 new_infobar = GetTranslateInfoBar();
434 ASSERT_TRUE(new_infobar != NULL); 436 ASSERT_TRUE(new_infobar != NULL);
435 437
436 // Verify reload keeps the same settings. 438 // Verify reload keeps the same settings.
437 ReloadAndWait(); 439 ReloadAndWait();
438 new_infobar = GetTranslateInfoBar(); 440 new_infobar = GetTranslateInfoBar();
439 ASSERT_TRUE(new_infobar != NULL); 441 ASSERT_TRUE(new_infobar != NULL);
440 ASSERT_EQ(new_target_lang, infobar->GetTargetLanguageCode()); 442 ASSERT_EQ(new_target_lang, infobar->target_language_code());
441 } 443 }
442 444
443 TEST_F(TranslateManagerTest, TranslateScriptNotAvailable) { 445 TEST_F(TranslateManagerTest, TranslateScriptNotAvailable) {
444 // Simulate navigating to a page. 446 // Simulate navigating to a page.
445 SimulateNavigation(GURL("http://www.google.fr"), "fr", true); 447 SimulateNavigation(GURL("http://www.google.fr"), "fr", true);
446 448
447 // We should have an infobar. 449 // We should have an infobar.
448 TranslateInfoBarDelegate* infobar = GetTranslateInfoBar(); 450 TranslateInfoBarDelegate* infobar = GetTranslateInfoBar();
449 ASSERT_TRUE(infobar != NULL); 451 ASSERT_TRUE(infobar != NULL);
450 EXPECT_EQ(TranslateInfoBarDelegate::BEFORE_TRANSLATE, infobar->type()); 452 EXPECT_EQ(TranslateInfoBarDelegate::BEFORE_TRANSLATE, infobar->type());
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after
494 // having detected the page was in a known and supported language. 496 // having detected the page was in a known and supported language.
495 RenderViewHostTester::TestOnMessageReceived( 497 RenderViewHostTester::TestOnMessageReceived(
496 rvh(), 498 rvh(),
497 ChromeViewHostMsg_PageTranslated( 499 ChromeViewHostMsg_PageTranslated(
498 0, 0, "fr", "en", TranslateErrors::NONE)); 500 0, 0, "fr", "en", TranslateErrors::NONE));
499 501
500 // The after translate infobar should be showing. 502 // The after translate infobar should be showing.
501 infobar = GetTranslateInfoBar(); 503 infobar = GetTranslateInfoBar();
502 ASSERT_TRUE(infobar != NULL); 504 ASSERT_TRUE(infobar != NULL);
503 EXPECT_EQ(TranslateInfoBarDelegate::AFTER_TRANSLATE, infobar->type()); 505 EXPECT_EQ(TranslateInfoBarDelegate::AFTER_TRANSLATE, infobar->type());
504 EXPECT_EQ("fr", infobar->GetOriginalLanguageCode()); 506 EXPECT_EQ("fr", infobar->original_language_code());
505 EXPECT_EQ("en", infobar->GetTargetLanguageCode()); 507 EXPECT_EQ("en", infobar->target_language_code());
506 508
507 // Let's run the same steps but this time the server detects the page is 509 // Let's run the same steps but this time the server detects the page is
508 // already in English. 510 // already in English.
509 SimulateNavigation(GURL("http://www.google.com"), "und", true); 511 SimulateNavigation(GURL("http://www.google.com"), "und", true);
510 menu.reset(TestRenderViewContextMenu::CreateContextMenu(contents())); 512 menu.reset(TestRenderViewContextMenu::CreateContextMenu(contents()));
511 menu->Init(); 513 menu->Init();
512 menu->ExecuteCommand(IDC_CONTENT_CONTEXT_TRANSLATE); 514 menu->ExecuteCommand(IDC_CONTENT_CONTEXT_TRANSLATE);
513 RenderViewHostTester::TestOnMessageReceived( 515 RenderViewHostTester::TestOnMessageReceived(
514 rvh(), 516 rvh(),
515 ChromeViewHostMsg_PageTranslated( 517 ChromeViewHostMsg_PageTranslated(
(...skipping 1001 matching lines...) Expand 10 before | Expand all | Expand 10 after
1517 1519
1518 IN_PROC_BROWSER_TEST_F(InProcessBrowserTest, TranslateSessionRestore) { 1520 IN_PROC_BROWSER_TEST_F(InProcessBrowserTest, TranslateSessionRestore) {
1519 WebContents* current_web_contents = chrome::GetActiveWebContents(browser()); 1521 WebContents* current_web_contents = chrome::GetActiveWebContents(browser());
1520 content::Source<WebContents> source(current_web_contents); 1522 content::Source<WebContents> source(current_web_contents);
1521 1523
1522 ui_test_utils::WindowedNotificationObserverWithDetails<std::string> 1524 ui_test_utils::WindowedNotificationObserverWithDetails<std::string>
1523 fr_language_detected_signal(chrome::NOTIFICATION_TAB_LANGUAGE_DETERMINED, 1525 fr_language_detected_signal(chrome::NOTIFICATION_TAB_LANGUAGE_DETERMINED,
1524 source); 1526 source);
1525 fr_language_detected_signal.Wait(); 1527 fr_language_detected_signal.Wait();
1526 } 1528 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698