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

Side by Side Diff: chrome/renderer/page_load_metrics/metrics_render_frame_observer_unittest.cc

Issue 2897243002: Revert of [Page Load Metrics] PageLoadMetrics Mojofication. (Closed)
Patch Set: 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 (c) 2015 The Chromium Authors. All rights reserved. 1 // Copyright (c) 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 "chrome/renderer/page_load_metrics/metrics_render_frame_observer.h" 5 #include "chrome/renderer/page_load_metrics/metrics_render_frame_observer.h"
6 6
7 #include <memory> 7 #include <memory>
8 #include <utility> 8 #include <utility>
9 9
10 #include "base/memory/ptr_util.h" 10 #include "base/memory/ptr_util.h"
11 #include "base/time/time.h" 11 #include "base/time/time.h"
12 #include "base/timer/mock_timer.h" 12 #include "base/timer/mock_timer.h"
13 #include "chrome/common/page_load_metrics/page_load_timing.h" 13 #include "chrome/common/page_load_metrics/page_load_timing.h"
14 #include "chrome/renderer/page_load_metrics/fake_page_timing_sender.h" 14 #include "chrome/renderer/page_load_metrics/fake_page_timing_metrics_ipc_sender. h"
15 #include "testing/gtest/include/gtest/gtest.h" 15 #include "testing/gtest/include/gtest/gtest.h"
16 16
17 namespace page_load_metrics { 17 namespace page_load_metrics {
18 18
19 // Implementation of the MetricsRenderFrameObserver class we're testing, 19 // Implementation of the MetricsRenderFrameObserver class we're testing,
20 // with the GetTiming() and ShouldSendMetrics() methods stubbed out to make 20 // with the GetTiming() and ShouldSendMetrics() methods stubbed out to make
21 // the rest of the class more testable. 21 // the rest of the class more testable.
22 class TestMetricsRenderFrameObserver : public MetricsRenderFrameObserver { 22 class TestMetricsRenderFrameObserver : public MetricsRenderFrameObserver {
23 public: 23 public:
24 TestMetricsRenderFrameObserver() : MetricsRenderFrameObserver(nullptr) {} 24 TestMetricsRenderFrameObserver() : MetricsRenderFrameObserver(nullptr) {}
25 25
26 std::unique_ptr<base::Timer> CreateTimer() const override { 26 std::unique_ptr<base::Timer> CreateTimer() const override {
27 if (!mock_timer_) 27 if (!mock_timer_)
28 ADD_FAILURE() << "CreateTimer() called, but no MockTimer available."; 28 ADD_FAILURE() << "CreateTimer() called, but no MockTimer available.";
29 return std::move(mock_timer_); 29 return std::move(mock_timer_);
30 } 30 }
31 31
32 std::unique_ptr<PageTimingSender> CreatePageTimingSender() override { 32 // We intercept sent messages and dispatch them to our
33 return base::WrapUnique<PageTimingSender>( 33 // FakePageTimingMetricsIPCSender, which we use to verify that the expected
34 new FakePageTimingSender(&validator_)); 34 // IPC messages get sent.
35 bool Send(IPC::Message* message) override {
36 return fake_timing_ipc_sender_.Send(message);
35 } 37 }
36 38
37 void set_mock_timer(std::unique_ptr<base::Timer> timer) { 39 void set_mock_timer(std::unique_ptr<base::Timer> timer) {
38 ASSERT_EQ(nullptr, mock_timer_); 40 ASSERT_EQ(nullptr, mock_timer_);
39 mock_timer_ = std::move(timer); 41 mock_timer_ = std::move(timer);
40 } 42 }
41 43
42 void ExpectPageLoadTiming(const mojom::PageLoadTiming& timing) { 44 void ExpectPageLoadTiming(const mojom::PageLoadTiming& timing) {
43 SetFakePageLoadTiming(timing); 45 SetFakePageLoadTiming(timing);
44 validator_.ExpectPageLoadTiming(timing); 46 fake_timing_ipc_sender_.ExpectPageLoadTiming(timing);
45 } 47 }
46 48
47 void SetFakePageLoadTiming(const mojom::PageLoadTiming& timing) { 49 void SetFakePageLoadTiming(const mojom::PageLoadTiming& timing) {
48 EXPECT_EQ(nullptr, fake_timing_.get()); 50 EXPECT_EQ(nullptr, fake_timing_.get());
49 fake_timing_ = timing.Clone(); 51 fake_timing_ = timing.Clone();
50 } 52 }
51 53
52 mojom::PageLoadTimingPtr GetTiming() const override { 54 mojom::PageLoadTimingPtr GetTiming() const override {
53 EXPECT_NE(nullptr, fake_timing_.get()); 55 EXPECT_NE(nullptr, fake_timing_.get());
54 return std::move(fake_timing_); 56 return std::move(fake_timing_);
55 } 57 }
56 58
57 void VerifyExpectedTimings() const { 59 void VerifyExpectedTimings() const {
58 EXPECT_EQ(nullptr, fake_timing_.get()); 60 EXPECT_EQ(nullptr, fake_timing_.get());
59 validator_.VerifyExpectedTimings(); 61 fake_timing_ipc_sender_.VerifyExpectedTimings();
60 } 62 }
61 63
62 bool ShouldSendMetrics() const override { return true; } 64 bool ShouldSendMetrics() const override { return true; }
63 bool HasNoRenderFrame() const override { return false; } 65 bool HasNoRenderFrame() const override { return false; }
64 66
65 private: 67 private:
66 FakePageTimingSender::PageTimingValidator validator_; 68 FakePageTimingMetricsIPCSender fake_timing_ipc_sender_;
67 mutable mojom::PageLoadTimingPtr fake_timing_; 69 mutable mojom::PageLoadTimingPtr fake_timing_;
68 mutable std::unique_ptr<base::Timer> mock_timer_; 70 mutable std::unique_ptr<base::Timer> mock_timer_;
69 }; 71 };
70 72
71 typedef testing::Test MetricsRenderFrameObserverTest; 73 typedef testing::Test MetricsRenderFrameObserverTest;
72 74
73 TEST_F(MetricsRenderFrameObserverTest, NoMetrics) { 75 TEST_F(MetricsRenderFrameObserverTest, NoMetrics) {
74 TestMetricsRenderFrameObserver observer; 76 TestMetricsRenderFrameObserver observer;
75 base::MockTimer* mock_timer = new base::MockTimer(false, false); 77 base::MockTimer* mock_timer = new base::MockTimer(false, false);
76 observer.set_mock_timer(base::WrapUnique(mock_timer)); 78 observer.set_mock_timer(base::WrapUnique(mock_timer));
(...skipping 119 matching lines...) Expand 10 before | Expand all | Expand 10 after
196 timing_2.document_timing->first_layout = first_layout_2; 198 timing_2.document_timing->first_layout = first_layout_2;
197 timing_2.document_timing->dom_content_loaded_event_start = dom_event_2; 199 timing_2.document_timing->dom_content_loaded_event_start = dom_event_2;
198 timing_2.document_timing->load_event_start = load_event_2; 200 timing_2.document_timing->load_event_start = load_event_2;
199 observer.ExpectPageLoadTiming(timing_2); 201 observer.ExpectPageLoadTiming(timing_2);
200 202
201 observer.DidChangePerformanceTiming(); 203 observer.DidChangePerformanceTiming();
202 mock_timer2->Fire(); 204 mock_timer2->Fire();
203 } 205 }
204 206
205 } // namespace page_load_metrics 207 } // namespace page_load_metrics
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698