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)11WithFeatureOverride::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()25bool WithFeatureOverride::IsParamFeatureEnabled() { 26 return GetParam(); 27 } 28 29 WithFeatureOverride::~WithFeatureOverride() = default; 30 31 } // namespace test 32 } // namespace base 33