OLD | NEW |
1 // Copyright 2016 The Chromium Authors. All rights reserved. | 1 // Copyright 2016 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/ui/webui/settings/site_settings_handler.h" | 5 #include "chrome/browser/ui/webui/settings/site_settings_handler.h" |
6 | 6 |
7 #include <memory> | 7 #include <memory> |
8 | 8 |
9 #include "chrome/browser/chrome_notification_types.h" | 9 #include "chrome/browser/chrome_notification_types.h" |
10 #include "chrome/browser/ui/webui/site_settings_helper.h" | 10 #include "chrome/browser/ui/webui/site_settings_helper.h" |
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
63 std::string setting; | 63 std::string setting; |
64 ASSERT_TRUE(default_value->GetString(kSetting, &setting)); | 64 ASSERT_TRUE(default_value->GetString(kSetting, &setting)); |
65 EXPECT_EQ(expected_setting, setting); | 65 EXPECT_EQ(expected_setting, setting); |
66 std::string source; | 66 std::string source; |
67 if (default_value->GetString(kSource, &source)) | 67 if (default_value->GetString(kSource, &source)) |
68 EXPECT_EQ(expected_source, source); | 68 EXPECT_EQ(expected_source, source); |
69 } | 69 } |
70 | 70 |
71 void ValidateOrigin( | 71 void ValidateOrigin( |
72 const std::string& expected_origin, | 72 const std::string& expected_origin, |
| 73 const std::string& expected_display_name, |
73 const std::string& expected_embedding, | 74 const std::string& expected_embedding, |
74 const std::string& expected_setting, | 75 const std::string& expected_setting, |
75 const std::string& expected_source, | 76 const std::string& expected_source, |
76 size_t expected_total_calls) { | 77 size_t expected_total_calls) { |
77 EXPECT_EQ(expected_total_calls, web_ui()->call_data().size()); | 78 EXPECT_EQ(expected_total_calls, web_ui()->call_data().size()); |
78 | 79 |
79 const content::TestWebUI::CallData& data = *web_ui()->call_data().back(); | 80 const content::TestWebUI::CallData& data = *web_ui()->call_data().back(); |
80 EXPECT_EQ("cr.webUIResponse", data.function_name()); | 81 EXPECT_EQ("cr.webUIResponse", data.function_name()); |
81 | 82 |
82 std::string callback_id; | 83 std::string callback_id; |
83 ASSERT_TRUE(data.arg1()->GetAsString(&callback_id)); | 84 ASSERT_TRUE(data.arg1()->GetAsString(&callback_id)); |
84 EXPECT_EQ(kCallbackId, callback_id); | 85 EXPECT_EQ(kCallbackId, callback_id); |
85 bool success = false; | 86 bool success = false; |
86 ASSERT_TRUE(data.arg2()->GetAsBoolean(&success)); | 87 ASSERT_TRUE(data.arg2()->GetAsBoolean(&success)); |
87 ASSERT_TRUE(success); | 88 ASSERT_TRUE(success); |
88 | 89 |
89 const base::ListValue* exceptions; | 90 const base::ListValue* exceptions; |
90 ASSERT_TRUE(data.arg3()->GetAsList(&exceptions)); | 91 ASSERT_TRUE(data.arg3()->GetAsList(&exceptions)); |
91 EXPECT_EQ(1U, exceptions->GetSize()); | 92 EXPECT_EQ(1U, exceptions->GetSize()); |
92 const base::DictionaryValue* exception; | 93 const base::DictionaryValue* exception; |
93 ASSERT_TRUE(exceptions->GetDictionary(0, &exception)); | 94 ASSERT_TRUE(exceptions->GetDictionary(0, &exception)); |
94 std::string origin, embedding_origin, setting, source; | 95 std::string origin, embedding_origin, display_name, setting, source; |
95 ASSERT_TRUE(exception->GetString(site_settings::kOrigin, &origin)); | 96 ASSERT_TRUE(exception->GetString(site_settings::kOrigin, &origin)); |
96 ASSERT_EQ(expected_origin, origin); | 97 ASSERT_EQ(expected_origin, origin); |
| 98 ASSERT_TRUE( |
| 99 exception->GetString(site_settings::kDisplayName, &display_name)); |
| 100 ASSERT_EQ(expected_display_name, display_name); |
97 ASSERT_TRUE(exception->GetString( | 101 ASSERT_TRUE(exception->GetString( |
98 site_settings::kEmbeddingOrigin, &embedding_origin)); | 102 site_settings::kEmbeddingOrigin, &embedding_origin)); |
99 ASSERT_EQ(expected_embedding, embedding_origin); | 103 ASSERT_EQ(expected_embedding, embedding_origin); |
100 ASSERT_TRUE(exception->GetString(site_settings::kSetting, &setting)); | 104 ASSERT_TRUE(exception->GetString(site_settings::kSetting, &setting)); |
101 ASSERT_EQ(expected_setting, setting); | 105 ASSERT_EQ(expected_setting, setting); |
102 ASSERT_TRUE(exception->GetString(site_settings::kSource, &source)); | 106 ASSERT_TRUE(exception->GetString(site_settings::kSource, &source)); |
103 ASSERT_EQ(expected_source, source); | 107 ASSERT_EQ(expected_source, source); |
104 } | 108 } |
105 | 109 |
106 void ValidateNoOrigin(size_t expected_total_calls) { | 110 void ValidateNoOrigin(size_t expected_total_calls) { |
(...skipping 135 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
242 setArgs.AppendString("block"); | 246 setArgs.AppendString("block"); |
243 setArgs.AppendBoolean(false); // Incognito. | 247 setArgs.AppendBoolean(false); // Incognito. |
244 handler()->HandleSetCategoryPermissionForOrigin(&setArgs); | 248 handler()->HandleSetCategoryPermissionForOrigin(&setArgs); |
245 EXPECT_EQ(1U, web_ui()->call_data().size()); | 249 EXPECT_EQ(1U, web_ui()->call_data().size()); |
246 | 250 |
247 // Verify the change was successful. | 251 // Verify the change was successful. |
248 base::ListValue listArgs; | 252 base::ListValue listArgs; |
249 listArgs.AppendString(kCallbackId); | 253 listArgs.AppendString(kCallbackId); |
250 listArgs.AppendString("notifications"); | 254 listArgs.AppendString("notifications"); |
251 handler()->HandleGetExceptionList(&listArgs); | 255 handler()->HandleGetExceptionList(&listArgs); |
252 ValidateOrigin(google, google, "block", "preference", 2U); | 256 ValidateOrigin(google, google, google, "block", "preference", 2U); |
253 | 257 |
254 // Reset things back to how they were. | 258 // Reset things back to how they were. |
255 base::ListValue resetArgs; | 259 base::ListValue resetArgs; |
256 resetArgs.AppendString(google); | 260 resetArgs.AppendString(google); |
257 resetArgs.AppendString(google); | 261 resetArgs.AppendString(google); |
258 resetArgs.AppendString("notifications"); | 262 resetArgs.AppendString("notifications"); |
259 resetArgs.AppendBoolean(false); // Incognito. | 263 resetArgs.AppendBoolean(false); // Incognito. |
260 handler()->HandleResetCategoryPermissionForOrigin(&resetArgs); | 264 handler()->HandleResetCategoryPermissionForOrigin(&resetArgs); |
261 EXPECT_EQ(3U, web_ui()->call_data().size()); | 265 EXPECT_EQ(3U, web_ui()->call_data().size()); |
262 | 266 |
263 // Verify the reset was successful. | 267 // Verify the reset was successful. |
264 handler()->HandleGetExceptionList(&listArgs); | 268 handler()->HandleGetExceptionList(&listArgs); |
265 ValidateNoOrigin(4U); | 269 ValidateNoOrigin(4U); |
266 } | 270 } |
267 | 271 |
268 TEST_F(SiteSettingsHandlerTest, ExceptionHelpers) { | 272 TEST_F(SiteSettingsHandlerTest, ExceptionHelpers) { |
269 ContentSettingsPattern pattern = | 273 ContentSettingsPattern pattern = |
270 ContentSettingsPattern::FromString("[*.]google.com"); | 274 ContentSettingsPattern::FromString("[*.]google.com"); |
271 std::unique_ptr<base::DictionaryValue> exception = | 275 std::unique_ptr<base::DictionaryValue> exception = |
272 site_settings::GetExceptionForPage(pattern, pattern, pattern.ToString(), | 276 site_settings::GetExceptionForPage(pattern, pattern, pattern.ToString(), |
273 CONTENT_SETTING_BLOCK, "preference", | 277 CONTENT_SETTING_BLOCK, "preference", |
274 false); | 278 false); |
275 | 279 |
276 std::string primary_pattern, secondary_pattern, type; | 280 std::string primary_pattern, secondary_pattern, display_name, type; |
277 bool incognito; | 281 bool incognito; |
278 CHECK(exception->GetString(site_settings::kOrigin, &primary_pattern)); | 282 CHECK(exception->GetString(site_settings::kOrigin, &primary_pattern)); |
| 283 CHECK(exception->GetString(site_settings::kDisplayName, &display_name)); |
279 CHECK(exception->GetString(site_settings::kEmbeddingOrigin, | 284 CHECK(exception->GetString(site_settings::kEmbeddingOrigin, |
280 &secondary_pattern)); | 285 &secondary_pattern)); |
281 CHECK(exception->GetString(site_settings::kSetting, &type)); | 286 CHECK(exception->GetString(site_settings::kSetting, &type)); |
282 CHECK(exception->GetBoolean(site_settings::kIncognito, &incognito)); | 287 CHECK(exception->GetBoolean(site_settings::kIncognito, &incognito)); |
283 | 288 |
284 base::ListValue args; | 289 base::ListValue args; |
285 args.AppendString(primary_pattern); | 290 args.AppendString(primary_pattern); |
286 args.AppendString(secondary_pattern); | 291 args.AppendString(secondary_pattern); |
287 args.AppendString("notifications"); // Chosen arbitrarily. | 292 args.AppendString("notifications"); // Chosen arbitrarily. |
288 args.AppendString(type); | 293 args.AppendString(type); |
(...skipping 13 matching lines...) Expand all Loading... |
302 .SetID("ahfgeienlihckogmohjhadlkjgocpleb") | 307 .SetID("ahfgeienlihckogmohjhadlkjgocpleb") |
303 .Build(); | 308 .Build(); |
304 | 309 |
305 std::unique_ptr<base::ListValue> exceptions(new base::ListValue); | 310 std::unique_ptr<base::ListValue> exceptions(new base::ListValue); |
306 site_settings::AddExceptionForHostedApp( | 311 site_settings::AddExceptionForHostedApp( |
307 "[*.]google.com", *extension.get(), exceptions.get()); | 312 "[*.]google.com", *extension.get(), exceptions.get()); |
308 | 313 |
309 const base::DictionaryValue* dictionary; | 314 const base::DictionaryValue* dictionary; |
310 CHECK(exceptions->GetDictionary(0, &dictionary)); | 315 CHECK(exceptions->GetDictionary(0, &dictionary)); |
311 CHECK(dictionary->GetString(site_settings::kOrigin, &primary_pattern)); | 316 CHECK(dictionary->GetString(site_settings::kOrigin, &primary_pattern)); |
| 317 CHECK(dictionary->GetString(site_settings::kDisplayName, &display_name)); |
312 CHECK(dictionary->GetString(site_settings::kEmbeddingOrigin, | 318 CHECK(dictionary->GetString(site_settings::kEmbeddingOrigin, |
313 &secondary_pattern)); | 319 &secondary_pattern)); |
314 CHECK(dictionary->GetString(site_settings::kSetting, &type)); | 320 CHECK(dictionary->GetString(site_settings::kSetting, &type)); |
315 CHECK(dictionary->GetBoolean(site_settings::kIncognito, &incognito)); | 321 CHECK(dictionary->GetBoolean(site_settings::kIncognito, &incognito)); |
316 | 322 |
317 // Again, don't need to check the results. | 323 // Again, don't need to check the results. |
318 handler()->HandleSetCategoryPermissionForOrigin(&args); | 324 handler()->HandleSetCategoryPermissionForOrigin(&args); |
319 } | 325 } |
320 | 326 |
321 TEST_F(SiteSettingsHandlerTest, Patterns) { | 327 TEST_F(SiteSettingsHandlerTest, Patterns) { |
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
362 args.AppendString("http://www.google.com"); | 368 args.AppendString("http://www.google.com"); |
363 handler()->HandleRemoveZoomLevel(&args); | 369 handler()->HandleRemoveZoomLevel(&args); |
364 ValidateZoom("", "", 3U); | 370 ValidateZoom("", "", 3U); |
365 | 371 |
366 double default_level = host_zoom_map->GetDefaultZoomLevel(); | 372 double default_level = host_zoom_map->GetDefaultZoomLevel(); |
367 double level = host_zoom_map->GetZoomLevelForHostAndScheme("http", host); | 373 double level = host_zoom_map->GetZoomLevelForHostAndScheme("http", host); |
368 EXPECT_EQ(default_level, level); | 374 EXPECT_EQ(default_level, level); |
369 } | 375 } |
370 | 376 |
371 } // namespace settings | 377 } // namespace settings |
OLD | NEW |