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

Unified Diff: chrome/browser/translate/translate_manager_browsertest.cc

Issue 22694006: Infobar system refactor. (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: Created 7 years, 2 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 side-by-side diff with in-line comments
Download patch
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);

Powered by Google App Engine
This is Rietveld 408576698