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
3// found in the LICENSE file.
4
5#ifndef COMPONENTS_METRICS_TEST_METRICS_SERVICE_CLIENT_H_
6#define COMPONENTS_METRICS_TEST_METRICS_SERVICE_CLIENT_H_
7
8#include <string>
9
10#include "components/metrics/metrics_service_client.h"
11
12namespace metrics {
13
14// A simple concrete implementation of the MetricsServiceClient interface, for
15// use in tests.
16class TestMetricsServiceClient : public MetricsServiceClient {
17 public:
18  static const char kBrandForTesting[];
19
20  TestMetricsServiceClient();
21  virtual ~TestMetricsServiceClient();
22
23  // MetricsServiceClient:
24  virtual void SetMetricsClientId(const std::string& client_id) OVERRIDE;
25  virtual bool IsOffTheRecordSessionActive() OVERRIDE;
26  virtual std::string GetApplicationLocale() OVERRIDE;
27  virtual bool GetBrand(std::string* brand_code) OVERRIDE;
28  virtual SystemProfileProto::Channel GetChannel() OVERRIDE;
29  virtual std::string GetVersionString() OVERRIDE;
30  virtual void OnLogUploadComplete() OVERRIDE;
31  virtual void StartGatheringMetrics(
32      const base::Closure& done_callback) OVERRIDE;
33  virtual void CollectFinalMetrics(const base::Closure& done_callback)
34      OVERRIDE;
35  virtual scoped_ptr<MetricsLogUploader> CreateUploader(
36      const std::string& server_url,
37      const std::string& mime_type,
38      const base::Callback<void(int)>& on_upload_complete) OVERRIDE;
39
40  const std::string& get_client_id() const { return client_id_; }
41  void set_version_string(const std::string& str) { version_string_ = str; }
42
43 private:
44  std::string client_id_;
45  std::string version_string_;
46
47  DISALLOW_COPY_AND_ASSIGN(TestMetricsServiceClient);
48};
49
50}  // namespace metrics
51
52#endif  // COMPONENTS_METRICS_TEST_METRICS_SERVICE_CLIENT_H_
53