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

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

Issue 2529263003: predictors: Ignore repeating subresources while checking. (Closed)
Patch Set: Make sort stable + add comment. 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..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(
« 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