Home | History | Annotate | Download | only in translate
      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