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