Index: chrome/browser/ui/cocoa/website_settings_bubble_controller_unittest.mm |
=================================================================== |
--- chrome/browser/ui/cocoa/website_settings_bubble_controller_unittest.mm (revision 171274) |
+++ chrome/browser/ui/cocoa/website_settings_bubble_controller_unittest.mm (working copy) |
@@ -61,24 +61,6 @@ |
} |
@end |
-@interface WebsiteSettingsBubbleControllerForTesting |
- : WebsiteSettingsBubbleController { |
- @private |
- CGFloat defaultWindowWidth_; |
-} |
-@end |
- |
-@implementation WebsiteSettingsBubbleControllerForTesting |
-- (void)setDefaultWindowWidth:(CGFloat)width { |
- defaultWindowWidth_ = width; |
-} |
-- (CGFloat)defaultWindowWidth { |
- // If |defaultWindowWidth_| is 0, use the superclass implementation. |
- return defaultWindowWidth_ ? |
- defaultWindowWidth_ : [super defaultWindowWidth]; |
-} |
-@end |
- |
namespace { |
// Indices of the menu items in the permission menu. |
@@ -88,50 +70,6 @@ |
kMenuIndexContentSettingDefault |
}; |
-const ContentSettingsType kTestPermissionTypes[] = { |
- // NOTE: FULLSCREEN does not support "Always block", so it must appear as |
- // one of the first three permissions. |
- CONTENT_SETTINGS_TYPE_FULLSCREEN, |
- 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_MOUSELOCK, |
- CONTENT_SETTINGS_TYPE_MEDIASTREAM, |
-}; |
- |
-const ContentSetting kTestSettings[] = { |
- CONTENT_SETTING_DEFAULT, |
- CONTENT_SETTING_DEFAULT, |
- CONTENT_SETTING_DEFAULT, |
- CONTENT_SETTING_ALLOW, |
- CONTENT_SETTING_BLOCK, |
- CONTENT_SETTING_ALLOW, |
- CONTENT_SETTING_BLOCK, |
- CONTENT_SETTING_ALLOW, |
- CONTENT_SETTING_BLOCK, |
-}; |
- |
-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, |
- content_settings::SETTING_SOURCE_EXTENSION, |
-}; |
- |
class WebsiteSettingsBubbleControllerTest : public CocoaTest { |
public: |
WebsiteSettingsBubbleControllerTest() { |
@@ -151,26 +89,20 @@ |
TEXT_NOT_EQUAL |
}; |
- // Creates a new website settings bubble, with the given default width. |
- // If |default_width| is 0, the *default* default width will be used. |
- void CreateBubbleWithWidth(CGFloat default_width) { |
+ void CreateBubble() { |
bridge_ = new WebsiteSettingsUIBridge(); |
// The controller cleans up after itself when the window closes. |
- controller_ = [WebsiteSettingsBubbleControllerForTesting alloc]; |
- [controller_ setDefaultWindowWidth:default_width]; |
- [controller_ initWithParentWindow:test_window() |
- websiteSettingsUIBridge:bridge_ |
- tabContents:nil |
- isInternalPage:NO]; |
+ controller_ = |
+ [[WebsiteSettingsBubbleController alloc] |
+ initWithParentWindow:test_window() |
+ websiteSettingsUIBridge:bridge_ |
+ tabContents:nil |
+ isInternalPage:NO]; |
window_ = [controller_ window]; |
[controller_ showWindow:nil]; |
} |
- void CreateBubble() { |
- CreateBubbleWithWidth(0.0); |
- } |
- |
// Return a pointer to the first NSTextField found that either matches, or |
// doesn't match, the given text. |
NSTextField* FindTextField(MatchType match_type, NSString* text) { |
@@ -205,26 +137,7 @@ |
return views; |
} |
- // Sets up the dialog with some test permission settings. |
- void SetTestPermissions() { |
- // 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] |
- PermissionInfoList list; |
- WebsiteSettingsUI::PermissionInfo info; |
- for (size_t i = 0; i < arraysize(kTestPermissionTypes); ++i) { |
- info.type = kTestPermissionTypes[i]; |
- info.setting = kTestSettings[i]; |
- if (info.setting == CONTENT_SETTING_DEFAULT) |
- info.default_setting = kTestDefaultSettings[i]; |
- info.source = kTestSettingSources[i]; |
- list.push_back(info); |
- } |
- bridge_->SetPermissionInfo(list); |
- } |
- |
- WebsiteSettingsBubbleControllerForTesting* controller_; // Weak, owns self. |
+ WebsiteSettingsBubbleController* controller_; // Weak, owns self. |
NSWindow* window_; // Weak, owned by controller. |
}; |
@@ -325,8 +238,67 @@ |
TEST_F(WebsiteSettingsBubbleControllerTest, SetPermissionInfo) { |
CreateBubble(); |
- SetTestPermissions(); |
+ const ContentSettingsType kTestPermissionTypes[] = { |
+ // NOTE: FULLSCREEN does not support "Always block", so it must appear as |
+ // one of the first three permissions. |
+ CONTENT_SETTINGS_TYPE_FULLSCREEN, |
+ 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_MOUSELOCK, |
+ CONTENT_SETTINGS_TYPE_MEDIASTREAM, |
+ }; |
+ |
+ const ContentSetting kTestSettings[] = { |
+ CONTENT_SETTING_DEFAULT, |
+ CONTENT_SETTING_DEFAULT, |
+ CONTENT_SETTING_DEFAULT, |
+ CONTENT_SETTING_ALLOW, |
+ CONTENT_SETTING_BLOCK, |
+ CONTENT_SETTING_ALLOW, |
+ CONTENT_SETTING_BLOCK, |
+ CONTENT_SETTING_ALLOW, |
+ CONTENT_SETTING_BLOCK, |
+ }; |
+ |
+ 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, |
+ content_settings::SETTING_SOURCE_EXTENSION, |
+ }; |
+ |
+ // 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] |
+ PermissionInfoList list; |
+ WebsiteSettingsUI::PermissionInfo info; |
+ for (size_t i = 0; i < arraysize(kTestPermissionTypes); ++i) { |
+ info.type = kTestPermissionTypes[i]; |
+ info.setting = kTestSettings[i]; |
+ if (info.setting == CONTENT_SETTING_DEFAULT) |
+ info.default_setting = kTestDefaultSettings[i]; |
+ info.source = kTestSettingSources[i]; |
+ list.push_back(info); |
+ } |
+ bridge_->SetPermissionInfo(list); |
+ |
// There should be three subviews per permission (an icon, a label and a |
// select box), plus a text label for the Permission section. |
NSArray* subviews = [[controller_ permissionsView] subviews]; |
@@ -377,24 +349,4 @@ |
EXPECT_EQ(1, [tabView indexOfTabViewItem:[tabView selectedTabViewItem]]); |
} |
-TEST_F(WebsiteSettingsBubbleControllerTest, WindowWidth) { |
- // Try creating a window that is obviously too small. |
- CreateBubbleWithWidth(30.0); |
- SetTestPermissions(); |
- |
- CGFloat window_width = NSWidth([[controller_ window] frame]); |
- |
- // Check the window was made bigger to fit the content. |
- EXPECT_LT(30.0, window_width); |
- |
- // Check that the window is wider than the right edge of all the permission |
- // popup buttons. |
- for (NSView* view in [[controller_ permissionsView] subviews]) { |
- if ([view isKindOfClass:[NSPopUpButton class]]) { |
- NSPopUpButton* button = static_cast<NSPopUpButton*>(view); |
- EXPECT_LT(NSMaxX([button frame]), window_width); |
- } |
- } |
-} |
- |
} // namespace |