| Index: components/browser_watcher/watcher_metrics_provider_win_unittest.cc
|
| diff --git a/components/browser_watcher/watcher_metrics_provider_win_unittest.cc b/components/browser_watcher/watcher_metrics_provider_win_unittest.cc
|
| index 020b73855041152f9e7fa9af8b81a9f876c39ab3..29f2c26d6bb538bade31663c6cb7ed13f32f78f4 100644
|
| --- a/components/browser_watcher/watcher_metrics_provider_win_unittest.cc
|
| +++ b/components/browser_watcher/watcher_metrics_provider_win_unittest.cc
|
| @@ -9,6 +9,7 @@
|
|
|
| #include <cstdlib>
|
|
|
| +#include "base/memory/ptr_util.h"
|
| #include "base/process/process_handle.h"
|
| #include "base/strings/string16.h"
|
| #include "base/strings/stringprintf.h"
|
| @@ -77,6 +78,27 @@ class WatcherMetricsProviderWinTest : public testing::Test {
|
| scoped_refptr<base::TestSimpleTaskRunner> test_task_runner_;
|
| };
|
|
|
| +class PostmortemReportCollectorForTest : public PostmortemReportCollector {
|
| + public:
|
| + PostmortemReportCollectorForTest()
|
| + : PostmortemReportCollector(),
|
| + product_name_("TestProduct"),
|
| + version_number_("TestVersionNumber"),
|
| + channel_name_("TestChannel") {}
|
| + ~PostmortemReportCollectorForTest() override = default;
|
| +
|
| + const std::string& GetProductName() override { return product_name_; }
|
| + const std::string& GetProductVersion() override { return version_number_; }
|
| + const std::string& GetProductChannel() override { return channel_name_; }
|
| +
|
| + private:
|
| + std::string product_name_;
|
| + std::string version_number_;
|
| + std::string channel_name_;
|
| +
|
| + DISALLOW_COPY_AND_ASSIGN(PostmortemReportCollectorForTest);
|
| +};
|
| +
|
| } // namespace
|
|
|
| TEST_F(WatcherMetricsProviderWinTest, RecordsStabilityHistogram) {
|
| @@ -87,8 +109,10 @@ TEST_F(WatcherMetricsProviderWinTest, RecordsStabilityHistogram) {
|
| // Record a single failure.
|
| AddProcessExitCode(false, 100);
|
|
|
| - WatcherMetricsProviderWin provider(kRegistryPath, base::FilePath(),
|
| - base::FilePath(), test_task_runner_.get());
|
| + WatcherMetricsProviderWin provider(
|
| + kRegistryPath, base::FilePath(), base::FilePath(),
|
| + base::WrapUnique(new PostmortemReportCollectorForTest()),
|
| + test_task_runner_.get());
|
|
|
| provider.ProvideStabilityMetrics(NULL);
|
| histogram_tester_.ExpectBucketCount(
|
| @@ -110,8 +134,10 @@ TEST_F(WatcherMetricsProviderWinTest, DoesNotReportOwnProcessId) {
|
| // Record own process as STILL_ACTIVE.
|
| AddProcessExitCode(true, STILL_ACTIVE);
|
|
|
| - WatcherMetricsProviderWin provider(kRegistryPath, base::FilePath(),
|
| - base::FilePath(), test_task_runner_.get());
|
| + WatcherMetricsProviderWin provider(
|
| + kRegistryPath, base::FilePath(), base::FilePath(),
|
| + base::WrapUnique(new PostmortemReportCollectorForTest()),
|
| + test_task_runner_.get());
|
|
|
| provider.ProvideStabilityMetrics(NULL);
|
| histogram_tester_.ExpectUniqueSample(
|
| @@ -131,8 +157,10 @@ TEST_F(WatcherMetricsProviderWinTest, DeletesRecordedExitFunnelEvents) {
|
| base::win::RegistryKeyIterator it(HKEY_CURRENT_USER, kRegistryPath);
|
| EXPECT_EQ(3u, it.SubkeyCount());
|
|
|
| - WatcherMetricsProviderWin provider(kRegistryPath, base::FilePath(),
|
| - base::FilePath(), test_task_runner_.get());
|
| + WatcherMetricsProviderWin provider(
|
| + kRegistryPath, base::FilePath(), base::FilePath(),
|
| + base::WrapUnique(new PostmortemReportCollectorForTest()),
|
| + test_task_runner_.get());
|
|
|
| provider.ProvideStabilityMetrics(NULL);
|
| // Make sure the exit funnel events are no longer recorded in histograms.
|
| @@ -166,8 +194,10 @@ TEST_F(WatcherMetricsProviderWinTest, DeletesExitcodeKeyWhenNotReporting) {
|
| AddExitFunnelEvent(102, L"Three", 990 * 1000);
|
|
|
| // Make like the user is opted out of reporting.
|
| - WatcherMetricsProviderWin provider(kRegistryPath, base::FilePath(),
|
| - base::FilePath(), test_task_runner_.get());
|
| + WatcherMetricsProviderWin provider(
|
| + kRegistryPath, base::FilePath(), base::FilePath(),
|
| + base::WrapUnique(new PostmortemReportCollectorForTest()),
|
| + test_task_runner_.get());
|
| provider.OnRecordingDisabled();
|
|
|
| base::win::RegKey key;
|
| @@ -198,9 +228,10 @@ TEST_F(WatcherMetricsProviderWinTest, DeletesOnly100FunnelsAtATime) {
|
|
|
| {
|
| // Make like the user is opted out of reporting.
|
| - WatcherMetricsProviderWin provider(kRegistryPath, base::FilePath(),
|
| - base::FilePath(),
|
| - test_task_runner_.get());
|
| + WatcherMetricsProviderWin provider(
|
| + kRegistryPath, base::FilePath(), base::FilePath(),
|
| + base::WrapUnique(new PostmortemReportCollectorForTest()),
|
| + test_task_runner_.get());
|
| provider.OnRecordingDisabled();
|
| // Flush the task(s).
|
| test_task_runner_->RunPendingTasks();
|
|
|