diff options
Diffstat (limited to 'chrome/browser/cocoa/toolbar_controller_unittest.mm')
-rw-r--r-- | chrome/browser/cocoa/toolbar_controller_unittest.mm | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/chrome/browser/cocoa/toolbar_controller_unittest.mm b/chrome/browser/cocoa/toolbar_controller_unittest.mm index 4bc085c..21f9e61 100644 --- a/chrome/browser/cocoa/toolbar_controller_unittest.mm +++ b/chrome/browser/cocoa/toolbar_controller_unittest.mm @@ -8,6 +8,7 @@ #include "chrome/app/chrome_dll_resource.h" #include "chrome/browser/cocoa/browser_test_helper.h" #import "chrome/browser/cocoa/cocoa_test_helper.h" +#import "chrome/browser/cocoa/gradient_button_cell.h" #import "chrome/browser/cocoa/toolbar_controller.h" #import "chrome/browser/cocoa/view_resizer_pong.h" #include "chrome/common/pref_names.h" @@ -15,6 +16,25 @@ #include "testing/gtest/include/gtest/gtest.h" #include "testing/platform_test.h" +// An NSView that fakes out hitTest:. +@interface HitView : NSView { + id hitTestReturn_; +} +@end + +@implementation HitView + +- (void)setHitTestReturn:(id)rtn { + hitTestReturn_ = rtn; +} + +- (NSView *)hitTest:(NSPoint)aPoint { + return hitTestReturn_; +} + +@end + + namespace { class ToolbarControllerTest : public PlatformTest { @@ -274,6 +294,34 @@ TEST_F(ToolbarControllerTest, AutocompletePopupPosition) { EXPECT_GE(popupFrame.bottom(), NSMinY(locationFrame)); } +TEST_F(ToolbarControllerTest, HoverButtonForEvent) { + scoped_nsobject<HitView> view([[HitView alloc] + initWithFrame:NSMakeRect(0,0,100,100)]); + [bar_ setView:view]; + NSEvent* event = [NSEvent mouseEventWithType:NSMouseMoved + location:NSMakePoint(10,10) + modifierFlags:0 + timestamp:0 + windowNumber:0 + context:nil + eventNumber:0 + clickCount:0 + pressure:0.0]; + + // NOT a match. + [view setHitTestReturn:bar_.get()]; + EXPECT_FALSE([bar_ hoverButtonForEvent:event]); + + // Not yet... + scoped_nsobject<NSButton> button([[NSButton alloc] init]); + [view setHitTestReturn:button]; + EXPECT_FALSE([bar_ hoverButtonForEvent:event]); + + // Now! + scoped_nsobject<GradientButtonCell> cell([[GradientButtonCell alloc] init]); + [button setCell:cell.get()]; + EXPECT_TRUE([bar_ hoverButtonForEvent:nil]); +} } // namespace |