Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(539)

Unified Diff: chrome/browser/predictors/resource_prefetch_predictor_browsertest.cc

Issue 2529263003: predictors: Ignore repeating subresources while checking. (Closed)
Patch Set: Add anonymous namespace. Created 4 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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();
}
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698