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

Side by Side Diff: components/page_load_metrics/renderer/page_timing_metrics_sender_unittest.cc

Issue 1901303004: [ Don't commit ] Add FromGWS variants to the AbortTiming metrics (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: bmcquade@ review, cleanup Created 4 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
1 // Copyright 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 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 "components/page_load_metrics/renderer/page_timing_metrics_sender.h" 5 #include "components/page_load_metrics/renderer/page_timing_metrics_sender.h"
6 6
7 #include "base/time/time.h" 7 #include "base/time/time.h"
8 #include "base/timer/mock_timer.h" 8 #include "base/timer/mock_timer.h"
9 #include "components/page_load_metrics/common/page_load_metrics_messages.h" 9 #include "components/page_load_metrics/common/page_load_metrics_messages.h"
10 #include "components/page_load_metrics/common/page_load_timing.h" 10 #include "components/page_load_metrics/common/page_load_timing.h"
(...skipping 17 matching lines...) Expand all
28 return true; 28 return true;
29 } 29 }
30 30
31 MOCK_METHOD2(OnTimingUpdated, void(PageLoadTiming, PageLoadMetadata)); 31 MOCK_METHOD2(OnTimingUpdated, void(PageLoadTiming, PageLoadMetadata));
32 }; 32 };
33 33
34 // Thin wrapper around PageTimingMetricsSender that provides access to the 34 // Thin wrapper around PageTimingMetricsSender that provides access to the
35 // MockTimer instance. 35 // MockTimer instance.
36 class TestPageTimingMetricsSender : public PageTimingMetricsSender { 36 class TestPageTimingMetricsSender : public PageTimingMetricsSender {
37 public: 37 public:
38 explicit TestPageTimingMetricsSender(IPC::Sender* ipc_sender) 38 explicit TestPageTimingMetricsSender(IPC::Sender* ipc_sender,
39 const PageLoadTiming& initial_timing)
39 : PageTimingMetricsSender( 40 : PageTimingMetricsSender(
40 ipc_sender, 41 ipc_sender,
41 MSG_ROUTING_NONE, 42 MSG_ROUTING_NONE,
42 std::unique_ptr<base::Timer>(new base::MockTimer(false, false))) {} 43 std::unique_ptr<base::Timer>(new base::MockTimer(false, false)),
44 initial_timing) {}
43 45
44 base::MockTimer* mock_timer() const { 46 base::MockTimer* mock_timer() const {
45 return reinterpret_cast<base::MockTimer*>(timer()); 47 return reinterpret_cast<base::MockTimer*>(timer());
46 } 48 }
47 }; 49 };
48 50
49 class PageTimingMetricsSenderTest : public testing::Test { 51 class PageTimingMetricsSenderTest : public testing::Test {
50 public: 52 public:
51 PageTimingMetricsSenderTest() : metrics_sender_(&mock_ipc_sender_) {} 53 PageTimingMetricsSenderTest()
54 : metrics_sender_(&mock_ipc_sender_, PageLoadTiming()) {}
52 55
53 protected: 56 protected:
54 testing::StrictMock<MockIPCSender> mock_ipc_sender_; 57 testing::StrictMock<MockIPCSender> mock_ipc_sender_;
55 TestPageTimingMetricsSender metrics_sender_; 58 TestPageTimingMetricsSender metrics_sender_;
56 }; 59 };
57 60
58 TEST_F(PageTimingMetricsSenderTest, Basic) { 61 TEST_F(PageTimingMetricsSenderTest, Basic) {
59 base::Time nav_start = base::Time::FromDoubleT(10); 62 base::Time nav_start = base::Time::FromDoubleT(10);
60 base::TimeDelta first_layout = base::TimeDelta::FromMillisecondsD(2); 63 base::TimeDelta first_layout = base::TimeDelta::FromMillisecondsD(2);
61 64
(...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after
126 metrics_sender_.Send(timing); 129 metrics_sender_.Send(timing);
127 ASSERT_TRUE(metrics_sender_.mock_timer()->IsRunning()); 130 ASSERT_TRUE(metrics_sender_.mock_timer()->IsRunning());
128 EXPECT_CALL(mock_ipc_sender_, OnTimingUpdated(timing, PageLoadMetadata())); 131 EXPECT_CALL(mock_ipc_sender_, OnTimingUpdated(timing, PageLoadMetadata()));
129 metrics_sender_.mock_timer()->Fire(); 132 metrics_sender_.mock_timer()->Fire();
130 EXPECT_FALSE(metrics_sender_.mock_timer()->IsRunning()); 133 EXPECT_FALSE(metrics_sender_.mock_timer()->IsRunning());
131 } 134 }
132 135
133 TEST_F(PageTimingMetricsSenderTest, SendIPCOnDestructor) { 136 TEST_F(PageTimingMetricsSenderTest, SendIPCOnDestructor) {
134 PageLoadTiming timing; 137 PageLoadTiming timing;
135 timing.navigation_start = base::Time::FromDoubleT(10); 138 timing.navigation_start = base::Time::FromDoubleT(10);
136 { 139 timing.first_layout = base::TimeDelta::FromMilliseconds(10);
137 // This test wants to verify behavior in the PageTimingMetricsSender
138 // destructor, so we create our own instance to make it go out of scope
139 // before the end of the test body.
140 TestPageTimingMetricsSender sender(&mock_ipc_sender_);
141 140
142 sender.Send(timing); 141 // This test wants to verify behavior in the PageTimingMetricsSender
143 EXPECT_CALL(mock_ipc_sender_, OnTimingUpdated(timing, PageLoadMetadata())); 142 // destructor, the EXPECT_CALL will be verified when the test tears down and
144 ASSERT_TRUE(sender.mock_timer()->IsRunning()); 143 // |metrics_sender_| goes out of scope.
145 } 144 metrics_sender_.Send(timing);
145 EXPECT_CALL(mock_ipc_sender_, OnTimingUpdated(timing, PageLoadMetadata()));
146 ASSERT_TRUE(metrics_sender_.mock_timer()->IsRunning());
146 } 147 }
147 148
148 } // namespace page_load_metrics 149 } // namespace page_load_metrics
OLDNEW
« no previous file with comments | « components/page_load_metrics/renderer/page_timing_metrics_sender.cc ('k') | tools/metrics/histograms/histograms.xml » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698