Index: net/url_request/url_request_throttler_unittest.cc |
diff --git a/net/url_request/url_request_throttler_unittest.cc b/net/url_request/url_request_throttler_unittest.cc |
index b964b10855101e1943d5240f1f0353911f31a8e4..52b3a0ab750a16937af11f01d47a2c122fc457fe 100644 |
--- a/net/url_request/url_request_throttler_unittest.cc |
+++ b/net/url_request/url_request_throttler_unittest.cc |
@@ -5,13 +5,12 @@ |
#include "net/url_request/url_request_throttler_manager.h" |
#include "base/memory/scoped_ptr.h" |
-#include "base/metrics/histogram.h" |
#include "base/metrics/histogram_samples.h" |
-#include "base/metrics/statistics_recorder.h" |
#include "base/pickle.h" |
#include "base/stl_util.h" |
#include "base/strings/string_number_conversions.h" |
#include "base/strings/stringprintf.h" |
+#include "base/test/histogram_recorder.h" |
#include "base/time/time.h" |
#include "net/base/load_flags.h" |
#include "net/base/request_priority.h" |
@@ -29,10 +28,7 @@ namespace net { |
namespace { |
-using base::Histogram; |
-using base::HistogramBase; |
-using base::HistogramSamples; |
-using base::StatisticsRecorder; |
+const char kRequestThrottledHistogramName[] = "Throttling.RequestThrottled"; |
class MockURLRequestThrottlerEntry : public URLRequestThrottlerEntry { |
public: |
@@ -176,32 +172,22 @@ class URLRequestThrottlerEntryTest : public testing::Test { |
URLRequestThrottlerEntryTest() |
: request_(GURL(), DEFAULT_PRIORITY, NULL, &context_) {} |
- virtual void SetUp(); |
- virtual void TearDown(); |
+ static void SetUpTestCase() { |
+ base::HistogramRecorder::Initialize(); |
+ } |
- // After calling this function, histogram snapshots in |samples_| contain |
- // only the delta caused by the test case currently running. |
- void CalculateHistogramDeltas(); |
+ virtual void SetUp(); |
TimeTicks now_; |
MockURLRequestThrottlerManager manager_; // Dummy object, not used. |
scoped_refptr<MockURLRequestThrottlerEntry> entry_; |
- std::map<std::string, HistogramSamples*> original_samples_; |
- std::map<std::string, HistogramSamples*> samples_; |
+ scoped_ptr<base::HistogramRecorder> histogram_recorder_; |
TestURLRequestContext context_; |
TestURLRequest request_; |
}; |
-// List of all histograms we care about in these unit tests. |
-const char* kHistogramNames[] = { |
- "Throttling.FailureCountAtSuccess", |
- "Throttling.PerceivedDowntime", |
- "Throttling.RequestThrottled", |
- "Throttling.SiteOptedOut", |
-}; |
- |
void URLRequestThrottlerEntryTest::SetUp() { |
request_.SetLoadFlags(0); |
@@ -209,43 +195,7 @@ void URLRequestThrottlerEntryTest::SetUp() { |
entry_ = new MockURLRequestThrottlerEntry(&manager_); |
entry_->ResetToBlank(now_); |
- for (size_t i = 0; i < arraysize(kHistogramNames); ++i) { |
- // Must retrieve original samples for each histogram for comparison |
- // as other tests may affect them. |
- const char* name = kHistogramNames[i]; |
- HistogramBase* histogram = StatisticsRecorder::FindHistogram(name); |
- if (histogram) { |
- original_samples_[name] = histogram->SnapshotSamples().release(); |
- } else { |
- original_samples_[name] = NULL; |
- } |
- } |
-} |
- |
-void URLRequestThrottlerEntryTest::TearDown() { |
- STLDeleteValues(&original_samples_); |
- STLDeleteValues(&samples_); |
-} |
- |
-void URLRequestThrottlerEntryTest::CalculateHistogramDeltas() { |
- for (size_t i = 0; i < arraysize(kHistogramNames); ++i) { |
- const char* name = kHistogramNames[i]; |
- HistogramSamples* original = original_samples_[name]; |
- |
- HistogramBase* histogram = StatisticsRecorder::FindHistogram(name); |
- if (histogram) { |
- ASSERT_EQ(HistogramBase::kUmaTargetedHistogramFlag, histogram->flags()); |
- |
- scoped_ptr<HistogramSamples> samples(histogram->SnapshotSamples()); |
- if (original) |
- samples->Subtract(*original); |
- samples_[name] = samples.release(); |
- } |
- } |
- |
- // Ensure we don't accidentally use the originals in our tests. |
- STLDeleteValues(&original_samples_); |
- original_samples_.clear(); |
+ histogram_recorder_.reset(new base::HistogramRecorder()); |
} |
std::ostream& operator<<(std::ostream& out, const base::TimeTicks& time) { |
@@ -273,9 +223,11 @@ TEST_F(URLRequestThrottlerEntryTest, InterfaceDuringExponentialBackoff) { |
request_.SetLoadFlags(LOAD_MAYBE_USER_GESTURE); |
EXPECT_FALSE(entry_->ShouldRejectRequest(request_)); |
- CalculateHistogramDeltas(); |
- ASSERT_EQ(1, samples_["Throttling.RequestThrottled"]->GetCount(0)); |
- ASSERT_EQ(1, samples_["Throttling.RequestThrottled"]->GetCount(1)); |
+ scoped_ptr<base::HistogramSamples> samples( |
+ histogram_recorder_->GetHistogramSamplesSinceCreation( |
+ kRequestThrottledHistogramName)); |
+ ASSERT_EQ(1, samples->GetCount(0)); |
+ ASSERT_EQ(1, samples->GetCount(1)); |
} |
TEST_F(URLRequestThrottlerEntryTest, InterfaceNotDuringExponentialBackoff) { |
@@ -285,9 +237,11 @@ TEST_F(URLRequestThrottlerEntryTest, InterfaceNotDuringExponentialBackoff) { |
entry_->fake_time_now_ - TimeDelta::FromMilliseconds(1)); |
EXPECT_FALSE(entry_->ShouldRejectRequest(request_)); |
- CalculateHistogramDeltas(); |
- ASSERT_EQ(2, samples_["Throttling.RequestThrottled"]->GetCount(0)); |
- ASSERT_EQ(0, samples_["Throttling.RequestThrottled"]->GetCount(1)); |
+ scoped_ptr<base::HistogramSamples> samples( |
+ histogram_recorder_->GetHistogramSamplesSinceCreation( |
+ kRequestThrottledHistogramName)); |
+ ASSERT_EQ(2, samples->GetCount(0)); |
+ ASSERT_EQ(0, samples->GetCount(1)); |
} |
TEST_F(URLRequestThrottlerEntryTest, InterfaceUpdateFailure) { |