1
    2
    3
    4
    5
    6
    7
    8
    9
   10
   11
   12
   13
   14
   15
   16
   17
   18
   19
   20
   21
   22
   23
   24
   25
   26
   27
   28
   29
   30
   31
   32
   33
   34
   35
   36
   37
   38
   39
   40
   41

content / browser / preloading / prefetch / prefetch_params_unittest.cc [blame]

// Copyright 2022 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#include "content/browser/preloading/prefetch/prefetch_params.h"

#include "base/test/scoped_feature_list.h"
#include "content/browser/preloading/prefetch/prefetch_features.h"
#include "testing/gtest/include/gtest/gtest.h"

namespace content {
namespace {

class PrefetchParamsTest : public ::testing::Test {};

TEST_F(PrefetchParamsTest, DecoyProbabilityClampedZero) {
  base::test::ScopedFeatureList scoped_feature_list;
  scoped_feature_list.InitAndEnableFeatureWithParameters(
      features::kPrefetchUseContentRefactor,
      {{"ineligible_decoy_request_probability", "-1"}});

  for (size_t i = 0; i < 100; i++) {
    EXPECT_FALSE(PrefetchServiceSendDecoyRequestForIneligblePrefetch(
        /* disabled_based_on_user_settings=*/false));
  }
}

TEST_F(PrefetchParamsTest, DecoyProbabilityClampedOne) {
  base::test::ScopedFeatureList scoped_feature_list;
  scoped_feature_list.InitAndEnableFeatureWithParameters(
      features::kPrefetchUseContentRefactor,
      {{"ineligible_decoy_request_probability", "2"}});

  for (size_t i = 0; i < 100; i++) {
    EXPECT_TRUE(PrefetchServiceSendDecoyRequestForIneligblePrefetch(
        /* disabled_based_on_user_settings=*/false));
  }
}

}  // namespace
}  // namespace content