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

Unified Diff: components/page_load_metrics/renderer/page_timing_metrics_sender_unittest.cc

Issue 2177743002: Migrate page_load_metrics out of components. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: migrate page_load_metrics_messages to common message generator Created 4 years, 5 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 side-by-side diff with in-line comments
Download patch
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
« no previous file with comments | « components/page_load_metrics/renderer/page_timing_metrics_sender.cc ('k') | tools/ipc_fuzzer/message_lib/BUILD.gn » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698