| Index: chrome/renderer/page_load_metrics/metrics_render_frame_observer_unittest.cc
|
| diff --git a/chrome/renderer/page_load_metrics/metrics_render_frame_observer_unittest.cc b/chrome/renderer/page_load_metrics/metrics_render_frame_observer_unittest.cc
|
| index 453f15b3740b6264a7220cdc420d5767c5e99eaf..b685f4278ca9dec4270ec961f352ee20606b55ce 100644
|
| --- a/chrome/renderer/page_load_metrics/metrics_render_frame_observer_unittest.cc
|
| +++ b/chrome/renderer/page_load_metrics/metrics_render_frame_observer_unittest.cc
|
| @@ -8,10 +8,14 @@
|
| #include <utility>
|
|
|
| #include "base/memory/ptr_util.h"
|
| +#include "base/message_loop/message_loop.h"
|
| +#include "base/run_loop.h"
|
| #include "base/time/time.h"
|
| #include "base/timer/mock_timer.h"
|
| #include "chrome/common/page_load_metrics/page_load_timing.h"
|
| +#include "chrome/renderer/page_load_metrics/fake_page_load_metrics.h"
|
| #include "chrome/renderer/page_load_metrics/fake_page_timing_metrics_ipc_sender.h"
|
| +#include "mojo/public/cpp/bindings/interface_request.h"
|
| #include "testing/gtest/include/gtest/gtest.h"
|
|
|
| namespace page_load_metrics {
|
| @@ -30,6 +34,20 @@ class TestMetricsRenderFrameObserver : public MetricsRenderFrameObserver {
|
| }
|
|
|
| // We intercept sent messages and dispatch them to our
|
| + // FakePageLoadMetricsImpl, which we use to verify that the expected timing
|
| + // get sent.
|
| + void SendTiming(const PageLoadTiming& timing,
|
| + const PageLoadMetadata& metadata) override {
|
| + if (!page_load_metrics_ptr_) {
|
| + mojom::PageLoadMetricsRequest request =
|
| + MakeRequest(&page_load_metrics_ptr_);
|
| + fake_page_load_metrics_.Bind(std::move(request));
|
| + }
|
| + page_load_metrics_ptr_->UpdateTiming(timing, metadata);
|
| + base::RunLoop().RunUntilIdle();
|
| + }
|
| +
|
| + // We intercept sent messages and dispatch them to our
|
| // FakePageTimingMetricsIPCSender, which we use to verify that the expected
|
| // IPC messages get sent.
|
| bool Send(IPC::Message* message) override {
|
| @@ -48,6 +66,7 @@ class TestMetricsRenderFrameObserver : public MetricsRenderFrameObserver {
|
| void ExpectPageLoadTiming(const PageLoadTiming& timing) {
|
| SetFakePageLoadTiming(timing);
|
| fake_timing_ipc_sender_.ExpectPageLoadTiming(timing);
|
| + fake_page_load_metrics_.ExpectPageLoadTiming(timing);
|
| }
|
|
|
| void SetFakePageLoadTiming(const PageLoadTiming& timing) {
|
| @@ -64,6 +83,7 @@ class TestMetricsRenderFrameObserver : public MetricsRenderFrameObserver {
|
| void VerifyExpectedTimings() const {
|
| EXPECT_TRUE(fake_timing_.IsEmpty());
|
| fake_timing_ipc_sender_.VerifyExpectedTimings();
|
| + fake_page_load_metrics_.VerifyExpectedTimings();
|
| }
|
|
|
| bool ShouldSendMetrics() const override { return true; }
|
| @@ -71,7 +91,10 @@ class TestMetricsRenderFrameObserver : public MetricsRenderFrameObserver {
|
| bool IsMainFrame() const override { return is_main_frame_; }
|
|
|
| private:
|
| + base::MessageLoop loop_;
|
| FakePageTimingMetricsIPCSender fake_timing_ipc_sender_;
|
| + mojom::PageLoadMetricsPtr page_load_metrics_ptr_;
|
| + FakePageLoadMetricsImpl fake_page_load_metrics_;
|
| mutable PageLoadTiming fake_timing_;
|
| mutable std::unique_ptr<base::Timer> mock_timer_;
|
| bool is_main_frame_ = true;
|
|
|