| 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/ui/webui/site_settings_helper.h" | 9 #include "chrome/browser/ui/webui/site_settings_helper.h" |
| 10 #include "chrome/test/base/testing_profile.h" | 10 #include "chrome/test/base/testing_profile.h" |
| (...skipping 19 matching lines...) Expand all Loading... |
| 30 void SetUp() override { | 30 void SetUp() override { |
| 31 handler()->set_web_ui(web_ui()); | 31 handler()->set_web_ui(web_ui()); |
| 32 handler()->AllowJavascript(); | 32 handler()->AllowJavascript(); |
| 33 web_ui()->ClearTrackedCalls(); | 33 web_ui()->ClearTrackedCalls(); |
| 34 } | 34 } |
| 35 | 35 |
| 36 Profile* profile() { return &profile_; } | 36 Profile* profile() { return &profile_; } |
| 37 content::TestWebUI* web_ui() { return &web_ui_; } | 37 content::TestWebUI* web_ui() { return &web_ui_; } |
| 38 SiteSettingsHandler* handler() { return &handler_; } | 38 SiteSettingsHandler* handler() { return &handler_; } |
| 39 | 39 |
| 40 void ValidateDefault(bool expected_default, size_t expected_total_calls) { | 40 void ValidateDefault(const std::string& expected_default, |
| 41 size_t expected_total_calls) { |
| 41 EXPECT_EQ(expected_total_calls, web_ui()->call_data().size()); | 42 EXPECT_EQ(expected_total_calls, web_ui()->call_data().size()); |
| 42 | 43 |
| 43 const content::TestWebUI::CallData& data = *web_ui()->call_data().back(); | 44 const content::TestWebUI::CallData& data = *web_ui()->call_data().back(); |
| 44 EXPECT_EQ("cr.webUIResponse", data.function_name()); | 45 EXPECT_EQ("cr.webUIResponse", data.function_name()); |
| 45 | 46 |
| 46 std::string callback_id; | 47 std::string callback_id; |
| 47 ASSERT_TRUE(data.arg1()->GetAsString(&callback_id)); | 48 ASSERT_TRUE(data.arg1()->GetAsString(&callback_id)); |
| 48 EXPECT_EQ(kCallbackId, callback_id); | 49 EXPECT_EQ(kCallbackId, callback_id); |
| 49 | 50 |
| 50 bool success = false; | 51 bool success = false; |
| 51 ASSERT_TRUE(data.arg2()->GetAsBoolean(&success)); | 52 ASSERT_TRUE(data.arg2()->GetAsBoolean(&success)); |
| 52 ASSERT_TRUE(success); | 53 ASSERT_TRUE(success); |
| 53 | 54 |
| 54 bool enabled; | 55 std::string default_value; |
| 55 ASSERT_TRUE(data.arg3()->GetAsBoolean(&enabled)); | 56 ASSERT_TRUE(data.arg3()->GetAsString(&default_value)); |
| 56 EXPECT_EQ(expected_default, enabled); | 57 EXPECT_EQ(expected_default, default_value); |
| 57 } | 58 } |
| 58 | 59 |
| 59 void ValidateOrigin( | 60 void ValidateOrigin( |
| 60 const std::string& expected_origin, | 61 const std::string& expected_origin, |
| 61 const std::string& expected_embedding, | 62 const std::string& expected_embedding, |
| 62 const std::string& expected_setting, | 63 const std::string& expected_setting, |
| 63 const std::string& expected_source, | 64 const std::string& expected_source, |
| 64 size_t expected_total_calls) { | 65 size_t expected_total_calls) { |
| 65 EXPECT_EQ(expected_total_calls, web_ui()->call_data().size()); | 66 EXPECT_EQ(expected_total_calls, web_ui()->call_data().size()); |
| 66 | 67 |
| (...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 135 content::TestWebUI web_ui_; | 136 content::TestWebUI web_ui_; |
| 136 SiteSettingsHandler handler_; | 137 SiteSettingsHandler handler_; |
| 137 }; | 138 }; |
| 138 | 139 |
| 139 TEST_F(SiteSettingsHandlerTest, GetAndSetDefault) { | 140 TEST_F(SiteSettingsHandlerTest, GetAndSetDefault) { |
| 140 // Test the JS -> C++ -> JS callback path for getting and setting defaults. | 141 // Test the JS -> C++ -> JS callback path for getting and setting defaults. |
| 141 base::ListValue getArgs; | 142 base::ListValue getArgs; |
| 142 getArgs.AppendString(kCallbackId); | 143 getArgs.AppendString(kCallbackId); |
| 143 getArgs.AppendString("notifications"); | 144 getArgs.AppendString("notifications"); |
| 144 handler()->HandleGetDefaultValueForContentType(&getArgs); | 145 handler()->HandleGetDefaultValueForContentType(&getArgs); |
| 145 ValidateDefault(true, 1U); | 146 ValidateDefault("ask", 1U); |
| 146 | 147 |
| 147 // Set the default to 'Blocked'. | 148 // Set the default to 'Blocked'. |
| 148 base::ListValue setArgs; | 149 base::ListValue setArgs; |
| 149 setArgs.AppendString("notifications"); | 150 setArgs.AppendString("notifications"); |
| 150 setArgs.AppendString("block"); | 151 setArgs.AppendString("block"); |
| 151 handler()->HandleSetDefaultValueForContentType(&setArgs); | 152 handler()->HandleSetDefaultValueForContentType(&setArgs); |
| 152 | 153 |
| 153 EXPECT_EQ(2U, web_ui()->call_data().size()); | 154 EXPECT_EQ(2U, web_ui()->call_data().size()); |
| 154 | 155 |
| 155 // Verify that the default has been set to 'Blocked'. | 156 // Verify that the default has been set to 'Blocked'. |
| 156 handler()->HandleGetDefaultValueForContentType(&getArgs); | 157 handler()->HandleGetDefaultValueForContentType(&getArgs); |
| 157 ValidateDefault(false, 3U); | 158 ValidateDefault("block", 3U); |
| 158 } | 159 } |
| 159 | 160 |
| 160 TEST_F(SiteSettingsHandlerTest, Origins) { | 161 TEST_F(SiteSettingsHandlerTest, Origins) { |
| 161 // Test the JS -> C++ -> JS callback path for configuring origins, by setting | 162 // Test the JS -> C++ -> JS callback path for configuring origins, by setting |
| 162 // Google.com to blocked. | 163 // Google.com to blocked. |
| 163 base::ListValue setArgs; | 164 base::ListValue setArgs; |
| 164 std::string google("http://www.google.com"); | 165 std::string google("http://www.google.com"); |
| 165 setArgs.AppendString(google); // Primary pattern. | 166 setArgs.AppendString(google); // Primary pattern. |
| 166 setArgs.AppendString(google); // Secondary pattern. | 167 setArgs.AppendString(google); // Secondary pattern. |
| 167 setArgs.AppendString("notifications"); | 168 setArgs.AppendString("notifications"); |
| (...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 199 | 200 |
| 200 base::ListValue invalid; | 201 base::ListValue invalid; |
| 201 std::string bad_pattern(";"); | 202 std::string bad_pattern(";"); |
| 202 invalid.AppendString(kCallbackId); | 203 invalid.AppendString(kCallbackId); |
| 203 invalid.AppendString(bad_pattern); | 204 invalid.AppendString(bad_pattern); |
| 204 handler()->HandleIsPatternValid(&invalid); | 205 handler()->HandleIsPatternValid(&invalid); |
| 205 ValidatePattern(false, 2U); | 206 ValidatePattern(false, 2U); |
| 206 } | 207 } |
| 207 | 208 |
| 208 } // namespace settings | 209 } // namespace settings |
| OLD | NEW |