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

Unified Diff: components/history/core/browser/history_backend_unittest.cc

Issue 1179953005: Add History.TopHostsVisitsByRank UMA metric. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@is_allowed
Patch Set: Use HistogramTester to eliminate test brittleness. Created 5 years, 6 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/history/core/browser/history_backend_unittest.cc
diff --git a/components/history/core/browser/history_backend_unittest.cc b/components/history/core/browser/history_backend_unittest.cc
index 5b8c01e9159553e9af98ca0e90d58952623a0435..5731c1c4cd57d24aebda56597254a805d48546d2 100644
--- a/components/history/core/browser/history_backend_unittest.cc
+++ b/components/history/core/browser/history_backend_unittest.cc
@@ -19,11 +19,15 @@
#include "base/files/scoped_temp_dir.h"
#include "base/memory/ref_counted.h"
#include "base/memory/scoped_ptr.h"
+#include "base/metrics/histogram_base.h"
+#include "base/metrics/histogram_samples.h"
+#include "base/metrics/statistics_recorder.h"
#include "base/prefs/pref_service.h"
#include "base/run_loop.h"
#include "base/strings/string16.h"
#include "base/strings/string_number_conversions.h"
#include "base/strings/utf_string_conversions.h"
+#include "base/test/histogram_tester.h"
#include "base/thread_task_runner_handle.h"
#include "components/favicon_base/favicon_usage_data.h"
#include "components/history/core/browser/history_constants.h"
@@ -52,6 +56,7 @@
namespace {
using ::testing::ElementsAre;
+using base::HistogramBase;
const int kTinyEdgeSize = 10;
const int kSmallEdgeSize = 16;
@@ -2984,6 +2989,50 @@ TEST_F(HistoryBackendTest, TopHosts_IgnoreUnusualURLs) {
EXPECT_THAT(backend_->TopHosts(5), ElementsAre(std::make_pair("cnn.com", 3)));
}
+TEST_F(HistoryBackendTest, RecordTopHostsMetrics) {
+ base::HistogramTester histogram;
+
+ // Load initial URLs for the purpose of populating host_ranks_.
+ std::vector<GURL> urls;
+ urls.push_back(GURL("http://cnn.com/us"));
+ urls.push_back(GURL("http://cnn.com/intl"));
+ urls.push_back(GURL("http://dogtopia.com/"));
+ for (const auto& url : urls) {
+ backend_->AddPageVisit(url, base::Time::Now(), 0, ui::PAGE_TRANSITION_LINK,
+ history::SOURCE_BROWSED);
+ }
+
+ // Compute host_ranks_ for RecordTopHostsMetrics.
+ EXPECT_THAT(backend_->TopHosts(3),
+ ElementsAre(std::make_pair("cnn.com", 2),
+ std::make_pair("dogtopia.com", 1)));
+
+ // Load URLs to record top-hosts metrics for.
+ urls.clear();
+ urls.push_back(GURL("http://cnn.com/us"));
+ urls.push_back(GURL("http://www.unipresse.com/"));
+ for (const auto& url : urls) {
+ backend_->AddPageVisit(url, base::Time::Now(), 0,
+ ui::PAGE_TRANSITION_CHAIN_END,
+ history::SOURCE_BROWSED);
+ }
+
+ // Extract list of histogram samples.
+ std::vector<std::pair<HistogramBase::Sample, HistogramBase::Count>> samples;
+ scoped_ptr<base::HistogramSamples> snapshot =
+ histogram.GetHistogramSamplesSinceCreation(
+ "History.TopHostsVisitsByRank");
+ for (auto it = snapshot->Iterator(); !it->Done(); it->Next()) {
+ HistogramBase::Sample sample;
+ HistogramBase::Count count;
+ it->Get(&sample, nullptr, &count);
+ samples.push_back(std::make_pair(sample, count));
+ }
+
+ EXPECT_THAT(samples,
+ ElementsAre(std::make_pair(1, 1), std::make_pair(51, 1)));
+}
+
TEST_F(HistoryBackendTest, UpdateVisitDuration) {
// This unit test will test adding and deleting visit details information.
ASSERT_TRUE(backend_.get());
« no previous file with comments | « components/history/core/browser/history_backend.cc ('k') | components/history/core/browser/history_database.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698