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

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: More RyanSturm feedback 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) {}
19 23
20 protected: 24 protected:
21 void RegisterObservers(page_load_metrics::PageLoadTracker* tracker) override { 25 void RegisterObservers(page_load_metrics::PageLoadTracker* tracker) override {
22 std::unique_ptr<page_load_metrics::ResourceTrackingPageLoadMetricsObserver> 26 std::unique_ptr<page_load_metrics::ResourceTrackingPageLoadMetricsObserver>
23 observer( 27 observer(new page_load_metrics::ResourceTrackingPageLoadMetricsObserver(
24 new page_load_metrics::ResourceTrackingPageLoadMetricsObserver()); 28 resource_watcher()));
25 // Keep track of the observer pointer so we can check it in the unit test. 29 // Keep track of the observer pointer so we can check it in the unit test.
26 observer_ = observer.get(); 30 observer_ = observer.get();
27 tracker->AddObserver(std::move(observer)); 31 tracker->AddObserver(std::move(observer));
28 } 32 }
29 33
30 page_load_metrics::ResourceTrackingPageLoadMetricsObserver* observer() { 34 page_load_metrics::ResourceTrackingPageLoadMetricsObserver* observer() {
31 return observer_; 35 return observer_;
32 } 36 }
33 37
38 offline_pages::ResourceTrackerObserverStub* resource_watcher() {
39 return resource_watcher_;
40 }
41
34 private: 42 private:
35 // observer_ is owned by the last created PageLoadTracker, and its lifetime is 43 // observer_ is owned by the last created PageLoadTracker, and its lifetime is
36 // dictated by that tracker's lifetime. 44 // dictated by that tracker's lifetime.
37 page_load_metrics::ResourceTrackingPageLoadMetricsObserver* observer_; 45 page_load_metrics::ResourceTrackingPageLoadMetricsObserver* observer_;
46 offline_pages::ResourceTrackerObserverStub* resource_watcher_;
38 }; 47 };
39 48
40 TEST_F(ResourceTrackingPageLoadMetricsObserverTest, StartAndFinish) { 49 TEST_F(ResourceTrackingPageLoadMetricsObserverTest, StartAndFinish) {
41 page_load_metrics::ExtraRequestStartInfo start_info_1{ 50 page_load_metrics::ExtraRequestStartInfo start_info_1{
42 content::ResourceType::RESOURCE_TYPE_IMAGE}; 51 content::ResourceType::RESOURCE_TYPE_IMAGE};
43 52
44 page_load_metrics::ExtraRequestStartInfo start_info_2{ 53 page_load_metrics::ExtraRequestStartInfo start_info_2{
45 content::ResourceType::RESOURCE_TYPE_IMAGE}; 54 content::ResourceType::RESOURCE_TYPE_IMAGE};
46 55
47 page_load_metrics::ExtraRequestCompleteInfo done_info{ 56 page_load_metrics::ExtraRequestCompleteInfo done_info{
48 GURL(), 57 GURL(),
49 -1 /*frame_tree_node_id*/, 58 -1 /*frame_tree_node_id*/,
50 false /*was_cached*/, 59 false /*was_cached*/,
51 1024 * 40 /* raw_body_bytes */, 60 1024 * 40 /* raw_body_bytes */,
52 1024 * 40 /* original_network_content_length */, 61 1024 * 40 /* original_network_content_length */,
53 nullptr /* data reduction_proxy */, 62 nullptr /* data reduction_proxy */,
54 content::ResourceType::RESOURCE_TYPE_IMAGE, 63 content::ResourceType::RESOURCE_TYPE_IMAGE,
55 }; 64 };
56 65
57 // Start the navigation. This will create the page load tracker and register 66 // Start the navigation. This will create the page load tracker and register
58 // the observers. 67 // the observers.
59 NavigateAndCommit(GURL(kFakeUrl)); 68 NavigateAndCommit(GURL(kFakeUrl));
60 69
61 // Simulate starting two images, and completing one. 70 // Simulate starting two images, and completing one.
62 SimulateStartedResource(start_info_1); 71 SimulateStartedResource(start_info_1);
63 SimulateStartedResource(start_info_2); 72 SimulateStartedResource(start_info_2);
64 SimulateLoadedResource(done_info); 73 SimulateLoadedResource(done_info);
65 74
66 int64_t started = -1; 75 int64_t resource_watcher_started = -1;
67 int64_t completed = -1; 76 int64_t resource_watcher_completed = -1;
68 EXPECT_NE(nullptr, observer()); 77 ASSERT_NE(nullptr, resource_watcher());
69 observer()->GetCountsForTypeForTesting( 78 resource_watcher()->GetResourcePercentageCounts(
70 content::ResourceType::RESOURCE_TYPE_IMAGE, &started, &completed); 79 offline_pages::ResourceDataType::IMAGE, &resource_watcher_started,
71 EXPECT_EQ(2, started); 80 &resource_watcher_completed);
72 EXPECT_EQ(1, completed); 81 EXPECT_EQ(2, resource_watcher_started);
82 EXPECT_EQ(1, resource_watcher_completed);
73 } 83 }
74 84
75 } // namespace page_load_metrics 85 } // namespace page_load_metrics
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698