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

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: FREEZE.unindexed - took merge and fixed it up 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
(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 // observer_ is owned by the last created PageLoadTracker, and its lifetime is
36 // dictated by that tracker's lifetime.
37 page_load_metrics::ResourceTrackingPageLoadMetricsObserver* observer_;
38 };
39
40 TEST_F(ResourceTrackingPageLoadMetricsObserverTest, StartAndFinish) {
41 page_load_metrics::ExtraRequestStartInfo start_info_1{
42 content::ResourceType::RESOURCE_TYPE_IMAGE};
43
44 page_load_metrics::ExtraRequestStartInfo start_info_2{
45 content::ResourceType::RESOURCE_TYPE_IMAGE};
46
47 page_load_metrics::ExtraRequestCompleteInfo done_info{
48 false /*was_cached*/, 1024 * 40 /* raw_body_bytes */,
49 1024 * 40 /* original_network_content_length */,
50 nullptr /* data reduction_proxy */,
51 content::ResourceType::RESOURCE_TYPE_IMAGE};
52
53 // Start the navigation. This will create the page load tracker and register
54 // the observers.
55 NavigateAndCommit(GURL(kFakeUrl));
56
57 // Simulate starting two images, and completing one.
58 SimulateStartedResource(start_info_1);
59 SimulateStartedResource(start_info_2);
60 SimulateLoadedResource(done_info);
61
62 int64_t started = -1;
63 int64_t completed = -1;
64 EXPECT_NE(nullptr, observer());
65 observer()->GetCountsForTypeForTesting(
66 content::ResourceType::RESOURCE_TYPE_IMAGE, &started, &completed);
67 EXPECT_EQ(2, started);
68 EXPECT_EQ(1, completed);
69 }
70
71 } // namespace page_load_metrics
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698