blob: e8a492c3818b477efb8b8e2d9d61fe7985bc537b [file] [log] [blame]
// Copyright 2018 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 "chrome/browser/navigation_predictor/navigation_predictor.h"
#include "base/run_loop.h"
#include "base/test/metrics/histogram_tester.h"
#include "chrome/test/base/chrome_render_view_host_test_harness.h"
#include "testing/gtest/include/gtest/gtest.h"
#include "url/gurl.h"
namespace {
class NavigationPredictorTest : public ChromeRenderViewHostTestHarness {
public:
NavigationPredictorTest() = default;
~NavigationPredictorTest() override = default;
void SetUp() override {
ChromeRenderViewHostTestHarness::SetUp();
NavigationPredictor::Create(mojo::MakeRequest(&predictor_service_),
main_rfh());
}
void TearDown() override { ChromeRenderViewHostTestHarness::TearDown(); }
blink::mojom::AnchorElementMetricsHost* predictor_service() const {
return predictor_service_.get();
}
private:
blink::mojom::AnchorElementMetricsHostPtr predictor_service_;
};
} // namespace
// Basic test to check the UpdateAnchorElementMetrics method can be called.
TEST_F(NavigationPredictorTest, UpdateAnchorElementMetrics) {
base::HistogramTester histogram_tester;
auto metrics = blink::mojom::AnchorElementMetrics::New();
metrics->ratio_area = 0.1;
metrics->ratio_distance_root_top = 0.1;
metrics->ratio_distance_center_to_visible_top = 0.1;
metrics->target_url = GURL("https://example.com");
predictor_service()->UpdateAnchorElementMetrics(std::move(metrics));
base::RunLoop().RunUntilIdle();
histogram_tester.ExpectTotalCount(
"AnchorElementMetrics.Clicked.HrefEngagementScore2", 1);
}