OLD | NEW |
---|---|
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include <memory> | 5 #include <memory> |
6 #include <set> | 6 #include <set> |
7 #include <utility> | 7 #include <utility> |
8 #include <vector> | 8 #include <vector> |
9 | 9 |
10 #include "base/message_loop/message_loop.h" | 10 #include "base/message_loop/message_loop.h" |
(...skipping 557 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
568 | 568 |
569 void ResourcePrefetchPredictorTablesTest::ReopenDatabase() { | 569 void ResourcePrefetchPredictorTablesTest::ReopenDatabase() { |
570 db_.reset(new PredictorDatabase(&profile_)); | 570 db_.reset(new PredictorDatabase(&profile_)); |
571 base::RunLoop().RunUntilIdle(); | 571 base::RunLoop().RunUntilIdle(); |
572 tables_ = db_->resource_prefetch_tables(); | 572 tables_ = db_->resource_prefetch_tables(); |
573 } | 573 } |
574 | 574 |
575 // Test cases. | 575 // Test cases. |
576 | 576 |
577 TEST_F(ResourcePrefetchPredictorTablesTest, ComputeResourceScore) { | 577 TEST_F(ResourcePrefetchPredictorTablesTest, ComputeResourceScore) { |
578 ResourceData js_resource = CreateResourceData( | 578 auto compute_score = [](net::RequestPriority priority, |
pasko
2016/10/03 16:48:20
Why would lamda be a necessary complication here?
Benoit L
2016/10/04 09:49:54
It was to make the function extra-duper local.
Als
pasko
2016/10/04 11:10:36
Thank you for explanation.
For my personal taste:
| |
579 "http://www.resources.google.com/script.js", | 579 content::ResourceType resource_type, |
580 content::RESOURCE_TYPE_SCRIPT, 11, 0, 0, 1., net::MEDIUM, false, false); | 580 double average_position) { |
581 ResourceData image_resource = CreateResourceData( | 581 return ResourcePrefetchPredictorTables::ComputeResourceScore( |
582 "http://www.resources.google.com/image.jpg", content::RESOURCE_TYPE_IMAGE, | 582 CreateResourceData("", resource_type, 0, 0, 0, average_position, |
583 11, 0, 0, 1., net::MEDIUM, false, false); | 583 priority, false, false)); |
584 ResourceData css_resource = | 584 }; |
585 CreateResourceData("http://www.resources.google.com/stylesheet.css", | |
586 content::RESOURCE_TYPE_STYLESHEET, 11, 0, 0, 1., | |
587 net::MEDIUM, false, false); | |
588 ResourceData font_resource = | |
589 CreateResourceData("http://www.resources.google.com/font.woff", | |
590 content::RESOURCE_TYPE_FONT_RESOURCE, 11, 0, 0, 1., | |
591 net::MEDIUM, false, false); | |
592 float js_resource_score = | |
593 ResourcePrefetchPredictorTables::ComputeResourceScore(js_resource); | |
594 float css_resource_score = | |
595 ResourcePrefetchPredictorTables::ComputeResourceScore(css_resource); | |
596 float font_resource_score = | |
597 ResourcePrefetchPredictorTables::ComputeResourceScore(font_resource); | |
598 float image_resource_score = | |
599 ResourcePrefetchPredictorTables::ComputeResourceScore(image_resource); | |
600 | 585 |
601 EXPECT_TRUE(js_resource_score == css_resource_score); | 586 // Priority is more important than the rest. |
602 EXPECT_TRUE(js_resource_score == font_resource_score); | 587 EXPECT_TRUE(compute_score(net::HIGHEST, content::RESOURCE_TYPE_SCRIPT, 1.) > |
603 EXPECT_NEAR(199., js_resource_score, 1e-4); | 588 compute_score(net::HIGHEST, content::RESOURCE_TYPE_IMAGE, 42.)); |
604 EXPECT_NEAR(99., image_resource_score, 1e-4); | 589 |
590 EXPECT_TRUE(compute_score(net::HIGHEST, content::RESOURCE_TYPE_IMAGE, 42.) > | |
591 compute_score(net::MEDIUM, content::RESOURCE_TYPE_SCRIPT, 1.)); | |
592 EXPECT_TRUE(compute_score(net::HIGHEST, content::RESOURCE_TYPE_IMAGE, 42.) > | |
593 compute_score(net::LOW, content::RESOURCE_TYPE_SCRIPT, 1.)); | |
594 EXPECT_TRUE(compute_score(net::HIGHEST, content::RESOURCE_TYPE_IMAGE, 42.) > | |
595 compute_score(net::LOWEST, content::RESOURCE_TYPE_SCRIPT, 1.)); | |
596 EXPECT_TRUE(compute_score(net::HIGHEST, content::RESOURCE_TYPE_IMAGE, 42.) > | |
597 compute_score(net::IDLE, content::RESOURCE_TYPE_SCRIPT, 1.)); | |
598 | |
599 // Scripts and stylesheets are equivalent. | |
600 EXPECT_NEAR( | |
601 compute_score(net::HIGHEST, content::RESOURCE_TYPE_SCRIPT, 42.), | |
602 compute_score(net::HIGHEST, content::RESOURCE_TYPE_STYLESHEET, 42.), | |
603 1e-4); | |
604 | |
605 // Scripts are more important than fonts and images, and the rest. | |
606 EXPECT_TRUE( | |
607 compute_score(net::HIGHEST, content::RESOURCE_TYPE_SCRIPT, 42.) > | |
608 compute_score(net::HIGHEST, content::RESOURCE_TYPE_FONT_RESOURCE, 42.)); | |
609 EXPECT_TRUE( | |
610 compute_score(net::HIGHEST, content::RESOURCE_TYPE_FONT_RESOURCE, 42.) > | |
611 compute_score(net::HIGHEST, content::RESOURCE_TYPE_IMAGE, 42.)); | |
612 EXPECT_TRUE( | |
613 compute_score(net::HIGHEST, content::RESOURCE_TYPE_FONT_RESOURCE, 42.) > | |
614 compute_score(net::HIGHEST, content::RESOURCE_TYPE_FAVICON, 42.)); | |
615 | |
616 // All else being equal, position matters. | |
617 EXPECT_TRUE(compute_score(net::HIGHEST, content::RESOURCE_TYPE_SCRIPT, 12.) > | |
618 compute_score(net::HIGHEST, content::RESOURCE_TYPE_SCRIPT, 42.)); | |
605 } | 619 } |
606 | 620 |
607 TEST_F(ResourcePrefetchPredictorTablesTest, GetAllData) { | 621 TEST_F(ResourcePrefetchPredictorTablesTest, GetAllData) { |
608 TestGetAllData(); | 622 TestGetAllData(); |
609 } | 623 } |
610 | 624 |
611 TEST_F(ResourcePrefetchPredictorTablesTest, UpdateData) { | 625 TEST_F(ResourcePrefetchPredictorTablesTest, UpdateData) { |
612 TestUpdateData(); | 626 TestUpdateData(); |
613 } | 627 } |
614 | 628 |
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
665 | 679 |
666 TEST_F(ResourcePrefetchPredictorTablesReopenTest, DeleteSingleDataPoint) { | 680 TEST_F(ResourcePrefetchPredictorTablesReopenTest, DeleteSingleDataPoint) { |
667 TestDeleteSingleDataPoint(); | 681 TestDeleteSingleDataPoint(); |
668 } | 682 } |
669 | 683 |
670 TEST_F(ResourcePrefetchPredictorTablesReopenTest, DeleteAllData) { | 684 TEST_F(ResourcePrefetchPredictorTablesReopenTest, DeleteAllData) { |
671 TestDeleteAllData(); | 685 TestDeleteAllData(); |
672 } | 686 } |
673 | 687 |
674 } // namespace predictors | 688 } // namespace predictors |
OLD | NEW |