Index: chrome/browser/ui/cocoa/page_info/website_settings_bubble_controller_unittest.mm |
diff --git a/chrome/browser/ui/cocoa/page_info/website_settings_bubble_controller_unittest.mm b/chrome/browser/ui/cocoa/page_info/website_settings_bubble_controller_unittest.mm |
index 45dbb1dffa3bb3ec89abbcb248cad31745e943b1..fc511fb559fd705254b6a658af8a89498ad044f2 100644 |
--- a/chrome/browser/ui/cocoa/page_info/website_settings_bubble_controller_unittest.mm |
+++ b/chrome/browser/ui/cocoa/page_info/website_settings_bubble_controller_unittest.mm |
@@ -63,39 +63,32 @@ 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_MEDIASTREAM_MIC |
-}; |
+ 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 |
-}; |
+ 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_POLICY, |
- content_settings::SETTING_SOURCE_POLICY, |
- content_settings::SETTING_SOURCE_EXTENSION |
-}; |
+ 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}; |
class WebsiteSettingsBubbleControllerTest : public CocoaTest { |
public: |
@@ -181,7 +174,7 @@ class WebsiteSettingsBubbleControllerTest : 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; |
WebsiteSettingsUI::PermissionInfo info; |
for (size_t i = 0; i < arraysize(kTestPermissionTypes); ++i) { |
@@ -198,6 +191,16 @@ class WebsiteSettingsBubbleControllerTest : 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_; |
@@ -254,34 +257,37 @@ TEST_F(WebsiteSettingsBubbleControllerTest, 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); |
+ // All non-user set settings should have disabled buttons (i.e., the ones with |
+ // a setting source of SETTING_SOURCE_POLICY or SETTING_SOURCE_EXTENSION). |
+ EXPECT_EQ(NumSettingsNotSetByUser(), disabled_count); |
} |
dominickn
2017/03/26 23:46:24
Should you add a test for the embargoed permission
Patti Lor
2017/03/27 05:52:40
I think it's possible, but since we can't tell if
|
TEST_F(WebsiteSettingsBubbleControllerTest, WindowWidth) { |