| Index: chrome/browser/translate/translate_manager_browsertest.cc
|
| ===================================================================
|
| --- chrome/browser/translate/translate_manager_browsertest.cc (revision 226624)
|
| +++ chrome/browser/translate/translate_manager_browsertest.cc (working copy)
|
| @@ -148,7 +148,8 @@
|
| // infobar.
|
| TranslateInfoBarDelegate* GetTranslateInfoBar() {
|
| return (infobar_service()->infobar_count() == 1) ?
|
| - infobar_service()->infobar_at(0)->AsTranslateInfoBarDelegate() : NULL;
|
| + infobar_service()->infobar_at(0)->delegate()->
|
| + AsTranslateInfoBarDelegate() : NULL;
|
| }
|
|
|
| // If there is 1 infobar and it is a translate infobar, closes it and returns
|
| @@ -158,7 +159,7 @@
|
| if (!infobar)
|
| return false;
|
| infobar->InfoBarDismissed(); // Simulates closing the infobar.
|
| - infobar_service()->RemoveInfoBar(infobar);
|
| + infobar_service()->RemoveInfoBar(infobar_service()->infobar_at(0));
|
| return true;
|
| }
|
|
|
| @@ -181,7 +182,7 @@
|
| if (!infobar)
|
| return false;
|
| infobar->TranslationDeclined();
|
| - infobar_service()->RemoveInfoBar(infobar);
|
| + infobar_service()->RemoveInfoBar(infobar_service()->infobar_at(0));
|
| return true;
|
| }
|
|
|
| @@ -208,7 +209,7 @@
|
| const content::NotificationDetails& details) {
|
| DCHECK_EQ(chrome::NOTIFICATION_TAB_CONTENTS_INFOBAR_REMOVED, type);
|
| removed_infobars_.insert(
|
| - content::Details<InfoBarRemovedDetails>(details)->first);
|
| + content::Details<InfoBar::RemovedDetails>(details)->first->delegate());
|
| }
|
|
|
| MOCK_METHOD1(OnPreferenceChanged, void(const std::string&));
|
| @@ -416,10 +417,8 @@
|
| EXPECT_EQ("en", target_lang);
|
| // Simulate the render notifying the translation has been done.
|
| SimulateOnPageTranslated(new_original_lang, "en");
|
| - // infobar is now invalid.
|
| - TranslateInfoBarDelegate* new_infobar = GetTranslateInfoBar();
|
| - ASSERT_TRUE(new_infobar != NULL);
|
| - infobar = new_infobar;
|
| + infobar = GetTranslateInfoBar();
|
| + ASSERT_TRUE(infobar != NULL);
|
|
|
| // Simulate changing the target language and translating.
|
| process()->sink().ClearMessages();
|
| @@ -431,15 +430,23 @@
|
| EXPECT_EQ(new_target_lang, target_lang);
|
| // Simulate the render notifying the translation has been done.
|
| SimulateOnPageTranslated(new_original_lang, new_target_lang);
|
| - // infobar is now invalid.
|
| - new_infobar = GetTranslateInfoBar();
|
| - ASSERT_TRUE(new_infobar != NULL);
|
| + infobar = GetTranslateInfoBar();
|
| + ASSERT_TRUE(infobar != NULL);
|
| + EXPECT_EQ(new_target_lang, infobar->target_language_code());
|
|
|
| - // Verify reload keeps the same settings.
|
| + // Reloading should trigger translation iff Always Translate is on.
|
| ReloadAndWait(true);
|
| - new_infobar = GetTranslateInfoBar();
|
| - ASSERT_TRUE(new_infobar != NULL);
|
| - ASSERT_EQ(new_target_lang, infobar->target_language_code());
|
| + infobar = GetTranslateInfoBar();
|
| + ASSERT_TRUE(infobar != NULL);
|
| + EXPECT_EQ(TranslateInfoBarDelegate::BEFORE_TRANSLATE,
|
| + infobar->infobar_type());
|
| + infobar->set_target_language_index(1);
|
| + infobar->ToggleAlwaysTranslate();
|
| + ReloadAndWait(true);
|
| + infobar = GetTranslateInfoBar();
|
| + ASSERT_TRUE(infobar != NULL);
|
| + EXPECT_EQ(TranslateInfoBarDelegate::TRANSLATING, infobar->infobar_type());
|
| + EXPECT_EQ(new_target_lang, infobar->target_language_code());
|
| }
|
|
|
| TEST_F(TranslateManagerBrowserTest, TranslateScriptNotAvailable) {
|
| @@ -728,18 +735,17 @@
|
|
|
| EXPECT_TRUE(CloseTranslateInfoBar());
|
|
|
| - // Reload should bring back the infobar if the page succeds
|
| + // Reload should bring back the infobar if the reload succeeds.
|
| ReloadAndWait(true);
|
| EXPECT_TRUE(GetTranslateInfoBar() != NULL);
|
| -
|
| EXPECT_TRUE(CloseTranslateInfoBar());
|
|
|
| - // And not show it if the reload fails
|
| + // ...But not show it if the reload fails.
|
| ReloadAndWait(false);
|
| - EXPECT_EQ(NULL, GetTranslateInfoBar());
|
| + EXPECT_TRUE(GetTranslateInfoBar() == NULL);
|
|
|
| - // Set reload attempts to a high value, we will not see the infobar
|
| - // immediatly.
|
| + // If we set reload attempts to a high value, we will not see the infobar
|
| + // immediately.
|
| TranslateManager::GetInstance()->set_translate_max_reload_attemps(100);
|
| ReloadAndWait(true);
|
| EXPECT_TRUE(GetTranslateInfoBar() == NULL);
|
|
|