Chromium Code Reviews| Index: chrome/browser/net/chrome_network_delegate_unittest.cc |
| diff --git a/chrome/browser/net/chrome_network_delegate_unittest.cc b/chrome/browser/net/chrome_network_delegate_unittest.cc |
| index edecbe6a5fb7ef84ffd2b5b6a3d2323ad5d8a7cb..c1e6cba46c573fea8815c08e53b3a0ea78bb0ada 100644 |
| --- a/chrome/browser/net/chrome_network_delegate_unittest.cc |
| +++ b/chrome/browser/net/chrome_network_delegate_unittest.cc |
| @@ -50,6 +50,11 @@ |
| namespace { |
| +const char* const kHttpRequestCompletionErrorCodes = |
| + "Net.HttpRequestCompletionErrorCodes"; |
|
asanka
2017/03/07 19:15:47
Use something like:
const char kHttpRequestComple
Amey J
2017/03/08 02:05:18
Acknowledged.
|
| +const char* const kHttpRequestCompletionErrorCodesMainFrame = |
| + "Net.HttpRequestCompletionErrorCodes.MainFrame"; |
| + |
| // This function requests a URL, and makes it return a known response. |
| // ResourceRequestInfo is attached to the URLRequest, to represent this request |
| // as an user initiated. |
| @@ -235,6 +240,52 @@ TEST_F(ChromeNetworkDelegateTest, ReportOffTheRecordDataUseToAggregator) { |
| fake_aggregator.off_the_record_rx_bytes()); |
| } |
| +TEST_F(ChromeNetworkDelegateTest, HttpRequestCompletionErrorCodes) { |
| + Initialize(); |
| + |
| + const struct { |
| + const GURL url; |
| + int net_error; |
| + bool main_frame; |
|
asanka
2017/03/07 19:15:47
is_main_frame
Amey J
2017/03/08 02:05:18
Acknowledged.
|
| + int expected_sample_bucket; |
| + int expected_request_completion_count; |
| + int expected_request_completion_main_frame_count; |
| + } tests[] = { |
| + {GURL("http://example.com"), net::OK, true, std::abs(net::OK), 1, 1}, |
| + {GURL("http://example.com"), net::ERR_ABORTED, true, |
| + std::abs(net::ERR_ABORTED), 1, 1}, |
| + {GURL("http://example.com"), net::OK, false, std::abs(net::OK), 1, 0}, |
| + {GURL("https://example.com"), net::OK, true, std::abs(net::OK), 0, 0}, |
| + }; |
| + |
| + for (size_t i = 0; i < arraysize(tests); ++i) { |
|
asanka
2017/03/07 19:15:47
use a range based iterator. I.e. something like:
Amey J
2017/03/08 02:05:18
Sweet! Somehow, I always thought that range based
|
| + base::HistogramTester histograms; |
| + |
| + net::TestDelegate test_delegate; |
| + std::unique_ptr<net::URLRequest> request(context()->CreateRequest( |
| + tests[i].url, net::DEFAULT_PRIORITY, &test_delegate)); |
| + if (tests[i].main_frame) { |
| + request->SetLoadFlags(request->load_flags() | |
| + net::LOAD_MAIN_FRAME_DEPRECATED); |
| + } |
| + network_delegate()->NotifyCompleted(request.get(), false, |
| + tests[i].net_error); |
| + |
| + histograms.ExpectTotalCount(kHttpRequestCompletionErrorCodes, |
| + tests[i].expected_request_completion_count); |
| + histograms.ExpectUniqueSample(kHttpRequestCompletionErrorCodes, |
| + tests[i].expected_sample_bucket, |
| + tests[i].expected_request_completion_count); |
| + histograms.ExpectTotalCount( |
| + kHttpRequestCompletionErrorCodesMainFrame, |
| + tests[i].expected_request_completion_main_frame_count); |
| + histograms.ExpectUniqueSample( |
| + kHttpRequestCompletionErrorCodesMainFrame, |
| + tests[i].expected_sample_bucket, |
| + tests[i].expected_request_completion_main_frame_count); |
| + } |
| +} |
| + |
| class ChromeNetworkDelegatePolicyTest : public testing::Test { |
| public: |
| ChromeNetworkDelegatePolicyTest() |