Chromium Code Reviews| Index: components/content_settings/core/browser/plugins_field_trial_unittest.cc |
| diff --git a/components/content_settings/core/browser/plugins_field_trial_unittest.cc b/components/content_settings/core/browser/plugins_field_trial_unittest.cc |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..eb9b2a89b6a0fbefe8c058b49e25bbada87ae935 |
| --- /dev/null |
| +++ b/components/content_settings/core/browser/plugins_field_trial_unittest.cc |
| @@ -0,0 +1,81 @@ |
| +// Copyright 2015 The Chromium Authors. All rights reserved. |
| +// Use of this source code is governed by a BSD-style license that can be |
| +// found in the LICENSE file. |
| + |
| +#include "components/content_settings/core/browser/plugins_field_trial.h" |
| + |
| +#include "base/command_line.h" |
| +#include "base/macros.h" |
| +#include "base/metrics/field_trial.h" |
| +#include "base/test/mock_entropy_provider.h" |
| +#include "components/content_settings/core/common/content_settings_switches.h" |
| +#include "testing/gtest/include/gtest/gtest.h" |
| + |
| +namespace content_settings { |
| + |
| +namespace { |
| + |
| +const auto& kFieldTrialName = PluginsFieldTrial::kFieldTrialName; |
|
Bernhard Bauer
2015/04/17 15:59:35
This seems like you could also do it with `using`?
Dan Beam
2015/04/18 19:37:35
can't use a class member (that's what I originally
|
| + |
| +void ForceFieldTrialGroup(const std::string& group_name) { |
| + using base::FieldTrialList; |
| + ASSERT_TRUE(FieldTrialList::CreateFieldTrial(kFieldTrialName, group_name)); |
| +} |
| + |
| +} // namespace |
| + |
| +class PluginsFieldTrialTest : public testing::Test { |
| + public: |
| + PluginsFieldTrialTest() : field_trial_list_(new base::MockEntropyProvider) {} |
| + |
| + private: |
| + base::FieldTrialList field_trial_list_; |
| + |
| + DISALLOW_COPY_AND_ASSIGN(PluginsFieldTrialTest); |
| +}; |
| + |
| +TEST_F(PluginsFieldTrialTest, DisabledByDefault) { |
| + base::CommandLine* cl = base::CommandLine::ForCurrentProcess(); |
| + ASSERT_FALSE(cl->HasSwitch(switches::kDisablePluginPowerSaver)); |
| + ASSERT_FALSE(cl->HasSwitch(switches::kEnablePluginPowerSaver)); |
| + ASSERT_FALSE(base::FieldTrialList::TrialExists(kFieldTrialName)); |
| + EXPECT_FALSE(PluginsFieldTrial::IsPluginPowerSaverEnabled()); |
| +} |
| + |
| +TEST_F(PluginsFieldTrialTest, FieldTrialEnabled) { |
| + ForceFieldTrialGroup("Enabled"); |
| + EXPECT_TRUE(PluginsFieldTrial::IsPluginPowerSaverEnabled()); |
| +} |
| + |
| +TEST_F(PluginsFieldTrialTest, FieldTrialDisabled) { |
| + ForceFieldTrialGroup("Disabled"); |
| + EXPECT_FALSE(PluginsFieldTrial::IsPluginPowerSaverEnabled()); |
| +} |
| + |
| +TEST_F(PluginsFieldTrialTest, SwitchDisabled) { |
| + base::CommandLine* cl = base::CommandLine::ForCurrentProcess(); |
| + cl->AppendSwitch(switches::kEnablePluginPowerSaver); |
| + EXPECT_TRUE(PluginsFieldTrial::IsPluginPowerSaverEnabled()); |
| +} |
| + |
| +TEST_F(PluginsFieldTrialTest, SwitchEnabled) { |
| + base::CommandLine* cl = base::CommandLine::ForCurrentProcess(); |
| + cl->AppendSwitch(switches::kDisablePluginPowerSaver); |
| + EXPECT_FALSE(PluginsFieldTrial::IsPluginPowerSaverEnabled()); |
| +} |
| + |
| +TEST_F(PluginsFieldTrialTest, SwitchOverridesFieldTrial1) { |
| + ForceFieldTrialGroup("Disabled"); |
| + base::CommandLine* cl = base::CommandLine::ForCurrentProcess(); |
| + cl->AppendSwitch(switches::kEnablePluginPowerSaver); |
| + EXPECT_TRUE(PluginsFieldTrial::IsPluginPowerSaverEnabled()); |
| +} |
| + |
| +TEST_F(PluginsFieldTrialTest, SwitchOverridesFieldTrial2) { |
| + ForceFieldTrialGroup("Enabled"); |
| + base::CommandLine* cl = base::CommandLine::ForCurrentProcess(); |
| + cl->AppendSwitch(switches::kDisablePluginPowerSaver); |
| + EXPECT_FALSE(PluginsFieldTrial::IsPluginPowerSaverEnabled()); |
| +} |
| + |
| +} // namespace content_settings |