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 | 5 |
6 #include <algorithm> | 6 #include <algorithm> |
7 #include <set> | 7 #include <set> |
8 #include <vector> | 8 #include <vector> |
9 | 9 |
10 #include "base/json/json_writer.h" | 10 #include "base/json/json_writer.h" |
11 #include "base/memory/scoped_ptr.h" | 11 #include "base/memory/scoped_ptr.h" |
12 #include "base/prefs/pref_change_registrar.h" | 12 #include "base/prefs/pref_change_registrar.h" |
13 #include "base/prefs/pref_service.h" | 13 #include "base/prefs/pref_service.h" |
14 #include "base/stringprintf.h" | 14 #include "base/stringprintf.h" |
15 #include "base/utf_string_conversions.h" | 15 #include "base/utf_string_conversions.h" |
16 #include "base/values.h" | 16 #include "base/values.h" |
17 #include "chrome/app/chrome_command_ids.h" | 17 #include "chrome/app/chrome_command_ids.h" |
18 #include "chrome/browser/extensions/test_extension_system.h" | 18 #include "chrome/browser/extensions/test_extension_system.h" |
19 #include "chrome/browser/infobars/infobar.h" | 19 #include "chrome/browser/infobars/infobar.h" |
20 #include "chrome/browser/infobars/infobar_service.h" | 20 #include "chrome/browser/infobars/infobar_service.h" |
21 #include "chrome/browser/prefs/session_startup_pref.h" | 21 #include "chrome/browser/prefs/session_startup_pref.h" |
22 #include "chrome/browser/tab_contents/render_view_context_menu.h" | 22 #include "chrome/browser/tab_contents/render_view_context_menu.h" |
23 #include "chrome/browser/translate/translate_infobar_delegate.h" | 23 #include "chrome/browser/translate/translate_infobar_delegate.h" |
| 24 #include "chrome/browser/translate/translate_language_list.h" |
24 #include "chrome/browser/translate/translate_manager.h" | 25 #include "chrome/browser/translate/translate_manager.h" |
25 #include "chrome/browser/translate/translate_prefs.h" | 26 #include "chrome/browser/translate/translate_prefs.h" |
26 #include "chrome/browser/translate/translate_tab_helper.h" | 27 #include "chrome/browser/translate/translate_tab_helper.h" |
27 #include "chrome/browser/ui/browser.h" | 28 #include "chrome/browser/ui/browser.h" |
28 #include "chrome/browser/ui/tabs/tab_strip_model.h" | 29 #include "chrome/browser/ui/tabs/tab_strip_model.h" |
29 #include "chrome/common/chrome_notification_types.h" | 30 #include "chrome/common/chrome_notification_types.h" |
30 #include "chrome/common/pref_names.h" | 31 #include "chrome/common/pref_names.h" |
31 #include "chrome/common/render_messages.h" | 32 #include "chrome/common/render_messages.h" |
32 #include "chrome/common/url_constants.h" | 33 #include "chrome/common/url_constants.h" |
33 #include "chrome/test/base/chrome_render_view_host_test_harness.h" | 34 #include "chrome/test/base/chrome_render_view_host_test_harness.h" |
(...skipping 238 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
272 void SimulateSupportedLanguagesURLFetch( | 273 void SimulateSupportedLanguagesURLFetch( |
273 bool success, const std::vector<std::string>& languages) { | 274 bool success, const std::vector<std::string>& languages) { |
274 net::TestURLFetcher* fetcher = url_fetcher_factory_.GetFetcherByID(1); | 275 net::TestURLFetcher* fetcher = url_fetcher_factory_.GetFetcherByID(1); |
275 ASSERT_TRUE(fetcher); | 276 ASSERT_TRUE(fetcher); |
276 net::URLRequestStatus status; | 277 net::URLRequestStatus status; |
277 status.set_status(success ? net::URLRequestStatus::SUCCESS : | 278 status.set_status(success ? net::URLRequestStatus::SUCCESS : |
278 net::URLRequestStatus::FAILED); | 279 net::URLRequestStatus::FAILED); |
279 | 280 |
280 std::string data; | 281 std::string data; |
281 if (success) { | 282 if (success) { |
282 data = base::StringPrintf("%s{\"sl\": {\"bla\": \"bla\"}, \"%s\": {", | 283 data = base::StringPrintf( |
283 TranslateManager::kLanguageListCallbackName, | 284 "%s{\"sl\": {\"bla\": \"bla\"}, \"%s\": {", |
284 TranslateManager::kTargetLanguagesKey); | 285 TranslateLanguageList::kLanguageListCallbackName, |
| 286 TranslateLanguageList::kTargetLanguagesKey); |
285 const char* comma = ""; | 287 const char* comma = ""; |
286 for (size_t i = 0; i < languages.size(); ++i) { | 288 for (size_t i = 0; i < languages.size(); ++i) { |
287 data += base::StringPrintf( | 289 data += base::StringPrintf( |
288 "%s\"%s\": \"UnusedFullName\"", comma, languages[i].c_str()); | 290 "%s\"%s\": \"UnusedFullName\"", comma, languages[i].c_str()); |
289 if (i == 0) | 291 if (i == 0) |
290 comma = ","; | 292 comma = ","; |
291 } | 293 } |
292 data += "}})"; | 294 data += "}})"; |
293 } | 295 } |
294 fetcher->set_url(fetcher->GetOriginalURL()); | 296 fetcher->set_url(fetcher->GetOriginalURL()); |
(...skipping 328 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
623 server_languages.push_back("aa"); | 625 server_languages.push_back("aa"); |
624 server_languages.push_back("bb"); | 626 server_languages.push_back("bb"); |
625 server_languages.push_back("ab"); | 627 server_languages.push_back("ab"); |
626 server_languages.push_back("en-CA"); | 628 server_languages.push_back("en-CA"); |
627 server_languages.push_back("zz"); | 629 server_languages.push_back("zz"); |
628 server_languages.push_back("yy"); | 630 server_languages.push_back("yy"); |
629 server_languages.push_back("fr-FR"); | 631 server_languages.push_back("fr-FR"); |
630 | 632 |
631 // First, get the default languages list: | 633 // First, get the default languages list: |
632 std::vector<std::string> default_supported_languages; | 634 std::vector<std::string> default_supported_languages; |
633 TranslateManager::GetSupportedLanguages(&default_supported_languages); | 635 TranslateLanguageList::GetSupportedLanguages(&default_supported_languages); |
634 // To make sure we got the defaults and don't confuse them with the mocks. | 636 // To make sure we got the defaults and don't confuse them with the mocks. |
635 ASSERT_NE(default_supported_languages.size(), server_languages.size()); | 637 ASSERT_NE(default_supported_languages.size(), server_languages.size()); |
636 | 638 |
637 Profile* profile = | 639 Profile* profile = |
638 Profile::FromBrowserContext(web_contents()->GetBrowserContext()); | 640 Profile::FromBrowserContext(web_contents()->GetBrowserContext()); |
639 PrefService* prefs = profile->GetPrefs(); | 641 PrefService* prefs = profile->GetPrefs(); |
640 TranslateManager::GetInstance()->FetchLanguageListFromTranslateServer(prefs); | 642 TranslateManager::GetInstance()->FetchLanguageListFromTranslateServer(prefs); |
641 | 643 |
642 // Check that we still get the defaults until the URLFetch has completed. | 644 // Check that we still get the defaults until the URLFetch has completed. |
643 std::vector<std::string> current_supported_languages; | 645 std::vector<std::string> current_supported_languages; |
644 TranslateManager::GetSupportedLanguages(¤t_supported_languages); | 646 TranslateLanguageList::GetSupportedLanguages(¤t_supported_languages); |
645 EXPECT_EQ(default_supported_languages, current_supported_languages); | 647 EXPECT_EQ(default_supported_languages, current_supported_languages); |
646 | 648 |
647 // Also check that it didn't change if we failed the URL fetch. | 649 // Also check that it didn't change if we failed the URL fetch. |
648 SimulateSupportedLanguagesURLFetch(false, std::vector<std::string>()); | 650 SimulateSupportedLanguagesURLFetch(false, std::vector<std::string>()); |
649 current_supported_languages.clear(); | 651 current_supported_languages.clear(); |
650 TranslateManager::GetSupportedLanguages(¤t_supported_languages); | 652 TranslateLanguageList::GetSupportedLanguages(¤t_supported_languages); |
651 EXPECT_EQ(default_supported_languages, current_supported_languages); | 653 EXPECT_EQ(default_supported_languages, current_supported_languages); |
652 | 654 |
653 // Now check that we got the appropriate set of languages from the server. | 655 // Now check that we got the appropriate set of languages from the server. |
654 TranslateManager::GetInstance()->FetchLanguageListFromTranslateServer(prefs); | 656 TranslateManager::GetInstance()->FetchLanguageListFromTranslateServer(prefs); |
655 SimulateSupportedLanguagesURLFetch(true, server_languages); | 657 SimulateSupportedLanguagesURLFetch(true, server_languages); |
656 current_supported_languages.clear(); | 658 current_supported_languages.clear(); |
657 TranslateManager::GetSupportedLanguages(¤t_supported_languages); | 659 TranslateLanguageList::GetSupportedLanguages(¤t_supported_languages); |
658 // Not sure we need to guarantee the order of languages, so we find them. | 660 // Not sure we need to guarantee the order of languages, so we find them. |
659 EXPECT_EQ(server_languages.size(), current_supported_languages.size()); | 661 EXPECT_EQ(server_languages.size(), current_supported_languages.size()); |
660 for (size_t i = 0; i < server_languages.size(); ++i) { | 662 for (size_t i = 0; i < server_languages.size(); ++i) { |
661 EXPECT_NE(current_supported_languages.end(), | 663 EXPECT_NE(current_supported_languages.end(), |
662 std::find(current_supported_languages.begin(), | 664 std::find(current_supported_languages.begin(), |
663 current_supported_languages.end(), | 665 current_supported_languages.end(), |
664 server_languages[i])); | 666 server_languages[i])); |
665 } | 667 } |
666 | 668 |
667 // Reset to original state. | 669 // Reset to original state. |
(...skipping 854 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1522 IN_PROC_BROWSER_TEST_F(InProcessBrowserTest, MAYBE_TranslateSessionRestore) { | 1524 IN_PROC_BROWSER_TEST_F(InProcessBrowserTest, MAYBE_TranslateSessionRestore) { |
1523 WebContents* current_web_contents = | 1525 WebContents* current_web_contents = |
1524 browser()->tab_strip_model()->GetActiveWebContents(); | 1526 browser()->tab_strip_model()->GetActiveWebContents(); |
1525 content::Source<WebContents> source(current_web_contents); | 1527 content::Source<WebContents> source(current_web_contents); |
1526 | 1528 |
1527 ui_test_utils::WindowedNotificationObserverWithDetails<std::string> | 1529 ui_test_utils::WindowedNotificationObserverWithDetails<std::string> |
1528 fr_language_detected_signal(chrome::NOTIFICATION_TAB_LANGUAGE_DETERMINED, | 1530 fr_language_detected_signal(chrome::NOTIFICATION_TAB_LANGUAGE_DETERMINED, |
1529 source); | 1531 source); |
1530 fr_language_detected_signal.Wait(); | 1532 fr_language_detected_signal.Wait(); |
1531 } | 1533 } |
OLD | NEW |