Chromium Code Reviews| 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 "base/test/histogram_tester.h" | 9 #include "base/test/histogram_tester.h" |
| 10 #include "chrome/browser/chrome_notification_types.h" | 10 #include "chrome/browser/chrome_notification_types.h" |
| (...skipping 81 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 92 const content::TestWebUI::CallData& data = *web_ui()->call_data().back(); | 92 const content::TestWebUI::CallData& data = *web_ui()->call_data().back(); |
| 93 EXPECT_EQ("cr.webUIResponse", data.function_name()); | 93 EXPECT_EQ("cr.webUIResponse", data.function_name()); |
| 94 | 94 |
| 95 std::string callback_id; | 95 std::string callback_id; |
| 96 ASSERT_TRUE(data.arg1()->GetAsString(&callback_id)); | 96 ASSERT_TRUE(data.arg1()->GetAsString(&callback_id)); |
| 97 EXPECT_EQ(kCallbackId, callback_id); | 97 EXPECT_EQ(kCallbackId, callback_id); |
| 98 bool success = false; | 98 bool success = false; |
| 99 ASSERT_TRUE(data.arg2()->GetAsBoolean(&success)); | 99 ASSERT_TRUE(data.arg2()->GetAsBoolean(&success)); |
| 100 ASSERT_TRUE(success); | 100 ASSERT_TRUE(success); |
| 101 | 101 |
| 102 const base::ListValue* exceptions; | |
| 103 ASSERT_TRUE(data.arg3()->GetAsList(&exceptions)); | |
| 104 EXPECT_EQ(1U, exceptions->GetSize()); | |
| 105 const base::DictionaryValue* exception; | 102 const base::DictionaryValue* exception; |
| 106 ASSERT_TRUE(exceptions->GetDictionary(0, &exception)); | 103 if (data.arg3()->is_list()) { |
| 104 const base::ListValue* exceptions; | |
| 105 ASSERT_TRUE(data.arg3()->GetAsList(&exceptions)); | |
| 106 EXPECT_EQ(1U, exceptions->GetSize()); | |
| 107 ASSERT_TRUE(exceptions->GetDictionary(0, &exception)); | |
| 108 } else { | |
| 109 data.arg3()->GetAsDictionary(&exception); | |
|
raymes
2017/06/26 04:12:27
Could you add a comment describing these 2 cases?
Patti Lor
2017/06/26 08:10:54
Done.
| |
| 110 } | |
| 107 std::string origin, embedding_origin, display_name, setting, source; | 111 std::string origin, embedding_origin, display_name, setting, source; |
| 108 ASSERT_TRUE(exception->GetString(site_settings::kOrigin, &origin)); | 112 ASSERT_TRUE(exception->GetString(site_settings::kOrigin, &origin)); |
| 109 ASSERT_EQ(expected_origin, origin); | 113 ASSERT_EQ(expected_origin, origin); |
| 110 ASSERT_TRUE( | 114 ASSERT_TRUE( |
| 111 exception->GetString(site_settings::kDisplayName, &display_name)); | 115 exception->GetString(site_settings::kDisplayName, &display_name)); |
| 112 ASSERT_EQ(expected_display_name, display_name); | 116 ASSERT_EQ(expected_display_name, display_name); |
| 113 ASSERT_TRUE(exception->GetString( | 117 ASSERT_TRUE(exception->GetString( |
| 114 site_settings::kEmbeddingOrigin, &embedding_origin)); | 118 site_settings::kEmbeddingOrigin, &embedding_origin)); |
| 115 ASSERT_EQ(expected_embedding, embedding_origin); | 119 ASSERT_EQ(expected_embedding, embedding_origin); |
| 116 ASSERT_TRUE(exception->GetString(site_settings::kSetting, &setting)); | 120 ASSERT_TRUE(exception->GetString(site_settings::kSetting, &setting)); |
| (...skipping 148 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 265 set_args.AppendBoolean(false); // Incognito. | 269 set_args.AppendBoolean(false); // Incognito. |
| 266 base::HistogramTester histograms; | 270 base::HistogramTester histograms; |
| 267 handler()->HandleSetCategoryPermissionForOrigin(&set_args); | 271 handler()->HandleSetCategoryPermissionForOrigin(&set_args); |
| 268 EXPECT_EQ(1U, web_ui()->call_data().size()); | 272 EXPECT_EQ(1U, web_ui()->call_data().size()); |
| 269 histograms.ExpectTotalCount(kUmaBase, 1); | 273 histograms.ExpectTotalCount(kUmaBase, 1); |
| 270 histograms.ExpectTotalCount(kUmaBase + ".Allowed", 0); | 274 histograms.ExpectTotalCount(kUmaBase + ".Allowed", 0); |
| 271 histograms.ExpectTotalCount(kUmaBase + ".Blocked", 1); | 275 histograms.ExpectTotalCount(kUmaBase + ".Blocked", 1); |
| 272 histograms.ExpectTotalCount(kUmaBase + ".Reset", 0); | 276 histograms.ExpectTotalCount(kUmaBase + ".Reset", 0); |
| 273 } | 277 } |
| 274 | 278 |
| 275 // Verify the change was successful. | 279 // If the change was successful, it should show up as an exception as well as |
| 276 base::ListValue listArgs; | 280 // in the response for a specific request to getCategoryPermissionForOrigin. |
| 277 listArgs.AppendString(kCallbackId); | 281 // Check getCategoryPermissionForOrigin. |
| 278 listArgs.AppendString("notifications"); | 282 base::ListValue getCategoryPermissionArgs; |
| 279 handler()->HandleGetExceptionList(&listArgs); | 283 getCategoryPermissionArgs.AppendString(kCallbackId); |
| 284 getCategoryPermissionArgs.AppendString("notifications"); | |
| 285 getCategoryPermissionArgs.AppendString(google); | |
| 286 handler()->HandleGetCategoryPermissionForOrigin(&getCategoryPermissionArgs); | |
| 280 ValidateOrigin(google, google, google, "block", "preference", 2U); | 287 ValidateOrigin(google, google, google, "block", "preference", 2U); |
| 281 | 288 |
| 289 // Check getExceptionList. | |
| 290 base::ListValue getExceptionListArgs; | |
| 291 getExceptionListArgs.AppendString(kCallbackId); | |
| 292 getExceptionListArgs.AppendString("notifications"); | |
| 293 handler()->HandleGetExceptionList(&getExceptionListArgs); | |
| 294 ValidateOrigin(google, google, google, "block", "preference", 3U); | |
| 295 | |
| 282 { | 296 { |
| 283 // Reset things back to how they were. | 297 // Reset things back to how they were. |
| 284 base::ListValue reset_args; | 298 base::ListValue reset_args; |
| 285 reset_args.AppendString(google); | 299 reset_args.AppendString(google); |
| 286 reset_args.AppendString(google); | 300 reset_args.AppendString(google); |
| 287 reset_args.AppendString("notifications"); | 301 reset_args.AppendString("notifications"); |
| 288 reset_args.AppendBoolean(false); // Incognito. | 302 reset_args.AppendBoolean(false); // Incognito. |
| 289 base::HistogramTester histograms; | 303 base::HistogramTester histograms; |
| 290 handler()->HandleResetCategoryPermissionForOrigin(&reset_args); | 304 handler()->HandleResetCategoryPermissionForOrigin(&reset_args); |
| 291 EXPECT_EQ(3U, web_ui()->call_data().size()); | 305 EXPECT_EQ(4U, web_ui()->call_data().size()); |
| 292 histograms.ExpectTotalCount(kUmaBase, 1); | 306 histograms.ExpectTotalCount(kUmaBase, 1); |
| 293 histograms.ExpectTotalCount(kUmaBase + ".Allowed", 0); | 307 histograms.ExpectTotalCount(kUmaBase + ".Allowed", 0); |
| 294 histograms.ExpectTotalCount(kUmaBase + ".Blocked", 0); | 308 histograms.ExpectTotalCount(kUmaBase + ".Blocked", 0); |
| 295 histograms.ExpectTotalCount(kUmaBase + ".Reset", 1); | 309 histograms.ExpectTotalCount(kUmaBase + ".Reset", 1); |
| 296 } | 310 } |
| 297 | 311 |
| 298 // Verify the reset was successful. | 312 // Verify the reset was successful. |
| 299 handler()->HandleGetExceptionList(&listArgs); | 313 handler()->HandleGetExceptionList(&getExceptionListArgs); |
| 300 ValidateNoOrigin(4U); | 314 ValidateNoOrigin(5U); |
| 315 | |
| 316 handler()->HandleGetCategoryPermissionForOrigin(&getCategoryPermissionArgs); | |
| 317 // Ask is the currently the built-in Chrome default for notifications. | |
| 318 ValidateOrigin(google, google, google, "ask", "preference", 6U); | |
| 301 } | 319 } |
| 302 | 320 |
| 303 TEST_F(SiteSettingsHandlerTest, ExceptionHelpers) { | 321 TEST_F(SiteSettingsHandlerTest, ExceptionHelpers) { |
| 304 ContentSettingsPattern pattern = | 322 ContentSettingsPattern pattern = |
| 305 ContentSettingsPattern::FromString("[*.]google.com"); | 323 ContentSettingsPattern::FromString("[*.]google.com"); |
| 306 std::unique_ptr<base::DictionaryValue> exception = | 324 std::unique_ptr<base::DictionaryValue> exception = |
| 307 site_settings::GetExceptionForPage(pattern, pattern, pattern.ToString(), | 325 site_settings::GetExceptionForPage(pattern, pattern, pattern.ToString(), |
| 308 CONTENT_SETTING_BLOCK, "preference", | 326 CONTENT_SETTING_BLOCK, "preference", |
| 309 false); | 327 false); |
| 310 | 328 |
| (...skipping 98 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 409 args.AppendString("http://www.google.com"); | 427 args.AppendString("http://www.google.com"); |
| 410 handler()->HandleRemoveZoomLevel(&args); | 428 handler()->HandleRemoveZoomLevel(&args); |
| 411 ValidateZoom("", "", 3U); | 429 ValidateZoom("", "", 3U); |
| 412 | 430 |
| 413 double default_level = host_zoom_map->GetDefaultZoomLevel(); | 431 double default_level = host_zoom_map->GetDefaultZoomLevel(); |
| 414 double level = host_zoom_map->GetZoomLevelForHostAndScheme("http", host); | 432 double level = host_zoom_map->GetZoomLevelForHostAndScheme("http", host); |
| 415 EXPECT_EQ(default_level, level); | 433 EXPECT_EQ(default_level, level); |
| 416 } | 434 } |
| 417 | 435 |
| 418 } // namespace settings | 436 } // namespace settings |
| OLD | NEW |