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 285b2177f22bbfd40bfef5f12f056c2245e7ad7e..3f2fc97b5a0831bdef6e9d96a2d798b43566b3b1 100644 |
--- a/chrome/renderer/net/net_error_helper_core_unittest.cc |
+++ b/chrome/renderer/net/net_error_helper_core_unittest.cc |
@@ -4,16 +4,26 @@ |
#include "chrome/renderer/net/net_error_helper_core.h" |
+#include <map> |
+#include <string> |
+#include <vector> |
+ |
#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" |
+#include "url/gurl.h" |
+ |
+namespace { |
using blink::WebURLError; |
using chrome_common_net::DnsProbeStatus; |
@@ -120,7 +130,9 @@ 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)), |
+ error_url_(GURL(content::kUnreachableWebDataURL)) { |
core_.set_auto_reload_enabled(false); |
core_.set_timer_for_testing(scoped_ptr<base::Timer>(timer_)); |
} |
@@ -130,6 +142,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 +163,14 @@ class NetErrorHelperCoreTest : public testing::Test, |
return load_stale_url_; |
} |
+ const GURL& default_url() const { |
+ return default_url_; |
+ } |
+ |
+ const GURL& error_url() const { |
+ return error_url_; |
+ } |
+ |
int enable_page_helper_functions_count() const { |
return enable_page_helper_functions_count_; |
} |
@@ -189,14 +213,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)); |
mmenke
2014/04/30 18:06:58
error_url()
Elly Fong-Jones
2014/05/01 18:33:03
Done.
|
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 +336,9 @@ class NetErrorHelperCoreTest : public testing::Test, |
GURL load_stale_url_; |
int enable_page_helper_functions_count_; |
+ |
+ GURL default_url_; |
+ GURL error_url_; |
mmenke
2014/04/30 18:06:58
const? (x2)
Elly Fong-Jones
2014/05/01 18:33:03
Done.
|
}; |
//------------------------------------------------------------------------------ |
@@ -324,7 +352,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 +362,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 +385,7 @@ 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, error_url()); |
core().OnFinishLoad(NetErrorHelperCore::MAIN_FRAME); |
EXPECT_EQ(0, update_count()); |
EXPECT_EQ(0, error_html_update_count()); |
@@ -382,7 +410,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, error_url()); |
core().OnFinishLoad(NetErrorHelperCore::MAIN_FRAME); |
EXPECT_EQ(0, update_count()); |
EXPECT_EQ(0, error_html_update_count()); |
@@ -413,7 +441,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, error_url()); |
core().OnNetErrorInfo(chrome_common_net::DNS_PROBE_FINISHED_NXDOMAIN); |
core().OnFinishLoad(NetErrorHelperCore::MAIN_FRAME); |
@@ -439,7 +467,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, error_url()); |
core().OnFinishLoad(NetErrorHelperCore::SUB_FRAME); |
EXPECT_EQ(0, update_count()); |
EXPECT_EQ(0, error_html_update_count()); |
@@ -463,7 +491,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, error_url()); |
core().OnFinishLoad(NetErrorHelperCore::SUB_FRAME); |
EXPECT_EQ(0, update_count()); |
EXPECT_EQ(0, error_html_update_count()); |
@@ -493,7 +521,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, error_url()); |
core().OnNetErrorInfo(chrome_common_net::DNS_PROBE_FINISHED_NXDOMAIN); |
core().OnFinishLoad(NetErrorHelperCore::SUB_FRAME); |
@@ -526,7 +554,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, error_url()); |
core().OnFinishLoad(NetErrorHelperCore::MAIN_FRAME); |
EXPECT_EQ(0, update_count()); |
@@ -564,7 +592,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, error_url()); |
core().OnFinishLoad(NetErrorHelperCore::MAIN_FRAME); |
EXPECT_EQ(0, update_count()); |
@@ -598,7 +626,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, error_url()); |
core().OnFinishLoad(NetErrorHelperCore::MAIN_FRAME); |
EXPECT_EQ(0, update_count()); |
@@ -636,7 +664,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, error_url()); |
core().OnFinishLoad(NetErrorHelperCore::MAIN_FRAME); |
EXPECT_EQ(0, update_count()); |
@@ -675,7 +703,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, error_url()); |
core().OnFinishLoad(NetErrorHelperCore::MAIN_FRAME); |
EXPECT_EQ(0, update_count()); |
@@ -715,7 +743,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, error_url()); |
// Nothing should be done when a probe status comes in before loading |
// finishes. |
@@ -762,7 +790,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, error_url()); |
core().OnFinishLoad(NetErrorHelperCore::MAIN_FRAME); |
EXPECT_EQ(0, update_count()); |
EXPECT_EQ(1, enable_page_helper_functions_count()); |
@@ -806,7 +834,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()); |
mmenke
2014/04/30 18:06:58
error_url()
Elly Fong-Jones
2014/05/01 18:33:03
Done.
|
EXPECT_EQ(0, update_count()); |
// When loading finishes, however, the buffered probe status should be sent |
@@ -840,7 +868,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, error_url()); |
core().OnFinishLoad(NetErrorHelperCore::MAIN_FRAME); |
// Probe results come in. |
@@ -866,7 +894,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, error_url()); |
core().OnFinishLoad(NetErrorHelperCore::MAIN_FRAME); |
EXPECT_EQ(2, update_count()); |
@@ -902,7 +930,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, error_url()); |
core().OnFinishLoad(NetErrorHelperCore::MAIN_FRAME); |
// The process starts again. |
@@ -930,7 +958,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()); |
mmenke
2014/04/30 18:06:58
error_url()
Elly Fong-Jones
2014/05/01 18:33:03
Done.
|
core().OnFinishLoad(NetErrorHelperCore::MAIN_FRAME); |
EXPECT_EQ(3, update_count()); |
EXPECT_EQ(ProbeErrorString(chrome_common_net::DNS_PROBE_FINISHED_NXDOMAIN), |
@@ -976,7 +1004,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()); |
mmenke
2014/04/30 18:06:58
error_url()
Elly Fong-Jones
2014/05/01 18:33:03
Done.
|
core().OnFinishLoad(NetErrorHelperCore::MAIN_FRAME); |
// Probe results come in. |
@@ -1019,7 +1047,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()); |
mmenke
2014/04/30 18:06:58
error_url()
Elly Fong-Jones
2014/05/01 18:33:03
Done.
|
core().OnFinishLoad(NetErrorHelperCore::MAIN_FRAME); |
EXPECT_FALSE(is_url_being_fetched()); |
EXPECT_FALSE(last_error_page_params()); |
@@ -1056,7 +1084,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()); |
mmenke
2014/04/30 18:06:58
error_url()
Elly Fong-Jones
2014/05/01 18:33:03
Done.
|
// Corrections retrieval starts when the error page finishes loading. |
EXPECT_FALSE(is_url_being_fetched()); |
@@ -1076,7 +1104,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()); |
mmenke
2014/04/30 18:06:58
error_url()
Elly Fong-Jones
2014/05/01 18:33:03
Done.
|
core().OnFinishLoad(NetErrorHelperCore::MAIN_FRAME); |
// Any probe statuses should be ignored. |
@@ -1105,7 +1133,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()); |
mmenke
2014/04/30 18:06:58
error_url()
Elly Fong-Jones
2014/05/01 18:33:03
Done.
|
core().OnFinishLoad(NetErrorHelperCore::MAIN_FRAME); |
EXPECT_TRUE(is_url_being_fetched()); |
EXPECT_FALSE(last_error_page_params()); |
@@ -1129,7 +1157,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()); |
mmenke
2014/04/30 18:06:58
error_url()
Elly Fong-Jones
2014/05/01 18:33:03
Done.
|
core().OnFinishLoad(NetErrorHelperCore::MAIN_FRAME); |
EXPECT_EQ(1, error_html_update_count()); |
EXPECT_EQ(0, update_count()); |
@@ -1153,7 +1181,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()); |
mmenke
2014/04/30 18:06:58
error_url()
Elly Fong-Jones
2014/05/01 18:33:03
Done.
|
core().OnFinishLoad(NetErrorHelperCore::MAIN_FRAME); |
// Corrections request fails, final error page is shown. |
@@ -1168,7 +1196,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, error_url()); |
core().OnFinishLoad(NetErrorHelperCore::MAIN_FRAME); |
// If probe statuses come in last from another page load, they should be |
@@ -1197,7 +1225,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()); |
mmenke
2014/04/30 18:06:58
error_url()
Elly Fong-Jones
2014/05/01 18:33:03
Done.
|
core().OnFinishLoad(NetErrorHelperCore::MAIN_FRAME); |
// Corrections request fails, probe pending page shown. |
@@ -1212,7 +1240,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()); |
mmenke
2014/04/30 18:06:58
error_url()...etc (Probe pages, blank pages, corr
Elly Fong-Jones
2014/05/01 18:33:03
Done.
|
core().OnFinishLoad(NetErrorHelperCore::MAIN_FRAME); |
// Probe statuses comes in, and page is updated. |
@@ -1249,7 +1277,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 +1297,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 +1337,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 +1364,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 +1398,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 +1419,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 +1457,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 +1482,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 +1496,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 +1532,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 +1548,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 +1572,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 +1591,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 +1618,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 +1639,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 +1666,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 +1687,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 +1710,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 +1725,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, error_url()); |
core().OnFinishLoad(NetErrorHelperCore::MAIN_FRAME); |
} |
@@ -1719,7 +1747,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 +1762,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, error_url()); |
core().OnFinishLoad(NetErrorHelperCore::MAIN_FRAME); |
} |
@@ -1836,6 +1864,8 @@ TEST_F(NetErrorHelperCoreTest, AutoReloadRestartsOnOnline) { |
DoErrorLoad(net::ERR_CONNECTION_RESET); |
EXPECT_TRUE(timer()->IsRunning()); |
EXPECT_NE(delay, timer()->GetCurrentDelay()); |
+ core().NetworkStateChanged(false); |
+ EXPECT_FALSE(timer()->IsRunning()); |
core().NetworkStateChanged(true); |
EXPECT_TRUE(timer()->IsRunning()); |
EXPECT_EQ(delay, timer()->GetCurrentDelay()); |
@@ -1914,7 +1944,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, error_url()); |
EXPECT_FALSE(timer()->IsRunning()); |
// Start a new non-error page load. |
core().OnStartLoad(NetErrorHelperCore::MAIN_FRAME, |
@@ -1923,7 +1953,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()); |
mmenke
2014/04/30 18:06:58
error_url()
Elly Fong-Jones
2014/05/01 18:33:03
Done.
|
core().OnFinishLoad(NetErrorHelperCore::MAIN_FRAME); |
EXPECT_FALSE(timer()->IsRunning()); |
} |
@@ -1938,7 +1968,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()); |
mmenke
2014/04/30 18:06:58
error_url()
Elly Fong-Jones
2014/05/01 18:33:03
Done.
|
EXPECT_FALSE(timer()->IsRunning()); |
core().NetworkStateChanged(true); |
EXPECT_FALSE(timer()->IsRunning()); |
@@ -1963,7 +1993,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()); |
mmenke
2014/04/30 18:06:58
error_url()
Elly Fong-Jones
2014/05/01 18:33:03
Done.
|
core().OnFinishLoad(NetErrorHelperCore::MAIN_FRAME); |
EXPECT_FALSE(timer()->IsRunning()); |
core().NetworkStateChanged(true); |
@@ -1980,7 +2010,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()); |
mmenke
2014/04/30 18:06:58
error_url()
Elly Fong-Jones
2014/05/01 18:33:03
Done.
|
core().OnFinishLoad(NetErrorHelperCore::MAIN_FRAME); |
core().OnStartLoad(NetErrorHelperCore::MAIN_FRAME, |
NetErrorHelperCore::NON_ERROR_PAGE); |
@@ -1993,6 +2023,231 @@ 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_; |
+}; |
+ |
+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 |
+}; |
+ |
+// 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); |
mmenke
2014/04/30 18:06:58
This is more typically a suppressed error page, ra
Elly Fong-Jones
2014/05/01 18:33:03
Yes, actually.
|
+ 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); |
mmenke
2014/04/30 18:06:58
This is just DoSuccessLoad, right?
Elly Fong-Jones
2014/05/01 18:33:03
Done.
|
+ |
+ ExpectDelta(kCountAtSuccess, 1); |
+ ExpectDelta(kErrorAtSuccess, 1); |
+ ExpectDelta(kErrorAtFirstSuccess, 1); |
+ ExpectDelta(kCountAtStop, 0); |
+ ExpectDelta(kErrorAtStop, 0); |
+} |
+ |
+TEST_F(NetErrorHelperCoreHistogramTest, SamePageLoadedAfterLoadStarts) { |
+ DoErrorLoad(net::ERR_CONNECTION_RESET); |
+ timer()->Fire(); |
+ // Autoreload attempt starts |
+ core().OnStartLoad(NetErrorHelperCore::MAIN_FRAME, |
+ NetErrorHelperCore::NON_ERROR_PAGE); |
+ // User does a manual reload |
+ DoSuccessLoad(); |
+ |
+ ExpectDelta(kCountAtSuccess, 1); |
+ ExpectDelta(kErrorAtSuccess, 1); |
+ ExpectDelta(kErrorAtFirstSuccess, 1); |
+ ExpectDelta(kCountAtStop, 0); |
+ ExpectDelta(kErrorAtStop, 0); |
+} |
+ |
+TEST_F(NetErrorHelperCoreHistogramTest, ErrorPageLoadedAfterTimerFires) { |
+ DoErrorLoad(net::ERR_CONNECTION_RESET); |
+ timer()->Fire(); |
+ core().OnStartLoad(NetErrorHelperCore::MAIN_FRAME, |
+ NetErrorHelperCore::NON_ERROR_PAGE); |
+ EXPECT_TRUE(core().ShouldSuppressErrorPage(NetErrorHelperCore::MAIN_FRAME, |
+ default_url())); |
+ DoErrorLoad(net::ERR_CONNECTION_RESET); |
mmenke
2014/04/30 18:06:58
So in this case...The user presses the reload butt
Elly Fong-Jones
2014/05/01 18:33:03
Done.
|
+ |
+ 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. |
@@ -2023,4 +2278,4 @@ TEST_F(NetErrorHelperCoreTest, ExplicitLoadStaleSucceeds) { |
EXPECT_EQ(GURL(kFailedUrl), load_stale_url()); |
} |
- |
+} // namespace |