xref: /aosp_15_r20/external/cronet/base/test/with_feature_override.cc (revision 6777b5387eb2ff775bb5750e3f5d96f37fb7352b)
1 // Copyright 2020 The Chromium Authors
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4 
5 #include "base/test/with_feature_override.h"
6 #include "base/task/thread_pool/thread_pool_instance.h"
7 
8 namespace base {
9 namespace test {
10 
WithFeatureOverride(const base::Feature & feature)11 WithFeatureOverride::WithFeatureOverride(const base::Feature& feature) {
12   // Most other classes that tests inherit from start task environments. Verify
13   // that has not happened yet.
14   DCHECK(base::ThreadPoolInstance::Get() == nullptr)
15       << "WithFeatureOverride should be the first class a test inherits from "
16          "so it sets the features before any other setup is done.";
17 
18   if (GetParam()) {
19     scoped_feature_list_.InitAndEnableFeature(feature);
20   } else {
21     scoped_feature_list_.InitAndDisableFeature(feature);
22   }
23 }
24 
IsParamFeatureEnabled()25 bool WithFeatureOverride::IsParamFeatureEnabled() {
26   return GetParam();
27 }
28 
29 WithFeatureOverride::~WithFeatureOverride() = default;
30 
31 }  // namespace test
32 }  // namespace base
33