OLD | NEW |
1 // Copyright 2013 The Chromium Authors. All rights reserved. | 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 | 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 "chrome/browser/translate/translate_prefs.h" | 5 #include "chrome/browser/translate/translate_prefs.h" |
6 | 6 |
7 #include <algorithm> | 7 #include <algorithm> |
8 #include <string> | 8 #include <string> |
9 #include <vector> | 9 #include <vector> |
10 | 10 |
11 #include "chrome/test/base/scoped_browser_locale.h" | 11 #include "chrome/test/base/scoped_browser_locale.h" |
12 #include "testing/gtest/include/gtest/gtest.h" | 12 #include "testing/gtest/include/gtest/gtest.h" |
13 | 13 |
14 TEST(TranslatePrefsTest, CreateBlockedLanguages) { | 14 TEST(TranslatePrefsTest, CreateBlockedLanguages) { |
15 std::vector<std::string> blacklisted_languages; | 15 std::vector<std::string> blacklisted_languages; |
16 blacklisted_languages.push_back("en"); | 16 blacklisted_languages.push_back("en"); |
17 blacklisted_languages.push_back("fr"); | 17 blacklisted_languages.push_back("fr"); |
18 // Hebrew: synonym to 'he' | 18 // Hebrew: synonym to 'he' |
19 blacklisted_languages.push_back("iw"); | 19 blacklisted_languages.push_back("iw"); |
20 // Haitian is not used as Accept-Language | 20 // Haitian is not used as Accept-Language |
21 blacklisted_languages.push_back("ht"); | 21 blacklisted_languages.push_back("ht"); |
22 | 22 |
23 std::vector<std::string> accept_languages; | 23 std::vector<std::string> accept_languages; |
24 accept_languages.push_back("en"); | 24 accept_languages.push_back("en"); |
| 25 // The subcode (IT) will be ignored when merging, except for Chinese. |
| 26 accept_languages.push_back("it-IT"); |
25 accept_languages.push_back("ja"); | 27 accept_languages.push_back("ja"); |
26 // Filippino: synonym to 'tl' | 28 // Filippino: synonym to 'tl' |
27 accept_languages.push_back("fil"); | 29 accept_languages.push_back("fil"); |
28 // General Chinese is not used as Translate language, but not filtered | 30 // General Chinese is not used as Translate language, but not filtered |
29 // when merging. | 31 // when merging. |
30 accept_languages.push_back("zh"); | 32 accept_languages.push_back("zh"); |
| 33 // Chinese with a sub code is acceptable for the blocked-language list. |
| 34 accept_languages.push_back("zh-TW"); |
31 | 35 |
32 std::vector<std::string> blocked_languages; | 36 std::vector<std::string> blocked_languages; |
33 | 37 |
34 TranslatePrefs::CreateBlockedLanguages(&blocked_languages, | 38 TranslatePrefs::CreateBlockedLanguages(&blocked_languages, |
35 blacklisted_languages, | 39 blacklisted_languages, |
36 accept_languages); | 40 accept_languages); |
37 | 41 |
38 // The order of the elements cannot be determined. | 42 // The order of the elements cannot be determined. |
39 std::vector<std::string> expected; | 43 std::vector<std::string> expected; |
40 expected.push_back("en"); | 44 expected.push_back("en"); |
41 expected.push_back("fr"); | 45 expected.push_back("fr"); |
42 expected.push_back("iw"); | 46 expected.push_back("iw"); |
43 expected.push_back("ht"); | 47 expected.push_back("ht"); |
| 48 expected.push_back("it"); |
44 expected.push_back("ja"); | 49 expected.push_back("ja"); |
45 expected.push_back("tl"); | 50 expected.push_back("tl"); |
46 expected.push_back("zh"); | 51 expected.push_back("zh"); |
| 52 expected.push_back("zh-TW"); |
47 | 53 |
48 EXPECT_EQ(expected.size(), blocked_languages.size()); | 54 EXPECT_EQ(expected.size(), blocked_languages.size()); |
49 for (std::vector<std::string>::const_iterator it = expected.begin(); | 55 for (std::vector<std::string>::const_iterator it = expected.begin(); |
50 it != expected.end(); ++it) { | 56 it != expected.end(); ++it) { |
51 EXPECT_NE(blocked_languages.end(), | 57 EXPECT_NE(blocked_languages.end(), |
52 std::find(blocked_languages.begin(), | 58 std::find(blocked_languages.begin(), |
53 blocked_languages.end(), | 59 blocked_languages.end(), |
54 *it)); | 60 *it)); |
55 } | 61 } |
56 } | 62 } |
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
104 EXPECT_EQ(expected.size(), blocked_languages.size()); | 110 EXPECT_EQ(expected.size(), blocked_languages.size()); |
105 for (std::vector<std::string>::const_iterator it = expected.begin(); | 111 for (std::vector<std::string>::const_iterator it = expected.begin(); |
106 it != expected.end(); ++it) { | 112 it != expected.end(); ++it) { |
107 EXPECT_NE(blocked_languages.end(), | 113 EXPECT_NE(blocked_languages.end(), |
108 std::find(blocked_languages.begin(), | 114 std::find(blocked_languages.begin(), |
109 blocked_languages.end(), | 115 blocked_languages.end(), |
110 *it)); | 116 *it)); |
111 } | 117 } |
112 } | 118 } |
113 } | 119 } |
OLD | NEW |