Index: chrome/browser/ui/cocoa/page_info/page_info_bubble_controller_unittest.mm |
diff --git a/chrome/browser/ui/cocoa/page_info/page_info_bubble_controller_unittest.mm b/chrome/browser/ui/cocoa/page_info/page_info_bubble_controller_unittest.mm |
index d3d804d31aed715dbdb9401ff8e678d7c42a99f0..4c545aac72d0d3560793742af4fc1429de015b6a 100644 |
--- a/chrome/browser/ui/cocoa/page_info/page_info_bubble_controller_unittest.mm |
+++ b/chrome/browser/ui/cocoa/page_info/page_info_bubble_controller_unittest.mm |
@@ -60,24 +60,29 @@ enum PermissionMenuIndices { |
}; |
const ContentSettingsType kTestPermissionTypes[] = { |
- CONTENT_SETTINGS_TYPE_IMAGES, CONTENT_SETTINGS_TYPE_JAVASCRIPT, |
- CONTENT_SETTINGS_TYPE_PLUGINS, CONTENT_SETTINGS_TYPE_POPUPS, |
- CONTENT_SETTINGS_TYPE_GEOLOCATION, CONTENT_SETTINGS_TYPE_NOTIFICATIONS, |
+ CONTENT_SETTINGS_TYPE_IMAGES, |
+ CONTENT_SETTINGS_TYPE_MEDIASTREAM_CAMERA, |
+ CONTENT_SETTINGS_TYPE_JAVASCRIPT, |
+ CONTENT_SETTINGS_TYPE_PLUGINS, |
+ CONTENT_SETTINGS_TYPE_POPUPS, |
+ CONTENT_SETTINGS_TYPE_GEOLOCATION, |
+ CONTENT_SETTINGS_TYPE_NOTIFICATIONS, |
CONTENT_SETTINGS_TYPE_MEDIASTREAM_MIC}; |
const ContentSetting kTestSettings[] = { |
- CONTENT_SETTING_DEFAULT, CONTENT_SETTING_DEFAULT, CONTENT_SETTING_ALLOW, |
- CONTENT_SETTING_BLOCK, CONTENT_SETTING_ALLOW, CONTENT_SETTING_BLOCK, |
- CONTENT_SETTING_BLOCK}; |
+ CONTENT_SETTING_DEFAULT, CONTENT_SETTING_DEFAULT, CONTENT_SETTING_DEFAULT, |
+ CONTENT_SETTING_ALLOW, CONTENT_SETTING_BLOCK, CONTENT_SETTING_ALLOW, |
+ CONTENT_SETTING_BLOCK, CONTENT_SETTING_BLOCK}; |
-const ContentSetting kTestDefaultSettings[] = {CONTENT_SETTING_BLOCK, |
- CONTENT_SETTING_ASK}; |
+const ContentSetting kTestDefaultSettings[] = { |
+ CONTENT_SETTING_ALLOW, CONTENT_SETTING_BLOCK, CONTENT_SETTING_ASK}; |
const content_settings::SettingSource kTestSettingSources[] = { |
content_settings::SETTING_SOURCE_USER, |
content_settings::SETTING_SOURCE_USER, |
content_settings::SETTING_SOURCE_USER, |
content_settings::SETTING_SOURCE_USER, |
+ content_settings::SETTING_SOURCE_USER, |
content_settings::SETTING_SOURCE_POLICY, |
content_settings::SETTING_SOURCE_POLICY, |
content_settings::SETTING_SOURCE_EXTENSION}; |
@@ -159,7 +164,7 @@ class PageInfoBubbleControllerTest : public CocoaTest { |
// Create a list of 5 different permissions, corresponding to all the |
// possible settings: |
// - [allow, block, ask] by default |
- // - [block, allow] * [by user, by policy, by extension] |
+ // - [block, allow] * by user |
PermissionInfoList permission_info_list; |
PageInfoUI::PermissionInfo info; |
for (size_t i = 0; i < arraysize(kTestPermissionTypes); ++i) { |
@@ -176,6 +181,16 @@ class PageInfoBubbleControllerTest : public CocoaTest { |
std::move(chosen_object_info_list)); |
} |
+ int NumSettingsNotSetByUser() const { |
+ int num_non_user_settings = 0; |
+ for (size_t i = 0; i < arraysize(kTestSettingSources); ++i) { |
+ num_non_user_settings += |
+ (kTestSettingSources[i] != content_settings::SETTING_SOURCE_USER) ? 1 |
+ : 0; |
+ } |
+ return num_non_user_settings; |
+ } |
+ |
content::TestBrowserThreadBundle thread_bundle_; |
TestingProfile profile_; |
content::TestWebContentsFactory web_contents_factory_; |
@@ -233,34 +248,37 @@ TEST_F(PageInfoBubbleControllerTest, SetPermissionInfo) { |
// There should be three subviews per permission. |
NSArray* subviews = [[controller_ permissionsView] subviews]; |
- EXPECT_EQ(arraysize(kTestPermissionTypes) * 3, [subviews count]); |
+ EXPECT_EQ(arraysize(kTestPermissionTypes) * 3, |
+ [subviews count] - NumSettingsNotSetByUser()); |
- // Ensure that there is a distinct label for each permission. |
- NSMutableSet* labels = [NSMutableSet set]; |
+ // Ensure that there is a label for each permission. |
+ NSMutableArray* permission_labels = [NSMutableArray array]; |
for (NSView* view in subviews) { |
if ([view isKindOfClass:[NSTextField class]]) |
- [labels addObject:[static_cast<NSTextField*>(view) stringValue]]; |
+ [permission_labels |
+ addObject:[static_cast<NSTextField*>(view) stringValue]]; |
} |
- EXPECT_EQ(arraysize(kTestPermissionTypes), [labels count]); |
+ EXPECT_EQ(arraysize(kTestPermissionTypes), |
+ [permission_labels count] - NumSettingsNotSetByUser()); |
// Ensure that the button labels are distinct, and look for the correct |
// number of disabled buttons. |
int disabled_count = 0; |
- [labels removeAllObjects]; |
+ NSMutableSet* button_labels = [NSMutableSet set]; |
for (NSView* view in subviews) { |
if ([view isKindOfClass:[NSPopUpButton class]]) { |
NSPopUpButton* button = static_cast<NSPopUpButton*>(view); |
- [labels addObject:[[button selectedCell] title]]; |
+ [button_labels addObject:[[button selectedCell] title]]; |
if (![button isEnabled]) |
++disabled_count; |
} |
} |
- EXPECT_EQ(arraysize(kTestPermissionTypes), [labels count]); |
+ EXPECT_EQ(5UL, [button_labels count]); |
- // 3 of the buttons should be disabled -- the ones that have a setting source |
- // of SETTING_SOURCE_POLICY or SETTING_SOURCE_EXTENSION. |
- EXPECT_EQ(3, disabled_count); |
+ // Permissions with a setting source of SETTING_SOURCE_POLICY or |
+ // SETTING_SOURCE_EXTENSION should have their buttons disabled. |
+ EXPECT_EQ(NumSettingsNotSetByUser(), disabled_count); |
} |
TEST_F(PageInfoBubbleControllerTest, WindowWidth) { |