Index: chrome/browser/ui/webui/settings/site_settings_handler_unittest.cc |
diff --git a/chrome/browser/ui/webui/settings/site_settings_handler_unittest.cc b/chrome/browser/ui/webui/settings/site_settings_handler_unittest.cc |
index 53be2fd2283a1fc2f71d51d8d4a308f371392e3d..8613ecc6579e774536cd7a5675d56ee04ecb5ef0 100644 |
--- a/chrome/browser/ui/webui/settings/site_settings_handler_unittest.cc |
+++ b/chrome/browser/ui/webui/settings/site_settings_handler_unittest.cc |
@@ -99,11 +99,15 @@ class SiteSettingsHandlerTest : public testing::Test { |
ASSERT_TRUE(data.arg2()->GetAsBoolean(&success)); |
ASSERT_TRUE(success); |
- const base::ListValue* exceptions; |
- ASSERT_TRUE(data.arg3()->GetAsList(&exceptions)); |
- EXPECT_EQ(1U, exceptions->GetSize()); |
const base::DictionaryValue* exception; |
- ASSERT_TRUE(exceptions->GetDictionary(0, &exception)); |
+ if (data.arg3()->is_list()) { |
+ const base::ListValue* exceptions; |
+ ASSERT_TRUE(data.arg3()->GetAsList(&exceptions)); |
+ EXPECT_EQ(1U, exceptions->GetSize()); |
+ ASSERT_TRUE(exceptions->GetDictionary(0, &exception)); |
+ } else { |
+ 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.
|
+ } |
std::string origin, embedding_origin, display_name, setting, source; |
ASSERT_TRUE(exception->GetString(site_settings::kOrigin, &origin)); |
ASSERT_EQ(expected_origin, origin); |
@@ -272,13 +276,23 @@ TEST_F(SiteSettingsHandlerTest, Origins) { |
histograms.ExpectTotalCount(kUmaBase + ".Reset", 0); |
} |
- // Verify the change was successful. |
- base::ListValue listArgs; |
- listArgs.AppendString(kCallbackId); |
- listArgs.AppendString("notifications"); |
- handler()->HandleGetExceptionList(&listArgs); |
+ // If the change was successful, it should show up as an exception as well as |
+ // in the response for a specific request to getCategoryPermissionForOrigin. |
+ // Check getCategoryPermissionForOrigin. |
+ base::ListValue getCategoryPermissionArgs; |
+ getCategoryPermissionArgs.AppendString(kCallbackId); |
+ getCategoryPermissionArgs.AppendString("notifications"); |
+ getCategoryPermissionArgs.AppendString(google); |
+ handler()->HandleGetCategoryPermissionForOrigin(&getCategoryPermissionArgs); |
ValidateOrigin(google, google, google, "block", "preference", 2U); |
+ // Check getExceptionList. |
+ base::ListValue getExceptionListArgs; |
+ getExceptionListArgs.AppendString(kCallbackId); |
+ getExceptionListArgs.AppendString("notifications"); |
+ handler()->HandleGetExceptionList(&getExceptionListArgs); |
+ ValidateOrigin(google, google, google, "block", "preference", 3U); |
+ |
{ |
// Reset things back to how they were. |
base::ListValue reset_args; |
@@ -288,7 +302,7 @@ TEST_F(SiteSettingsHandlerTest, Origins) { |
reset_args.AppendBoolean(false); // Incognito. |
base::HistogramTester histograms; |
handler()->HandleResetCategoryPermissionForOrigin(&reset_args); |
- EXPECT_EQ(3U, web_ui()->call_data().size()); |
+ EXPECT_EQ(4U, web_ui()->call_data().size()); |
histograms.ExpectTotalCount(kUmaBase, 1); |
histograms.ExpectTotalCount(kUmaBase + ".Allowed", 0); |
histograms.ExpectTotalCount(kUmaBase + ".Blocked", 0); |
@@ -296,8 +310,12 @@ TEST_F(SiteSettingsHandlerTest, Origins) { |
} |
// Verify the reset was successful. |
- handler()->HandleGetExceptionList(&listArgs); |
- ValidateNoOrigin(4U); |
+ handler()->HandleGetExceptionList(&getExceptionListArgs); |
+ ValidateNoOrigin(5U); |
+ |
+ handler()->HandleGetCategoryPermissionForOrigin(&getCategoryPermissionArgs); |
+ // Ask is the currently the built-in Chrome default for notifications. |
+ ValidateOrigin(google, google, google, "ask", "preference", 6U); |
} |
TEST_F(SiteSettingsHandlerTest, ExceptionHelpers) { |