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

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: Second round of RyanSturm feedback 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 void SetUp() override {
31 page_load_metrics::PageLoadMetricsObserverTestHarness::SetUp();
Bryan McQuade 2017/04/17 23:32:14 we can omit the override here since we're just inv
Pete Williamson 2017/04/18 18:17:27 Removed.
32 }
33
34 page_load_metrics::ResourceTrackingPageLoadMetricsObserver* observer() {
35 return observer_;
36 }
37
38 private:
39 page_load_metrics::ResourceTrackingPageLoadMetricsObserver* observer_;
40 };
41
42 TEST_F(ResourceTrackingPageLoadMetricsObserverTest, StartAndFinish) {
43 page_load_metrics::ExtraRequestStartInfo start_info_1{
44 content::ResourceType::RESOURCE_TYPE_IMAGE};
45
46 page_load_metrics::ExtraRequestStartInfo start_info_2{
47 content::ResourceType::RESOURCE_TYPE_IMAGE};
48
49 page_load_metrics::ExtraRequestCompleteInfo done_info = {
50 false /*was_cached*/, 1024 * 40 /* raw_body_bytes */,
51 false /* data_reduction_proxy_used*/,
52 1024 * 40 /* original_network_content_length */,
53 content::ResourceType::RESOURCE_TYPE_IMAGE};
54
55 // Start the navigation. This will create the page load tracker and register
56 // the observers.
57 NavigateAndCommit(GURL(kFakeUrl));
58
59 // Simulate starting two images, and completing one.
60 SimulateStartedResource(start_info_1);
61 SimulateStartedResource(start_info_2);
62 SimulateLoadedResource(done_info);
63
64 int64_t started = -1;
65 int64_t completed = -1;
66 EXPECT_NE(nullptr, observer());
67 observer()->GetCountsForType(content::ResourceType::RESOURCE_TYPE_IMAGE,
68 &started, &completed);
69 EXPECT_EQ(2, started);
70 EXPECT_EQ(1, completed);
71 }
72
73 } // namespace page_load_metrics
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698