Chromium Code Reviews| Index: chrome/browser/predictors/resource_prefetch_predictor_browsertest.cc |
| diff --git a/chrome/browser/predictors/resource_prefetch_predictor_browsertest.cc b/chrome/browser/predictors/resource_prefetch_predictor_browsertest.cc |
| index 4981a2a2fffb486d5a090044142b217c01d34091..48073a12a0f3cf0b97da597337838e48b8bb0ec9 100644 |
| --- a/chrome/browser/predictors/resource_prefetch_predictor_browsertest.cc |
| +++ b/chrome/browser/predictors/resource_prefetch_predictor_browsertest.cc |
| @@ -61,12 +61,30 @@ class InitializationObserver : public TestObserver { |
| DISALLOW_COPY_AND_ASSIGN(InitializationObserver); |
| }; |
| +using PageRequestSummary = ResourcePrefetchPredictor::PageRequestSummary; |
| +using URLRequestSummary = ResourcePrefetchPredictor::URLRequestSummary; |
| + |
| +std::vector<URLRequestSummary> GetUniqueSubresources( |
|
pasko
2016/11/28 15:41:28
nit: anonymous namespace for everything between kI
alexilin
2016/11/29 10:32:00
Done.
|
| + const PageRequestSummary& summary) { |
| + std::vector<URLRequestSummary> subresources(summary.subresource_requests); |
| + std::stable_sort(subresources.begin(), subresources.end(), |
| + [](const URLRequestSummary& x, const URLRequestSummary& y) { |
| + return x.resource_url < y.resource_url; |
| + }); |
| + subresources.erase( |
| + std::unique(subresources.begin(), subresources.end(), |
| + [](const URLRequestSummary& x, const URLRequestSummary& y) { |
| + return x.resource_url == y.resource_url; |
| + }), |
| + subresources.end()); |
| + return subresources; |
| +} |
| + |
| // Helper class to track and allow waiting for ResourcePrefetchPredictor events. |
| // These events are also used to verify that ResourcePrefetchPredictor works as |
| // expected. |
| class ResourcePrefetchPredictorTestObserver : public TestObserver { |
| public: |
| - using PageRequestSummary = ResourcePrefetchPredictor::PageRequestSummary; |
| explicit ResourcePrefetchPredictorTestObserver( |
| ResourcePrefetchPredictor* predictor, |
| @@ -82,9 +100,11 @@ class ResourcePrefetchPredictorTestObserver : public TestObserver { |
| EXPECT_EQ(url_visit_count, url_visit_count_); |
| EXPECT_EQ(summary.main_frame_url, summary_.main_frame_url); |
| EXPECT_EQ(summary.initial_url, summary_.initial_url); |
| - EXPECT_THAT( |
| - summary.subresource_requests, |
| - testing::UnorderedElementsAreArray(summary_.subresource_requests)); |
| + // Duplicate resources can be observed in a single navigation but |
| + // ResourcePrefetchPredictor only cares about the first occurrence of each. |
| + vector<URLRequestSummary> subresources = GetUniqueSubresources(summary); |
| + EXPECT_THAT(subresources, testing::UnorderedElementsAreArray( |
| + summary_.subresource_requests)); |
| run_loop_.Quit(); |
| } |
| @@ -100,7 +120,6 @@ class ResourcePrefetchPredictorTestObserver : public TestObserver { |
| class ResourcePrefetchPredictorBrowserTest : public InProcessBrowserTest { |
| protected: |
| - using URLRequestSummary = ResourcePrefetchPredictor::URLRequestSummary; |
| void SetUpCommandLine(base::CommandLine* command_line) override { |
| command_line->AppendSwitchASCII( |