OLD | NEW |
1 // Copyright 2013 The Chromium Authors. All rights reserved. | 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 | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "chrome/browser/sessions/restore_on_startup_policy_handler.h" | 5 #include "chrome/browser/sessions/restore_on_startup_policy_handler.h" |
6 | 6 |
7 #include <memory> | 7 #include <memory> |
8 #include <string> | 8 #include <string> |
9 #include <utility> | 9 #include <utility> |
10 | 10 |
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
46 private: | 46 private: |
47 PolicyMap policies_; | 47 PolicyMap policies_; |
48 PolicyErrorMap errors_; | 48 PolicyErrorMap errors_; |
49 PrefValueMap prefs_; | 49 PrefValueMap prefs_; |
50 RestoreOnStartupPolicyHandler handler_; | 50 RestoreOnStartupPolicyHandler handler_; |
51 }; | 51 }; |
52 | 52 |
53 TEST_F(RestoreOnStartupPolicyHandlerTest, CheckPolicySettings_FailsTypeCheck) { | 53 TEST_F(RestoreOnStartupPolicyHandlerTest, CheckPolicySettings_FailsTypeCheck) { |
54 // Handler expects an int; pass it a bool. | 54 // Handler expects an int; pass it a bool. |
55 SetPolicyValue(key::kRestoreOnStartup, | 55 SetPolicyValue(key::kRestoreOnStartup, |
56 base::WrapUnique(new base::FundamentalValue(false))); | 56 base::MakeUnique<base::FundamentalValue>(false)); |
57 // Checking should fail and add an error to the error map. | 57 // Checking should fail and add an error to the error map. |
58 EXPECT_FALSE(CheckPolicySettings()); | 58 EXPECT_FALSE(CheckPolicySettings()); |
59 EXPECT_EQ(1U, errors().size()); | 59 ASSERT_EQ(1U, errors().size()); |
60 EXPECT_EQ(l10n_util::GetStringFUTF16( | 60 EXPECT_EQ( |
61 IDS_POLICY_TYPE_ERROR, | 61 l10n_util::GetStringFUTF16(IDS_POLICY_TYPE_ERROR, |
62 base::ASCIIToUTF16( | 62 base::ASCIIToUTF16(base::Value::GetTypeName( |
63 ConfigurationPolicyHandler::ValueTypeToString( | 63 base::Value::TYPE_INTEGER))), |
64 base::Value::TYPE_INTEGER))), | 64 errors().begin()->second); |
65 errors().begin()->second); | |
66 } | 65 } |
67 | 66 |
68 TEST_F(RestoreOnStartupPolicyHandlerTest, CheckPolicySettings_Unspecified) { | 67 TEST_F(RestoreOnStartupPolicyHandlerTest, CheckPolicySettings_Unspecified) { |
69 // Don't specify a value for the policy. | 68 // Don't specify a value for the policy. |
70 // Checking should succeed with no errors. | 69 // Checking should succeed with no errors. |
71 EXPECT_TRUE(CheckPolicySettings()); | 70 EXPECT_TRUE(CheckPolicySettings()); |
72 EXPECT_EQ(0U, errors().size()); | 71 EXPECT_TRUE(errors().empty()); |
73 } | 72 } |
74 | 73 |
75 TEST_F(RestoreOnStartupPolicyHandlerTest, CheckPolicySettings_UnknownValue) { | 74 TEST_F(RestoreOnStartupPolicyHandlerTest, CheckPolicySettings_UnknownValue) { |
76 // Specify an unknown value for the policy. | 75 // Specify an unknown value for the policy. |
77 int impossible_value = SessionStartupPref::kPrefValueLast + | 76 int impossible_value = SessionStartupPref::kPrefValueLast + |
78 SessionStartupPref::kPrefValueURLs + | 77 SessionStartupPref::kPrefValueURLs + |
79 SessionStartupPref::kPrefValueNewTab; | 78 SessionStartupPref::kPrefValueNewTab; |
80 SetPolicyValue( | 79 SetPolicyValue(key::kRestoreOnStartup, |
81 key::kRestoreOnStartup, | 80 base::MakeUnique<base::FundamentalValue>(impossible_value)); |
82 base::WrapUnique(new base::FundamentalValue(impossible_value))); | |
83 // Checking should succeed but add an error to the error map. | 81 // Checking should succeed but add an error to the error map. |
84 EXPECT_TRUE(CheckPolicySettings()); | 82 EXPECT_TRUE(CheckPolicySettings()); |
85 EXPECT_EQ(1U, errors().size()); | 83 ASSERT_EQ(1U, errors().size()); |
86 EXPECT_EQ(l10n_util::GetStringFUTF16( | 84 EXPECT_EQ(l10n_util::GetStringFUTF16( |
87 IDS_POLICY_OUT_OF_RANGE_ERROR, | 85 IDS_POLICY_OUT_OF_RANGE_ERROR, |
88 base::ASCIIToUTF16(base::IntToString(impossible_value))), | 86 base::ASCIIToUTF16(base::IntToString(impossible_value))), |
89 errors().begin()->second); | 87 errors().begin()->second); |
90 } | 88 } |
91 | 89 |
92 TEST_F(RestoreOnStartupPolicyHandlerTest, CheckPolicySettings_HomePage) { | 90 TEST_F(RestoreOnStartupPolicyHandlerTest, CheckPolicySettings_HomePage) { |
93 // Specify the HomePage value. | 91 // Specify the HomePage value. |
94 SetPolicyValue(key::kRestoreOnStartup, | 92 SetPolicyValue(key::kRestoreOnStartup, |
95 // kPrefValueHomePage, deprecated. | 93 // kPrefValueHomePage, deprecated. |
96 base::WrapUnique(new base::FundamentalValue(0))); | 94 base::MakeUnique<base::FundamentalValue>(0)); |
97 // Checking should succeed but add an error to the error map. | 95 // Checking should succeed but add an error to the error map. |
98 EXPECT_TRUE(CheckPolicySettings()); | 96 EXPECT_TRUE(CheckPolicySettings()); |
99 EXPECT_EQ(1U, errors().size()); | 97 ASSERT_EQ(1U, errors().size()); |
100 EXPECT_EQ(l10n_util::GetStringUTF16(IDS_POLICY_VALUE_DEPRECATED), | 98 EXPECT_EQ(l10n_util::GetStringUTF16(IDS_POLICY_VALUE_DEPRECATED), |
101 errors().begin()->second); | 99 errors().begin()->second); |
102 } | 100 } |
103 | 101 |
104 TEST_F(RestoreOnStartupPolicyHandlerTest, | 102 TEST_F(RestoreOnStartupPolicyHandlerTest, |
105 CheckPolicySettings_RestoreLastSession_SessionCookies) { | 103 CheckPolicySettings_RestoreLastSession_SessionCookies) { |
106 // Specify the Last value and the Session-Only Cookies value. | 104 // Specify the Last value and the Session-Only Cookies value. |
107 SetPolicyValue(key::kRestoreOnStartup, | 105 SetPolicyValue(key::kRestoreOnStartup, |
108 base::WrapUnique(new base::FundamentalValue( | 106 base::WrapUnique(new base::FundamentalValue( |
109 SessionStartupPref::kPrefValueLast))); | 107 SessionStartupPref::kPrefValueLast))); |
110 std::unique_ptr<base::ListValue> urls(new base::ListValue); | 108 std::unique_ptr<base::ListValue> urls(new base::ListValue); |
111 urls->AppendString("http://foo.com"); | 109 urls->AppendString("http://foo.com"); |
112 SetPolicyValue(key::kCookiesSessionOnlyForUrls, std::move(urls)); | 110 SetPolicyValue(key::kCookiesSessionOnlyForUrls, std::move(urls)); |
113 // Checking should succeed but add an error to the error map. | 111 // Checking should succeed but add an error to the error map. |
114 EXPECT_TRUE(CheckPolicySettings()); | 112 EXPECT_TRUE(CheckPolicySettings()); |
115 EXPECT_EQ(1U, errors().size()); | 113 ASSERT_EQ(1U, errors().size()); |
116 EXPECT_TRUE(key::kCookiesSessionOnlyForUrls == errors().begin()->first); | 114 EXPECT_EQ(key::kCookiesSessionOnlyForUrls, errors().begin()->first); |
117 EXPECT_EQ(l10n_util::GetStringFUTF16( | 115 EXPECT_EQ(l10n_util::GetStringFUTF16( |
118 IDS_POLICY_OVERRIDDEN, | 116 IDS_POLICY_OVERRIDDEN, |
119 base::ASCIIToUTF16(key::kRestoreOnStartup)), | 117 base::ASCIIToUTF16(key::kRestoreOnStartup)), |
120 errors().begin()->second); | 118 errors().begin()->second); |
121 } | 119 } |
122 | 120 |
123 TEST_F(RestoreOnStartupPolicyHandlerTest, ApplyPolicySettings_NotHomePage) { | 121 TEST_F(RestoreOnStartupPolicyHandlerTest, ApplyPolicySettings_NotHomePage) { |
124 // Specify anything except the HomePage value. | 122 // Specify anything except the HomePage value. |
125 int not_home_page = 1; // kPrefValueHomePage + 1, deprecated. | 123 int not_home_page = 1; // kPrefValueHomePage + 1, deprecated. |
126 SetPolicyValue(key::kRestoreOnStartup, | 124 SetPolicyValue(key::kRestoreOnStartup, |
127 base::WrapUnique(new base::FundamentalValue(not_home_page))); | 125 base::MakeUnique<base::FundamentalValue>(not_home_page)); |
128 ApplyPolicySettings(); | 126 ApplyPolicySettings(); |
129 // The resulting prefs should have the value we specified. | 127 // The resulting prefs should have the value we specified. |
130 int result; | 128 int result; |
131 EXPECT_TRUE(prefs().GetInteger(prefs::kRestoreOnStartup, &result)); | 129 EXPECT_TRUE(prefs().GetInteger(prefs::kRestoreOnStartup, &result)); |
132 EXPECT_EQ(not_home_page, result); | 130 EXPECT_EQ(not_home_page, result); |
133 } | 131 } |
134 | 132 |
135 TEST_F(RestoreOnStartupPolicyHandlerTest, | 133 TEST_F(RestoreOnStartupPolicyHandlerTest, |
136 CheckPolicySettings_RestoreLastSession_ClearDataOnExit) { | 134 CheckPolicySettings_RestoreLastSession_ClearDataOnExit) { |
137 // Specify the Last value and the Clear-Data-On-Exit value. | 135 // Specify the Last value and the Clear-Data-On-Exit value. |
138 SetPolicyValue(key::kRestoreOnStartup, | 136 SetPolicyValue(key::kRestoreOnStartup, |
139 base::WrapUnique(new base::FundamentalValue( | 137 base::WrapUnique(new base::FundamentalValue( |
140 SessionStartupPref::kPrefValueLast))); | 138 SessionStartupPref::kPrefValueLast))); |
141 SetPolicyValue(key::kClearSiteDataOnExit, | 139 SetPolicyValue(key::kClearSiteDataOnExit, |
142 base::WrapUnique(new base::FundamentalValue(true))); | 140 base::MakeUnique<base::FundamentalValue>(true)); |
143 // Checking should succeed but add an error to the error map. | 141 // Checking should succeed but add an error to the error map. |
144 EXPECT_TRUE(CheckPolicySettings()); | 142 EXPECT_TRUE(CheckPolicySettings()); |
145 EXPECT_EQ(1U, errors().size()); | 143 ASSERT_EQ(1U, errors().size()); |
146 EXPECT_TRUE(key::kClearSiteDataOnExit == errors().begin()->first); | 144 EXPECT_EQ(key::kClearSiteDataOnExit, errors().begin()->first); |
147 EXPECT_EQ(l10n_util::GetStringFUTF16( | 145 EXPECT_EQ(l10n_util::GetStringFUTF16( |
148 IDS_POLICY_OVERRIDDEN, | 146 IDS_POLICY_OVERRIDDEN, |
149 base::ASCIIToUTF16(key::kRestoreOnStartup)), | 147 base::ASCIIToUTF16(key::kRestoreOnStartup)), |
150 errors().begin()->second); | 148 errors().begin()->second); |
151 } | 149 } |
152 | 150 |
153 TEST_F(RestoreOnStartupPolicyHandlerTest, | 151 TEST_F(RestoreOnStartupPolicyHandlerTest, |
154 CheckPolicySettings_RestoreLastSession) { | 152 CheckPolicySettings_RestoreLastSession) { |
155 // Specify the Last value without the conflicts. | 153 // Specify the Last value without the conflicts. |
156 SetPolicyValue(key::kRestoreOnStartup, | 154 SetPolicyValue(key::kRestoreOnStartup, |
157 base::WrapUnique(new base::FundamentalValue( | 155 base::WrapUnique(new base::FundamentalValue( |
158 SessionStartupPref::kPrefValueLast))); | 156 SessionStartupPref::kPrefValueLast))); |
159 // Checking should succeed with no errors. | 157 // Checking should succeed with no errors. |
160 EXPECT_TRUE(CheckPolicySettings()); | 158 EXPECT_TRUE(CheckPolicySettings()); |
161 EXPECT_EQ(0U, errors().size()); | 159 EXPECT_TRUE(errors().empty()); |
162 } | 160 } |
163 | 161 |
164 TEST_F(RestoreOnStartupPolicyHandlerTest, CheckPolicySettings_URLs) { | 162 TEST_F(RestoreOnStartupPolicyHandlerTest, CheckPolicySettings_URLs) { |
165 // Specify the URLs value. | 163 // Specify the URLs value. |
166 SetPolicyValue(key::kRestoreOnStartup, | 164 SetPolicyValue(key::kRestoreOnStartup, |
167 base::WrapUnique(new base::FundamentalValue( | 165 base::WrapUnique(new base::FundamentalValue( |
168 SessionStartupPref::kPrefValueURLs))); | 166 SessionStartupPref::kPrefValueURLs))); |
169 // Checking should succeed with no errors. | 167 // Checking should succeed with no errors. |
170 EXPECT_TRUE(CheckPolicySettings()); | 168 EXPECT_TRUE(CheckPolicySettings()); |
171 EXPECT_EQ(0U, errors().size()); | 169 EXPECT_TRUE(errors().empty()); |
172 } | 170 } |
173 | 171 |
174 TEST_F(RestoreOnStartupPolicyHandlerTest, CheckPolicySettings_NewTab) { | 172 TEST_F(RestoreOnStartupPolicyHandlerTest, CheckPolicySettings_NewTab) { |
175 // Specify the NewTab value. | 173 // Specify the NewTab value. |
176 SetPolicyValue(key::kRestoreOnStartup, | 174 SetPolicyValue(key::kRestoreOnStartup, |
177 base::WrapUnique(new base::FundamentalValue( | 175 base::WrapUnique(new base::FundamentalValue( |
178 SessionStartupPref::kPrefValueNewTab))); | 176 SessionStartupPref::kPrefValueNewTab))); |
179 // Checking should succeed with no errors. | 177 // Checking should succeed with no errors. |
180 EXPECT_TRUE(CheckPolicySettings()); | 178 EXPECT_TRUE(CheckPolicySettings()); |
181 EXPECT_EQ(0U, errors().size()); | 179 EXPECT_TRUE(errors().empty()); |
182 } | 180 } |
183 | 181 |
184 TEST_F(RestoreOnStartupPolicyHandlerTest, ApplyPolicySettings_NoValue) { | 182 TEST_F(RestoreOnStartupPolicyHandlerTest, ApplyPolicySettings_NoValue) { |
185 // Don't specify a value for the policy. | 183 // Don't specify a value for the policy. |
186 ApplyPolicySettings(); | 184 ApplyPolicySettings(); |
187 // The resulting prefs should be empty. | 185 // The resulting prefs should be empty. |
188 EXPECT_TRUE(prefs().begin() == prefs().end()); | 186 EXPECT_TRUE(prefs().empty()); |
189 } | 187 } |
190 | 188 |
191 TEST_F(RestoreOnStartupPolicyHandlerTest, ApplyPolicySettings_WrongType) { | 189 TEST_F(RestoreOnStartupPolicyHandlerTest, ApplyPolicySettings_WrongType) { |
192 // Handler expects an int; pass it a bool. | 190 // Handler expects an int; pass it a bool. |
193 SetPolicyValue(key::kRestoreOnStartup, | 191 SetPolicyValue(key::kRestoreOnStartup, |
194 base::WrapUnique(new base::FundamentalValue(false))); | 192 base::MakeUnique<base::FundamentalValue>(false)); |
195 // The resulting prefs should be empty. | 193 // The resulting prefs should be empty. |
196 EXPECT_TRUE(prefs().begin() == prefs().end()); | 194 EXPECT_TRUE(prefs().empty()); |
197 } | 195 } |
198 | 196 |
199 } // namespace policy | 197 } // namespace policy |
OLD | NEW |