Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(229)

Unified Diff: components/browser_watcher/watcher_metrics_provider_win_unittest.cc

Issue 2372633002: Use the correct product/version for postmortem reports (Closed)
Patch Set: Direct access to GetExecutableVersionDetails via ChromePostmortemReportCollector Created 4 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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();

Powered by Google App Engine
This is Rietveld 408576698