Index: chrome/common/metrics/metrics_util_unittest.cc |
diff --git a/chrome/common/metrics/metrics_util_unittest.cc b/chrome/common/metrics/metrics_util_unittest.cc |
index 7c21dfd49ec924855217b1c9f4fdbdd076eac4ba..110ce118d0a39fe19bb7bf86a84e867e743e2eb1 100644 |
--- a/chrome/common/metrics/metrics_util_unittest.cc |
+++ b/chrome/common/metrics/metrics_util_unittest.cc |
@@ -27,4 +27,26 @@ TEST(MetricsUtilTest, HashName) { |
EXPECT_EQ(known_hashes[i].hash_value, HashName(known_hashes[i].name)); |
} |
+TEST(MetricsUtilTest, ToLanguageCode) { |
+ const int SPANISH = 25971; |
+ const int JAPANESE = 27233; |
+ |
+ // Basic case. |
+ EXPECT_EQ(JAPANESE, ToLanguageCode("ja")); |
+ |
+ // Case is ignored. |
+ EXPECT_EQ(SPANISH, ToLanguageCode("Es")); |
+ |
+ // Coutry code is ignored. |
+ EXPECT_EQ(JAPANESE, ToLanguageCode("ja-JP")); |
+ |
+ // Invalid locales are considered as unknown language. |
+ EXPECT_EQ(0, ToLanguageCode(std::string())); |
+ EXPECT_EQ(0, ToLanguageCode("1234")); |
+ |
+ // "xx" is not acceptable because it doesn't exist in ISO 639-1 table. |
+ // However, LanguageUsageMetrics doesn't tell what code is valid. |
+ EXPECT_EQ(30840, ToLanguageCode("xx")); |
+} |
+ |
} // namespace metrics |