Chromium Code Reviews| 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 |