1 // Copyright 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 #include "base/prefs/pref_value_map.h"
6 #include "base/values.h"
7 #include "chrome/browser/policy/file_selection_dialogs_policy_handler.h"
8 #include "chrome/common/pref_names.h"
9 #include "components/policy/core/common/policy_map.h"
10 #include "policy/policy_constants.h"
11 #include "testing/gtest/include/gtest/gtest.h"
15 // Test cases for how the AllowFileSelectionDialogs policy influences the
16 // PromptForDownload preference.
17 class FileSelectionDialogsPolicyTest
: public testing::Test
{
20 FileSelectionDialogsPolicyHandler handler_
;
24 TEST_F(FileSelectionDialogsPolicyTest
, Default
) {
25 handler_
.ApplyPolicySettings(policy_
, &prefs_
);
26 EXPECT_FALSE(prefs_
.GetValue(prefs::kPromptForDownload
, NULL
));
29 TEST_F(FileSelectionDialogsPolicyTest
, EnableFileSelectionDialogs
) {
30 policy_
.Set(key::kAllowFileSelectionDialogs
,
31 POLICY_LEVEL_MANDATORY
,
33 new base::FundamentalValue(true),
35 handler_
.ApplyPolicySettings(policy_
, &prefs_
);
37 // Allowing file-selection dialogs should not influence the PromptForDownload
39 EXPECT_FALSE(prefs_
.GetValue(prefs::kPromptForDownload
, NULL
));
42 TEST_F(FileSelectionDialogsPolicyTest
, DisableFileSelectionDialogs
) {
43 policy_
.Set(key::kAllowFileSelectionDialogs
,
44 POLICY_LEVEL_MANDATORY
,
46 new base::FundamentalValue(false),
48 handler_
.ApplyPolicySettings(policy_
, &prefs_
);
50 // Disabling file-selection dialogs should disable the PromptForDownload pref.
51 const base::Value
* value
= NULL
;
52 EXPECT_TRUE(prefs_
.GetValue(prefs::kPromptForDownload
, &value
));
54 bool prompt_for_download
= true;
55 bool result
= value
->GetAsBoolean(&prompt_for_download
);
57 EXPECT_FALSE(prompt_for_download
);