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

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

Issue 159883002: Move TranslatePrefs to the Translate component (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@acceptLanguages
Patch Set: Fix ChromeOS browsertests Created 6 years, 10 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
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 #include <algorithm> 5 #include <algorithm>
6 #include <set> 6 #include <set>
7 #include <vector> 7 #include <vector>
8 8
9 #include "base/command_line.h" 9 #include "base/command_line.h"
10 #include "base/memory/scoped_ptr.h" 10 #include "base/memory/scoped_ptr.h"
11 #include "base/prefs/pref_change_registrar.h" 11 #include "base/prefs/pref_change_registrar.h"
12 #include "base/prefs/pref_service.h" 12 #include "base/prefs/pref_service.h"
13 #include "base/strings/stringprintf.h" 13 #include "base/strings/stringprintf.h"
14 #include "chrome/app/chrome_command_ids.h" 14 #include "chrome/app/chrome_command_ids.h"
15 #include "chrome/browser/chrome_notification_types.h" 15 #include "chrome/browser/chrome_notification_types.h"
16 #include "chrome/browser/extensions/test_extension_system.h" 16 #include "chrome/browser/extensions/test_extension_system.h"
17 #include "chrome/browser/infobars/infobar.h" 17 #include "chrome/browser/infobars/infobar.h"
18 #include "chrome/browser/infobars/infobar_service.h" 18 #include "chrome/browser/infobars/infobar_service.h"
19 #include "chrome/browser/prefs/session_startup_pref.h" 19 #include "chrome/browser/prefs/session_startup_pref.h"
20 #include "chrome/browser/tab_contents/render_view_context_menu.h" 20 #include "chrome/browser/tab_contents/render_view_context_menu.h"
21 #include "chrome/browser/translate/translate_infobar_delegate.h" 21 #include "chrome/browser/translate/translate_infobar_delegate.h"
22 #include "chrome/browser/translate/translate_manager.h" 22 #include "chrome/browser/translate/translate_manager.h"
23 #include "chrome/browser/translate/translate_prefs.h"
24 #include "chrome/browser/translate/translate_service.h" 23 #include "chrome/browser/translate/translate_service.h"
25 #include "chrome/browser/translate/translate_tab_helper.h" 24 #include "chrome/browser/translate/translate_tab_helper.h"
26 #include "chrome/browser/ui/browser.h" 25 #include "chrome/browser/ui/browser.h"
27 #include "chrome/browser/ui/tabs/tab_strip_model.h" 26 #include "chrome/browser/ui/tabs/tab_strip_model.h"
28 #include "chrome/browser/ui/translate/translate_bubble_factory.h" 27 #include "chrome/browser/ui/translate/translate_bubble_factory.h"
29 #include "chrome/browser/ui/translate/translate_bubble_model.h" 28 #include "chrome/browser/ui/translate/translate_bubble_model.h"
30 #include "chrome/browser/ui/translate/translate_bubble_model_impl.h" 29 #include "chrome/browser/ui/translate/translate_bubble_model_impl.h"
31 #include "chrome/common/chrome_switches.h" 30 #include "chrome/common/chrome_switches.h"
32 #include "chrome/common/pref_names.h" 31 #include "chrome/common/pref_names.h"
33 #include "chrome/common/render_messages.h" 32 #include "chrome/common/render_messages.h"
34 #include "chrome/common/url_constants.h" 33 #include "chrome/common/url_constants.h"
35 #include "chrome/test/base/chrome_render_view_host_test_harness.h" 34 #include "chrome/test/base/chrome_render_view_host_test_harness.h"
36 #include "chrome/test/base/in_process_browser_test.h" 35 #include "chrome/test/base/in_process_browser_test.h"
37 #include "chrome/test/base/testing_browser_process.h" 36 #include "chrome/test/base/testing_browser_process.h"
38 #include "chrome/test/base/testing_profile.h" 37 #include "chrome/test/base/testing_profile.h"
39 #include "chrome/test/base/ui_test_utils.h" 38 #include "chrome/test/base/ui_test_utils.h"
39 #include "components/translate/core/browser/translate_accept_languages.h"
40 #include "components/translate/core/browser/translate_download_manager.h" 40 #include "components/translate/core/browser/translate_download_manager.h"
41 #include "components/translate/core/browser/translate_language_list.h" 41 #include "components/translate/core/browser/translate_language_list.h"
42 #include "components/translate/core/browser/translate_prefs.h"
42 #include "components/translate/core/browser/translate_script.h" 43 #include "components/translate/core/browser/translate_script.h"
43 #include "components/translate/core/common/language_detection_details.h" 44 #include "components/translate/core/common/language_detection_details.h"
44 #include "components/translate/core/common/translate_pref_names.h" 45 #include "components/translate/core/common/translate_pref_names.h"
45 #include "content/public/browser/navigation_details.h" 46 #include "content/public/browser/navigation_details.h"
46 #include "content/public/browser/navigation_entry.h" 47 #include "content/public/browser/navigation_entry.h"
47 #include "content/public/browser/notification_details.h" 48 #include "content/public/browser/notification_details.h"
48 #include "content/public/browser/notification_registrar.h" 49 #include "content/public/browser/notification_registrar.h"
49 #include "content/public/browser/web_contents.h" 50 #include "content/public/browser/web_contents.h"
50 #include "content/public/test/mock_render_process_host.h" 51 #include "content/public/test/mock_render_process_host.h"
51 #include "content/public/test/test_renderer_host.h" 52 #include "content/public/test/test_renderer_host.h"
(...skipping 1037 matching lines...) Expand 10 before | Expand all | Expand 10 after
1089 EXPECT_TRUE(GetTranslateInfoBar() != NULL); 1090 EXPECT_TRUE(GetTranslateInfoBar() != NULL);
1090 1091
1091 // Select never translate this language. 1092 // Select never translate this language.
1092 Profile* profile = 1093 Profile* profile =
1093 Profile::FromBrowserContext(web_contents()->GetBrowserContext()); 1094 Profile::FromBrowserContext(web_contents()->GetBrowserContext());
1094 PrefService* prefs = profile->GetPrefs(); 1095 PrefService* prefs = profile->GetPrefs();
1095 PrefChangeRegistrar registrar; 1096 PrefChangeRegistrar registrar;
1096 registrar.Init(prefs); 1097 registrar.Init(prefs);
1097 registrar.Add(TranslatePrefs::kPrefTranslateBlockedLanguages, 1098 registrar.Add(TranslatePrefs::kPrefTranslateBlockedLanguages,
1098 pref_callback_); 1099 pref_callback_);
1099 TranslatePrefs translate_prefs(prefs); 1100 scoped_ptr<TranslatePrefs> translate_prefs(
1100 EXPECT_FALSE(translate_prefs.IsBlockedLanguage("fr")); 1101 TranslateTabHelper::CreateTranslatePrefs(prefs));
1101 EXPECT_TRUE(translate_prefs.CanTranslateLanguage(profile, "fr")); 1102 EXPECT_FALSE(translate_prefs->IsBlockedLanguage("fr"));
1103 TranslateAcceptLanguages* accept_languages =
1104 TranslateTabHelper::GetTranslateAcceptLanguages(profile);
1105 EXPECT_TRUE(translate_prefs->CanTranslateLanguage(accept_languages, "fr"));
1102 SetPrefObserverExpectation(TranslatePrefs::kPrefTranslateBlockedLanguages); 1106 SetPrefObserverExpectation(TranslatePrefs::kPrefTranslateBlockedLanguages);
1103 translate_prefs.BlockLanguage("fr"); 1107 translate_prefs->BlockLanguage("fr");
1104 EXPECT_TRUE(translate_prefs.IsBlockedLanguage("fr")); 1108 EXPECT_TRUE(translate_prefs->IsBlockedLanguage("fr"));
1105 EXPECT_FALSE(translate_prefs.IsSiteBlacklisted(url.host())); 1109 EXPECT_FALSE(translate_prefs->IsSiteBlacklisted(url.host()));
1106 EXPECT_FALSE(translate_prefs.CanTranslateLanguage(profile, "fr")); 1110 EXPECT_FALSE(translate_prefs->CanTranslateLanguage(accept_languages, "fr"));
1107 1111
1108 EXPECT_TRUE(CloseTranslateInfoBar()); 1112 EXPECT_TRUE(CloseTranslateInfoBar());
1109 1113
1110 // Navigate to a new page also in French. 1114 // Navigate to a new page also in French.
1111 SimulateNavigation(GURL("http://wwww.youtube.fr"), "fr", true); 1115 SimulateNavigation(GURL("http://wwww.youtube.fr"), "fr", true);
1112 1116
1113 // There should not be a translate infobar. 1117 // There should not be a translate infobar.
1114 EXPECT_TRUE(GetTranslateInfoBar() == NULL); 1118 EXPECT_TRUE(GetTranslateInfoBar() == NULL);
1115 1119
1116 // Remove the language from the blacklist. 1120 // Remove the language from the blacklist.
1117 SetPrefObserverExpectation(TranslatePrefs::kPrefTranslateBlockedLanguages); 1121 SetPrefObserverExpectation(TranslatePrefs::kPrefTranslateBlockedLanguages);
1118 translate_prefs.UnblockLanguage("fr"); 1122 translate_prefs->UnblockLanguage("fr");
1119 EXPECT_FALSE(translate_prefs.IsBlockedLanguage("fr")); 1123 EXPECT_FALSE(translate_prefs->IsBlockedLanguage("fr"));
1120 EXPECT_FALSE(translate_prefs.IsSiteBlacklisted(url.host())); 1124 EXPECT_FALSE(translate_prefs->IsSiteBlacklisted(url.host()));
1121 EXPECT_TRUE(translate_prefs.CanTranslateLanguage(profile, "fr")); 1125 EXPECT_TRUE(translate_prefs->CanTranslateLanguage(accept_languages, "fr"));
1122 1126
1123 // Navigate to a page in French. 1127 // Navigate to a page in French.
1124 SimulateNavigation(url, "fr", true); 1128 SimulateNavigation(url, "fr", true);
1125 1129
1126 // There should be a translate infobar. 1130 // There should be a translate infobar.
1127 EXPECT_TRUE(GetTranslateInfoBar() != NULL); 1131 EXPECT_TRUE(GetTranslateInfoBar() != NULL);
1128 } 1132 }
1129 1133
1130 // Tests the "Never translate this site" pref. 1134 // Tests the "Never translate this site" pref.
1131 TEST_F(TranslateManagerBrowserTest, NeverTranslateSitePref) { 1135 TEST_F(TranslateManagerBrowserTest, NeverTranslateSitePref) {
1132 GURL url("http://www.google.fr"); 1136 GURL url("http://www.google.fr");
1133 std::string host(url.host()); 1137 std::string host(url.host());
1134 SimulateNavigation(url, "fr", true); 1138 SimulateNavigation(url, "fr", true);
1135 1139
1136 // An infobar should be shown. 1140 // An infobar should be shown.
1137 EXPECT_TRUE(GetTranslateInfoBar() != NULL); 1141 EXPECT_TRUE(GetTranslateInfoBar() != NULL);
1138 1142
1139 // Select never translate this site. 1143 // Select never translate this site.
1140 Profile* profile = 1144 Profile* profile =
1141 Profile::FromBrowserContext(web_contents()->GetBrowserContext()); 1145 Profile::FromBrowserContext(web_contents()->GetBrowserContext());
1142 PrefService* prefs = profile->GetPrefs(); 1146 PrefService* prefs = profile->GetPrefs();
1143 PrefChangeRegistrar registrar; 1147 PrefChangeRegistrar registrar;
1144 registrar.Init(prefs); 1148 registrar.Init(prefs);
1145 registrar.Add(TranslatePrefs::kPrefTranslateSiteBlacklist, pref_callback_); 1149 registrar.Add(TranslatePrefs::kPrefTranslateSiteBlacklist, pref_callback_);
1146 TranslatePrefs translate_prefs(prefs); 1150 scoped_ptr<TranslatePrefs> translate_prefs(
1147 EXPECT_FALSE(translate_prefs.IsSiteBlacklisted(host)); 1151 TranslateTabHelper::CreateTranslatePrefs(prefs));
1148 EXPECT_TRUE(translate_prefs.CanTranslateLanguage(profile, "fr")); 1152 EXPECT_FALSE(translate_prefs->IsSiteBlacklisted(host));
1153 TranslateAcceptLanguages* accept_languages =
1154 TranslateTabHelper::GetTranslateAcceptLanguages(profile);
1155 EXPECT_TRUE(translate_prefs->CanTranslateLanguage(accept_languages, "fr"));
1149 SetPrefObserverExpectation(TranslatePrefs::kPrefTranslateSiteBlacklist); 1156 SetPrefObserverExpectation(TranslatePrefs::kPrefTranslateSiteBlacklist);
1150 translate_prefs.BlacklistSite(host); 1157 translate_prefs->BlacklistSite(host);
1151 EXPECT_TRUE(translate_prefs.IsSiteBlacklisted(host)); 1158 EXPECT_TRUE(translate_prefs->IsSiteBlacklisted(host));
1152 EXPECT_TRUE(translate_prefs.CanTranslateLanguage(profile, "fr")); 1159 EXPECT_TRUE(translate_prefs->CanTranslateLanguage(accept_languages, "fr"));
1153 1160
1154 EXPECT_TRUE(CloseTranslateInfoBar()); 1161 EXPECT_TRUE(CloseTranslateInfoBar());
1155 1162
1156 // Navigate to a new page also on the same site. 1163 // Navigate to a new page also on the same site.
1157 SimulateNavigation(GURL("http://www.google.fr/hello"), "fr", true); 1164 SimulateNavigation(GURL("http://www.google.fr/hello"), "fr", true);
1158 1165
1159 // There should not be a translate infobar. 1166 // There should not be a translate infobar.
1160 EXPECT_TRUE(GetTranslateInfoBar() == NULL); 1167 EXPECT_TRUE(GetTranslateInfoBar() == NULL);
1161 1168
1162 // Remove the site from the blacklist. 1169 // Remove the site from the blacklist.
1163 SetPrefObserverExpectation(TranslatePrefs::kPrefTranslateSiteBlacklist); 1170 SetPrefObserverExpectation(TranslatePrefs::kPrefTranslateSiteBlacklist);
1164 translate_prefs.RemoveSiteFromBlacklist(host); 1171 translate_prefs->RemoveSiteFromBlacklist(host);
1165 EXPECT_FALSE(translate_prefs.IsSiteBlacklisted(host)); 1172 EXPECT_FALSE(translate_prefs->IsSiteBlacklisted(host));
1166 EXPECT_TRUE(translate_prefs.CanTranslateLanguage(profile, "fr")); 1173 EXPECT_TRUE(translate_prefs->CanTranslateLanguage(accept_languages, "fr"));
1167 1174
1168 // Navigate to a page in French. 1175 // Navigate to a page in French.
1169 SimulateNavigation(url, "fr", true); 1176 SimulateNavigation(url, "fr", true);
1170 1177
1171 // There should be a translate infobar. 1178 // There should be a translate infobar.
1172 EXPECT_TRUE(GetTranslateInfoBar() != NULL); 1179 EXPECT_TRUE(GetTranslateInfoBar() != NULL);
1173 } 1180 }
1174 1181
1175 // Tests the "Always translate this language" pref. 1182 // Tests the "Always translate this language" pref.
1176 TEST_F(TranslateManagerBrowserTest, AlwaysTranslateLanguagePref) { 1183 TEST_F(TranslateManagerBrowserTest, AlwaysTranslateLanguagePref) {
1177 // Select always translate French to English. 1184 // Select always translate French to English.
1178 Profile* profile = 1185 Profile* profile =
1179 Profile::FromBrowserContext(web_contents()->GetBrowserContext()); 1186 Profile::FromBrowserContext(web_contents()->GetBrowserContext());
1180 PrefService* prefs = profile->GetPrefs(); 1187 PrefService* prefs = profile->GetPrefs();
1181 PrefChangeRegistrar registrar; 1188 PrefChangeRegistrar registrar;
1182 registrar.Init(prefs); 1189 registrar.Init(prefs);
1183 registrar.Add(TranslatePrefs::kPrefTranslateWhitelists, pref_callback_); 1190 registrar.Add(TranslatePrefs::kPrefTranslateWhitelists, pref_callback_);
1184 TranslatePrefs translate_prefs(prefs); 1191 scoped_ptr<TranslatePrefs> translate_prefs(
1192 TranslateTabHelper::CreateTranslatePrefs(prefs));
1185 SetPrefObserverExpectation(TranslatePrefs::kPrefTranslateWhitelists); 1193 SetPrefObserverExpectation(TranslatePrefs::kPrefTranslateWhitelists);
1186 translate_prefs.WhitelistLanguagePair("fr", "en"); 1194 translate_prefs->WhitelistLanguagePair("fr", "en");
1187 1195
1188 // Load a page in French. 1196 // Load a page in French.
1189 SimulateNavigation(GURL("http://www.google.fr"), "fr", true); 1197 SimulateNavigation(GURL("http://www.google.fr"), "fr", true);
1190 1198
1191 // It should have triggered an automatic translation to English. 1199 // It should have triggered an automatic translation to English.
1192 1200
1193 // The translating infobar should be showing. 1201 // The translating infobar should be showing.
1194 TranslateInfoBarDelegate* infobar = GetTranslateInfoBar(); 1202 TranslateInfoBarDelegate* infobar = GetTranslateInfoBar();
1195 ASSERT_TRUE(infobar != NULL); 1203 ASSERT_TRUE(infobar != NULL);
1196 EXPECT_EQ(TranslateInfoBarDelegate::TRANSLATING, infobar->infobar_type()); 1204 EXPECT_EQ(TranslateInfoBarDelegate::TRANSLATING, infobar->infobar_type());
(...skipping 18 matching lines...) Expand all
1215 test_profile->ForceIncognito(true); 1223 test_profile->ForceIncognito(true);
1216 SimulateNavigation(GURL("http://www.youtube.fr"), "fr", true); 1224 SimulateNavigation(GURL("http://www.youtube.fr"), "fr", true);
1217 EXPECT_FALSE(GetTranslateMessage(&page_id, &original_lang, &target_lang)); 1225 EXPECT_FALSE(GetTranslateMessage(&page_id, &original_lang, &target_lang));
1218 EXPECT_TRUE(GetTranslateInfoBar() != NULL); 1226 EXPECT_TRUE(GetTranslateInfoBar() != NULL);
1219 EXPECT_TRUE(CloseTranslateInfoBar()); 1227 EXPECT_TRUE(CloseTranslateInfoBar());
1220 test_profile->ForceIncognito(false); // Get back to non incognito. 1228 test_profile->ForceIncognito(false); // Get back to non incognito.
1221 1229
1222 // Now revert the always translate pref and make sure we go back to expected 1230 // Now revert the always translate pref and make sure we go back to expected
1223 // behavior, which is show a "before translate" infobar. 1231 // behavior, which is show a "before translate" infobar.
1224 SetPrefObserverExpectation(TranslatePrefs::kPrefTranslateWhitelists); 1232 SetPrefObserverExpectation(TranslatePrefs::kPrefTranslateWhitelists);
1225 translate_prefs.RemoveLanguagePairFromWhitelist("fr", "en"); 1233 translate_prefs->RemoveLanguagePairFromWhitelist("fr", "en");
1226 SimulateNavigation(GURL("http://www.google.fr"), "fr", true); 1234 SimulateNavigation(GURL("http://www.google.fr"), "fr", true);
1227 EXPECT_FALSE(GetTranslateMessage(&page_id, &original_lang, &target_lang)); 1235 EXPECT_FALSE(GetTranslateMessage(&page_id, &original_lang, &target_lang));
1228 infobar = GetTranslateInfoBar(); 1236 infobar = GetTranslateInfoBar();
1229 ASSERT_TRUE(infobar != NULL); 1237 ASSERT_TRUE(infobar != NULL);
1230 EXPECT_EQ(TranslateInfoBarDelegate::BEFORE_TRANSLATE, 1238 EXPECT_EQ(TranslateInfoBarDelegate::BEFORE_TRANSLATE,
1231 infobar->infobar_type()); 1239 infobar->infobar_type());
1232 } 1240 }
1233 1241
1234 // Context menu. 1242 // Context menu.
1235 TEST_F(TranslateManagerBrowserTest, ContextMenu) { 1243 TEST_F(TranslateManagerBrowserTest, ContextMenu) {
1236 // Blacklist www.google.fr and French for translation. 1244 // Blacklist www.google.fr and French for translation.
1237 GURL url("http://www.google.fr"); 1245 GURL url("http://www.google.fr");
1238 Profile* profile = 1246 Profile* profile =
1239 Profile::FromBrowserContext(web_contents()->GetBrowserContext()); 1247 Profile::FromBrowserContext(web_contents()->GetBrowserContext());
1240 TranslatePrefs translate_prefs(profile->GetPrefs()); 1248 scoped_ptr<TranslatePrefs> translate_prefs(
1241 translate_prefs.BlockLanguage("fr"); 1249 TranslateTabHelper::CreateTranslatePrefs(profile->GetPrefs()));
1242 translate_prefs.BlacklistSite(url.host()); 1250 translate_prefs->BlockLanguage("fr");
1243 EXPECT_TRUE(translate_prefs.IsBlockedLanguage("fr")); 1251 translate_prefs->BlacklistSite(url.host());
1244 EXPECT_TRUE(translate_prefs.IsSiteBlacklisted(url.host())); 1252 EXPECT_TRUE(translate_prefs->IsBlockedLanguage("fr"));
1253 EXPECT_TRUE(translate_prefs->IsSiteBlacklisted(url.host()));
1245 1254
1246 // Simulate navigating to a page in French. The translate menu should show but 1255 // Simulate navigating to a page in French. The translate menu should show but
1247 // should only be enabled when the page language has been received. 1256 // should only be enabled when the page language has been received.
1248 NavigateAndCommit(url); 1257 NavigateAndCommit(url);
1249 scoped_ptr<TestRenderViewContextMenu> menu( 1258 scoped_ptr<TestRenderViewContextMenu> menu(
1250 TestRenderViewContextMenu::CreateContextMenu(web_contents())); 1259 TestRenderViewContextMenu::CreateContextMenu(web_contents()));
1251 menu->Init(); 1260 menu->Init();
1252 EXPECT_TRUE(menu->IsItemPresent(IDC_CONTENT_CONTEXT_TRANSLATE)); 1261 EXPECT_TRUE(menu->IsItemPresent(IDC_CONTENT_CONTEXT_TRANSLATE));
1253 EXPECT_FALSE(menu->IsCommandIdEnabled(IDC_CONTENT_CONTEXT_TRANSLATE)); 1262 EXPECT_FALSE(menu->IsCommandIdEnabled(IDC_CONTENT_CONTEXT_TRANSLATE));
1254 1263
(...skipping 14 matching lines...) Expand all
1269 EXPECT_EQ(TranslateInfoBarDelegate::TRANSLATING, infobar->infobar_type()); 1278 EXPECT_EQ(TranslateInfoBarDelegate::TRANSLATING, infobar->infobar_type());
1270 SimulateTranslateScriptURLFetch(true); 1279 SimulateTranslateScriptURLFetch(true);
1271 int page_id = 0; 1280 int page_id = 0;
1272 std::string original_lang, target_lang; 1281 std::string original_lang, target_lang;
1273 EXPECT_TRUE(GetTranslateMessage(&page_id, &original_lang, &target_lang)); 1282 EXPECT_TRUE(GetTranslateMessage(&page_id, &original_lang, &target_lang));
1274 EXPECT_EQ("fr", original_lang); 1283 EXPECT_EQ("fr", original_lang);
1275 EXPECT_EQ("en", target_lang); 1284 EXPECT_EQ("en", target_lang);
1276 process()->sink().ClearMessages(); 1285 process()->sink().ClearMessages();
1277 1286
1278 // This should also have reverted the blacklisting of this site and language. 1287 // This should also have reverted the blacklisting of this site and language.
1279 EXPECT_FALSE(translate_prefs.IsBlockedLanguage("fr")); 1288 EXPECT_FALSE(translate_prefs->IsBlockedLanguage("fr"));
1280 EXPECT_FALSE(translate_prefs.IsSiteBlacklisted(url.host())); 1289 EXPECT_FALSE(translate_prefs->IsSiteBlacklisted(url.host()));
1281 1290
1282 // Let's simulate the page being translated. 1291 // Let's simulate the page being translated.
1283 SimulateOnPageTranslated("fr", "en"); 1292 SimulateOnPageTranslated("fr", "en");
1284 1293
1285 // The translate menu should now be disabled. 1294 // The translate menu should now be disabled.
1286 menu.reset(TestRenderViewContextMenu::CreateContextMenu(web_contents())); 1295 menu.reset(TestRenderViewContextMenu::CreateContextMenu(web_contents()));
1287 menu->Init(); 1296 menu->Init();
1288 EXPECT_TRUE(menu->IsItemPresent(IDC_CONTENT_CONTEXT_TRANSLATE)); 1297 EXPECT_TRUE(menu->IsItemPresent(IDC_CONTENT_CONTEXT_TRANSLATE));
1289 EXPECT_FALSE(menu->IsCommandIdEnabled(IDC_CONTENT_CONTEXT_TRANSLATE)); 1298 EXPECT_FALSE(menu->IsCommandIdEnabled(IDC_CONTENT_CONTEXT_TRANSLATE));
1290 1299
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after
1336 EXPECT_TRUE(menu->IsItemPresent(IDC_CONTENT_CONTEXT_TRANSLATE)); 1345 EXPECT_TRUE(menu->IsItemPresent(IDC_CONTENT_CONTEXT_TRANSLATE));
1337 EXPECT_TRUE(menu->IsCommandIdEnabled(IDC_CONTENT_CONTEXT_TRANSLATE)); 1346 EXPECT_TRUE(menu->IsCommandIdEnabled(IDC_CONTENT_CONTEXT_TRANSLATE));
1338 } 1347 }
1339 1348
1340 // Tests that an extra always/never translate button is shown on the "before 1349 // Tests that an extra always/never translate button is shown on the "before
1341 // translate" infobar when the translation is accepted/declined 3 times, 1350 // translate" infobar when the translation is accepted/declined 3 times,
1342 // only when not in incognito mode. 1351 // only when not in incognito mode.
1343 TEST_F(TranslateManagerBrowserTest, BeforeTranslateExtraButtons) { 1352 TEST_F(TranslateManagerBrowserTest, BeforeTranslateExtraButtons) {
1344 Profile* profile = 1353 Profile* profile =
1345 Profile::FromBrowserContext(web_contents()->GetBrowserContext()); 1354 Profile::FromBrowserContext(web_contents()->GetBrowserContext());
1346 TranslatePrefs translate_prefs(profile->GetPrefs()); 1355 scoped_ptr<TranslatePrefs> translate_prefs(
1347 translate_prefs.ResetTranslationAcceptedCount("fr"); 1356 TranslateTabHelper::CreateTranslatePrefs(profile->GetPrefs()));
1348 translate_prefs.ResetTranslationDeniedCount("fr"); 1357 translate_prefs->ResetTranslationAcceptedCount("fr");
1349 translate_prefs.ResetTranslationAcceptedCount("de"); 1358 translate_prefs->ResetTranslationDeniedCount("fr");
1350 translate_prefs.ResetTranslationDeniedCount("de"); 1359 translate_prefs->ResetTranslationAcceptedCount("de");
1360 translate_prefs->ResetTranslationDeniedCount("de");
1351 1361
1352 // We'll do 4 times in incognito mode first to make sure the button is not 1362 // We'll do 4 times in incognito mode first to make sure the button is not
1353 // shown in that case, then 4 times in normal mode. 1363 // shown in that case, then 4 times in normal mode.
1354 TranslateInfoBarDelegate* infobar; 1364 TranslateInfoBarDelegate* infobar;
1355 TestingProfile* test_profile = 1365 TestingProfile* test_profile =
1356 static_cast<TestingProfile*>(web_contents()->GetBrowserContext()); 1366 static_cast<TestingProfile*>(web_contents()->GetBrowserContext());
1357 static_cast<extensions::TestExtensionSystem*>( 1367 static_cast<extensions::TestExtensionSystem*>(
1358 extensions::ExtensionSystem::Get(test_profile))-> 1368 extensions::ExtensionSystem::Get(test_profile))->
1359 CreateProcessManager(); 1369 CreateProcessManager();
1360 test_profile->ForceIncognito(true); 1370 test_profile->ForceIncognito(true);
(...skipping 10 matching lines...) Expand all
1371 infobar->Translate(); 1381 infobar->Translate();
1372 process()->sink().ClearMessages(); 1382 process()->sink().ClearMessages();
1373 } else { 1383 } else {
1374 EXPECT_TRUE(infobar->ShouldShowAlwaysTranslateShortcut()); 1384 EXPECT_TRUE(infobar->ShouldShowAlwaysTranslateShortcut());
1375 } 1385 }
1376 if (i == 3) 1386 if (i == 3)
1377 test_profile->ForceIncognito(false); 1387 test_profile->ForceIncognito(false);
1378 } 1388 }
1379 // Simulate the user pressing "Always translate French". 1389 // Simulate the user pressing "Always translate French".
1380 infobar->AlwaysTranslatePageLanguage(); 1390 infobar->AlwaysTranslatePageLanguage();
1381 EXPECT_TRUE(translate_prefs.IsLanguagePairWhitelisted("fr", "en")); 1391 EXPECT_TRUE(translate_prefs->IsLanguagePairWhitelisted("fr", "en"));
1382 // Simulate the translate script being retrieved (it only needs to be done 1392 // Simulate the translate script being retrieved (it only needs to be done
1383 // once in the test as it is cached). 1393 // once in the test as it is cached).
1384 SimulateTranslateScriptURLFetch(true); 1394 SimulateTranslateScriptURLFetch(true);
1385 // That should have triggered a page translate. 1395 // That should have triggered a page translate.
1386 int page_id = 0; 1396 int page_id = 0;
1387 std::string original_lang, target_lang; 1397 std::string original_lang, target_lang;
1388 EXPECT_TRUE(GetTranslateMessage(&page_id, &original_lang, &target_lang)); 1398 EXPECT_TRUE(GetTranslateMessage(&page_id, &original_lang, &target_lang));
1389 process()->sink().ClearMessages(); 1399 process()->sink().ClearMessages();
1390 1400
1391 // Now test that declining the translation causes a "never translate" button 1401 // Now test that declining the translation causes a "never translate" button
(...skipping 11 matching lines...) Expand all
1403 EXPECT_FALSE(infobar->ShouldShowNeverTranslateShortcut()); 1413 EXPECT_FALSE(infobar->ShouldShowNeverTranslateShortcut());
1404 infobar->TranslationDeclined(); 1414 infobar->TranslationDeclined();
1405 } else { 1415 } else {
1406 EXPECT_TRUE(infobar->ShouldShowNeverTranslateShortcut()); 1416 EXPECT_TRUE(infobar->ShouldShowNeverTranslateShortcut());
1407 } 1417 }
1408 if (i == 3) 1418 if (i == 3)
1409 test_profile->ForceIncognito(false); 1419 test_profile->ForceIncognito(false);
1410 } 1420 }
1411 // Simulate the user pressing "Never translate French". 1421 // Simulate the user pressing "Never translate French".
1412 infobar->NeverTranslatePageLanguage(); 1422 infobar->NeverTranslatePageLanguage();
1413 EXPECT_TRUE(translate_prefs.IsBlockedLanguage("de")); 1423 EXPECT_TRUE(translate_prefs->IsBlockedLanguage("de"));
1414 // No translation should have occured and the infobar should be gone. 1424 // No translation should have occured and the infobar should be gone.
1415 EXPECT_FALSE(GetTranslateMessage(&page_id, &original_lang, &target_lang)); 1425 EXPECT_FALSE(GetTranslateMessage(&page_id, &original_lang, &target_lang));
1416 process()->sink().ClearMessages(); 1426 process()->sink().ClearMessages();
1417 ASSERT_TRUE(GetTranslateInfoBar() == NULL); 1427 ASSERT_TRUE(GetTranslateInfoBar() == NULL);
1418 } 1428 }
1419 1429
1420 // Tests that we don't show a translate infobar when a page instructs that it 1430 // Tests that we don't show a translate infobar when a page instructs that it
1421 // should not be translated. 1431 // should not be translated.
1422 TEST_F(TranslateManagerBrowserTest, NonTranslatablePage) { 1432 TEST_F(TranslateManagerBrowserTest, NonTranslatablePage) {
1423 SimulateNavigation(GURL("http://mail.google.fr"), "fr", false); 1433 SimulateNavigation(GURL("http://mail.google.fr"), "fr", false);
(...skipping 202 matching lines...) Expand 10 before | Expand all | Expand 10 after
1626 content::WebContents* current_web_contents = 1636 content::WebContents* current_web_contents =
1627 browser()->tab_strip_model()->GetActiveWebContents(); 1637 browser()->tab_strip_model()->GetActiveWebContents();
1628 content::Source<content::WebContents> source(current_web_contents); 1638 content::Source<content::WebContents> source(current_web_contents);
1629 1639
1630 ui_test_utils::WindowedNotificationObserverWithDetails< 1640 ui_test_utils::WindowedNotificationObserverWithDetails<
1631 LanguageDetectionDetails> 1641 LanguageDetectionDetails>
1632 fr_language_detected_signal(chrome::NOTIFICATION_TAB_LANGUAGE_DETERMINED, 1642 fr_language_detected_signal(chrome::NOTIFICATION_TAB_LANGUAGE_DETERMINED,
1633 source); 1643 source);
1634 fr_language_detected_signal.Wait(); 1644 fr_language_detected_signal.Wait();
1635 } 1645 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698