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

Side by Side Diff: chrome/browser/page_load_metrics/observers/resource_tracking_page_load_metrics_observer_unittest.cc

Issue 2857063002: Add a way to send the resource percentage signal to the RC. (Closed)
Patch Set: CR feedback, fix unit test. Created 3 years, 7 months 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 unified diff | Download patch
OLDNEW
1 // Copyright 2017 The Chromium Authors. All rights reserved. 1 // Copyright 2017 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 "chrome/browser/page_load_metrics/observers/resource_tracking_page_load _metrics_observer.h" 5 #include "chrome/browser/page_load_metrics/observers/resource_tracking_page_load _metrics_observer.h"
6 6
7 #include "chrome/browser/page_load_metrics/observers/page_load_metrics_observer_ test_harness.h" 7 #include "chrome/browser/page_load_metrics/observers/page_load_metrics_observer_ test_harness.h"
8 #include "components/offline_pages/core/background/resource_tracker_observer.h"
9 #include "components/offline_pages/core/background/resource_tracker_observer_stu b.h"
8 10
9 namespace { 11 namespace {
10 const char kFakeUrl[] = "http://www.google.com/nothingotseehere.html"; 12 const char kFakeUrl[] = "http://www.google.com/nothingotseehere.html";
11 } // namespace 13 } // namespace
12 14
13 namespace page_load_metrics { 15 namespace page_load_metrics {
14 16
15 class ResourceTrackingPageLoadMetricsObserverTest 17 class ResourceTrackingPageLoadMetricsObserverTest
16 : public page_load_metrics::PageLoadMetricsObserverTestHarness { 18 : public page_load_metrics::PageLoadMetricsObserverTestHarness {
17 public: 19 public:
18 ResourceTrackingPageLoadMetricsObserverTest() : observer_(nullptr) {} 20 ResourceTrackingPageLoadMetricsObserverTest()
21 : observer_(nullptr),
22 resource_watcher_(new offline_pages::ResourceTrackerObserverStub) {}
23
24 // FUTURE: If we ever override SetUp, ensure we call the base class SetUp.
RyanSturm 2017/05/10 18:30:13 nit: I don't think this comment is necessary.
Pete Williamson 2017/05/10 19:00:52 Removed (I added it because it cost me a few hours
19 25
20 protected: 26 protected:
21 void RegisterObservers(page_load_metrics::PageLoadTracker* tracker) override { 27 void RegisterObservers(page_load_metrics::PageLoadTracker* tracker) override {
22 std::unique_ptr<page_load_metrics::ResourceTrackingPageLoadMetricsObserver> 28 std::unique_ptr<page_load_metrics::ResourceTrackingPageLoadMetricsObserver>
23 observer( 29 observer(new page_load_metrics::ResourceTrackingPageLoadMetricsObserver(
24 new page_load_metrics::ResourceTrackingPageLoadMetricsObserver()); 30 resource_watcher()));
25 // Keep track of the observer pointer so we can check it in the unit test. 31 // Keep track of the observer pointer so we can check it in the unit test.
26 observer_ = observer.get(); 32 observer_ = observer.get();
27 tracker->AddObserver(std::move(observer)); 33 tracker->AddObserver(std::move(observer));
28 } 34 }
29 35
30 page_load_metrics::ResourceTrackingPageLoadMetricsObserver* observer() { 36 page_load_metrics::ResourceTrackingPageLoadMetricsObserver* observer() {
31 return observer_; 37 return observer_;
32 } 38 }
33 39
40 offline_pages::ResourceTrackerObserverStub* resource_watcher() {
41 return resource_watcher_;
42 }
43
34 private: 44 private:
35 // observer_ is owned by the last created PageLoadTracker, and its lifetime is 45 // observer_ is owned by the last created PageLoadTracker, and its lifetime is
36 // dictated by that tracker's lifetime. 46 // dictated by that tracker's lifetime.
37 page_load_metrics::ResourceTrackingPageLoadMetricsObserver* observer_; 47 page_load_metrics::ResourceTrackingPageLoadMetricsObserver* observer_;
48 offline_pages::ResourceTrackerObserverStub* resource_watcher_;
38 }; 49 };
39 50
40 TEST_F(ResourceTrackingPageLoadMetricsObserverTest, StartAndFinish) { 51 TEST_F(ResourceTrackingPageLoadMetricsObserverTest, StartAndFinish) {
41 page_load_metrics::ExtraRequestStartInfo start_info_1{ 52 page_load_metrics::ExtraRequestStartInfo start_info_1{
42 content::ResourceType::RESOURCE_TYPE_IMAGE}; 53 content::ResourceType::RESOURCE_TYPE_IMAGE};
43 54
44 page_load_metrics::ExtraRequestStartInfo start_info_2{ 55 page_load_metrics::ExtraRequestStartInfo start_info_2{
45 content::ResourceType::RESOURCE_TYPE_IMAGE}; 56 content::ResourceType::RESOURCE_TYPE_IMAGE};
46 57
47 page_load_metrics::ExtraRequestCompleteInfo done_info{ 58 page_load_metrics::ExtraRequestCompleteInfo done_info{
(...skipping 15 matching lines...) Expand all
63 SimulateStartedResource(start_info_2); 74 SimulateStartedResource(start_info_2);
64 SimulateLoadedResource(done_info); 75 SimulateLoadedResource(done_info);
65 76
66 int64_t started = -1; 77 int64_t started = -1;
67 int64_t completed = -1; 78 int64_t completed = -1;
68 EXPECT_NE(nullptr, observer()); 79 EXPECT_NE(nullptr, observer());
69 observer()->GetCountsForTypeForTesting( 80 observer()->GetCountsForTypeForTesting(
70 content::ResourceType::RESOURCE_TYPE_IMAGE, &started, &completed); 81 content::ResourceType::RESOURCE_TYPE_IMAGE, &started, &completed);
71 EXPECT_EQ(2, started); 82 EXPECT_EQ(2, started);
72 EXPECT_EQ(1, completed); 83 EXPECT_EQ(1, completed);
84 int64_t resource_watcher_started = -1;
85 int64_t resource_watcher_completed = -1;
86 ASSERT_NE(nullptr, resource_watcher());
87 resource_watcher()->GetResourcePercentageCounts(
88 offline_pages::ResourceDataType::IMAGE, &resource_watcher_started,
89 &resource_watcher_completed);
90 EXPECT_EQ(2, resource_watcher_started);
91 EXPECT_EQ(1, resource_watcher_completed);
73 } 92 }
74 93
75 } // namespace page_load_metrics 94 } // namespace page_load_metrics
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698