test_metrics_service_client.h revision 46d4c2bc3267f3f028f39e7e311b0f89aba2e4fd
1cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)// Copyright 2014 The Chromium Authors. All rights reserved. 2cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be 3cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)// found in the LICENSE file. 4cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) 5cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)#ifndef COMPONENTS_METRICS_TEST_METRICS_SERVICE_CLIENT_H_ 6cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)#define COMPONENTS_METRICS_TEST_METRICS_SERVICE_CLIENT_H_ 7cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) 8cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)#include <string> 9cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) 10cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)#include "components/metrics/metrics_service_client.h" 11cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) 12cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)namespace metrics { 13cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) 14cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)// A simple concrete implementation of the MetricsServiceClient interface, for 15cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)// use in tests. 16cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)class TestMetricsServiceClient : public MetricsServiceClient { 17cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) public: 18cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) static const char kBrandForTesting[]; 19cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) 20cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) TestMetricsServiceClient(); 21cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) virtual ~TestMetricsServiceClient(); 22cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) 23cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) // MetricsServiceClient: 24cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) virtual void SetClientID(const std::string& client_id) OVERRIDE; 25cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) virtual bool IsOffTheRecordSessionActive() OVERRIDE; 26cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) virtual std::string GetApplicationLocale() OVERRIDE; 27cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) virtual bool GetBrand(std::string* brand_code) OVERRIDE; 28cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) virtual SystemProfileProto::Channel GetChannel() OVERRIDE; 29cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) virtual std::string GetVersionString() OVERRIDE; 3046d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) virtual int64 GetInstallDate() OVERRIDE; 31cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) virtual void OnLogUploadComplete() OVERRIDE; 32cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) virtual void StartGatheringMetrics( 33cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) const base::Closure& done_callback) OVERRIDE; 34cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) virtual void CollectFinalMetrics(const base::Closure& done_callback) 35cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) OVERRIDE; 3646d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) virtual scoped_ptr<MetricsLogUploader> CreateUploader( 3746d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) const std::string& server_url, 3846d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) const std::string& mime_type, 3946d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) const base::Callback<void(int)>& on_upload_complete) OVERRIDE; 40cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) 41cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) const std::string& get_client_id() const { return client_id_; } 4246d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) void set_install_date(int64 install_date) { install_date_ = install_date; } 4346d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) void set_version_string(const std::string& str) { version_string_ = str; } 44cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) 45cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) private: 46cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) std::string client_id_; 4746d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) int64 install_date_; 4846d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) std::string version_string_; 4946d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) 5046d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) DISALLOW_COPY_AND_ASSIGN(TestMetricsServiceClient); 51cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)}; 52cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) 53cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)} // namespace metrics 54cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) 55cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)#endif // COMPONENTS_METRICS_TEST_METRICS_SERVICE_CLIENT_H_ 56