diff options
Diffstat (limited to 'chrome/browser/cocoa/autocomplete_text_field_unittest.mm')
-rw-r--r-- | chrome/browser/cocoa/autocomplete_text_field_unittest.mm | 96 |
1 files changed, 33 insertions, 63 deletions
diff --git a/chrome/browser/cocoa/autocomplete_text_field_unittest.mm b/chrome/browser/cocoa/autocomplete_text_field_unittest.mm index 1d0ae49..d695f86 100644 --- a/chrome/browser/cocoa/autocomplete_text_field_unittest.mm +++ b/chrome/browser/cocoa/autocomplete_text_field_unittest.mm @@ -4,7 +4,6 @@ #import <Cocoa/Cocoa.h> -#include "app/resource_bundle.h" #import "base/cocoa_protocols_mac.h" #include "base/scoped_nsobject.h" #import "chrome/browser/cocoa/autocomplete_text_field.h" @@ -12,7 +11,6 @@ #import "chrome/browser/cocoa/autocomplete_text_field_editor.h" #import "chrome/browser/cocoa/autocomplete_text_field_unittest_helper.h" #import "chrome/browser/cocoa/cocoa_test_helper.h" -#include "grit/theme_resources.h" #include "testing/gmock/include/gmock/gmock.h" #include "testing/gtest/include/gtest/gtest.h" #include "testing/platform_test.h" @@ -22,34 +20,18 @@ using ::testing::Return; using ::testing::StrictMock; namespace { -class MockLocationIconView : public LocationBarViewMac::LocationIconView { +class MockSecurityImageView : public LocationBarViewMac::SecurityImageView { public: - MockLocationIconView() - : LocationBarViewMac::LocationIconView(NULL), - is_draggable_(false), - mouse_was_pressed_(false) {} - - // |LocationBarViewMac::LocationIconView| dragging support needs - // more setup than this test provides. - bool IsDraggable() { - return is_draggable_; - } - virtual NSPasteboard* GetDragPasteboard() { - return [NSPasteboard pasteboardWithUniqueName]; - } - void SetDraggable(bool is_draggable) { - is_draggable_ = is_draggable; - } + MockSecurityImageView(LocationBarViewMac* owner, + Profile* profile, + ToolbarModel* model) + : LocationBarViewMac::SecurityImageView(owner, profile, model) {} // We can't use gmock's MOCK_METHOD macro, because it doesn't like the // NSRect argument to OnMousePressed. virtual void OnMousePressed(NSRect bounds) { mouse_was_pressed_ = true; } - bool MouseWasPressed() { return mouse_was_pressed_; } - - private: - bool is_draggable_; bool mouse_was_pressed_; }; @@ -600,35 +582,32 @@ TEST_F(AutocompleteTextFieldTest, TripleClickSelectsAll) { } // Clicking the security icon should call its OnMousePressed. -TEST_F(AutocompleteTextFieldTest, LocationIconMouseDown) { +TEST_F(AutocompleteTextFieldObserverTest, SecurityIconMouseDown) { AutocompleteTextFieldCell* cell = [field_ autocompleteTextFieldCell]; - MockLocationIconView location_icon_view; - [cell setLocationIconView:&location_icon_view]; - location_icon_view.SetImage( - ResourceBundle::GetSharedInstance().GetNSImageNamed( - IDR_OMNIBOX_HTTPS_VALID)); - location_icon_view.SetVisible(true); + MockSecurityImageView security_image_view(NULL, NULL, NULL); + [cell setSecurityImageView:&security_image_view]; + security_image_view.SetImageShown( + LocationBarViewMac::SecurityImageView::LOCK); + security_image_view.SetVisible(true); - NSRect iconFrame([cell locationIconFrameForFrame:[field_ bounds]]); + NSRect iconFrame([cell securityImageFrameForFrame:[field_ bounds]]); NSPoint location(NSMakePoint(NSMidX(iconFrame), NSMidY(iconFrame))); - NSEvent* downEvent(Event(field_, location, NSLeftMouseDown, 1)); - NSEvent* upEvent(Event(field_, location, NSLeftMouseUp, 1)); - - // Since location icon can be dragged, the mouse-press is sent on - // mouse-up. - [NSApp postEvent:upEvent atStart:YES]; - [field_ mouseDown:downEvent]; - EXPECT_TRUE(location_icon_view.MouseWasPressed()); + NSEvent* event(Event(field_, location, NSLeftMouseDown, 1)); - // TODO(shess): Test that mouse drags are initiated if the next - // event is a drag, or if the mouse-up takes too long to arrive. + [field_ mouseDown:event]; + EXPECT_TRUE(security_image_view.mouse_was_pressed_); } // Clicking a Page Action icon should call its OnMousePressed. -TEST_F(AutocompleteTextFieldTest, PageActionMouseDown) { +TEST_F(AutocompleteTextFieldObserverTest, PageActionMouseDown) { AutocompleteTextFieldCell* cell = [field_ autocompleteTextFieldCell]; + MockSecurityImageView security_image_view(NULL, NULL, NULL); + security_image_view.SetImageShown( + LocationBarViewMac::SecurityImageView::LOCK); + [cell setSecurityImageView:&security_image_view]; + MockPageActionImageView page_action_view; NSImage* image = [NSImage imageNamed:@"NSApplicationIcon"]; page_action_view.SetImage(image); @@ -641,7 +620,8 @@ TEST_F(AutocompleteTextFieldTest, PageActionMouseDown) { list.Add(&page_action_view2); [cell setPageActionViewList:&list]; - // One page action. + // One page action, no security lock. + security_image_view.SetVisible(false); page_action_view.SetVisible(true); page_action_view2.SetVisible(false); NSRect iconFrame([cell pageActionFrameForIndex:0 inFrame:[field_ bounds]]); @@ -651,7 +631,7 @@ TEST_F(AutocompleteTextFieldTest, PageActionMouseDown) { [field_ mouseDown:event]; EXPECT_TRUE(page_action_view.MouseWasPressed()); - // Two page actions, no lock. + // Two page actions, no security lock. page_action_view2.SetVisible(true); iconFrame = [cell pageActionFrameForIndex:0 inFrame:[field_ bounds]]; location = NSMakePoint(NSMidX(iconFrame), NSMidY(iconFrame)); @@ -667,7 +647,8 @@ TEST_F(AutocompleteTextFieldTest, PageActionMouseDown) { [field_ mouseDown:event]; EXPECT_TRUE(page_action_view.MouseWasPressed()); - // Two page actions. + // Two page actions plus security lock. + security_image_view.SetVisible(true); iconFrame = [cell pageActionFrameForIndex:0 inFrame:[field_ bounds]]; location = NSMakePoint(NSMidX(iconFrame), NSMidY(iconFrame)); event = Event(field_, location, NSLeftMouseDown, 1); @@ -681,6 +662,13 @@ TEST_F(AutocompleteTextFieldTest, PageActionMouseDown) { [field_ mouseDown:event]; EXPECT_TRUE(page_action_view.MouseWasPressed()); + + iconFrame = [cell securityImageFrameForFrame:[field_ bounds]]; + location = NSMakePoint(NSMidX(iconFrame), NSMidY(iconFrame)); + event = Event(field_, location, NSLeftMouseDown, 1); + + [field_ mouseDown:event]; + EXPECT_TRUE(security_image_view.mouse_was_pressed_); } // Test that page action menus are properly returned. @@ -872,22 +860,4 @@ TEST_F(AutocompleteTextFieldObserverTest, SendsOnResignKey) { [test_window() resignKeyWindow]; } -TEST_F(AutocompleteTextFieldTest, LocationDragPasteboard) { - AutocompleteTextFieldCell* cell = [field_ autocompleteTextFieldCell]; - - MockLocationIconView location_icon_view; - location_icon_view.SetImage( - ResourceBundle::GetSharedInstance().GetNSImageNamed( - IDR_OMNIBOX_HTTPS_VALID)); - location_icon_view.SetVisible(true); - [cell setLocationIconView:&location_icon_view]; - - // Not draggable, so no pasteboard. - EXPECT_FALSE([field_ locationDragPasteboard]); - - // Gets a pasteboard when draggable. - location_icon_view.SetDraggable(true); - EXPECT_TRUE([field_ locationDragPasteboard]); -} - } // namespace |