blob: 70e8a82346328b20c80b5e0ccb0221d24170394a [file] [log] [blame]
// Copyright 2023 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef CHROME_BROWSER_METRICS_STRUCTURED_TEST_STRUCTURED_METRICS_MIXIN_H_
#define CHROME_BROWSER_METRICS_STRUCTURED_TEST_STRUCTURED_METRICS_MIXIN_H_
#include "chrome/test/base/mixin_based_in_process_browser_test.h"
#include "components/metrics/structured/test/test_structured_metrics_provider.h"
// Mixin browser tests can use StructuredMetricsMixin to set up test
// environment for structured metrics recording.
//
// To use the mixin, create it as a member variable in your test, e.g.:
//
// class MyTest : public MixinBasedInProcessBrowserTest {
// private:
// StructuredMetricsMixin structured_metrics_mixin_{&mixin_host_};
namespace metrics::structured {
class StructuredMetricsMixin : public InProcessBrowserTestMixin {
public:
explicit StructuredMetricsMixin(InProcessBrowserTestMixinHost* host);
StructuredMetricsMixin(const StructuredMetricsMixin&) = delete;
StructuredMetricsMixin& operator=(const StructuredMetricsMixin&) = delete;
~StructuredMetricsMixin() override;
TestStructuredMetricsProvider* GetTestStructuredMetricsProvider();
// InProcessBrowserTestMixin:
void SetUpCommandLine(base::CommandLine* command_line) override;
private:
std::unique_ptr<TestStructuredMetricsProvider>
test_structured_metrics_provider_;
};
} // namespace metrics::structured
#endif // CHROME_BROWSER_METRICS_STRUCTURED_TEST_STRUCTURED_METRICS_MIXIN_H_