| 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..c8748d2368fdcb08e5642caf9eba844c1cc695de 100644
|
| --- a/chrome/browser/predictors/resource_prefetch_predictor_browsertest.cc
|
| +++ b/chrome/browser/predictors/resource_prefetch_predictor_browsertest.cc
|
| @@ -21,6 +21,8 @@
|
|
|
| namespace predictors {
|
|
|
| +namespace {
|
| +
|
| static const char kImagePath[] = "/predictors/image.png";
|
| static const char kStylePath[] = "/predictors/style.css";
|
| static const char kScriptPath[] = "/predictors/script.js";
|
| @@ -61,6 +63,27 @@ class InitializationObserver : public TestObserver {
|
| DISALLOW_COPY_AND_ASSIGN(InitializationObserver);
|
| };
|
|
|
| +using PageRequestSummary = ResourcePrefetchPredictor::PageRequestSummary;
|
| +using URLRequestSummary = ResourcePrefetchPredictor::URLRequestSummary;
|
| +
|
| +std::vector<URLRequestSummary> GetUniqueSubresources(
|
| + 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;
|
| +}
|
| +
|
| +} // namespace
|
| +
|
| // Helper class to track and allow waiting for ResourcePrefetchPredictor events.
|
| // These events are also used to verify that ResourcePrefetchPredictor works as
|
| // expected.
|
| @@ -82,9 +105,12 @@ 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.
|
| + std::vector<ResourcePrefetchPredictor::URLRequestSummary> subresources =
|
| + GetUniqueSubresources(summary);
|
| + EXPECT_THAT(subresources, testing::UnorderedElementsAreArray(
|
| + summary_.subresource_requests));
|
| run_loop_.Quit();
|
| }
|
|
|
|
|