diff options
Diffstat (limited to 'chrome')
-rw-r--r-- | chrome/browser/tab_contents/render_view_context_menu.cc | 5 | ||||
-rw-r--r-- | chrome/browser/translate/translate_manager_browsertest.cc | 11 |
2 files changed, 13 insertions, 3 deletions
diff --git a/chrome/browser/tab_contents/render_view_context_menu.cc b/chrome/browser/tab_contents/render_view_context_menu.cc index 3b62603..a1f0815 100644 --- a/chrome/browser/tab_contents/render_view_context_menu.cc +++ b/chrome/browser/tab_contents/render_view_context_menu.cc @@ -1131,7 +1131,10 @@ bool RenderViewContextMenu::IsCommandIdEnabled(int id) const { TranslateManager::IsSupportedLanguage(original_lang)) && !helper->language_state().IsPageTranslated() && !source_web_contents_->GetInterstitialPage() && - TranslateManager::IsTranslatableURL(params_.page_url); + TranslateManager::IsTranslatableURL(params_.page_url) && + // There are some application locales which can't be used as a + // target language for translation. + TranslateManager::IsSupportedLanguage(target_lang); } case IDC_CONTENT_CONTEXT_OPENLINKNEWTAB: diff --git a/chrome/browser/translate/translate_manager_browsertest.cc b/chrome/browser/translate/translate_manager_browsertest.cc index 1057705..8306655 100644 --- a/chrome/browser/translate/translate_manager_browsertest.cc +++ b/chrome/browser/translate/translate_manager_browsertest.cc @@ -956,8 +956,8 @@ TEST_F(TranslateManagerTest, ServerReportsUnsupportedLanguage) { EXPECT_TRUE(GetTranslateInfoBar() == NULL); } -// Tests that no translate infobar is shown when Chrome is in a language that -// the translate server does not support. +// Tests that no translate infobar is shown and context menu is disabled, when +// Chrome is in a language that the translate server does not support. TEST_F(TranslateManagerTest, UnsupportedUILanguage) { std::string original_lang = g_browser_process->GetApplicationLocale(); g_browser_process->SetApplicationLocale("qbz"); @@ -975,6 +975,13 @@ TEST_F(TranslateManagerTest, UnsupportedUILanguage) { // No info-bar should be shown. EXPECT_TRUE(GetTranslateInfoBar() == NULL); + // And the context menu option should be disabled too. + scoped_ptr<TestRenderViewContextMenu> menu( + TestRenderViewContextMenu::CreateContextMenu(contents())); + menu->Init(); + EXPECT_TRUE(menu->IsItemPresent(IDC_CONTENT_CONTEXT_TRANSLATE)); + EXPECT_FALSE(menu->IsCommandIdEnabled(IDC_CONTENT_CONTEXT_TRANSLATE)); + g_browser_process->SetApplicationLocale(original_lang); } |