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

Unified Diff: chrome/renderer/net/net_error_helper_core_unittest.cc

Issue 259613003: Fix auto-reload histograms. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@lkgr
Patch Set: Fix stat collection Created 6 years, 8 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: chrome/renderer/net/net_error_helper_core_unittest.cc
diff --git a/chrome/renderer/net/net_error_helper_core_unittest.cc b/chrome/renderer/net/net_error_helper_core_unittest.cc
index f30030e65713332b7b53b7fa9c65458a81ed0f75..92c11e61aa2a7ab2ac5610e90186b24882d059a7 100644
--- a/chrome/renderer/net/net_error_helper_core_unittest.cc
+++ b/chrome/renderer/net/net_error_helper_core_unittest.cc
@@ -6,15 +6,20 @@
#include "base/json/json_writer.h"
#include "base/logging.h"
+#include "base/metrics/statistics_recorder.h"
#include "base/strings/stringprintf.h"
#include "base/timer/mock_timer.h"
#include "base/timer/timer.h"
#include "base/values.h"
#include "chrome/common/net/net_error_info.h"
+#include "chrome/test/base/uma_histogram_helper.h"
+#include "content/public/common/url_constants.h"
#include "net/base/net_errors.h"
#include "testing/gtest/include/gtest/gtest.h"
#include "third_party/WebKit/public/platform/WebURLError.h"
+namespace {
+
using blink::WebURLError;
using chrome_common_net::DnsProbeStatus;
using chrome_common_net::DnsProbeStatusToString;
@@ -120,7 +125,8 @@ class NetErrorHelperCoreTest : public testing::Test,
error_html_update_count_(0),
reload_count_(0),
load_stale_count_(0),
- enable_page_helper_functions_count_(0) {
+ enable_page_helper_functions_count_(0),
+ default_url_(GURL(kFailedUrl)) {
core_.set_auto_reload_enabled(false);
core_.set_timer_for_testing(scoped_ptr<base::Timer>(timer_));
}
@@ -130,6 +136,10 @@ class NetErrorHelperCoreTest : public testing::Test,
EXPECT_FALSE(is_url_being_fetched());
}
+ virtual void SetUp() OVERRIDE {
+ base::StatisticsRecorder::Initialize();
+ }
+
NetErrorHelperCore& core() { return core_; }
const GURL& url_being_fetched() const { return url_being_fetched_; }
@@ -147,6 +157,10 @@ class NetErrorHelperCoreTest : public testing::Test,
return load_stale_url_;
}
+ const GURL& default_url() const {
+ return default_url_;
+ }
+
int enable_page_helper_functions_count() const {
return enable_page_helper_functions_count_;
}
@@ -189,14 +203,15 @@ class NetErrorHelperCoreTest : public testing::Test,
core().OnStartLoad(NetErrorHelperCore::MAIN_FRAME,
NetErrorHelperCore::ERROR_PAGE);
- core().OnCommitLoad(NetErrorHelperCore::MAIN_FRAME);
+ core().OnCommitLoad(NetErrorHelperCore::MAIN_FRAME,
+ GURL(content::kUnreachableWebDataURL));
core().OnFinishLoad(NetErrorHelperCore::MAIN_FRAME);
}
void DoSuccessLoad() {
core().OnStartLoad(NetErrorHelperCore::MAIN_FRAME,
NetErrorHelperCore::NON_ERROR_PAGE);
- core().OnCommitLoad(NetErrorHelperCore::MAIN_FRAME);
+ core().OnCommitLoad(NetErrorHelperCore::MAIN_FRAME, default_url());
core().OnFinishLoad(NetErrorHelperCore::MAIN_FRAME);
}
@@ -311,6 +326,8 @@ class NetErrorHelperCoreTest : public testing::Test,
GURL load_stale_url_;
int enable_page_helper_functions_count_;
+
+ GURL default_url_;
};
//------------------------------------------------------------------------------
@@ -324,7 +341,7 @@ TEST_F(NetErrorHelperCoreTest, Null) {
TEST_F(NetErrorHelperCoreTest, SuccessfulPageLoad) {
core().OnStartLoad(NetErrorHelperCore::MAIN_FRAME,
NetErrorHelperCore::NON_ERROR_PAGE);
- core().OnCommitLoad(NetErrorHelperCore::MAIN_FRAME);
+ core().OnCommitLoad(NetErrorHelperCore::MAIN_FRAME, default_url());
core().OnFinishLoad(NetErrorHelperCore::MAIN_FRAME);
EXPECT_EQ(0, update_count());
EXPECT_EQ(0, error_html_update_count());
@@ -334,7 +351,7 @@ TEST_F(NetErrorHelperCoreTest, SuccessfulPageLoadWithNavigationCorrections) {
EnableNavigationCorrections();
core().OnStartLoad(NetErrorHelperCore::MAIN_FRAME,
NetErrorHelperCore::NON_ERROR_PAGE);
- core().OnCommitLoad(NetErrorHelperCore::MAIN_FRAME);
+ core().OnCommitLoad(NetErrorHelperCore::MAIN_FRAME, default_url());
core().OnFinishLoad(NetErrorHelperCore::MAIN_FRAME);
EXPECT_EQ(0, update_count());
EXPECT_EQ(0, error_html_update_count());
@@ -357,7 +374,8 @@ TEST_F(NetErrorHelperCoreTest, MainFrameNonDnsError) {
EXPECT_EQ(0, enable_page_helper_functions_count());
core().OnStartLoad(NetErrorHelperCore::MAIN_FRAME,
NetErrorHelperCore::ERROR_PAGE);
- core().OnCommitLoad(NetErrorHelperCore::MAIN_FRAME);
+ core().OnCommitLoad(NetErrorHelperCore::MAIN_FRAME,
+ GURL(content::kUnreachableWebDataURL));
core().OnFinishLoad(NetErrorHelperCore::MAIN_FRAME);
EXPECT_EQ(0, update_count());
EXPECT_EQ(0, error_html_update_count());
@@ -382,7 +400,7 @@ TEST_F(NetErrorHelperCoreTest, MainFrameNonDnsErrorWithCorrections) {
// Error page loads.
core().OnStartLoad(NetErrorHelperCore::MAIN_FRAME,
NetErrorHelperCore::ERROR_PAGE);
- core().OnCommitLoad(NetErrorHelperCore::MAIN_FRAME);
+ core().OnCommitLoad(NetErrorHelperCore::MAIN_FRAME, default_url());
mmenke 2014/04/28 20:21:14 GURL(content::kUnreachableWebDataURL)
Elly Fong-Jones 2014/04/30 15:34:08 Done.
core().OnFinishLoad(NetErrorHelperCore::MAIN_FRAME);
EXPECT_EQ(0, update_count());
EXPECT_EQ(0, error_html_update_count());
@@ -413,7 +431,7 @@ TEST_F(NetErrorHelperCoreTest, MainFrameNonDnsErrorSpuriousStatus) {
NetErrorHelperCore::ERROR_PAGE);
core().OnNetErrorInfo(chrome_common_net::DNS_PROBE_FINISHED_NXDOMAIN);
- core().OnCommitLoad(NetErrorHelperCore::MAIN_FRAME);
+ core().OnCommitLoad(NetErrorHelperCore::MAIN_FRAME, default_url());
mmenke 2014/04/28 20:21:14 GURL(content::kUnreachableWebDataURL)
Elly Fong-Jones 2014/04/30 15:34:08 Done.
core().OnNetErrorInfo(chrome_common_net::DNS_PROBE_FINISHED_NXDOMAIN);
core().OnFinishLoad(NetErrorHelperCore::MAIN_FRAME);
@@ -439,7 +457,7 @@ TEST_F(NetErrorHelperCoreTest, SubFrameDnsError) {
// Error page loads.
core().OnStartLoad(NetErrorHelperCore::SUB_FRAME,
NetErrorHelperCore::ERROR_PAGE);
- core().OnCommitLoad(NetErrorHelperCore::SUB_FRAME);
+ core().OnCommitLoad(NetErrorHelperCore::SUB_FRAME, default_url());
mmenke 2014/04/28 20:21:14 GURL(content::kUnreachableWebDataURL)
Elly Fong-Jones 2014/04/30 15:34:08 Done.
core().OnFinishLoad(NetErrorHelperCore::SUB_FRAME);
EXPECT_EQ(0, update_count());
EXPECT_EQ(0, error_html_update_count());
@@ -463,7 +481,7 @@ TEST_F(NetErrorHelperCoreTest, SubFrameDnsErrorWithCorrections) {
// Error page loads.
core().OnStartLoad(NetErrorHelperCore::SUB_FRAME,
NetErrorHelperCore::ERROR_PAGE);
- core().OnCommitLoad(NetErrorHelperCore::SUB_FRAME);
+ core().OnCommitLoad(NetErrorHelperCore::SUB_FRAME, default_url());
mmenke 2014/04/28 20:21:14 GURL(content::kUnreachableWebDataURL) Basically a
Elly Fong-Jones 2014/04/30 15:34:08 Done.
core().OnFinishLoad(NetErrorHelperCore::SUB_FRAME);
EXPECT_EQ(0, update_count());
EXPECT_EQ(0, error_html_update_count());
@@ -493,7 +511,7 @@ TEST_F(NetErrorHelperCoreTest, SubFrameDnsErrorSpuriousStatus) {
NetErrorHelperCore::ERROR_PAGE);
core().OnNetErrorInfo(chrome_common_net::DNS_PROBE_FINISHED_NXDOMAIN);
- core().OnCommitLoad(NetErrorHelperCore::SUB_FRAME);
+ core().OnCommitLoad(NetErrorHelperCore::SUB_FRAME, default_url());
core().OnNetErrorInfo(chrome_common_net::DNS_PROBE_FINISHED_NXDOMAIN);
core().OnFinishLoad(NetErrorHelperCore::SUB_FRAME);
@@ -526,7 +544,7 @@ TEST_F(NetErrorHelperCoreTest, FinishedBeforeProbe) {
// Error page loads.
core().OnStartLoad(NetErrorHelperCore::MAIN_FRAME,
NetErrorHelperCore::ERROR_PAGE);
- core().OnCommitLoad(NetErrorHelperCore::MAIN_FRAME);
+ core().OnCommitLoad(NetErrorHelperCore::MAIN_FRAME, default_url());
core().OnFinishLoad(NetErrorHelperCore::MAIN_FRAME);
EXPECT_EQ(0, update_count());
@@ -564,7 +582,7 @@ TEST_F(NetErrorHelperCoreTest, FinishedBeforeProbeNotRun) {
// Error page loads.
core().OnStartLoad(NetErrorHelperCore::MAIN_FRAME,
NetErrorHelperCore::ERROR_PAGE);
- core().OnCommitLoad(NetErrorHelperCore::MAIN_FRAME);
+ core().OnCommitLoad(NetErrorHelperCore::MAIN_FRAME, default_url());
core().OnFinishLoad(NetErrorHelperCore::MAIN_FRAME);
EXPECT_EQ(0, update_count());
@@ -598,7 +616,7 @@ TEST_F(NetErrorHelperCoreTest, FinishedBeforeProbeInconclusive) {
// Error page loads.
core().OnStartLoad(NetErrorHelperCore::MAIN_FRAME,
NetErrorHelperCore::ERROR_PAGE);
- core().OnCommitLoad(NetErrorHelperCore::MAIN_FRAME);
+ core().OnCommitLoad(NetErrorHelperCore::MAIN_FRAME, default_url());
core().OnFinishLoad(NetErrorHelperCore::MAIN_FRAME);
EXPECT_EQ(0, update_count());
@@ -636,7 +654,7 @@ TEST_F(NetErrorHelperCoreTest, FinishedBeforeProbeNoInternet) {
// Error page loads.
core().OnStartLoad(NetErrorHelperCore::MAIN_FRAME,
NetErrorHelperCore::ERROR_PAGE);
- core().OnCommitLoad(NetErrorHelperCore::MAIN_FRAME);
+ core().OnCommitLoad(NetErrorHelperCore::MAIN_FRAME, default_url());
core().OnFinishLoad(NetErrorHelperCore::MAIN_FRAME);
EXPECT_EQ(0, update_count());
@@ -675,7 +693,7 @@ TEST_F(NetErrorHelperCoreTest, FinishedBeforeProbeBadConfig) {
// Error page loads.
core().OnStartLoad(NetErrorHelperCore::MAIN_FRAME,
NetErrorHelperCore::ERROR_PAGE);
- core().OnCommitLoad(NetErrorHelperCore::MAIN_FRAME);
+ core().OnCommitLoad(NetErrorHelperCore::MAIN_FRAME, default_url());
core().OnFinishLoad(NetErrorHelperCore::MAIN_FRAME);
EXPECT_EQ(0, update_count());
@@ -715,7 +733,7 @@ TEST_F(NetErrorHelperCoreTest, FinishedAfterStartProbe) {
// Error page loads.
core().OnStartLoad(NetErrorHelperCore::MAIN_FRAME,
NetErrorHelperCore::ERROR_PAGE);
- core().OnCommitLoad(NetErrorHelperCore::MAIN_FRAME);
+ core().OnCommitLoad(NetErrorHelperCore::MAIN_FRAME, default_url());
// Nothing should be done when a probe status comes in before loading
// finishes.
@@ -762,7 +780,7 @@ TEST_F(NetErrorHelperCoreTest, FinishedBeforeProbePost) {
EXPECT_EQ(0, enable_page_helper_functions_count());
core().OnStartLoad(NetErrorHelperCore::MAIN_FRAME,
NetErrorHelperCore::ERROR_PAGE);
- core().OnCommitLoad(NetErrorHelperCore::MAIN_FRAME);
+ core().OnCommitLoad(NetErrorHelperCore::MAIN_FRAME, default_url());
core().OnFinishLoad(NetErrorHelperCore::MAIN_FRAME);
EXPECT_EQ(0, update_count());
EXPECT_EQ(1, enable_page_helper_functions_count());
@@ -806,7 +824,7 @@ TEST_F(NetErrorHelperCoreTest, ProbeFinishesEarly) {
core().OnNetErrorInfo(chrome_common_net::DNS_PROBE_FINISHED_NXDOMAIN);
EXPECT_EQ(0, update_count());
- core().OnCommitLoad(NetErrorHelperCore::MAIN_FRAME);
+ core().OnCommitLoad(NetErrorHelperCore::MAIN_FRAME, default_url());
EXPECT_EQ(0, update_count());
// When loading finishes, however, the buffered probe status should be sent
@@ -840,7 +858,7 @@ TEST_F(NetErrorHelperCoreTest, TwoErrorsWithProbes) {
// Error page loads.
core().OnStartLoad(NetErrorHelperCore::MAIN_FRAME,
NetErrorHelperCore::ERROR_PAGE);
- core().OnCommitLoad(NetErrorHelperCore::MAIN_FRAME);
+ core().OnCommitLoad(NetErrorHelperCore::MAIN_FRAME, default_url());
core().OnFinishLoad(NetErrorHelperCore::MAIN_FRAME);
// Probe results come in.
@@ -866,7 +884,7 @@ TEST_F(NetErrorHelperCoreTest, TwoErrorsWithProbes) {
// Error page loads.
core().OnStartLoad(NetErrorHelperCore::MAIN_FRAME,
NetErrorHelperCore::ERROR_PAGE);
- core().OnCommitLoad(NetErrorHelperCore::MAIN_FRAME);
+ core().OnCommitLoad(NetErrorHelperCore::MAIN_FRAME, default_url());
core().OnFinishLoad(NetErrorHelperCore::MAIN_FRAME);
EXPECT_EQ(2, update_count());
@@ -902,7 +920,7 @@ TEST_F(NetErrorHelperCoreTest, TwoErrorsWithProbesAfterSecondStarts) {
// Error page loads.
core().OnStartLoad(NetErrorHelperCore::MAIN_FRAME,
NetErrorHelperCore::ERROR_PAGE);
- core().OnCommitLoad(NetErrorHelperCore::MAIN_FRAME);
+ core().OnCommitLoad(NetErrorHelperCore::MAIN_FRAME, default_url());
core().OnFinishLoad(NetErrorHelperCore::MAIN_FRAME);
// The process starts again.
@@ -930,7 +948,7 @@ TEST_F(NetErrorHelperCoreTest, TwoErrorsWithProbesAfterSecondStarts) {
last_error_html());
// Second page finishes loading, and is updated using the same probe result.
- core().OnCommitLoad(NetErrorHelperCore::MAIN_FRAME);
+ core().OnCommitLoad(NetErrorHelperCore::MAIN_FRAME, default_url());
core().OnFinishLoad(NetErrorHelperCore::MAIN_FRAME);
EXPECT_EQ(3, update_count());
EXPECT_EQ(ProbeErrorString(chrome_common_net::DNS_PROBE_FINISHED_NXDOMAIN),
@@ -976,7 +994,7 @@ TEST_F(NetErrorHelperCoreTest, ErrorPageLoadInterrupted) {
EXPECT_EQ(ProbeErrorString(chrome_common_net::DNS_PROBE_POSSIBLE), html);
// Error page finishes loading.
- core().OnCommitLoad(NetErrorHelperCore::MAIN_FRAME);
+ core().OnCommitLoad(NetErrorHelperCore::MAIN_FRAME, default_url());
core().OnFinishLoad(NetErrorHelperCore::MAIN_FRAME);
// Probe results come in.
@@ -1019,7 +1037,7 @@ TEST_F(NetErrorHelperCoreTest, NoCorrectionsForHttps) {
// The blank page loads, no error page is loaded.
core().OnStartLoad(NetErrorHelperCore::MAIN_FRAME,
NetErrorHelperCore::ERROR_PAGE);
- core().OnCommitLoad(NetErrorHelperCore::MAIN_FRAME);
+ core().OnCommitLoad(NetErrorHelperCore::MAIN_FRAME, default_url());
core().OnFinishLoad(NetErrorHelperCore::MAIN_FRAME);
EXPECT_FALSE(is_url_being_fetched());
EXPECT_FALSE(last_error_page_params());
@@ -1056,7 +1074,7 @@ TEST_F(NetErrorHelperCoreTest, CorrectionsReceivedBeforeProbe) {
// The blank page loads.
core().OnStartLoad(NetErrorHelperCore::MAIN_FRAME,
NetErrorHelperCore::ERROR_PAGE);
- core().OnCommitLoad(NetErrorHelperCore::MAIN_FRAME);
+ core().OnCommitLoad(NetErrorHelperCore::MAIN_FRAME, default_url());
// Corrections retrieval starts when the error page finishes loading.
EXPECT_FALSE(is_url_being_fetched());
@@ -1076,7 +1094,7 @@ TEST_F(NetErrorHelperCoreTest, CorrectionsReceivedBeforeProbe) {
// Corrections load.
core().OnStartLoad(NetErrorHelperCore::MAIN_FRAME,
NetErrorHelperCore::ERROR_PAGE);
- core().OnCommitLoad(NetErrorHelperCore::MAIN_FRAME);
+ core().OnCommitLoad(NetErrorHelperCore::MAIN_FRAME, default_url());
core().OnFinishLoad(NetErrorHelperCore::MAIN_FRAME);
// Any probe statuses should be ignored.
@@ -1105,7 +1123,7 @@ TEST_F(NetErrorHelperCoreTest, CorrectionsRetrievedAfterProbes) {
// The blank page loads.
core().OnStartLoad(NetErrorHelperCore::MAIN_FRAME,
NetErrorHelperCore::ERROR_PAGE);
- core().OnCommitLoad(NetErrorHelperCore::MAIN_FRAME);
+ core().OnCommitLoad(NetErrorHelperCore::MAIN_FRAME, default_url());
core().OnFinishLoad(NetErrorHelperCore::MAIN_FRAME);
EXPECT_TRUE(is_url_being_fetched());
EXPECT_FALSE(last_error_page_params());
@@ -1129,7 +1147,7 @@ TEST_F(NetErrorHelperCoreTest, CorrectionsRetrievedAfterProbes) {
// Corrections load.
core().OnStartLoad(NetErrorHelperCore::MAIN_FRAME,
NetErrorHelperCore::ERROR_PAGE);
- core().OnCommitLoad(NetErrorHelperCore::MAIN_FRAME);
+ core().OnCommitLoad(NetErrorHelperCore::MAIN_FRAME, default_url());
core().OnFinishLoad(NetErrorHelperCore::MAIN_FRAME);
EXPECT_EQ(1, error_html_update_count());
EXPECT_EQ(0, update_count());
@@ -1153,7 +1171,7 @@ TEST_F(NetErrorHelperCoreTest, CorrectionsFailLoadNoProbes) {
// The blank page loads.
core().OnStartLoad(NetErrorHelperCore::MAIN_FRAME,
NetErrorHelperCore::ERROR_PAGE);
- core().OnCommitLoad(NetErrorHelperCore::MAIN_FRAME);
+ core().OnCommitLoad(NetErrorHelperCore::MAIN_FRAME, default_url());
core().OnFinishLoad(NetErrorHelperCore::MAIN_FRAME);
// Corrections request fails, final error page is shown.
@@ -1168,7 +1186,7 @@ TEST_F(NetErrorHelperCoreTest, CorrectionsFailLoadNoProbes) {
// Error page loads.
core().OnStartLoad(NetErrorHelperCore::MAIN_FRAME,
NetErrorHelperCore::ERROR_PAGE);
- core().OnCommitLoad(NetErrorHelperCore::MAIN_FRAME);
+ core().OnCommitLoad(NetErrorHelperCore::MAIN_FRAME, default_url());
core().OnFinishLoad(NetErrorHelperCore::MAIN_FRAME);
// If probe statuses come in last from another page load, they should be
@@ -1197,7 +1215,7 @@ TEST_F(NetErrorHelperCoreTest, CorrectionsFailLoadBeforeProbe) {
// The blank page loads.
core().OnStartLoad(NetErrorHelperCore::MAIN_FRAME,
NetErrorHelperCore::ERROR_PAGE);
- core().OnCommitLoad(NetErrorHelperCore::MAIN_FRAME);
+ core().OnCommitLoad(NetErrorHelperCore::MAIN_FRAME, default_url());
core().OnFinishLoad(NetErrorHelperCore::MAIN_FRAME);
// Corrections request fails, probe pending page shown.
@@ -1212,7 +1230,7 @@ TEST_F(NetErrorHelperCoreTest, CorrectionsFailLoadBeforeProbe) {
// Probe page loads.
core().OnStartLoad(NetErrorHelperCore::MAIN_FRAME,
NetErrorHelperCore::ERROR_PAGE);
- core().OnCommitLoad(NetErrorHelperCore::MAIN_FRAME);
+ core().OnCommitLoad(NetErrorHelperCore::MAIN_FRAME, default_url());
core().OnFinishLoad(NetErrorHelperCore::MAIN_FRAME);
// Probe statuses comes in, and page is updated.
@@ -1249,7 +1267,7 @@ TEST_F(NetErrorHelperCoreTest, CorrectionsFailAfterProbe) {
// The blank page loads.
core().OnStartLoad(NetErrorHelperCore::MAIN_FRAME,
NetErrorHelperCore::ERROR_PAGE);
- core().OnCommitLoad(NetErrorHelperCore::MAIN_FRAME);
+ core().OnCommitLoad(NetErrorHelperCore::MAIN_FRAME, default_url());
core().OnFinishLoad(NetErrorHelperCore::MAIN_FRAME);
// Results come in, but end up being ignored.
@@ -1269,7 +1287,7 @@ TEST_F(NetErrorHelperCoreTest, CorrectionsFailAfterProbe) {
// Probe page loads.
core().OnStartLoad(NetErrorHelperCore::MAIN_FRAME,
NetErrorHelperCore::ERROR_PAGE);
- core().OnCommitLoad(NetErrorHelperCore::MAIN_FRAME);
+ core().OnCommitLoad(NetErrorHelperCore::MAIN_FRAME, default_url());
core().OnFinishLoad(NetErrorHelperCore::MAIN_FRAME);
// Probe statuses comes in, and page is updated.
@@ -1309,7 +1327,7 @@ TEST_F(NetErrorHelperCoreTest, CorrectionsInterruptedBeforeCommit) {
core().OnStartLoad(NetErrorHelperCore::MAIN_FRAME,
NetErrorHelperCore::NON_ERROR_PAGE);
EXPECT_FALSE(is_url_being_fetched());
- core().OnCommitLoad(NetErrorHelperCore::MAIN_FRAME);
+ core().OnCommitLoad(NetErrorHelperCore::MAIN_FRAME, default_url());
EXPECT_FALSE(is_url_being_fetched());
core().OnFinishLoad(NetErrorHelperCore::MAIN_FRAME);
@@ -1336,14 +1354,14 @@ TEST_F(NetErrorHelperCoreTest, CorrectionsInterruptedBeforeLoad) {
// The blank page starts loading and is committed.
core().OnStartLoad(NetErrorHelperCore::MAIN_FRAME,
NetErrorHelperCore::ERROR_PAGE);
- core().OnCommitLoad(NetErrorHelperCore::MAIN_FRAME);
+ core().OnCommitLoad(NetErrorHelperCore::MAIN_FRAME, default_url());
// A new page load interrupts the original load.
EXPECT_FALSE(is_url_being_fetched());
core().OnStartLoad(NetErrorHelperCore::MAIN_FRAME,
NetErrorHelperCore::NON_ERROR_PAGE);
EXPECT_FALSE(is_url_being_fetched());
- core().OnCommitLoad(NetErrorHelperCore::MAIN_FRAME);
+ core().OnCommitLoad(NetErrorHelperCore::MAIN_FRAME, default_url());
EXPECT_FALSE(is_url_being_fetched());
core().OnFinishLoad(NetErrorHelperCore::MAIN_FRAME);
@@ -1370,7 +1388,7 @@ TEST_F(NetErrorHelperCoreTest, CorrectionsInterrupted) {
// The blank page loads.
core().OnStartLoad(NetErrorHelperCore::MAIN_FRAME,
NetErrorHelperCore::ERROR_PAGE);
- core().OnCommitLoad(NetErrorHelperCore::MAIN_FRAME);
+ core().OnCommitLoad(NetErrorHelperCore::MAIN_FRAME, default_url());
core().OnFinishLoad(NetErrorHelperCore::MAIN_FRAME);
EXPECT_TRUE(is_url_being_fetched());
@@ -1391,7 +1409,7 @@ TEST_F(NetErrorHelperCoreTest, CorrectionsInterrupted) {
EXPECT_TRUE(html.empty());
core().OnStartLoad(NetErrorHelperCore::MAIN_FRAME,
NetErrorHelperCore::ERROR_PAGE);
- core().OnCommitLoad(NetErrorHelperCore::MAIN_FRAME);
+ core().OnCommitLoad(NetErrorHelperCore::MAIN_FRAME, default_url());
EXPECT_FALSE(is_url_being_fetched());
core().OnFinishLoad(NetErrorHelperCore::MAIN_FRAME);
EXPECT_TRUE(is_url_being_fetched());
@@ -1429,7 +1447,7 @@ TEST_F(NetErrorHelperCoreTest, CorrectionsStopped) {
// The blank page loads.
core().OnStartLoad(NetErrorHelperCore::MAIN_FRAME,
NetErrorHelperCore::ERROR_PAGE);
- core().OnCommitLoad(NetErrorHelperCore::MAIN_FRAME);
+ core().OnCommitLoad(NetErrorHelperCore::MAIN_FRAME, default_url());
core().OnFinishLoad(NetErrorHelperCore::MAIN_FRAME);
EXPECT_TRUE(is_url_being_fetched());
@@ -1454,7 +1472,7 @@ TEST_F(NetErrorHelperCoreTest, CorrectionsStopped) {
// The blank page loads again.
core().OnStartLoad(NetErrorHelperCore::MAIN_FRAME,
NetErrorHelperCore::ERROR_PAGE);
- core().OnCommitLoad(NetErrorHelperCore::MAIN_FRAME);
+ core().OnCommitLoad(NetErrorHelperCore::MAIN_FRAME, default_url());
core().OnFinishLoad(NetErrorHelperCore::MAIN_FRAME);
EXPECT_TRUE(is_url_being_fetched());
@@ -1468,7 +1486,7 @@ TEST_F(NetErrorHelperCoreTest, CorrectionsStopped) {
// Probe page loads.
core().OnStartLoad(NetErrorHelperCore::MAIN_FRAME,
NetErrorHelperCore::ERROR_PAGE);
- core().OnCommitLoad(NetErrorHelperCore::MAIN_FRAME);
+ core().OnCommitLoad(NetErrorHelperCore::MAIN_FRAME, default_url());
core().OnFinishLoad(NetErrorHelperCore::MAIN_FRAME);
// Probe statuses comes in, and page is updated.
@@ -1504,7 +1522,7 @@ TEST_F(NetErrorHelperCoreTest, CorrectionsDisabledBeforeFetch) {
NetErrorHelperCore::ERROR_PAGE);
// Corrections is disabled.
DisableNavigationCorrections();
- core().OnCommitLoad(NetErrorHelperCore::MAIN_FRAME);
+ core().OnCommitLoad(NetErrorHelperCore::MAIN_FRAME, default_url());
core().OnFinishLoad(NetErrorHelperCore::MAIN_FRAME);
EXPECT_TRUE(is_url_being_fetched());
EXPECT_FALSE(last_error_page_params());
@@ -1520,7 +1538,7 @@ TEST_F(NetErrorHelperCoreTest, CorrectionsDisabledBeforeFetch) {
// Corrections load.
core().OnStartLoad(NetErrorHelperCore::MAIN_FRAME,
NetErrorHelperCore::ERROR_PAGE);
- core().OnCommitLoad(NetErrorHelperCore::MAIN_FRAME);
+ core().OnCommitLoad(NetErrorHelperCore::MAIN_FRAME, default_url());
core().OnFinishLoad(NetErrorHelperCore::MAIN_FRAME);
EXPECT_EQ(1, error_html_update_count());
EXPECT_EQ(0, update_count());
@@ -1544,7 +1562,7 @@ TEST_F(NetErrorHelperCoreTest, CorrectionsDisabledDuringFetch) {
// The blank page loads.
core().OnStartLoad(NetErrorHelperCore::MAIN_FRAME,
NetErrorHelperCore::ERROR_PAGE);
- core().OnCommitLoad(NetErrorHelperCore::MAIN_FRAME);
+ core().OnCommitLoad(NetErrorHelperCore::MAIN_FRAME, default_url());
core().OnFinishLoad(NetErrorHelperCore::MAIN_FRAME);
EXPECT_TRUE(is_url_being_fetched());
EXPECT_FALSE(last_error_page_params());
@@ -1563,7 +1581,7 @@ TEST_F(NetErrorHelperCoreTest, CorrectionsDisabledDuringFetch) {
// Corrections load.
core().OnStartLoad(NetErrorHelperCore::MAIN_FRAME,
NetErrorHelperCore::ERROR_PAGE);
- core().OnCommitLoad(NetErrorHelperCore::MAIN_FRAME);
+ core().OnCommitLoad(NetErrorHelperCore::MAIN_FRAME, default_url());
core().OnFinishLoad(NetErrorHelperCore::MAIN_FRAME);
EXPECT_EQ(1, error_html_update_count());
EXPECT_EQ(0, update_count());
@@ -1590,7 +1608,7 @@ TEST_F(NetErrorHelperCoreTest, CorrectionsWithoutSearch) {
// The blank page loads.
core().OnStartLoad(NetErrorHelperCore::MAIN_FRAME,
NetErrorHelperCore::ERROR_PAGE);
- core().OnCommitLoad(NetErrorHelperCore::MAIN_FRAME);
+ core().OnCommitLoad(NetErrorHelperCore::MAIN_FRAME, default_url());
core().OnFinishLoad(NetErrorHelperCore::MAIN_FRAME);
EXPECT_TRUE(is_url_being_fetched());
EXPECT_FALSE(last_error_page_params());
@@ -1611,7 +1629,7 @@ TEST_F(NetErrorHelperCoreTest, CorrectionsWithoutSearch) {
// Corrections load.
core().OnStartLoad(NetErrorHelperCore::MAIN_FRAME,
NetErrorHelperCore::ERROR_PAGE);
- core().OnCommitLoad(NetErrorHelperCore::MAIN_FRAME);
+ core().OnCommitLoad(NetErrorHelperCore::MAIN_FRAME, default_url());
core().OnFinishLoad(NetErrorHelperCore::MAIN_FRAME);
EXPECT_EQ(1, error_html_update_count());
EXPECT_EQ(0, update_count());
@@ -1638,7 +1656,7 @@ TEST_F(NetErrorHelperCoreTest, CorrectionsOnlySearchSuggestion) {
// The blank page loads.
core().OnStartLoad(NetErrorHelperCore::MAIN_FRAME,
NetErrorHelperCore::ERROR_PAGE);
- core().OnCommitLoad(NetErrorHelperCore::MAIN_FRAME);
+ core().OnCommitLoad(NetErrorHelperCore::MAIN_FRAME, default_url());
core().OnFinishLoad(NetErrorHelperCore::MAIN_FRAME);
EXPECT_TRUE(is_url_being_fetched());
EXPECT_FALSE(last_error_page_params());
@@ -1659,7 +1677,7 @@ TEST_F(NetErrorHelperCoreTest, CorrectionsOnlySearchSuggestion) {
// Corrections load.
core().OnStartLoad(NetErrorHelperCore::MAIN_FRAME,
NetErrorHelperCore::ERROR_PAGE);
- core().OnCommitLoad(NetErrorHelperCore::MAIN_FRAME);
+ core().OnCommitLoad(NetErrorHelperCore::MAIN_FRAME, default_url());
core().OnFinishLoad(NetErrorHelperCore::MAIN_FRAME);
EXPECT_EQ(1, error_html_update_count());
EXPECT_EQ(0, update_count());
@@ -1682,7 +1700,7 @@ TEST_F(NetErrorHelperCoreTest, CorrectionServiceReturnsNonJsonResult) {
// The blank page loads.
core().OnStartLoad(NetErrorHelperCore::MAIN_FRAME,
NetErrorHelperCore::ERROR_PAGE);
- core().OnCommitLoad(NetErrorHelperCore::MAIN_FRAME);
+ core().OnCommitLoad(NetErrorHelperCore::MAIN_FRAME, default_url());
core().OnFinishLoad(NetErrorHelperCore::MAIN_FRAME);
// Corrections request fails, final error page is shown.
@@ -1697,7 +1715,7 @@ TEST_F(NetErrorHelperCoreTest, CorrectionServiceReturnsNonJsonResult) {
// Error page loads.
core().OnStartLoad(NetErrorHelperCore::MAIN_FRAME,
NetErrorHelperCore::ERROR_PAGE);
- core().OnCommitLoad(NetErrorHelperCore::MAIN_FRAME);
+ core().OnCommitLoad(NetErrorHelperCore::MAIN_FRAME, default_url());
core().OnFinishLoad(NetErrorHelperCore::MAIN_FRAME);
}
@@ -1719,7 +1737,7 @@ TEST_F(NetErrorHelperCoreTest, CorrectionServiceReturnsInvalidJsonResult) {
// The blank page loads.
core().OnStartLoad(NetErrorHelperCore::MAIN_FRAME,
NetErrorHelperCore::ERROR_PAGE);
- core().OnCommitLoad(NetErrorHelperCore::MAIN_FRAME);
+ core().OnCommitLoad(NetErrorHelperCore::MAIN_FRAME, default_url());
core().OnFinishLoad(NetErrorHelperCore::MAIN_FRAME);
// Corrections request fails, final error page is shown.
@@ -1734,7 +1752,7 @@ TEST_F(NetErrorHelperCoreTest, CorrectionServiceReturnsInvalidJsonResult) {
// Error page loads.
core().OnStartLoad(NetErrorHelperCore::MAIN_FRAME,
NetErrorHelperCore::ERROR_PAGE);
- core().OnCommitLoad(NetErrorHelperCore::MAIN_FRAME);
+ core().OnCommitLoad(NetErrorHelperCore::MAIN_FRAME, default_url());
core().OnFinishLoad(NetErrorHelperCore::MAIN_FRAME);
}
@@ -1790,8 +1808,9 @@ TEST_F(NetErrorHelperCoreTest, AutoReloadStopsTimerOnStop) {
TEST_F(NetErrorHelperCoreTest, AutoReloadStopsLoadingOnStop) {
core().set_auto_reload_enabled(true);
DoErrorLoad(net::ERR_CONNECTION_RESET);
- EXPECT_EQ(1, core().auto_reload_count());
+ EXPECT_EQ(0, core().auto_reload_count());
timer()->Fire();
+ EXPECT_EQ(1, core().auto_reload_count());
EXPECT_EQ(1, reload_count());
core().OnStop();
EXPECT_FALSE(timer()->IsRunning());
@@ -1805,21 +1824,23 @@ TEST_F(NetErrorHelperCoreTest, AutoReloadStopsOnOtherLoadStart) {
core().OnStartLoad(NetErrorHelperCore::MAIN_FRAME,
NetErrorHelperCore::NON_ERROR_PAGE);
EXPECT_FALSE(timer()->IsRunning());
- EXPECT_EQ(1, core().auto_reload_count());
+ EXPECT_EQ(0, core().auto_reload_count());
}
TEST_F(NetErrorHelperCoreTest, AutoReloadResetsCountOnSuccess) {
core().set_auto_reload_enabled(true);
DoErrorLoad(net::ERR_CONNECTION_RESET);
base::TimeDelta delay = timer()->GetCurrentDelay();
- EXPECT_EQ(1, core().auto_reload_count());
+ EXPECT_EQ(0, core().auto_reload_count());
timer()->Fire();
+ EXPECT_EQ(1, core().auto_reload_count());
EXPECT_EQ(1, reload_count());
DoSuccessLoad();
DoErrorLoad(net::ERR_CONNECTION_RESET);
- EXPECT_EQ(1, core().auto_reload_count());
+ EXPECT_EQ(0, core().auto_reload_count());
EXPECT_EQ(timer()->GetCurrentDelay(), delay);
timer()->Fire();
+ EXPECT_EQ(1, core().auto_reload_count());
EXPECT_EQ(2, reload_count());
DoSuccessLoad();
EXPECT_EQ(0, core().auto_reload_count());
@@ -1865,7 +1886,7 @@ TEST_F(NetErrorHelperCoreTest, AutoReloadStopsOnOfflineThenRestartsOnOnline) {
EXPECT_FALSE(timer()->IsRunning());
core().NetworkStateChanged(true);
EXPECT_TRUE(timer()->IsRunning());
- EXPECT_EQ(1, core().auto_reload_count());
+ EXPECT_EQ(0, core().auto_reload_count());
}
TEST_F(NetErrorHelperCoreTest, AutoReloadDoesNotRestartOnOnlineAfterStop) {
@@ -1911,7 +1932,7 @@ TEST_F(NetErrorHelperCoreTest, AutoReloadSlowError) {
NetError(net::ERR_CONNECTION_RESET), false, &html);
core().OnStartLoad(NetErrorHelperCore::MAIN_FRAME,
NetErrorHelperCore::ERROR_PAGE);
- core().OnCommitLoad(NetErrorHelperCore::MAIN_FRAME);
+ core().OnCommitLoad(NetErrorHelperCore::MAIN_FRAME, default_url());
EXPECT_FALSE(timer()->IsRunning());
// Start a new non-error page load.
core().OnStartLoad(NetErrorHelperCore::MAIN_FRAME,
@@ -1920,7 +1941,7 @@ TEST_F(NetErrorHelperCoreTest, AutoReloadSlowError) {
// Finish the error page load.
core().OnFinishLoad(NetErrorHelperCore::MAIN_FRAME);
EXPECT_FALSE(timer()->IsRunning());
- core().OnCommitLoad(NetErrorHelperCore::MAIN_FRAME);
+ core().OnCommitLoad(NetErrorHelperCore::MAIN_FRAME, default_url());
core().OnFinishLoad(NetErrorHelperCore::MAIN_FRAME);
EXPECT_FALSE(timer()->IsRunning());
}
@@ -1935,7 +1956,7 @@ TEST_F(NetErrorHelperCoreTest, AutoReloadOnlineSlowError) {
NetError(net::ERR_CONNECTION_RESET), false, &html);
core().OnStartLoad(NetErrorHelperCore::MAIN_FRAME,
NetErrorHelperCore::ERROR_PAGE);
- core().OnCommitLoad(NetErrorHelperCore::MAIN_FRAME);
+ core().OnCommitLoad(NetErrorHelperCore::MAIN_FRAME, default_url());
EXPECT_FALSE(timer()->IsRunning());
core().NetworkStateChanged(true);
EXPECT_FALSE(timer()->IsRunning());
@@ -1960,7 +1981,7 @@ TEST_F(NetErrorHelperCoreTest, AutoReloadOnlinePendingError) {
core().NetworkStateChanged(true);
EXPECT_FALSE(timer()->IsRunning());
core().NetworkStateChanged(false);
- core().OnCommitLoad(NetErrorHelperCore::MAIN_FRAME);
+ core().OnCommitLoad(NetErrorHelperCore::MAIN_FRAME, default_url());
core().OnFinishLoad(NetErrorHelperCore::MAIN_FRAME);
EXPECT_FALSE(timer()->IsRunning());
core().NetworkStateChanged(true);
@@ -1977,7 +1998,7 @@ TEST_F(NetErrorHelperCoreTest, AutoReloadOnlinePartialErrorReplacement) {
NetError(net::ERR_CONNECTION_RESET), false, &html);
core().OnStartLoad(NetErrorHelperCore::MAIN_FRAME,
NetErrorHelperCore::ERROR_PAGE);
- core().OnCommitLoad(NetErrorHelperCore::MAIN_FRAME);
+ core().OnCommitLoad(NetErrorHelperCore::MAIN_FRAME, default_url());
core().OnFinishLoad(NetErrorHelperCore::MAIN_FRAME);
core().OnStartLoad(NetErrorHelperCore::MAIN_FRAME,
NetErrorHelperCore::NON_ERROR_PAGE);
@@ -1990,6 +2011,215 @@ TEST_F(NetErrorHelperCoreTest, AutoReloadOnlinePartialErrorReplacement) {
EXPECT_FALSE(timer()->IsRunning());
}
+// Return the count for the named histogram, or 0 if there is no histogram by
+// that name. This function is error-tolerant because histograms that have no
+// data points may not be registered, and the unit tests below still need to be
+// able to check that they haven't changed.
+size_t GetHistogramCount(const char *name) {
+ base::HistogramBase* histogram =
+ base::StatisticsRecorder::FindHistogram(name);
+ if (!histogram)
+ return 0;
+ scoped_ptr<base::HistogramSamples> samples = histogram->SnapshotSamples();
+ if (!samples)
+ return 0;
+ return samples->TotalCount();
+}
+
+void ExpectHistogramDelta(const char *name, ssize_t old_count, ssize_t delta) {
+ ssize_t new_count = GetHistogramCount(name);
+ EXPECT_EQ(old_count + delta, new_count) << "For histogram " << name;
+}
+
+class NetErrorHelperCoreHistogramTest : public NetErrorHelperCoreTest {
+ public:
+ virtual void SetUp() OVERRIDE {
+ NetErrorHelperCoreTest::SetUp();
+ StoreOldCounts();
+ core().set_auto_reload_enabled(true);
+ }
+
+ void ExpectDelta(const char *name, int delta) {
+ DCHECK(old_counts_.count(name) == 1);
+ ExpectHistogramDelta(name, old_counts_[name], delta);
+ }
+
+ static const char kCountAtStop[];
+ static const char kErrorAtStop[];
+ static const char kCountAtSuccess[];
+ static const char kErrorAtSuccess[];
+ static const char kErrorAtFirstSuccess[];
+
+ private:
+ void StoreOldCounts() {
+ for (size_t i = 0; kHistogramNames[i]; i++)
+ old_counts_[kHistogramNames[i]] = GetHistogramCount(kHistogramNames[i]);
+ }
+
+ static const char *kHistogramNames[];
+
+ std::map<std::string, int> old_counts_;
mmenke 2014/04/28 20:21:14 Should include string and map...Looks like we aren
Elly Fong-Jones 2014/04/30 15:34:08 Done.
+};
+
+const char NetErrorHelperCoreHistogramTest::kCountAtStop[] =
+ "Net.AutoReload.CountAtStop";
+const char NetErrorHelperCoreHistogramTest::kErrorAtStop[] =
+ "Net.AutoReload.ErrorAtStop";
+const char NetErrorHelperCoreHistogramTest::kCountAtSuccess[] =
+ "Net.AutoReload.CountAtSuccess";
+const char NetErrorHelperCoreHistogramTest::kErrorAtSuccess[] =
+ "Net.AutoReload.ErrorAtSuccess";
+const char NetErrorHelperCoreHistogramTest::kErrorAtFirstSuccess[] =
+ "Net.AutoReload.ErrorAtFirstSuccess";
+const char *NetErrorHelperCoreHistogramTest::kHistogramNames[] = {
+ kCountAtStop,
+ kErrorAtStop,
+ kCountAtSuccess,
+ kErrorAtSuccess,
+ kErrorAtFirstSuccess,
+ NULL
mmenke 2014/04/28 20:21:14 Can't just use arraysize or ARRAY_SIZE_UNSAFE? I'
Elly Fong-Jones 2014/04/30 15:34:08 I believe not since the array's values (and hence
+};
+
+// Test that the success histograms are updated when auto-reload succeeds at the
+// first attempt, and that the failure histograms are not updated.
+TEST_F(NetErrorHelperCoreHistogramTest, SuccessAtFirstAttempt) {
+ DoErrorLoad(net::ERR_CONNECTION_RESET);
+ timer()->Fire();
+ DoSuccessLoad();
+
+ // All of CountAtSuccess, ErrorAtSuccess, and ErrorAtFirstSuccess should
+ // reflect this successful load. The failure histograms should be unchanged.
+ ExpectDelta(kCountAtSuccess, 1);
+ ExpectDelta(kErrorAtSuccess, 1);
+ ExpectDelta(kErrorAtFirstSuccess, 1);
+ ExpectDelta(kCountAtStop, 0);
+ ExpectDelta(kErrorAtStop, 0);
+}
+
+// Test that the success histograms are updated when auto-reload succeeds but
+// not on the first attempt, and that the first-success histogram is not
+// updated.
+TEST_F(NetErrorHelperCoreHistogramTest, SuccessAtSecondAttempt) {
+ DoErrorLoad(net::ERR_CONNECTION_RESET);
+ timer()->Fire();
+ DoErrorLoad(net::ERR_CONNECTION_RESET);
+ timer()->Fire();
+ DoSuccessLoad();
+
+ // CountAtSuccess and ErrorAtSuccess should reflect this successful load, but
+ // not ErrorAtFirstSuccess since it wasn't a first success.
+ ExpectDelta(kCountAtSuccess, 1);
+ ExpectDelta(kErrorAtSuccess, 1);
+ ExpectDelta(kErrorAtFirstSuccess, 0);
+ ExpectDelta(kCountAtStop, 0);
+ ExpectDelta(kErrorAtStop, 0);
+}
+
+// Test that a user stop (caused by the user pressing the 'Stop' button)
+// registers as an auto-reload failure if an auto-reload attempt is in flight.
+// Note that "user stop" is also caused by a cross-process navigation, for which
+// the browser process will send an OnStop to the old process.
+TEST_F(NetErrorHelperCoreHistogramTest, UserStop) {
+ DoErrorLoad(net::ERR_CONNECTION_RESET);
+ timer()->Fire();
+ core().OnStartLoad(NetErrorHelperCore::MAIN_FRAME,
+ NetErrorHelperCore::NON_ERROR_PAGE);
+ core().OnStop();
+
+ // CountAtStop and ErrorAtStop should reflect the failure.
+ ExpectDelta(kCountAtSuccess, 0);
+ ExpectDelta(kErrorAtSuccess, 0);
+ ExpectDelta(kErrorAtFirstSuccess, 0);
+ ExpectDelta(kCountAtStop, 1);
+ ExpectDelta(kErrorAtStop, 1);
+}
+
+// Test that a user stop (caused by the user pressing the 'Stop' button)
+// registers as an auto-reload failure even if an auto-reload attempt has not
+// been launched yet (i.e., if the timer is running, but no reload is in
+// flight), because this means auto-reload didn't successfully replace the error
+// page.
+TEST_F(NetErrorHelperCoreHistogramTest, OtherPageLoaded) {
+ DoErrorLoad(net::ERR_CONNECTION_RESET);
+ core().OnStartLoad(NetErrorHelperCore::MAIN_FRAME,
+ NetErrorHelperCore::NON_ERROR_PAGE);
+ core().OnStop();
+
+ ExpectDelta(kCountAtSuccess, 0);
+ ExpectDelta(kErrorAtSuccess, 0);
+ ExpectDelta(kErrorAtFirstSuccess, 0);
+ ExpectDelta(kCountAtStop, 1);
+ ExpectDelta(kErrorAtStop, 1);
+}
+
+// Test that a commit of a different URL (caused by the user navigating to a
+// different page) with an auto-reload attempt in flight registers as an
+// auto-reload failure.
+TEST_F(NetErrorHelperCoreHistogramTest, OtherPageLoadedAfterTimerFires) {
+ const GURL kTestUrl("https://anotherurl");
+ DoErrorLoad(net::ERR_CONNECTION_RESET);
+ timer()->Fire();
+ core().OnStartLoad(NetErrorHelperCore::MAIN_FRAME,
+ NetErrorHelperCore::NON_ERROR_PAGE);
+ core().OnCommitLoad(NetErrorHelperCore::MAIN_FRAME,
+ kTestUrl);
+ core().OnFinishLoad(NetErrorHelperCore::MAIN_FRAME);
+
+ ExpectDelta(kCountAtSuccess, 0);
+ ExpectDelta(kErrorAtSuccess, 0);
+ ExpectDelta(kErrorAtFirstSuccess, 0);
+ ExpectDelta(kCountAtStop, 1);
+ ExpectDelta(kErrorAtStop, 1);
+}
+
+// Test that a commit of the same URL with an auto-reload attempt in flight
+// registers as an auto-reload success.
+TEST_F(NetErrorHelperCoreHistogramTest, SamePageLoadedAfterTimerFires) {
+ DoErrorLoad(net::ERR_CONNECTION_RESET);
+ timer()->Fire();
+ core().OnStartLoad(NetErrorHelperCore::MAIN_FRAME,
+ NetErrorHelperCore::NON_ERROR_PAGE);
+ core().OnCommitLoad(NetErrorHelperCore::MAIN_FRAME,
+ default_url());
+ core().OnFinishLoad(NetErrorHelperCore::MAIN_FRAME);
+
+ ExpectDelta(kCountAtSuccess, 1);
+ ExpectDelta(kErrorAtSuccess, 1);
+ ExpectDelta(kErrorAtFirstSuccess, 1);
+ ExpectDelta(kCountAtStop, 0);
+ ExpectDelta(kErrorAtStop, 0);
+}
mmenke 2014/04/28 20:21:14 Could have one where the user reloads manually bef
Elly Fong-Jones 2014/04/30 15:34:08 Done.
+
+TEST_F(NetErrorHelperCoreHistogramTest, ErrorPageLoadedAfterTimerFires) {
+ DoErrorLoad(net::ERR_CONNECTION_RESET);
+ timer()->Fire();
+ core().OnStartLoad(NetErrorHelperCore::MAIN_FRAME,
+ NetErrorHelperCore::NON_ERROR_PAGE);
+ core().OnCommitLoad(NetErrorHelperCore::MAIN_FRAME,
+ GURL(content::kUnreachableWebDataURL));
+ core().OnFinishLoad(NetErrorHelperCore::MAIN_FRAME);
mmenke 2014/04/28 20:21:14 You're missing the onstart of the error page. May
mmenke 2014/04/28 20:21:14 Erm...wait...When the reload fails, we're now supp
Elly Fong-Jones 2014/04/30 15:34:08 Done.
Elly Fong-Jones 2014/04/30 15:34:08 ShouldSuppressErrorPage starts the timer if it sup
+
+ ExpectDelta(kCountAtSuccess, 0);
+ ExpectDelta(kErrorAtSuccess, 0);
+ ExpectDelta(kErrorAtFirstSuccess, 0);
+ ExpectDelta(kCountAtStop, 0);
+ ExpectDelta(kErrorAtStop, 0);
+}
+
+TEST_F(NetErrorHelperCoreHistogramTest, SuccessPageLoadedBeforeTimerFires) {
+ DoErrorLoad(net::ERR_CONNECTION_RESET);
+ core().OnStartLoad(NetErrorHelperCore::MAIN_FRAME,
+ NetErrorHelperCore::NON_ERROR_PAGE);
+ core().OnCommitLoad(NetErrorHelperCore::MAIN_FRAME,
+ GURL(kFailedHttpsUrl));
+
+ ExpectDelta(kCountAtSuccess, 0);
+ ExpectDelta(kErrorAtSuccess, 0);
+ ExpectDelta(kErrorAtFirstSuccess, 0);
+ ExpectDelta(kCountAtStop, 1);
+ ExpectDelta(kErrorAtStop, 1);
+}
+
TEST_F(NetErrorHelperCoreTest, ShouldSuppressErrorPage) {
// Set up the environment to test ShouldSuppressErrorPage: auto-reload is
// enabled, an error page is loaded, and the auto-reload callback is running.
@@ -2020,4 +2250,4 @@ TEST_F(NetErrorHelperCoreTest, ExplicitLoadStaleSucceeds) {
EXPECT_EQ(GURL(kFailedUrl), load_stale_url());
}
-
+} // namespace
« chrome/renderer/net/net_error_helper_core.cc ('K') | « chrome/renderer/net/net_error_helper_core.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698