diff options
Diffstat (limited to 'chrome/browser/translate/translate_manager_unittest.cc')
-rw-r--r-- | chrome/browser/translate/translate_manager_unittest.cc | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/chrome/browser/translate/translate_manager_unittest.cc b/chrome/browser/translate/translate_manager_unittest.cc index 5480fb4..eb63416 100644 --- a/chrome/browser/translate/translate_manager_unittest.cc +++ b/chrome/browser/translate/translate_manager_unittest.cc @@ -10,6 +10,7 @@ #include "chrome/common/ipc_test_sink.h" #include "chrome/common/notification_registrar.h" #include "chrome/common/notification_service.h" +#include "chrome/common/pref_names.h" #include "chrome/common/render_messages.h" class TestTranslateManager : public TranslateManager { @@ -360,3 +361,32 @@ TEST_F(TranslateManagerTest, TranslateInPageNavigation) { // And there is a new one. EXPECT_TRUE(GetTranslateInfoBar() != NULL); } + +// Tests that the translate preference is honored. +TEST_F(TranslateManagerTest, TranslatePref) { + // Make sure the pref allows translate. + PrefService* prefs = contents()->profile()->GetPrefs(); + prefs->SetBoolean(prefs::kEnableTranslate, true); + + // Simulate navigating to a page and gettings its language. + SimulateNavigation(GURL("http://www.google.fr"), 0, L"Le Google", "fr"); + + // An infobar should be shown. + TranslateInfoBarDelegate* infobar = GetTranslateInfoBar(); + EXPECT_TRUE(infobar != NULL); + + // Disable translate. + prefs->SetBoolean(prefs::kEnableTranslate, false); + + // Navigate to a new page, that should close the previous infobar. + GURL url("http://www.youtube.fr"); + NavigateAndCommit(url); + infobar = GetTranslateInfoBar(); + EXPECT_TRUE(infobar == NULL); + + // Simulate getting the page contents and language, that should not trigger + // a translate infobar. + SimulateOnPageContents(url, 1, L"Le YouTube", "fr"); + infobar = GetTranslateInfoBar(); + EXPECT_TRUE(infobar == NULL); +} |