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 |