metrics_cluster_finalizer_unittest.cc 2.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  1. // Copyright 2022 The Chromium Authors. All rights reserved.
  2. // Use of this source code is governed by a BSD-style license that can be
  3. // found in the LICENSE file.
  4. #include "components/history_clusters/core/metrics_cluster_finalizer.h"
  5. #include "base/test/metrics/histogram_tester.h"
  6. #include "base/test/task_environment.h"
  7. #include "components/history_clusters/core/clustering_test_utils.h"
  8. #include "testing/gmock/include/gmock/gmock.h"
  9. #include "testing/gtest/include/gtest/gtest.h"
  10. namespace history_clusters {
  11. namespace {
  12. using ::testing::ElementsAre;
  13. class MetricsClusterFinalizerTest : public ::testing::Test {
  14. public:
  15. void SetUp() override {
  16. cluster_finalizer_ = std::make_unique<MetricsClusterFinalizer>();
  17. }
  18. void TearDown() override { cluster_finalizer_.reset(); }
  19. void FinalizeCluster(history::Cluster& cluster) {
  20. cluster_finalizer_->FinalizeCluster(cluster);
  21. }
  22. private:
  23. std::unique_ptr<MetricsClusterFinalizer> cluster_finalizer_;
  24. base::test::TaskEnvironment task_environment_;
  25. };
  26. TEST_F(MetricsClusterFinalizerTest, ContainsSearch) {
  27. base::HistogramTester histogram_tester;
  28. history::ClusterVisit visit = testing::CreateClusterVisit(
  29. testing::CreateDefaultAnnotatedVisit(1, GURL("https://bar.com/")));
  30. visit.engagement_score = 25.0;
  31. history::ClusterVisit visit2 = testing::CreateClusterVisit(
  32. testing::CreateDefaultAnnotatedVisit(2, GURL("https://bar.com/")));
  33. visit2.duplicate_visits.push_back(visit);
  34. visit2.engagement_score = 25.0;
  35. visit2.annotated_visit.content_annotations.search_terms = u"bar";
  36. history::Cluster cluster;
  37. cluster.visits = {visit2};
  38. cluster.keyword_to_data_map[u"bar"] = history::ClusterKeywordData();
  39. FinalizeCluster(cluster);
  40. histogram_tester.ExpectUniqueSample(
  41. "History.Clusters.Backend.ClusterContainsSearch", true, 1);
  42. histogram_tester.ExpectUniqueSample(
  43. "History.Clusters.Backend.NumKeywordsPerCluster", 1, 1);
  44. histogram_tester.ExpectUniqueSample(
  45. "History.Clusters.Backend.NumVisitsPerCluster", 1, 1);
  46. }
  47. TEST_F(MetricsClusterFinalizerTest, DoesNotContainSearch) {
  48. base::HistogramTester histogram_tester;
  49. history::ClusterVisit visit = testing::CreateClusterVisit(
  50. testing::CreateDefaultAnnotatedVisit(1, GURL("https://bar.com/")));
  51. visit.engagement_score = 5.0;
  52. history::ClusterVisit visit2 = testing::CreateClusterVisit(
  53. testing::CreateDefaultAnnotatedVisit(2, GURL("https://bar.com/")));
  54. visit2.duplicate_visits.push_back(visit);
  55. visit2.engagement_score = 25.0;
  56. history::Cluster cluster;
  57. cluster.visits = {visit2};
  58. FinalizeCluster(cluster);
  59. histogram_tester.ExpectUniqueSample(
  60. "History.Clusters.Backend.ClusterContainsSearch", false, 1);
  61. histogram_tester.ExpectUniqueSample(
  62. "History.Clusters.Backend.NumKeywordsPerCluster", 0, 1);
  63. histogram_tester.ExpectUniqueSample(
  64. "History.Clusters.Backend.NumVisitsPerCluster", 1, 1);
  65. }
  66. } // namespace
  67. } // namespace history_clusters