1 // Copyright 2013 The Chromium Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style license that can be 3 // found in the LICENSE file. 4 5 #include "chrome/browser/translate/translate_prefs.h" 6 7 #include <algorithm> 8 #include <string> 9 #include <vector> 10 11 #include "testing/gtest/include/gtest/gtest.h" 12 13 class TranslatePrefsTest : public testing::Test { 14 public: 15 TranslatePrefsTest() {} 16 virtual ~TranslatePrefsTest() {} 17 }; 18 19 TEST_F(TranslatePrefsTest, CreateBlockedLanguages) { 20 std::vector<std::string> blacklisted_languages; 21 blacklisted_languages.push_back("en"); 22 blacklisted_languages.push_back("fr"); 23 // Hebrew: synonym to 'he' 24 blacklisted_languages.push_back("iw"); 25 // Haitian is not used as Accept-Language 26 blacklisted_languages.push_back("ht"); 27 28 std::vector<std::string> accept_languages; 29 accept_languages.push_back("en"); 30 accept_languages.push_back("ja"); 31 // Filippino: synonym to 'tl' 32 accept_languages.push_back("fil"); 33 // General Chinese is not used as Translate language, but not filtered 34 // when merging. 35 accept_languages.push_back("zh"); 36 37 std::vector<std::string> blocked_languages; 38 39 TranslatePrefs::CreateBlockedLanguages(&blocked_languages, 40 blacklisted_languages, 41 accept_languages); 42 43 // The order of the elements cannot be determined. 44 std::vector<std::string> expected; 45 expected.push_back("en"); 46 expected.push_back("fr"); 47 expected.push_back("iw"); 48 expected.push_back("ht"); 49 expected.push_back("ja"); 50 expected.push_back("tl"); 51 expected.push_back("zh"); 52 53 EXPECT_EQ(expected.size(), blocked_languages.size()); 54 for (std::vector<std::string>::const_iterator it = expected.begin(); 55 it != expected.end(); ++it) { 56 EXPECT_NE(blocked_languages.end(), 57 std::find(blocked_languages.begin(), 58 blocked_languages.end(), 59 *it)); 60 } 61 } 62