15d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)// Copyright 2014 The Chromium Authors. All rights reserved. 2a93a17c8d99d686bd4a1511e5504e5e6cc9fcadfTorne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be 3a93a17c8d99d686bd4a1511e5504e5e6cc9fcadfTorne (Richard Coles)// found in the LICENSE file. 4a93a17c8d99d686bd4a1511e5504e5e6cc9fcadfTorne (Richard Coles) 55d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)#include "components/translate/core/browser/translate_browser_metrics.h" 6a93a17c8d99d686bd4a1511e5504e5e6cc9fcadfTorne (Richard Coles) 7a93a17c8d99d686bd4a1511e5504e5e6cc9fcadfTorne (Richard Coles)#include "base/basictypes.h" 8a93a17c8d99d686bd4a1511e5504e5e6cc9fcadfTorne (Richard Coles)#include "base/memory/scoped_ptr.h" 9a93a17c8d99d686bd4a1511e5504e5e6cc9fcadfTorne (Richard Coles)#include "base/metrics/histogram.h" 10a93a17c8d99d686bd4a1511e5504e5e6cc9fcadfTorne (Richard Coles)#include "base/metrics/histogram_samples.h" 11a93a17c8d99d686bd4a1511e5504e5e6cc9fcadfTorne (Richard Coles)#include "base/metrics/statistics_recorder.h" 12a93a17c8d99d686bd4a1511e5504e5e6cc9fcadfTorne (Richard Coles)#include "testing/gtest/include/gtest/gtest.h" 13a93a17c8d99d686bd4a1511e5504e5e6cc9fcadfTorne (Richard Coles)#include "testing/platform_test.h" 14a93a17c8d99d686bd4a1511e5504e5e6cc9fcadfTorne (Richard Coles) 15a93a17c8d99d686bd4a1511e5504e5e6cc9fcadfTorne (Richard Coles)using base::HistogramBase; 16a93a17c8d99d686bd4a1511e5504e5e6cc9fcadfTorne (Richard Coles)using base::HistogramSamples; 17a93a17c8d99d686bd4a1511e5504e5e6cc9fcadfTorne (Richard Coles)using base::StatisticsRecorder; 18a93a17c8d99d686bd4a1511e5504e5e6cc9fcadfTorne (Richard Coles) 19a93a17c8d99d686bd4a1511e5504e5e6cc9fcadfTorne (Richard Coles)namespace { 20a93a17c8d99d686bd4a1511e5504e5e6cc9fcadfTorne (Richard Coles) 21a93a17c8d99d686bd4a1511e5504e5e6cc9fcadfTorne (Richard Coles)class MetricsRecorder { 22a93a17c8d99d686bd4a1511e5504e5e6cc9fcadfTorne (Richard Coles) public: 237d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) explicit MetricsRecorder(const char* key) : key_(key) { 24a93a17c8d99d686bd4a1511e5504e5e6cc9fcadfTorne (Richard Coles) StatisticsRecorder::Initialize(); 25a93a17c8d99d686bd4a1511e5504e5e6cc9fcadfTorne (Richard Coles) 26a93a17c8d99d686bd4a1511e5504e5e6cc9fcadfTorne (Richard Coles) HistogramBase* histogram = StatisticsRecorder::FindHistogram(key_); 27a93a17c8d99d686bd4a1511e5504e5e6cc9fcadfTorne (Richard Coles) if (histogram) 28a93a17c8d99d686bd4a1511e5504e5e6cc9fcadfTorne (Richard Coles) base_samples_ = histogram->SnapshotSamples(); 29a93a17c8d99d686bd4a1511e5504e5e6cc9fcadfTorne (Richard Coles) } 30a93a17c8d99d686bd4a1511e5504e5e6cc9fcadfTorne (Richard Coles) 31a93a17c8d99d686bd4a1511e5504e5e6cc9fcadfTorne (Richard Coles) void CheckInitiationStatus(int expected_disabled_by_prefs, 32a93a17c8d99d686bd4a1511e5504e5e6cc9fcadfTorne (Richard Coles) int expected_disabled_by_switch, 33a93a17c8d99d686bd4a1511e5504e5e6cc9fcadfTorne (Richard Coles) int expected_disabled_by_config, 34a93a17c8d99d686bd4a1511e5504e5e6cc9fcadfTorne (Richard Coles) int expected_language_is_not_supported, 353240926e260ce088908e02ac07a6cf7b0c0cbf44Ben Murdoch int expected_mime_type_is_not_supported, 36a93a17c8d99d686bd4a1511e5504e5e6cc9fcadfTorne (Richard Coles) int expected_url_is_not_supported, 37a93a17c8d99d686bd4a1511e5504e5e6cc9fcadfTorne (Richard Coles) int expected_similar_languages, 38a93a17c8d99d686bd4a1511e5504e5e6cc9fcadfTorne (Richard Coles) int expected_accept_languages, 39a93a17c8d99d686bd4a1511e5504e5e6cc9fcadfTorne (Richard Coles) int expected_auto_by_config, 40a93a17c8d99d686bd4a1511e5504e5e6cc9fcadfTorne (Richard Coles) int expected_auto_by_link, 41a93a17c8d99d686bd4a1511e5504e5e6cc9fcadfTorne (Richard Coles) int expected_show_infobar) { 42a93a17c8d99d686bd4a1511e5504e5e6cc9fcadfTorne (Richard Coles) Snapshot(); 43a93a17c8d99d686bd4a1511e5504e5e6cc9fcadfTorne (Richard Coles) 445f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) EXPECT_EQ(expected_disabled_by_prefs, 455f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) GetCountWithoutSnapshot(translate::TranslateBrowserMetrics:: 465f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) INITIATION_STATUS_DISABLED_BY_PREFS)); 475f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) EXPECT_EQ( 485f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) expected_disabled_by_switch, 495f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) GetCountWithoutSnapshot(translate::TranslateBrowserMetrics:: 505f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) INITIATION_STATUS_DISABLED_BY_SWITCH)); 515f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) EXPECT_EQ( 525f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) expected_disabled_by_config, 535f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) GetCountWithoutSnapshot(translate::TranslateBrowserMetrics:: 545f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) INITIATION_STATUS_DISABLED_BY_CONFIG)); 555f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) EXPECT_EQ(expected_language_is_not_supported, 565f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) GetCountWithoutSnapshot( 575f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) translate::TranslateBrowserMetrics:: 585f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) INITIATION_STATUS_LANGUAGE_IS_NOT_SUPPORTED)); 595f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) EXPECT_EQ(expected_mime_type_is_not_supported, 605f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) GetCountWithoutSnapshot( 615f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) translate::TranslateBrowserMetrics:: 625f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) INITIATION_STATUS_MIME_TYPE_IS_NOT_SUPPORTED)); 635f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) EXPECT_EQ( 645f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) expected_url_is_not_supported, 655f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) GetCountWithoutSnapshot(translate::TranslateBrowserMetrics:: 665f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) INITIATION_STATUS_URL_IS_NOT_SUPPORTED)); 675f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) EXPECT_EQ(expected_similar_languages, 685f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) GetCountWithoutSnapshot(translate::TranslateBrowserMetrics:: 695f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) INITIATION_STATUS_SIMILAR_LANGUAGES)); 705f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) EXPECT_EQ(expected_accept_languages, 715f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) GetCountWithoutSnapshot(translate::TranslateBrowserMetrics:: 725f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) INITIATION_STATUS_ACCEPT_LANGUAGES)); 735f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) EXPECT_EQ(expected_auto_by_config, 745f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) GetCountWithoutSnapshot(translate::TranslateBrowserMetrics:: 755f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) INITIATION_STATUS_AUTO_BY_CONFIG)); 765f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) EXPECT_EQ(expected_auto_by_link, 775f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) GetCountWithoutSnapshot(translate::TranslateBrowserMetrics:: 785f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) INITIATION_STATUS_AUTO_BY_LINK)); 795f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) EXPECT_EQ(expected_show_infobar, 805f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) GetCountWithoutSnapshot(translate::TranslateBrowserMetrics:: 815f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) INITIATION_STATUS_SHOW_INFOBAR)); 82a93a17c8d99d686bd4a1511e5504e5e6cc9fcadfTorne (Richard Coles) } 83a93a17c8d99d686bd4a1511e5504e5e6cc9fcadfTorne (Richard Coles) 8490dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) HistogramBase::Count GetTotalCount() { 8590dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) Snapshot(); 8690dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) if (!samples_.get()) 8790dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) return 0; 8890dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) HistogramBase::Count count = samples_->TotalCount(); 8990dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) if (!base_samples_.get()) 9090dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) return count; 9190dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) return count - base_samples_->TotalCount(); 9290dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) } 9390dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) 9490dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) HistogramBase::Count GetCount(HistogramBase::Sample value) { 9590dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) Snapshot(); 9690dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) return GetCountWithoutSnapshot(value); 9790dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) } 9890dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) 99a93a17c8d99d686bd4a1511e5504e5e6cc9fcadfTorne (Richard Coles) private: 100a93a17c8d99d686bd4a1511e5504e5e6cc9fcadfTorne (Richard Coles) void Snapshot() { 101a93a17c8d99d686bd4a1511e5504e5e6cc9fcadfTorne (Richard Coles) HistogramBase* histogram = StatisticsRecorder::FindHistogram(key_); 102a93a17c8d99d686bd4a1511e5504e5e6cc9fcadfTorne (Richard Coles) if (!histogram) 103a93a17c8d99d686bd4a1511e5504e5e6cc9fcadfTorne (Richard Coles) return; 104a93a17c8d99d686bd4a1511e5504e5e6cc9fcadfTorne (Richard Coles) samples_ = histogram->SnapshotSamples(); 105a93a17c8d99d686bd4a1511e5504e5e6cc9fcadfTorne (Richard Coles) } 106a93a17c8d99d686bd4a1511e5504e5e6cc9fcadfTorne (Richard Coles) 10790dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) HistogramBase::Count GetCountWithoutSnapshot(HistogramBase::Sample value) { 108a93a17c8d99d686bd4a1511e5504e5e6cc9fcadfTorne (Richard Coles) if (!samples_.get()) 109a93a17c8d99d686bd4a1511e5504e5e6cc9fcadfTorne (Richard Coles) return 0; 110a93a17c8d99d686bd4a1511e5504e5e6cc9fcadfTorne (Richard Coles) HistogramBase::Count count = samples_->GetCount(value); 111a93a17c8d99d686bd4a1511e5504e5e6cc9fcadfTorne (Richard Coles) if (!base_samples_.get()) 112a93a17c8d99d686bd4a1511e5504e5e6cc9fcadfTorne (Richard Coles) return count; 113a93a17c8d99d686bd4a1511e5504e5e6cc9fcadfTorne (Richard Coles) return count - base_samples_->GetCount(value); 114a93a17c8d99d686bd4a1511e5504e5e6cc9fcadfTorne (Richard Coles) } 115a93a17c8d99d686bd4a1511e5504e5e6cc9fcadfTorne (Richard Coles) 116a93a17c8d99d686bd4a1511e5504e5e6cc9fcadfTorne (Richard Coles) std::string key_; 117a93a17c8d99d686bd4a1511e5504e5e6cc9fcadfTorne (Richard Coles) scoped_ptr<HistogramSamples> base_samples_; 118a93a17c8d99d686bd4a1511e5504e5e6cc9fcadfTorne (Richard Coles) scoped_ptr<HistogramSamples> samples_; 119a93a17c8d99d686bd4a1511e5504e5e6cc9fcadfTorne (Richard Coles) 120a93a17c8d99d686bd4a1511e5504e5e6cc9fcadfTorne (Richard Coles) DISALLOW_COPY_AND_ASSIGN(MetricsRecorder); 121a93a17c8d99d686bd4a1511e5504e5e6cc9fcadfTorne (Richard Coles)}; 122a93a17c8d99d686bd4a1511e5504e5e6cc9fcadfTorne (Richard Coles) 123a93a17c8d99d686bd4a1511e5504e5e6cc9fcadfTorne (Richard Coles)} // namespace 124a93a17c8d99d686bd4a1511e5504e5e6cc9fcadfTorne (Richard Coles) 1257d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)TEST(TranslateBrowserMetricsTest, ReportInitiationStatus) { 1265f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) MetricsRecorder recorder(translate::TranslateBrowserMetrics::GetMetricsName( 1275f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) translate::TranslateBrowserMetrics::UMA_INITIATION_STATUS)); 128a93a17c8d99d686bd4a1511e5504e5e6cc9fcadfTorne (Richard Coles) 1293240926e260ce088908e02ac07a6cf7b0c0cbf44Ben Murdoch recorder.CheckInitiationStatus(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); 1305f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) translate::TranslateBrowserMetrics::ReportInitiationStatus( 1315f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) translate::TranslateBrowserMetrics::INITIATION_STATUS_DISABLED_BY_PREFS); 1323240926e260ce088908e02ac07a6cf7b0c0cbf44Ben Murdoch recorder.CheckInitiationStatus(1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); 1335f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) translate::TranslateBrowserMetrics::ReportInitiationStatus( 1345f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) translate::TranslateBrowserMetrics::INITIATION_STATUS_DISABLED_BY_SWITCH); 1353240926e260ce088908e02ac07a6cf7b0c0cbf44Ben Murdoch recorder.CheckInitiationStatus(1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0); 1365f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) translate::TranslateBrowserMetrics::ReportInitiationStatus( 1375f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) translate::TranslateBrowserMetrics::INITIATION_STATUS_DISABLED_BY_CONFIG); 1383240926e260ce088908e02ac07a6cf7b0c0cbf44Ben Murdoch recorder.CheckInitiationStatus(1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0); 1395f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) translate::TranslateBrowserMetrics::ReportInitiationStatus( 1405f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) translate::TranslateBrowserMetrics:: 1415f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) INITIATION_STATUS_LANGUAGE_IS_NOT_SUPPORTED); 1423240926e260ce088908e02ac07a6cf7b0c0cbf44Ben Murdoch recorder.CheckInitiationStatus(1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0); 1435f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) translate::TranslateBrowserMetrics::ReportInitiationStatus( 1445f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) translate::TranslateBrowserMetrics:: 1455f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) INITIATION_STATUS_MIME_TYPE_IS_NOT_SUPPORTED); 1463240926e260ce088908e02ac07a6cf7b0c0cbf44Ben Murdoch recorder.CheckInitiationStatus(1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0); 1475f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) translate::TranslateBrowserMetrics::ReportInitiationStatus( 1485f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) translate::TranslateBrowserMetrics:: 1495f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) INITIATION_STATUS_URL_IS_NOT_SUPPORTED); 1503240926e260ce088908e02ac07a6cf7b0c0cbf44Ben Murdoch recorder.CheckInitiationStatus(1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0); 1515f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) translate::TranslateBrowserMetrics::ReportInitiationStatus( 1525f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) translate::TranslateBrowserMetrics::INITIATION_STATUS_SIMILAR_LANGUAGES); 1533240926e260ce088908e02ac07a6cf7b0c0cbf44Ben Murdoch recorder.CheckInitiationStatus(1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0); 1545f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) translate::TranslateBrowserMetrics::ReportInitiationStatus( 1555f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) translate::TranslateBrowserMetrics::INITIATION_STATUS_ACCEPT_LANGUAGES); 1563240926e260ce088908e02ac07a6cf7b0c0cbf44Ben Murdoch recorder.CheckInitiationStatus(1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0); 1575f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) translate::TranslateBrowserMetrics::ReportInitiationStatus( 1585f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) translate::TranslateBrowserMetrics::INITIATION_STATUS_AUTO_BY_CONFIG); 1593240926e260ce088908e02ac07a6cf7b0c0cbf44Ben Murdoch recorder.CheckInitiationStatus(1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0); 1605f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) translate::TranslateBrowserMetrics::ReportInitiationStatus( 1615f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) translate::TranslateBrowserMetrics::INITIATION_STATUS_AUTO_BY_LINK); 1623240926e260ce088908e02ac07a6cf7b0c0cbf44Ben Murdoch recorder.CheckInitiationStatus(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0); 1635f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) translate::TranslateBrowserMetrics::ReportInitiationStatus( 1645f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) translate::TranslateBrowserMetrics::INITIATION_STATUS_SHOW_INFOBAR); 1653240926e260ce088908e02ac07a6cf7b0c0cbf44Ben Murdoch recorder.CheckInitiationStatus(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1); 166a93a17c8d99d686bd4a1511e5504e5e6cc9fcadfTorne (Richard Coles)} 16790dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) 1687d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)TEST(TranslateBrowserMetricsTest, ReportLanguageDetectionError) { 1695f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) MetricsRecorder recorder(translate::TranslateBrowserMetrics::GetMetricsName( 1705f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) translate::TranslateBrowserMetrics::UMA_LANGUAGE_DETECTION_ERROR)); 17190dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) EXPECT_EQ(0, recorder.GetTotalCount()); 1725f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) translate::TranslateBrowserMetrics::ReportLanguageDetectionError(); 17390dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) EXPECT_EQ(1, recorder.GetTotalCount()); 17490dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) 17590dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)} 17690dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) 1777d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) 1787d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)TEST(TranslateBrowserMetricsTest, ReportedLocalesOnDisabledByPrefs) { 1797d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) const int ENGLISH = 25966; 1807d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) 1815f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) MetricsRecorder recorder(translate::TranslateBrowserMetrics::GetMetricsName( 1825f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) translate::TranslateBrowserMetrics::UMA_LOCALES_ON_DISABLED_BY_PREFS)); 18390dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) EXPECT_EQ(0, recorder.GetTotalCount()); 1845f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) translate::TranslateBrowserMetrics::ReportLocalesOnDisabledByPrefs("en"); 1857d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) EXPECT_EQ(1, recorder.GetCount(ENGLISH)); 18690dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)} 18790dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) 1887d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)TEST(TranslateBrowserMetricsTest, ReportedUndisplayableLanguage) { 18990dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) const int ENGLISH = 25966; 19090dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) 1915f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) MetricsRecorder recorder(translate::TranslateBrowserMetrics::GetMetricsName( 1925f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) translate::TranslateBrowserMetrics::UMA_UNDISPLAYABLE_LANGUAGE)); 19390dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) EXPECT_EQ(0, recorder.GetTotalCount()); 1945f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) translate::TranslateBrowserMetrics::ReportUndisplayableLanguage("en"); 19590dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) EXPECT_EQ(1, recorder.GetCount(ENGLISH)); 19690dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)} 197868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) 1987d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)TEST(TranslateBrowserMetricsTest, ReportedUnsupportedLanguageAtInitiation) { 199868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) const int ENGLISH = 25966; 200868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) 2015f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) MetricsRecorder recorder(translate::TranslateBrowserMetrics::GetMetricsName( 2025f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) translate::TranslateBrowserMetrics:: 2035f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) UMA_UNSUPPORTED_LANGUAGE_AT_INITIATION)); 204868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) EXPECT_EQ(0, recorder.GetTotalCount()); 2055f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) translate::TranslateBrowserMetrics::ReportUnsupportedLanguageAtInitiation( 2065f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) "en"); 207868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) EXPECT_EQ(1, recorder.GetCount(ENGLISH)); 208868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)} 209