| OLD | NEW |
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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 "components/translate/core/common/translate_metrics.h" | 5 #include "components/translate/core/common/translate_metrics.h" |
| 6 | 6 |
| 7 #include <memory> | 7 #include <memory> |
| 8 | 8 |
| 9 #include "base/macros.h" | 9 #include "base/macros.h" |
| 10 #include "base/metrics/histogram.h" | 10 #include "base/metrics/histogram.h" |
| (...skipping 19 matching lines...) Expand all Loading... |
| 30 class MetricsRecorder { | 30 class MetricsRecorder { |
| 31 public: | 31 public: |
| 32 explicit MetricsRecorder(const char* key) : key_(key) { | 32 explicit MetricsRecorder(const char* key) : key_(key) { |
| 33 StatisticsRecorder::Initialize(); | 33 StatisticsRecorder::Initialize(); |
| 34 | 34 |
| 35 HistogramBase* histogram = StatisticsRecorder::FindHistogram(key_); | 35 HistogramBase* histogram = StatisticsRecorder::FindHistogram(key_); |
| 36 if (histogram) | 36 if (histogram) |
| 37 base_samples_ = histogram->SnapshotSamples(); | 37 base_samples_ = histogram->SnapshotSamples(); |
| 38 } | 38 } |
| 39 | 39 |
| 40 void CheckLanguage(translate::MetricsNameIndex index, | 40 void CheckLanguage(const char* metric_name, |
| 41 int expected_not_provided, | 41 int expected_not_provided, |
| 42 int expected_valid, | 42 int expected_valid, |
| 43 int expected_invalid) { | 43 int expected_invalid) { |
| 44 ASSERT_EQ(translate::GetMetricsName(index), key_); | 44 ASSERT_EQ(metric_name, key_); |
| 45 | 45 |
| 46 Snapshot(); | 46 Snapshot(); |
| 47 | 47 |
| 48 EXPECT_EQ(expected_not_provided, | 48 EXPECT_EQ(expected_not_provided, |
| 49 GetCountWithoutSnapshot(translate::LANGUAGE_NOT_PROVIDED)); | 49 GetCountWithoutSnapshot(translate::LANGUAGE_NOT_PROVIDED)); |
| 50 EXPECT_EQ(expected_valid, | 50 EXPECT_EQ(expected_valid, |
| 51 GetCountWithoutSnapshot(translate::LANGUAGE_VALID)); | 51 GetCountWithoutSnapshot(translate::LANGUAGE_VALID)); |
| 52 EXPECT_EQ(expected_invalid, | 52 EXPECT_EQ(expected_invalid, |
| 53 GetCountWithoutSnapshot(translate::LANGUAGE_INVALID)); | 53 GetCountWithoutSnapshot(translate::LANGUAGE_INVALID)); |
| 54 } | 54 } |
| 55 | 55 |
| 56 void CheckLanguageVerification(int expected_cld_disabled, | 56 void CheckLanguageVerification(int expected_cld_disabled, |
| 57 int expected_cld_only, | 57 int expected_cld_only, |
| 58 int expected_unknown, | 58 int expected_unknown, |
| 59 int expected_cld_agree, | 59 int expected_cld_agree, |
| 60 int expected_cld_disagree, | 60 int expected_cld_disagree, |
| 61 int expected_trust_cld, | 61 int expected_trust_cld, |
| 62 int expected_cld_complement_sub_code) { | 62 int expected_cld_complement_sub_code) { |
| 63 ASSERT_EQ(translate::GetMetricsName(translate::UMA_LANGUAGE_VERIFICATION), | 63 ASSERT_EQ(translate::metrics_internal::kTranslateLanguageVerification, |
| 64 key_); | 64 key_); |
| 65 | 65 |
| 66 Snapshot(); | 66 Snapshot(); |
| 67 | 67 |
| 68 EXPECT_EQ( | 68 EXPECT_EQ( |
| 69 expected_cld_disabled, | 69 expected_cld_disabled, |
| 70 GetCountWithoutSnapshot(translate::LANGUAGE_VERIFICATION_CLD_DISABLED)); | 70 GetCountWithoutSnapshot(translate::LANGUAGE_VERIFICATION_CLD_DISABLED)); |
| 71 EXPECT_EQ( | 71 EXPECT_EQ( |
| 72 expected_cld_only, | 72 expected_cld_only, |
| 73 GetCountWithoutSnapshot(translate::LANGUAGE_VERIFICATION_CLD_ONLY)); | 73 GetCountWithoutSnapshot(translate::LANGUAGE_VERIFICATION_CLD_ONLY)); |
| 74 EXPECT_EQ( | 74 EXPECT_EQ(expected_unknown, GetCountWithoutSnapshot( |
| 75 expected_unknown, | 75 translate::LANGUAGE_VERIFICATION_UNKNOWN)); |
| 76 GetCountWithoutSnapshot(translate::LANGUAGE_VERIFICATION_UNKNOWN)); | |
| 77 EXPECT_EQ( | 76 EXPECT_EQ( |
| 78 expected_cld_agree, | 77 expected_cld_agree, |
| 79 GetCountWithoutSnapshot(translate::LANGUAGE_VERIFICATION_CLD_AGREE)); | 78 GetCountWithoutSnapshot(translate::LANGUAGE_VERIFICATION_CLD_AGREE)); |
| 80 EXPECT_EQ( | 79 EXPECT_EQ( |
| 81 expected_cld_disagree, | 80 expected_cld_disagree, |
| 82 GetCountWithoutSnapshot(translate::LANGUAGE_VERIFICATION_CLD_DISAGREE)); | 81 GetCountWithoutSnapshot(translate::LANGUAGE_VERIFICATION_CLD_DISAGREE)); |
| 83 EXPECT_EQ( | 82 EXPECT_EQ( |
| 84 expected_trust_cld, | 83 expected_trust_cld, |
| 85 GetCountWithoutSnapshot(translate::LANGUAGE_VERIFICATION_TRUST_CLD)); | 84 GetCountWithoutSnapshot(translate::LANGUAGE_VERIFICATION_TRUST_CLD)); |
| 86 EXPECT_EQ(expected_cld_complement_sub_code, | 85 EXPECT_EQ(expected_cld_complement_sub_code, |
| 87 GetCountWithoutSnapshot( | 86 GetCountWithoutSnapshot( |
| 88 translate::LANGUAGE_VERIFICATION_CLD_COMPLEMENT_SUB_CODE)); | 87 translate::LANGUAGE_VERIFICATION_CLD_COMPLEMENT_SUB_CODE)); |
| 89 } | 88 } |
| 90 | 89 |
| 91 void CheckScheme(int expected_http, int expected_https, int expected_others) { | 90 void CheckScheme(int expected_http, int expected_https, int expected_others) { |
| 92 ASSERT_EQ(translate::GetMetricsName(translate::UMA_PAGE_SCHEME), key_); | 91 ASSERT_EQ(translate::metrics_internal::kTranslatePageScheme, key_); |
| 93 | 92 |
| 94 Snapshot(); | 93 Snapshot(); |
| 95 | 94 |
| 96 EXPECT_EQ(expected_http, GetCountWithoutSnapshot(translate::SCHEME_HTTP)); | 95 EXPECT_EQ(expected_http, GetCountWithoutSnapshot(translate::SCHEME_HTTP)); |
| 97 EXPECT_EQ(expected_https, GetCountWithoutSnapshot(translate::SCHEME_HTTPS)); | 96 EXPECT_EQ(expected_https, GetCountWithoutSnapshot(translate::SCHEME_HTTPS)); |
| 98 EXPECT_EQ(expected_others, | 97 EXPECT_EQ(expected_others, |
| 99 GetCountWithoutSnapshot(translate::SCHEME_OTHERS)); | 98 GetCountWithoutSnapshot(translate::SCHEME_OTHERS)); |
| 100 } | 99 } |
| 101 | 100 |
| 102 void CheckTotalCount(int count) { | 101 void CheckTotalCount(int count) { |
| (...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 154 std::unique_ptr<HistogramSamples> base_samples_; | 153 std::unique_ptr<HistogramSamples> base_samples_; |
| 155 std::unique_ptr<HistogramSamples> samples_; | 154 std::unique_ptr<HistogramSamples> samples_; |
| 156 | 155 |
| 157 DISALLOW_COPY_AND_ASSIGN(MetricsRecorder); | 156 DISALLOW_COPY_AND_ASSIGN(MetricsRecorder); |
| 158 }; | 157 }; |
| 159 | 158 |
| 160 } // namespace | 159 } // namespace |
| 161 | 160 |
| 162 TEST(TranslateMetricsTest, ReportContentLanguage) { | 161 TEST(TranslateMetricsTest, ReportContentLanguage) { |
| 163 MetricsRecorder recorder( | 162 MetricsRecorder recorder( |
| 164 translate::GetMetricsName(translate::UMA_CONTENT_LANGUAGE)); | 163 translate::metrics_internal::kTranslateContentLanguage); |
| 165 | 164 |
| 166 recorder.CheckLanguage(translate::UMA_CONTENT_LANGUAGE, 0, 0, 0); | 165 recorder.CheckLanguage(translate::metrics_internal::kTranslateContentLanguage, |
| 166 0, 0, 0); |
| 167 translate::ReportContentLanguage(std::string(), std::string()); | 167 translate::ReportContentLanguage(std::string(), std::string()); |
| 168 recorder.CheckLanguage(translate::UMA_CONTENT_LANGUAGE, 1, 0, 0); | 168 recorder.CheckLanguage(translate::metrics_internal::kTranslateContentLanguage, |
| 169 1, 0, 0); |
| 169 translate::ReportContentLanguage("ja_JP", "ja-JP"); | 170 translate::ReportContentLanguage("ja_JP", "ja-JP"); |
| 170 recorder.CheckLanguage(translate::UMA_CONTENT_LANGUAGE, 1, 0, 1); | 171 recorder.CheckLanguage(translate::metrics_internal::kTranslateContentLanguage, |
| 172 1, 0, 1); |
| 171 translate::ReportContentLanguage("en", "en"); | 173 translate::ReportContentLanguage("en", "en"); |
| 172 recorder.CheckLanguage(translate::UMA_CONTENT_LANGUAGE, 1, 1, 1); | 174 recorder.CheckLanguage(translate::metrics_internal::kTranslateContentLanguage, |
| 175 1, 1, 1); |
| 173 } | 176 } |
| 174 | 177 |
| 175 TEST(TranslateMetricsTest, ReportHtmlLang) { | 178 TEST(TranslateMetricsTest, ReportHtmlLang) { |
| 176 MetricsRecorder recorder(translate::GetMetricsName(translate::UMA_HTML_LANG)); | 179 MetricsRecorder recorder(translate::metrics_internal::kTranslateHtmlLang); |
| 177 | 180 |
| 178 recorder.CheckLanguage(translate::UMA_HTML_LANG, 0, 0, 0); | 181 recorder.CheckLanguage(translate::metrics_internal::kTranslateHtmlLang, 0, 0, |
| 182 0); |
| 179 translate::ReportHtmlLang(std::string(), std::string()); | 183 translate::ReportHtmlLang(std::string(), std::string()); |
| 180 recorder.CheckLanguage(translate::UMA_HTML_LANG, 1, 0, 0); | 184 recorder.CheckLanguage(translate::metrics_internal::kTranslateHtmlLang, 1, 0, |
| 185 0); |
| 181 translate::ReportHtmlLang("ja_JP", "ja-JP"); | 186 translate::ReportHtmlLang("ja_JP", "ja-JP"); |
| 182 recorder.CheckLanguage(translate::UMA_HTML_LANG, 1, 0, 1); | 187 recorder.CheckLanguage(translate::metrics_internal::kTranslateHtmlLang, 1, 0, |
| 188 1); |
| 183 translate::ReportHtmlLang("en", "en"); | 189 translate::ReportHtmlLang("en", "en"); |
| 184 recorder.CheckLanguage(translate::UMA_HTML_LANG, 1, 1, 1); | 190 recorder.CheckLanguage(translate::metrics_internal::kTranslateHtmlLang, 1, 1, |
| 191 1); |
| 185 } | 192 } |
| 186 | 193 |
| 187 TEST(TranslateMetricsTest, ReportLanguageVerification) { | 194 TEST(TranslateMetricsTest, ReportLanguageVerification) { |
| 188 MetricsRecorder recorder( | 195 MetricsRecorder recorder( |
| 189 translate::GetMetricsName(translate::UMA_LANGUAGE_VERIFICATION)); | 196 translate::metrics_internal::kTranslateLanguageVerification); |
| 190 | 197 |
| 191 recorder.CheckLanguageVerification(0, 0, 0, 0, 0, 0, 0); | 198 recorder.CheckLanguageVerification(0, 0, 0, 0, 0, 0, 0); |
| 192 translate::ReportLanguageVerification( | 199 translate::ReportLanguageVerification( |
| 193 translate::LANGUAGE_VERIFICATION_CLD_DISABLED); | 200 translate::LANGUAGE_VERIFICATION_CLD_DISABLED); |
| 194 recorder.CheckLanguageVerification(1, 0, 0, 0, 0, 0, 0); | 201 recorder.CheckLanguageVerification(1, 0, 0, 0, 0, 0, 0); |
| 195 translate::ReportLanguageVerification( | 202 translate::ReportLanguageVerification( |
| 196 translate::LANGUAGE_VERIFICATION_CLD_ONLY); | 203 translate::LANGUAGE_VERIFICATION_CLD_ONLY); |
| 197 recorder.CheckLanguageVerification(1, 1, 0, 0, 0, 0, 0); | 204 recorder.CheckLanguageVerification(1, 1, 0, 0, 0, 0, 0); |
| 198 translate::ReportLanguageVerification( | 205 translate::ReportLanguageVerification( |
| 199 translate::LANGUAGE_VERIFICATION_UNKNOWN); | 206 translate::LANGUAGE_VERIFICATION_UNKNOWN); |
| 200 recorder.CheckLanguageVerification(1, 1, 1, 0, 0, 0, 0); | 207 recorder.CheckLanguageVerification(1, 1, 1, 0, 0, 0, 0); |
| 201 translate::ReportLanguageVerification( | 208 translate::ReportLanguageVerification( |
| 202 translate::LANGUAGE_VERIFICATION_CLD_AGREE); | 209 translate::LANGUAGE_VERIFICATION_CLD_AGREE); |
| 203 recorder.CheckLanguageVerification(1, 1, 1, 1, 0, 0, 0); | 210 recorder.CheckLanguageVerification(1, 1, 1, 1, 0, 0, 0); |
| 204 translate::ReportLanguageVerification( | 211 translate::ReportLanguageVerification( |
| 205 translate::LANGUAGE_VERIFICATION_CLD_DISAGREE); | 212 translate::LANGUAGE_VERIFICATION_CLD_DISAGREE); |
| 206 recorder.CheckLanguageVerification(1, 1, 1, 1, 1, 0, 0); | 213 recorder.CheckLanguageVerification(1, 1, 1, 1, 1, 0, 0); |
| 207 translate::ReportLanguageVerification( | 214 translate::ReportLanguageVerification( |
| 208 translate::LANGUAGE_VERIFICATION_TRUST_CLD); | 215 translate::LANGUAGE_VERIFICATION_TRUST_CLD); |
| 209 recorder.CheckLanguageVerification(1, 1, 1, 1, 1, 1, 0); | 216 recorder.CheckLanguageVerification(1, 1, 1, 1, 1, 1, 0); |
| 210 translate::ReportLanguageVerification( | 217 translate::ReportLanguageVerification( |
| 211 translate::LANGUAGE_VERIFICATION_CLD_COMPLEMENT_SUB_CODE); | 218 translate::LANGUAGE_VERIFICATION_CLD_COMPLEMENT_SUB_CODE); |
| 212 recorder.CheckLanguageVerification(1, 1, 1, 1, 1, 1, 1); | 219 recorder.CheckLanguageVerification(1, 1, 1, 1, 1, 1, 1); |
| 213 } | 220 } |
| 214 | 221 |
| 215 TEST(TranslateMetricsTest, ReportTimeToBeReady) { | 222 TEST(TranslateMetricsTest, ReportTimeToBeReady) { |
| 216 MetricsRecorder recorder( | 223 MetricsRecorder recorder( |
| 217 translate::GetMetricsName(translate::UMA_TIME_TO_BE_READY)); | 224 translate::metrics_internal::kTranslateTimeToBeReady); |
| 218 recorder.CheckTotalCount(0); | 225 recorder.CheckTotalCount(0); |
| 219 translate::ReportTimeToBeReady(3.14); | 226 translate::ReportTimeToBeReady(3.14); |
| 220 recorder.CheckValueInLogs(3.14); | 227 recorder.CheckValueInLogs(3.14); |
| 221 recorder.CheckTotalCount(1); | 228 recorder.CheckTotalCount(1); |
| 222 } | 229 } |
| 223 | 230 |
| 224 TEST(TranslateMetricsTest, ReportTimeToLoad) { | 231 TEST(TranslateMetricsTest, ReportTimeToLoad) { |
| 225 MetricsRecorder recorder( | 232 MetricsRecorder recorder(translate::metrics_internal::kTranslateTimeToLoad); |
| 226 translate::GetMetricsName(translate::UMA_TIME_TO_LOAD)); | |
| 227 recorder.CheckTotalCount(0); | 233 recorder.CheckTotalCount(0); |
| 228 translate::ReportTimeToLoad(573.0); | 234 translate::ReportTimeToLoad(573.0); |
| 229 recorder.CheckValueInLogs(573.0); | 235 recorder.CheckValueInLogs(573.0); |
| 230 recorder.CheckTotalCount(1); | 236 recorder.CheckTotalCount(1); |
| 231 } | 237 } |
| 232 | 238 |
| 233 TEST(TranslateMetricsTest, ReportTimeToTranslate) { | 239 TEST(TranslateMetricsTest, ReportTimeToTranslate) { |
| 234 MetricsRecorder recorder( | 240 MetricsRecorder recorder( |
| 235 translate::GetMetricsName(translate::UMA_TIME_TO_TRANSLATE)); | 241 translate::metrics_internal::kTranslateTimeToTranslate); |
| 236 recorder.CheckTotalCount(0); | 242 recorder.CheckTotalCount(0); |
| 237 translate::ReportTimeToTranslate(4649.0); | 243 translate::ReportTimeToTranslate(4649.0); |
| 238 recorder.CheckValueInLogs(4649.0); | 244 recorder.CheckValueInLogs(4649.0); |
| 239 recorder.CheckTotalCount(1); | 245 recorder.CheckTotalCount(1); |
| 240 } | 246 } |
| 241 | 247 |
| 242 TEST(TranslateMetricsTest, ReportUserActionDuration) { | 248 TEST(TranslateMetricsTest, ReportUserActionDuration) { |
| 243 MetricsRecorder recorder( | 249 MetricsRecorder recorder( |
| 244 translate::GetMetricsName(translate::UMA_USER_ACTION_DURATION)); | 250 translate::metrics_internal::kTranslateUserActionDuration); |
| 245 recorder.CheckTotalCount(0); | 251 recorder.CheckTotalCount(0); |
| 246 TimeTicks begin = TimeTicks::Now(); | 252 TimeTicks begin = TimeTicks::Now(); |
| 247 TimeTicks end = begin + base::TimeDelta::FromSeconds(3776); | 253 TimeTicks end = begin + base::TimeDelta::FromSeconds(3776); |
| 248 translate::ReportUserActionDuration(begin, end); | 254 translate::ReportUserActionDuration(begin, end); |
| 249 recorder.CheckValueInLogs(3776000.0); | 255 recorder.CheckValueInLogs(3776000.0); |
| 250 recorder.CheckTotalCount(1); | 256 recorder.CheckTotalCount(1); |
| 251 } | 257 } |
| 252 | 258 |
| 253 TEST(TranslateMetricsTest, ReportPageScheme) { | 259 TEST(TranslateMetricsTest, ReportPageScheme) { |
| 254 MetricsRecorder recorder( | 260 MetricsRecorder recorder(translate::metrics_internal::kTranslatePageScheme); |
| 255 translate::GetMetricsName(translate::UMA_PAGE_SCHEME)); | |
| 256 recorder.CheckScheme(0, 0, 0); | 261 recorder.CheckScheme(0, 0, 0); |
| 257 translate::ReportPageScheme("http"); | 262 translate::ReportPageScheme("http"); |
| 258 recorder.CheckScheme(1, 0, 0); | 263 recorder.CheckScheme(1, 0, 0); |
| 259 translate::ReportPageScheme("https"); | 264 translate::ReportPageScheme("https"); |
| 260 recorder.CheckScheme(1, 1, 0); | 265 recorder.CheckScheme(1, 1, 0); |
| 261 translate::ReportPageScheme("ftp"); | 266 translate::ReportPageScheme("ftp"); |
| 262 recorder.CheckScheme(1, 1, 1); | 267 recorder.CheckScheme(1, 1, 1); |
| 263 } | 268 } |
| 264 | 269 |
| 265 TEST(TranslateMetricsTest, ReportSimilarLanguageMatch) { | 270 TEST(TranslateMetricsTest, ReportSimilarLanguageMatch) { |
| 266 MetricsRecorder recorder( | 271 MetricsRecorder recorder( |
| 267 translate::GetMetricsName(translate::UMA_SIMILAR_LANGUAGE_MATCH)); | 272 translate::metrics_internal::kTranslateSimilarLanguageMatch); |
| 268 recorder.CheckTotalCount(0); | 273 recorder.CheckTotalCount(0); |
| 269 EXPECT_EQ(0, recorder.GetCount(kTrue)); | 274 EXPECT_EQ(0, recorder.GetCount(kTrue)); |
| 270 EXPECT_EQ(0, recorder.GetCount(kFalse)); | 275 EXPECT_EQ(0, recorder.GetCount(kFalse)); |
| 271 translate::ReportSimilarLanguageMatch(true); | 276 translate::ReportSimilarLanguageMatch(true); |
| 272 EXPECT_EQ(1, recorder.GetCount(kTrue)); | 277 EXPECT_EQ(1, recorder.GetCount(kTrue)); |
| 273 EXPECT_EQ(0, recorder.GetCount(kFalse)); | 278 EXPECT_EQ(0, recorder.GetCount(kFalse)); |
| 274 translate::ReportSimilarLanguageMatch(false); | 279 translate::ReportSimilarLanguageMatch(false); |
| 275 EXPECT_EQ(1, recorder.GetCount(kTrue)); | 280 EXPECT_EQ(1, recorder.GetCount(kTrue)); |
| 276 EXPECT_EQ(1, recorder.GetCount(kFalse)); | 281 EXPECT_EQ(1, recorder.GetCount(kFalse)); |
| 277 } | 282 } |
| 278 | 283 |
| 279 TEST(TranslateMetricsTest, ReportLanguageDetectionTime) { | 284 TEST(TranslateMetricsTest, ReportLanguageDetectionTime) { |
| 280 MetricsRecorder recorder( | 285 MetricsRecorder recorder( |
| 281 translate::GetMetricsName(translate::UMA_LANGUAGE_DETECTION)); | 286 translate::metrics_internal::kRenderer4LanguageDetection); |
| 282 recorder.CheckTotalCount(0); | 287 recorder.CheckTotalCount(0); |
| 283 TimeTicks begin = TimeTicks::Now(); | 288 TimeTicks begin = TimeTicks::Now(); |
| 284 TimeTicks end = begin + base::TimeDelta::FromMicroseconds(9009); | 289 TimeTicks end = begin + base::TimeDelta::FromMicroseconds(9009); |
| 285 translate::ReportLanguageDetectionTime(begin, end); | 290 translate::ReportLanguageDetectionTime(begin, end); |
| 286 recorder.CheckValueInLogs(9.009); | 291 recorder.CheckValueInLogs(9.009); |
| 287 recorder.CheckTotalCount(1); | 292 recorder.CheckTotalCount(1); |
| 288 } | 293 } |
| 289 | 294 |
| 290 TEST(TranslateMetricsTest, ReportLanguageDetectionConflict) { | 295 TEST(TranslateMetricsTest, ReportLanguageDetectionConflict) { |
| 291 MetricsRecorder recorder( | 296 MetricsRecorder recorder( |
| 292 translate::GetMetricsName(translate::UMA_LANGUAGE_DETECTION_CONFLICT)); | 297 translate::metrics_internal::kTranslateLanguageDetectionConflict); |
| 293 recorder.CheckTotalCount(0); | 298 recorder.CheckTotalCount(0); |
| 294 | 299 |
| 295 translate::ReportLanguageDetectionConflict("en", "es"); | 300 translate::ReportLanguageDetectionConflict("en", "es"); |
| 296 recorder.CheckTotalCount(1); | 301 recorder.CheckTotalCount(1); |
| 297 EXPECT_EQ(recorder.GetCount(base::HashMetricName("en,es")), 1); | 302 EXPECT_EQ(recorder.GetCount(base::HashMetricName("en,es")), 1); |
| 298 | 303 |
| 299 translate::ReportLanguageDetectionConflict("en", "es"); | 304 translate::ReportLanguageDetectionConflict("en", "es"); |
| 300 recorder.CheckTotalCount(2); | 305 recorder.CheckTotalCount(2); |
| 301 EXPECT_EQ(recorder.GetCount(base::HashMetricName("en,es")), 2); | 306 EXPECT_EQ(recorder.GetCount(base::HashMetricName("en,es")), 2); |
| 302 | 307 |
| 303 translate::ReportLanguageDetectionConflict("en-AU", "ru-Latn"); | 308 translate::ReportLanguageDetectionConflict("en-AU", "ru-Latn"); |
| 304 recorder.CheckTotalCount(3); | 309 recorder.CheckTotalCount(3); |
| 305 EXPECT_EQ(recorder.GetCount(base::HashMetricName("en-AU,ru-Latn")), 1); | 310 EXPECT_EQ(recorder.GetCount(base::HashMetricName("en-AU,ru-Latn")), 1); |
| 306 | 311 |
| 307 // We don't track "en-XX" or "en-YY" as page codes. | 312 // We don't track "en-XX" or "en-YY" as page codes. |
| 308 translate::ReportLanguageDetectionConflict("en-XX", "es"); | 313 translate::ReportLanguageDetectionConflict("en-XX", "es"); |
| 309 translate::ReportLanguageDetectionConflict("en-YY", "es"); | 314 translate::ReportLanguageDetectionConflict("en-YY", "es"); |
| 310 recorder.CheckTotalCount(5); | 315 recorder.CheckTotalCount(5); |
| 311 EXPECT_EQ(recorder.GetCount(base::HashMetricName("other,es")), 2); | 316 EXPECT_EQ(recorder.GetCount(base::HashMetricName("other,es")), 2); |
| 312 } | 317 } |
| 313 | 318 |
| 314 } // namespace translate | 319 } // namespace translate |
| OLD | NEW |