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" |
(...skipping 606 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
617 if (infobar != NULL) | 617 if (infobar != NULL) |
618 EXPECT_TRUE(CloseTranslateInfoBar()); | 618 EXPECT_TRUE(CloseTranslateInfoBar()); |
619 } | 619 } |
620 } | 620 } |
621 | 621 |
622 // Test the fetching of languages from the translate server | 622 // Test the fetching of languages from the translate server |
623 TEST_F(TranslateManagerBrowserTest, FetchLanguagesFromTranslateServer) { | 623 TEST_F(TranslateManagerBrowserTest, FetchLanguagesFromTranslateServer) { |
624 std::vector<std::string> server_languages; | 624 std::vector<std::string> server_languages; |
625 // A list of languages to fake being returned by the translate server. | 625 // A list of languages to fake being returned by the translate server. |
626 server_languages.push_back("aa"); | 626 server_languages.push_back("aa"); |
627 server_languages.push_back("bb"); | 627 server_languages.push_back("ak"); |
628 server_languages.push_back("ab"); | 628 server_languages.push_back("ab"); |
629 server_languages.push_back("en-CA"); | 629 server_languages.push_back("en-CA"); |
630 server_languages.push_back("zz"); | 630 server_languages.push_back("zh"); |
631 server_languages.push_back("yy"); | 631 server_languages.push_back("yi"); |
632 server_languages.push_back("fr-FR"); | 632 server_languages.push_back("fr-FR"); |
| 633 server_languages.push_back("xx"); |
633 | 634 |
634 // First, get the default languages list: | 635 // First, get the default languages list: |
635 std::vector<std::string> default_supported_languages; | 636 std::vector<std::string> default_supported_languages; |
636 TranslateManager::GetSupportedLanguages(&default_supported_languages); | 637 TranslateManager::GetSupportedLanguages(&default_supported_languages); |
637 // To make sure we got the defaults and don't confuse them with the mocks. | 638 // To make sure we got the defaults and don't confuse them with the mocks. |
638 ASSERT_NE(default_supported_languages.size(), server_languages.size()); | 639 ASSERT_NE(default_supported_languages.size(), server_languages.size()); |
639 | 640 |
640 Profile* profile = | 641 Profile* profile = |
641 Profile::FromBrowserContext(web_contents()->GetBrowserContext()); | 642 Profile::FromBrowserContext(web_contents()->GetBrowserContext()); |
642 PrefService* prefs = profile->GetPrefs(); | 643 PrefService* prefs = profile->GetPrefs(); |
643 TranslateManager::GetInstance()->FetchLanguageListFromTranslateServer(prefs); | 644 TranslateManager::GetInstance()->FetchLanguageListFromTranslateServer(prefs); |
644 | 645 |
645 // Check that we still get the defaults until the URLFetch has completed. | 646 // Check that we still get the defaults until the URLFetch has completed. |
646 std::vector<std::string> current_supported_languages; | 647 std::vector<std::string> current_supported_languages; |
647 TranslateManager::GetSupportedLanguages(¤t_supported_languages); | 648 TranslateManager::GetSupportedLanguages(¤t_supported_languages); |
648 EXPECT_EQ(default_supported_languages, current_supported_languages); | 649 EXPECT_EQ(default_supported_languages, current_supported_languages); |
649 | 650 |
650 // Also check that it didn't change if we failed the URL fetch. | 651 // Also check that it didn't change if we failed the URL fetch. |
651 SimulateSupportedLanguagesURLFetch(false, std::vector<std::string>()); | 652 SimulateSupportedLanguagesURLFetch(false, std::vector<std::string>()); |
652 current_supported_languages.clear(); | 653 current_supported_languages.clear(); |
653 TranslateManager::GetSupportedLanguages(¤t_supported_languages); | 654 TranslateManager::GetSupportedLanguages(¤t_supported_languages); |
654 EXPECT_EQ(default_supported_languages, current_supported_languages); | 655 EXPECT_EQ(default_supported_languages, current_supported_languages); |
655 | 656 |
656 // Now check that we got the appropriate set of languages from the server. | 657 // Now check that we got the appropriate set of languages from the server. |
657 TranslateManager::GetInstance()->FetchLanguageListFromTranslateServer(prefs); | 658 TranslateManager::GetInstance()->FetchLanguageListFromTranslateServer(prefs); |
658 SimulateSupportedLanguagesURLFetch(true, server_languages); | 659 SimulateSupportedLanguagesURLFetch(true, server_languages); |
659 current_supported_languages.clear(); | 660 current_supported_languages.clear(); |
660 TranslateManager::GetSupportedLanguages(¤t_supported_languages); | 661 TranslateManager::GetSupportedLanguages(¤t_supported_languages); |
| 662 // "xx" can't be displayed in the Translate inforbar, so this is eliminated. |
| 663 EXPECT_EQ(server_languages.size() - 1, current_supported_languages.size()); |
661 // Not sure we need to guarantee the order of languages, so we find them. | 664 // Not sure we need to guarantee the order of languages, so we find them. |
662 EXPECT_EQ(server_languages.size(), current_supported_languages.size()); | |
663 for (size_t i = 0; i < server_languages.size(); ++i) { | 665 for (size_t i = 0; i < server_languages.size(); ++i) { |
| 666 if (server_languages[i] == "xx") |
| 667 continue; |
664 EXPECT_NE(current_supported_languages.end(), | 668 EXPECT_NE(current_supported_languages.end(), |
665 std::find(current_supported_languages.begin(), | 669 std::find(current_supported_languages.begin(), |
666 current_supported_languages.end(), | 670 current_supported_languages.end(), |
667 server_languages[i])); | 671 server_languages[i])); |
668 } | 672 } |
669 } | 673 } |
670 | 674 |
671 std::string GetLanguageListString( | 675 std::string GetLanguageListString( |
672 const std::vector<std::string>& language_list) { | 676 const std::vector<std::string>& language_list) { |
673 // The translate manager is expecting a JSON string like: | 677 // The translate manager is expecting a JSON string like: |
(...skipping 849 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1523 WebContents* current_web_contents = | 1527 WebContents* current_web_contents = |
1524 browser()->tab_strip_model()->GetActiveWebContents(); | 1528 browser()->tab_strip_model()->GetActiveWebContents(); |
1525 content::Source<WebContents> source(current_web_contents); | 1529 content::Source<WebContents> source(current_web_contents); |
1526 | 1530 |
1527 ui_test_utils::WindowedNotificationObserverWithDetails< | 1531 ui_test_utils::WindowedNotificationObserverWithDetails< |
1528 LanguageDetectionDetails> | 1532 LanguageDetectionDetails> |
1529 fr_language_detected_signal(chrome::NOTIFICATION_TAB_LANGUAGE_DETERMINED, | 1533 fr_language_detected_signal(chrome::NOTIFICATION_TAB_LANGUAGE_DETERMINED, |
1530 source); | 1534 source); |
1531 fr_language_detected_signal.Wait(); | 1535 fr_language_detected_signal.Wait(); |
1532 } | 1536 } |
OLD | NEW |