• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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() const25 bool WithFeatureOverride::IsParamFeatureEnabled() const {
26   return GetParam();
27 }
28 
29 WithFeatureOverride::~WithFeatureOverride() = default;
30 
31 }  // namespace test
32 }  // namespace base
33