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