OLD | NEW |
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/memory/scoped_ptr.h" | 9 #include "base/memory/scoped_ptr.h" |
10 #include "base/prefs/pref_change_registrar.h" | 10 #include "base/prefs/pref_change_registrar.h" |
(...skipping 1128 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1139 // Try another language, it should not be autotranslated. | 1139 // Try another language, it should not be autotranslated. |
1140 SimulateNavigation(GURL("http://www.google.es"), "es", true); | 1140 SimulateNavigation(GURL("http://www.google.es"), "es", true); |
1141 EXPECT_FALSE(GetTranslateMessage(&page_id, &original_lang, &target_lang)); | 1141 EXPECT_FALSE(GetTranslateMessage(&page_id, &original_lang, &target_lang)); |
1142 EXPECT_TRUE(GetTranslateInfoBar() != NULL); | 1142 EXPECT_TRUE(GetTranslateInfoBar() != NULL); |
1143 EXPECT_TRUE(CloseTranslateInfoBar()); | 1143 EXPECT_TRUE(CloseTranslateInfoBar()); |
1144 | 1144 |
1145 // Let's switch to incognito mode, it should not be autotranslated in that | 1145 // Let's switch to incognito mode, it should not be autotranslated in that |
1146 // case either. | 1146 // case either. |
1147 TestingProfile* test_profile = | 1147 TestingProfile* test_profile = |
1148 static_cast<TestingProfile*>(web_contents()->GetBrowserContext()); | 1148 static_cast<TestingProfile*>(web_contents()->GetBrowserContext()); |
1149 test_profile->set_incognito(true); | 1149 test_profile->ForceIncognito(true); |
1150 SimulateNavigation(GURL("http://www.youtube.fr"), "fr", true); | 1150 SimulateNavigation(GURL("http://www.youtube.fr"), "fr", true); |
1151 EXPECT_FALSE(GetTranslateMessage(&page_id, &original_lang, &target_lang)); | 1151 EXPECT_FALSE(GetTranslateMessage(&page_id, &original_lang, &target_lang)); |
1152 EXPECT_TRUE(GetTranslateInfoBar() != NULL); | 1152 EXPECT_TRUE(GetTranslateInfoBar() != NULL); |
1153 EXPECT_TRUE(CloseTranslateInfoBar()); | 1153 EXPECT_TRUE(CloseTranslateInfoBar()); |
1154 test_profile->set_incognito(false); // Get back to non incognito. | 1154 test_profile->ForceIncognito(false); // Get back to non incognito. |
1155 | 1155 |
1156 // Now revert the always translate pref and make sure we go back to expected | 1156 // Now revert the always translate pref and make sure we go back to expected |
1157 // behavior, which is show a "before translate" infobar. | 1157 // behavior, which is show a "before translate" infobar. |
1158 SetPrefObserverExpectation(TranslatePrefs::kPrefTranslateWhitelists); | 1158 SetPrefObserverExpectation(TranslatePrefs::kPrefTranslateWhitelists); |
1159 translate_prefs.RemoveLanguagePairFromWhitelist("fr", "en"); | 1159 translate_prefs.RemoveLanguagePairFromWhitelist("fr", "en"); |
1160 SimulateNavigation(GURL("http://www.google.fr"), "fr", true); | 1160 SimulateNavigation(GURL("http://www.google.fr"), "fr", true); |
1161 EXPECT_FALSE(GetTranslateMessage(&page_id, &original_lang, &target_lang)); | 1161 EXPECT_FALSE(GetTranslateMessage(&page_id, &original_lang, &target_lang)); |
1162 infobar = GetTranslateInfoBar(); | 1162 infobar = GetTranslateInfoBar(); |
1163 ASSERT_TRUE(infobar != NULL); | 1163 ASSERT_TRUE(infobar != NULL); |
1164 EXPECT_EQ(TranslateInfoBarDelegate::BEFORE_TRANSLATE, | 1164 EXPECT_EQ(TranslateInfoBarDelegate::BEFORE_TRANSLATE, |
(...skipping 119 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1284 translate_prefs.ResetTranslationDeniedCount("de"); | 1284 translate_prefs.ResetTranslationDeniedCount("de"); |
1285 | 1285 |
1286 // We'll do 4 times in incognito mode first to make sure the button is not | 1286 // We'll do 4 times in incognito mode first to make sure the button is not |
1287 // shown in that case, then 4 times in normal mode. | 1287 // shown in that case, then 4 times in normal mode. |
1288 TranslateInfoBarDelegate* infobar; | 1288 TranslateInfoBarDelegate* infobar; |
1289 TestingProfile* test_profile = | 1289 TestingProfile* test_profile = |
1290 static_cast<TestingProfile*>(web_contents()->GetBrowserContext()); | 1290 static_cast<TestingProfile*>(web_contents()->GetBrowserContext()); |
1291 static_cast<extensions::TestExtensionSystem*>( | 1291 static_cast<extensions::TestExtensionSystem*>( |
1292 extensions::ExtensionSystem::Get(test_profile))-> | 1292 extensions::ExtensionSystem::Get(test_profile))-> |
1293 CreateExtensionProcessManager(); | 1293 CreateExtensionProcessManager(); |
1294 test_profile->set_incognito(true); | 1294 test_profile->ForceIncognito(true); |
1295 for (int i = 0; i < 8; ++i) { | 1295 for (int i = 0; i < 8; ++i) { |
1296 SCOPED_TRACE(::testing::Message() << "Iteration " << i << | 1296 SCOPED_TRACE(::testing::Message() << "Iteration " << i << |
1297 " incognito mode=" << test_profile->IsOffTheRecord()); | 1297 " incognito mode=" << test_profile->IsOffTheRecord()); |
1298 SimulateNavigation(GURL("http://www.google.fr"), "fr", true); | 1298 SimulateNavigation(GURL("http://www.google.fr"), "fr", true); |
1299 infobar = GetTranslateInfoBar(); | 1299 infobar = GetTranslateInfoBar(); |
1300 ASSERT_TRUE(infobar != NULL); | 1300 ASSERT_TRUE(infobar != NULL); |
1301 EXPECT_EQ(TranslateInfoBarDelegate::BEFORE_TRANSLATE, | 1301 EXPECT_EQ(TranslateInfoBarDelegate::BEFORE_TRANSLATE, |
1302 infobar->infobar_type()); | 1302 infobar->infobar_type()); |
1303 if (i < 7) { | 1303 if (i < 7) { |
1304 EXPECT_FALSE(infobar->ShouldShowAlwaysTranslateShortcut()); | 1304 EXPECT_FALSE(infobar->ShouldShowAlwaysTranslateShortcut()); |
1305 infobar->Translate(); | 1305 infobar->Translate(); |
1306 process()->sink().ClearMessages(); | 1306 process()->sink().ClearMessages(); |
1307 } else { | 1307 } else { |
1308 EXPECT_TRUE(infobar->ShouldShowAlwaysTranslateShortcut()); | 1308 EXPECT_TRUE(infobar->ShouldShowAlwaysTranslateShortcut()); |
1309 } | 1309 } |
1310 if (i == 3) | 1310 if (i == 3) |
1311 test_profile->set_incognito(false); | 1311 test_profile->ForceIncognito(false); |
1312 } | 1312 } |
1313 // Simulate the user pressing "Always translate French". | 1313 // Simulate the user pressing "Always translate French". |
1314 infobar->AlwaysTranslatePageLanguage(); | 1314 infobar->AlwaysTranslatePageLanguage(); |
1315 EXPECT_TRUE(translate_prefs.IsLanguagePairWhitelisted("fr", "en")); | 1315 EXPECT_TRUE(translate_prefs.IsLanguagePairWhitelisted("fr", "en")); |
1316 // Simulate the translate script being retrieved (it only needs to be done | 1316 // Simulate the translate script being retrieved (it only needs to be done |
1317 // once in the test as it is cached). | 1317 // once in the test as it is cached). |
1318 SimulateTranslateScriptURLFetch(true); | 1318 SimulateTranslateScriptURLFetch(true); |
1319 // That should have triggered a page translate. | 1319 // That should have triggered a page translate. |
1320 int page_id = 0; | 1320 int page_id = 0; |
1321 std::string original_lang, target_lang; | 1321 std::string original_lang, target_lang; |
1322 EXPECT_TRUE(GetTranslateMessage(&page_id, &original_lang, &target_lang)); | 1322 EXPECT_TRUE(GetTranslateMessage(&page_id, &original_lang, &target_lang)); |
1323 process()->sink().ClearMessages(); | 1323 process()->sink().ClearMessages(); |
1324 | 1324 |
1325 // Now test that declining the translation causes a "never translate" button | 1325 // Now test that declining the translation causes a "never translate" button |
1326 // to be shown (in non incognito mode only). | 1326 // to be shown (in non incognito mode only). |
1327 test_profile->set_incognito(true); | 1327 test_profile->ForceIncognito(true); |
1328 for (int i = 0; i < 8; ++i) { | 1328 for (int i = 0; i < 8; ++i) { |
1329 SCOPED_TRACE(::testing::Message() << "Iteration " << i << | 1329 SCOPED_TRACE(::testing::Message() << "Iteration " << i << |
1330 " incognito mode=" << test_profile->IsOffTheRecord()); | 1330 " incognito mode=" << test_profile->IsOffTheRecord()); |
1331 SimulateNavigation(GURL("http://www.google.de"), "de", true); | 1331 SimulateNavigation(GURL("http://www.google.de"), "de", true); |
1332 infobar = GetTranslateInfoBar(); | 1332 infobar = GetTranslateInfoBar(); |
1333 ASSERT_TRUE(infobar != NULL); | 1333 ASSERT_TRUE(infobar != NULL); |
1334 EXPECT_EQ(TranslateInfoBarDelegate::BEFORE_TRANSLATE, | 1334 EXPECT_EQ(TranslateInfoBarDelegate::BEFORE_TRANSLATE, |
1335 infobar->infobar_type()); | 1335 infobar->infobar_type()); |
1336 if (i < 7) { | 1336 if (i < 7) { |
1337 EXPECT_FALSE(infobar->ShouldShowNeverTranslateShortcut()); | 1337 EXPECT_FALSE(infobar->ShouldShowNeverTranslateShortcut()); |
1338 infobar->TranslationDeclined(); | 1338 infobar->TranslationDeclined(); |
1339 } else { | 1339 } else { |
1340 EXPECT_TRUE(infobar->ShouldShowNeverTranslateShortcut()); | 1340 EXPECT_TRUE(infobar->ShouldShowNeverTranslateShortcut()); |
1341 } | 1341 } |
1342 if (i == 3) | 1342 if (i == 3) |
1343 test_profile->set_incognito(false); | 1343 test_profile->ForceIncognito(false); |
1344 } | 1344 } |
1345 // Simulate the user pressing "Never translate French". | 1345 // Simulate the user pressing "Never translate French". |
1346 infobar->NeverTranslatePageLanguage(); | 1346 infobar->NeverTranslatePageLanguage(); |
1347 EXPECT_TRUE(translate_prefs.IsBlockedLanguage("de")); | 1347 EXPECT_TRUE(translate_prefs.IsBlockedLanguage("de")); |
1348 // No translation should have occured and the infobar should be gone. | 1348 // No translation should have occured and the infobar should be gone. |
1349 EXPECT_FALSE(GetTranslateMessage(&page_id, &original_lang, &target_lang)); | 1349 EXPECT_FALSE(GetTranslateMessage(&page_id, &original_lang, &target_lang)); |
1350 process()->sink().ClearMessages(); | 1350 process()->sink().ClearMessages(); |
1351 ASSERT_TRUE(GetTranslateInfoBar() == NULL); | 1351 ASSERT_TRUE(GetTranslateInfoBar() == NULL); |
1352 } | 1352 } |
1353 | 1353 |
(...skipping 100 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1454 content::WebContents* current_web_contents = | 1454 content::WebContents* current_web_contents = |
1455 browser()->tab_strip_model()->GetActiveWebContents(); | 1455 browser()->tab_strip_model()->GetActiveWebContents(); |
1456 content::Source<content::WebContents> source(current_web_contents); | 1456 content::Source<content::WebContents> source(current_web_contents); |
1457 | 1457 |
1458 ui_test_utils::WindowedNotificationObserverWithDetails< | 1458 ui_test_utils::WindowedNotificationObserverWithDetails< |
1459 LanguageDetectionDetails> | 1459 LanguageDetectionDetails> |
1460 fr_language_detected_signal(chrome::NOTIFICATION_TAB_LANGUAGE_DETERMINED, | 1460 fr_language_detected_signal(chrome::NOTIFICATION_TAB_LANGUAGE_DETERMINED, |
1461 source); | 1461 source); |
1462 fr_language_detected_signal.Wait(); | 1462 fr_language_detected_signal.Wait(); |
1463 } | 1463 } |
OLD | NEW |