| OLD | NEW |
| 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 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/language_usage_metrics.h" | 5 #include "chrome/browser/language_usage_metrics.h" |
| 6 | 6 |
| 7 #include "testing/gtest/include/gtest/gtest.h" | 7 #include "testing/gtest/include/gtest/gtest.h" |
| 8 | 8 |
| 9 TEST(LanguageUsageMetricsTest, ParseAcceptLanguages) { | 9 TEST(LanguageUsageMetricsTest, ParseAcceptLanguages) { |
| 10 std::set<int> language_set; | 10 std::set<int> language_set; |
| (...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 72 LanguageUsageMetrics::ParseAcceptLanguages(",es", &language_set); | 72 LanguageUsageMetrics::ParseAcceptLanguages(",es", &language_set); |
| 73 EXPECT_EQ(1U, language_set.size()); | 73 EXPECT_EQ(1U, language_set.size()); |
| 74 EXPECT_EQ(SPANISH, *language_set.begin()); | 74 EXPECT_EQ(SPANISH, *language_set.begin()); |
| 75 | 75 |
| 76 // Combination of invalid and valid. | 76 // Combination of invalid and valid. |
| 77 LanguageUsageMetrics::ParseAcceptLanguages("1234,en", &language_set); | 77 LanguageUsageMetrics::ParseAcceptLanguages("1234,en", &language_set); |
| 78 EXPECT_EQ(1U, language_set.size()); | 78 EXPECT_EQ(1U, language_set.size()); |
| 79 it = language_set.begin(); | 79 it = language_set.begin(); |
| 80 EXPECT_EQ(ENGLISH, *it); | 80 EXPECT_EQ(ENGLISH, *it); |
| 81 } | 81 } |
| 82 | |
| 83 TEST(LanguageUsageMetricsTest, ToLanguageCode) { | |
| 84 const int SPANISH = 25971; | |
| 85 const int JAPANESE = 27233; | |
| 86 | |
| 87 // Basic case. | |
| 88 EXPECT_EQ(JAPANESE, LanguageUsageMetrics::ToLanguageCode("ja")); | |
| 89 | |
| 90 // Case is ignored. | |
| 91 EXPECT_EQ(SPANISH, LanguageUsageMetrics::ToLanguageCode("Es")); | |
| 92 | |
| 93 // Coutry code is ignored. | |
| 94 EXPECT_EQ(JAPANESE, LanguageUsageMetrics::ToLanguageCode("ja-JP")); | |
| 95 | |
| 96 // Invalid locales are considered as unknown language. | |
| 97 EXPECT_EQ(0, LanguageUsageMetrics::ToLanguageCode(std::string())); | |
| 98 EXPECT_EQ(0, LanguageUsageMetrics::ToLanguageCode("1234")); | |
| 99 | |
| 100 // "xx" is not acceptable because it doesn't exist in ISO 639-1 table. | |
| 101 // However, LanguageUsageMetrics doesn't tell what code is valid. | |
| 102 EXPECT_EQ(30840, LanguageUsageMetrics::ToLanguageCode("xx")); | |
| 103 } | |
| OLD | NEW |