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

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

Issue 2780003003: Send an event to the page load metrics to track resource starting. (Closed)
Patch Set: CR feedback per bmcquade Created 3 years, 8 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
(Empty)
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
3 // found in the LICENSE file.
4
5 #include "chrome/browser/page_load_metrics/observers/resource_tracking_page_load _metrics_observer.h"
6
7 #include "chrome/browser/page_load_metrics/observers/page_load_metrics_observer_ test_harness.h"
8
9 namespace {
10 const char kFakeUrl[] = "http://www.google.com/nothingotseehere.html";
11 } // namespace
12
13 namespace page_load_metrics {
14
15 class ResourceTrackingPageLoadMetricsObserverTest
16 : public page_load_metrics::PageLoadMetricsObserverTestHarness {
17 public:
18 ResourceTrackingPageLoadMetricsObserverTest() : observer_(nullptr) {}
19
20 protected:
21 void RegisterObservers(page_load_metrics::PageLoadTracker* tracker) override {
22 std::unique_ptr<page_load_metrics::ResourceTrackingPageLoadMetricsObserver>
23 observer(
24 new page_load_metrics::ResourceTrackingPageLoadMetricsObserver());
25 // Keep track of the observer pointer so we can check it in the unit test.
26 observer_ = observer.get();
27 tracker->AddObserver(std::move(observer));
28 }
29
30 page_load_metrics::ResourceTrackingPageLoadMetricsObserver* observer() {
31 return observer_;
32 }
33
34 private:
35 page_load_metrics::ResourceTrackingPageLoadMetricsObserver* observer_;
Bryan McQuade 2017/04/24 13:56:55 can you add a comment noting that the observer is
Pete Williamson 2017/04/24 19:53:14 Done.
36 };
37
38 TEST_F(ResourceTrackingPageLoadMetricsObserverTest, StartAndFinish) {
39 page_load_metrics::ExtraRequestStartInfo start_info_1{
40 content::ResourceType::RESOURCE_TYPE_IMAGE};
41
42 page_load_metrics::ExtraRequestStartInfo start_info_2{
43 content::ResourceType::RESOURCE_TYPE_IMAGE};
44
45 page_load_metrics::ExtraRequestCompleteInfo done_info = {
46 false /*was_cached*/, 1024 * 40 /* raw_body_bytes */,
47 false /* data_reduction_proxy_used*/,
48 1024 * 40 /* original_network_content_length */,
49 content::ResourceType::RESOURCE_TYPE_IMAGE};
50
51 // Start the navigation. This will create the page load tracker and register
52 // the observers.
53 NavigateAndCommit(GURL(kFakeUrl));
54
55 // Simulate starting two images, and completing one.
56 SimulateStartedResource(start_info_1);
57 SimulateStartedResource(start_info_2);
58 SimulateLoadedResource(done_info);
59
60 int64_t started = -1;
61 int64_t completed = -1;
62 EXPECT_NE(nullptr, observer());
63 observer()->GetCountsForTypeForTesting(
64 content::ResourceType::RESOURCE_TYPE_IMAGE, &started, &completed);
65 EXPECT_EQ(2, started);
66 EXPECT_EQ(1, completed);
67 }
68
69 } // namespace page_load_metrics
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698