- add sources.
[platform/framework/web/crosswalk.git] / src / chrome / browser / policy / file_selection_dialogs_policy_handler_unittest.cc
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.
4
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/browser/policy/policy_map.h"
9 #include "chrome/common/pref_names.h"
10 #include "policy/policy_constants.h"
11 #include "testing/gtest/include/gtest/gtest.h"
12
13 namespace policy {
14
15 // Test cases for how the AllowFileSelectionDialogs policy influences the
16 // PromptForDownload preference.
17 class FileSelectionDialogsPolicyTest : public testing::Test {
18  protected:
19   PolicyMap policy_;
20   FileSelectionDialogsPolicyHandler handler_;
21   PrefValueMap prefs_;
22 };
23
24 TEST_F(FileSelectionDialogsPolicyTest, Default) {
25   handler_.ApplyPolicySettings(policy_, &prefs_);
26   EXPECT_FALSE(prefs_.GetValue(prefs::kPromptForDownload, NULL));
27 }
28
29 TEST_F(FileSelectionDialogsPolicyTest, EnableFileSelectionDialogs) {
30   policy_.Set(key::kAllowFileSelectionDialogs,
31               POLICY_LEVEL_MANDATORY,
32               POLICY_SCOPE_USER,
33               base::Value::CreateBooleanValue(true),
34               NULL);
35   handler_.ApplyPolicySettings(policy_, &prefs_);
36
37   // Allowing file-selection dialogs should not influence the PromptForDownload
38   // pref.
39   EXPECT_FALSE(prefs_.GetValue(prefs::kPromptForDownload, NULL));
40 }
41
42 TEST_F(FileSelectionDialogsPolicyTest, DisableFileSelectionDialogs) {
43   policy_.Set(key::kAllowFileSelectionDialogs,
44               POLICY_LEVEL_MANDATORY,
45               POLICY_SCOPE_USER,
46               base::Value::CreateBooleanValue(false),
47               NULL);
48   handler_.ApplyPolicySettings(policy_, &prefs_);
49
50   // Disabling file-selection dialogs should disable the PromptForDownload pref.
51   const base::Value* value = NULL;
52   EXPECT_TRUE(prefs_.GetValue(prefs::kPromptForDownload, &value));
53   ASSERT_TRUE(value);
54   bool prompt_for_download = true;
55   bool result = value->GetAsBoolean(&prompt_for_download);
56   EXPECT_TRUE(result);
57   EXPECT_FALSE(prompt_for_download);
58 }
59
60 }  // namespace policy