Index: components/page_load_metrics/renderer/page_timing_metrics_sender_unittest.cc |
diff --git a/components/page_load_metrics/renderer/page_timing_metrics_sender_unittest.cc b/components/page_load_metrics/renderer/page_timing_metrics_sender_unittest.cc |
deleted file mode 100644 |
index 2aca12557a891b3379d53c7a7c29b0103d1f6e02..0000000000000000000000000000000000000000 |
--- a/components/page_load_metrics/renderer/page_timing_metrics_sender_unittest.cc |
+++ /dev/null |
@@ -1,135 +0,0 @@ |
-// Copyright 2015 The Chromium Authors. All rights reserved. |
-// Use of this source code is governed by a BSD-style license that can be |
-// found in the LICENSE file. |
- |
-#include "components/page_load_metrics/renderer/page_timing_metrics_sender.h" |
- |
-#include "base/time/time.h" |
-#include "base/timer/mock_timer.h" |
-#include "components/page_load_metrics/common/page_load_timing.h" |
-#include "components/page_load_metrics/renderer/fake_page_timing_metrics_ipc_sender.h" |
-#include "ipc/ipc_message.h" |
-#include "testing/gtest/include/gtest/gtest.h" |
- |
-namespace page_load_metrics { |
- |
-// Thin wrapper around PageTimingMetricsSender that provides access to the |
-// MockTimer instance. |
-class TestPageTimingMetricsSender : public PageTimingMetricsSender { |
- public: |
- explicit TestPageTimingMetricsSender(IPC::Sender* ipc_sender, |
- const PageLoadTiming& initial_timing) |
- : PageTimingMetricsSender( |
- ipc_sender, |
- MSG_ROUTING_NONE, |
- std::unique_ptr<base::Timer>(new base::MockTimer(false, false)), |
- initial_timing) {} |
- |
- base::MockTimer* mock_timer() const { |
- return reinterpret_cast<base::MockTimer*>(timer()); |
- } |
-}; |
- |
-class PageTimingMetricsSenderTest : public testing::Test { |
- public: |
- PageTimingMetricsSenderTest() |
- : metrics_sender_(new TestPageTimingMetricsSender(&fake_ipc_sender_, |
- PageLoadTiming())) {} |
- |
- protected: |
- FakePageTimingMetricsIPCSender fake_ipc_sender_; |
- std::unique_ptr<TestPageTimingMetricsSender> metrics_sender_; |
-}; |
- |
-TEST_F(PageTimingMetricsSenderTest, Basic) { |
- base::Time nav_start = base::Time::FromDoubleT(10); |
- base::TimeDelta first_layout = base::TimeDelta::FromMillisecondsD(2); |
- |
- PageLoadTiming timing; |
- timing.navigation_start = nav_start; |
- timing.first_layout = first_layout; |
- |
- metrics_sender_->Send(timing); |
- |
- // Firing the timer should trigger sending of an OnTimingUpdated IPC. |
- fake_ipc_sender_.ExpectPageLoadTiming(timing); |
- ASSERT_TRUE(metrics_sender_->mock_timer()->IsRunning()); |
- metrics_sender_->mock_timer()->Fire(); |
- EXPECT_FALSE(metrics_sender_->mock_timer()->IsRunning()); |
- |
- // At this point, we should have triggered the send of the PageLoadTiming IPC. |
- fake_ipc_sender_.VerifyExpectedTimings(); |
- |
- // Attempt to send the same timing instance again. The send should be |
- // suppressed, since the timing instance hasn't changed since the last send. |
- metrics_sender_->Send(timing); |
- EXPECT_FALSE(metrics_sender_->mock_timer()->IsRunning()); |
-} |
- |
-TEST_F(PageTimingMetricsSenderTest, CoalesceMultipleIPCs) { |
- base::Time nav_start = base::Time::FromDoubleT(10); |
- base::TimeDelta first_layout = base::TimeDelta::FromMillisecondsD(2); |
- base::TimeDelta load_event = base::TimeDelta::FromMillisecondsD(4); |
- |
- PageLoadTiming timing; |
- timing.navigation_start = nav_start; |
- timing.first_layout = first_layout; |
- |
- metrics_sender_->Send(timing); |
- ASSERT_TRUE(metrics_sender_->mock_timer()->IsRunning()); |
- |
- // Send an updated PageLoadTiming before the timer has fired. When the timer |
- // fires, the updated PageLoadTiming should be sent. |
- timing.load_event_start = load_event; |
- metrics_sender_->Send(timing); |
- |
- // Firing the timer should trigger sending of the OnTimingUpdated IPC with |
- // the most recently provided PageLoadTiming instance. |
- fake_ipc_sender_.ExpectPageLoadTiming(timing); |
- metrics_sender_->mock_timer()->Fire(); |
- EXPECT_FALSE(metrics_sender_->mock_timer()->IsRunning()); |
-} |
- |
-TEST_F(PageTimingMetricsSenderTest, MultipleIPCs) { |
- base::Time nav_start = base::Time::FromDoubleT(10); |
- base::TimeDelta first_layout = base::TimeDelta::FromMillisecondsD(2); |
- base::TimeDelta load_event = base::TimeDelta::FromMillisecondsD(4); |
- |
- PageLoadTiming timing; |
- timing.navigation_start = nav_start; |
- timing.first_layout = first_layout; |
- |
- metrics_sender_->Send(timing); |
- ASSERT_TRUE(metrics_sender_->mock_timer()->IsRunning()); |
- fake_ipc_sender_.ExpectPageLoadTiming(timing); |
- metrics_sender_->mock_timer()->Fire(); |
- EXPECT_FALSE(metrics_sender_->mock_timer()->IsRunning()); |
- fake_ipc_sender_.VerifyExpectedTimings(); |
- |
- // Send an updated PageLoadTiming after the timer for the first send request |
- // has fired, and verify that a second IPC is sent. |
- timing.load_event_start = load_event; |
- metrics_sender_->Send(timing); |
- ASSERT_TRUE(metrics_sender_->mock_timer()->IsRunning()); |
- fake_ipc_sender_.ExpectPageLoadTiming(timing); |
- metrics_sender_->mock_timer()->Fire(); |
- EXPECT_FALSE(metrics_sender_->mock_timer()->IsRunning()); |
-} |
- |
-TEST_F(PageTimingMetricsSenderTest, SendIPCOnDestructor) { |
- PageLoadTiming timing; |
- timing.navigation_start = base::Time::FromDoubleT(10); |
- timing.first_layout = base::TimeDelta::FromMilliseconds(10); |
- |
- // This test wants to verify behavior in the PageTimingMetricsSender |
- // destructor. The EXPECT_CALL will be satisfied when the |metrics_sender_| |
- // is destroyed below. |
- metrics_sender_->Send(timing); |
- fake_ipc_sender_.ExpectPageLoadTiming(timing); |
- ASSERT_TRUE(metrics_sender_->mock_timer()->IsRunning()); |
- |
- // Destroy |metrics_sender_|, in order to force its destructor to run. |
- metrics_sender_.reset(); |
-} |
- |
-} // namespace page_load_metrics |