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

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: Turn off other metrics which might require tab helpers when background loading 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/offline_pages/offliner_user_data.h"
7 #include "chrome/browser/page_load_metrics/observers/page_load_metrics_observer_ test_harness.h" 8 #include "chrome/browser/page_load_metrics/observers/page_load_metrics_observer_ test_harness.h"
9 #include "components/offline_pages/core/background/offliner_stub.h"
10 #include "components/offline_pages/core/background/resource_tracker_observer.h"
11 #include "components/offline_pages/core/background/resource_tracker_observer_stu b.h"
8 12
9 namespace { 13 namespace {
10 const char kFakeUrl[] = "http://www.google.com/nothingotseehere.html"; 14 const char kFakeUrl[] = "http://www.google.com/nothingotseehere.html";
11 } // namespace 15 } // namespace
12 16
13 namespace page_load_metrics { 17 namespace page_load_metrics {
14 18
15 class ResourceTrackingPageLoadMetricsObserverTest 19 class ResourceTrackingPageLoadMetricsObserverTest
16 : public page_load_metrics::PageLoadMetricsObserverTestHarness { 20 : public page_load_metrics::PageLoadMetricsObserverTestHarness {
17 public: 21 public:
18 ResourceTrackingPageLoadMetricsObserverTest() : observer_(nullptr) {} 22 ResourceTrackingPageLoadMetricsObserverTest() : observer_(nullptr) {
23 resource_watcher_.reset(new offline_pages::ResourceTrackerObserverStub);
24 }
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_.get();
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 std::unique_ptr<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{
48 GURL(), 59 GURL(),
49 -1 /*frame_tree_node_id*/, 60 -1 /*frame_tree_node_id*/,
50 false /*was_cached*/, 61 false /*was_cached*/,
51 1024 * 40 /* raw_body_bytes */, 62 1024 * 40 /* raw_body_bytes */,
52 1024 * 40 /* original_network_content_length */, 63 1024 * 40 /* original_network_content_length */,
53 nullptr /* data reduction_proxy */, 64 nullptr /* data reduction_proxy */,
54 content::ResourceType::RESOURCE_TYPE_IMAGE, 65 content::ResourceType::RESOURCE_TYPE_IMAGE,
55 }; 66 };
56 67
68 // Add some OfflinerUserData to the web_contents so that our tracker will
69 // be called.
70 offline_pages::OfflinerStub offliner_stub;
71 offline_pages::OfflinerUserData::AddToWebContents(web_contents(),
72 &offliner_stub);
73
57 // Start the navigation. This will create the page load tracker and register 74 // Start the navigation. This will create the page load tracker and register
58 // the observers. 75 // the observers.
59 NavigateAndCommit(GURL(kFakeUrl)); 76 NavigateAndCommit(GURL(kFakeUrl));
60 77
61 // Simulate starting two images, and completing one. 78 // Simulate starting two images, and completing one.
62 SimulateStartedResource(start_info_1); 79 SimulateStartedResource(start_info_1);
63 SimulateStartedResource(start_info_2); 80 SimulateStartedResource(start_info_2);
64 SimulateLoadedResource(done_info); 81 SimulateLoadedResource(done_info);
65 82
66 int64_t started = -1; 83 int64_t resource_watcher_started = -1;
67 int64_t completed = -1; 84 int64_t resource_watcher_completed = -1;
68 EXPECT_NE(nullptr, observer()); 85 ASSERT_NE(nullptr, resource_watcher());
69 observer()->GetCountsForTypeForTesting( 86 resource_watcher()->GetResourcePercentageCounts(
70 content::ResourceType::RESOURCE_TYPE_IMAGE, &started, &completed); 87 offline_pages::ResourceDataType::IMAGE, &resource_watcher_started,
71 EXPECT_EQ(2, started); 88 &resource_watcher_completed);
72 EXPECT_EQ(1, completed); 89 EXPECT_EQ(2, resource_watcher_started);
90 EXPECT_EQ(1, resource_watcher_completed);
73 } 91 }
74 92
75 } // namespace page_load_metrics 93 } // namespace page_load_metrics
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698