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_TEST_METRICS_SERVICE_CLIENT_H_ 6 #define COMPONENTS_METRICS_TEST_TEST_METRICS_SERVICE_CLIENT_H_ 7 8 #include <stdint.h> 9 10 #include <string> 11 12 #include "base/macros.h" 13 #include "components/metrics/metrics_log_store.h" 14 #include "components/metrics/metrics_log_uploader.h" 15 #include "components/metrics/metrics_service_client.h" 16 #include "components/metrics/test/test_metrics_log_uploader.h" 17 18 namespace metrics { 19 20 // A simple concrete implementation of the MetricsServiceClient interface, for 21 // use in tests. 22 class TestMetricsServiceClient : public MetricsServiceClient { 23 public: 24 static const char kBrandForTesting[]; 25 26 TestMetricsServiceClient(); 27 ~TestMetricsServiceClient() override; 28 29 // MetricsServiceClient: 30 metrics::MetricsService* GetMetricsService() override; 31 void SetMetricsClientId(const std::string& client_id) override; 32 int32_t GetProduct() override; 33 std::string GetApplicationLocale() override; 34 bool GetBrand(std::string* brand_code) override; 35 SystemProfileProto::Channel GetChannel() override; 36 std::string GetVersionString() override; 37 void CollectFinalMetricsForLog(base::OnceClosure done_callback) override; 38 std::unique_ptr<MetricsLogUploader> CreateUploader( 39 const GURL& server_url, 40 const GURL& insecure_server_url, 41 base::StringPiece mime_type, 42 MetricsLogUploader::MetricServiceType service_type, 43 const MetricsLogUploader::UploadCallback& on_upload_complete) override; 44 base::TimeDelta GetStandardUploadInterval() override; 45 bool IsReportingPolicyManaged() override; 46 EnableMetricsDefault GetMetricsReportingDefaultState() override; 47 std::string GetAppPackageName() override; 48 bool ShouldResetClientIdsOnClonedInstall() override; 49 MetricsLogStore::StorageLimits GetStorageLimits() const override; 50 get_client_id()51 const std::string& get_client_id() const { return client_id_; } 52 // Returns a weak ref to the last created uploader. uploader()53 TestMetricsLogUploader* uploader() { return uploader_; } set_version_string(const std::string & str)54 void set_version_string(const std::string& str) { version_string_ = str; } set_product(int32_t product)55 void set_product(int32_t product) { product_ = product; } set_reporting_is_managed(bool managed)56 void set_reporting_is_managed(bool managed) { 57 reporting_is_managed_ = managed; 58 } set_enable_default(EnableMetricsDefault enable_default)59 void set_enable_default(EnableMetricsDefault enable_default) { 60 enable_default_ = enable_default; 61 } set_should_reset_client_ids_on_cloned_install(bool state)62 void set_should_reset_client_ids_on_cloned_install(bool state) { 63 should_reset_client_ids_on_cloned_install_ = state; 64 } set_max_ongoing_log_size(size_t bytes)65 void set_max_ongoing_log_size(size_t bytes) { 66 storage_limits_.max_ongoing_log_size = bytes; 67 } 68 69 private: 70 std::string client_id_; 71 std::string version_string_; 72 int32_t product_; 73 bool reporting_is_managed_; 74 EnableMetricsDefault enable_default_; 75 bool should_reset_client_ids_on_cloned_install_ = false; 76 MetricsLogStore::StorageLimits storage_limits_; 77 78 // A weak ref to the last created TestMetricsLogUploader. 79 TestMetricsLogUploader* uploader_; 80 81 DISALLOW_COPY_AND_ASSIGN(TestMetricsServiceClient); 82 }; 83 84 } // namespace metrics 85 86 #endif // COMPONENTS_METRICS_TEST_TEST_METRICS_SERVICE_CLIENT_H_ 87