Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(7567)

Unified Diff: chrome/browser/ui/cocoa/tabs/tab_controller_unittest.mm

Issue 7565007: Clicking tab close with option key close the other tabs. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Addressed rsesek's comments. Created 9 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/browser/ui/cocoa/tabs/tab_controller_unittest.mm
diff --git a/chrome/browser/ui/cocoa/tabs/tab_controller_unittest.mm b/chrome/browser/ui/cocoa/tabs/tab_controller_unittest.mm
index 62781982cad529404cf5f45d3a3c79122e059c9c..2f095011298c21520edcdf68b38d6112824eca42 100644
--- a/chrome/browser/ui/cocoa/tabs/tab_controller_unittest.mm
+++ b/chrome/browser/ui/cocoa/tabs/tab_controller_unittest.mm
@@ -20,10 +20,12 @@
@private
bool selected_;
bool closed_;
+ bool closedOtherTabs_;
scoped_nsobject<TabStripDragController> dragController_;
}
- (bool)selected;
- (bool)closed;
+- (bool)closedOtherTabs;
@end
@implementation TabControllerTestTarget
@@ -40,12 +42,18 @@
- (bool)closed {
return closed_;
}
+- (bool)closedOtherTabs {
+ return closedOtherTabs_;
+}
- (void)selectTab:(id)sender {
selected_ = true;
}
- (void)closeTab:(id)sender {
closed_ = true;
}
+- (void)closeOtherTabs:(id)sender {
+ closedOtherTabs_ = true;
+}
- (void)mouseTimer:(NSTimer*)timer {
// Fire the mouseUp to break the TabView drag loop.
NSEvent* current = [NSApp currentEvent];
@@ -128,6 +136,49 @@ TEST_F(TabControllerTest, Close) {
[[controller view] removeFromSuperview];
}
+// Tests sending it a closeOtherTabs message and ensuring that the
+// target/action get called.
+TEST_F(TabControllerTest, CloseOtherTabs) {
+ NSWindow* window = test_window();
+ scoped_nsobject<TabController> controller([[TabController alloc] init]);
+ [[window contentView] addSubview:[controller view]];
+ NSRect frame = [[controller view] frame];
+ frame.size.width = [TabController minTabWidth];
+ frame.origin = NSMakePoint(0, 0);
+ [[controller view] setFrame:frame];
+
+ scoped_nsobject<TabControllerTestTarget> target(
+ [[TabControllerTestTarget alloc] init]);
+ EXPECT_FALSE([target closedOtherTabs]);
+ [controller setTarget:target];
+ [controller setAction:@selector(closeOtherTabs:)];
Robert Sesek 2011/08/10 16:00:34 I think this should really be testing that the Tab
+ EXPECT_EQ(target.get(), [controller target]);
+ EXPECT_EQ(@selector(closeOtherTabs:), [controller action]);
+
+ // In order to track a click, we have to fake a mouse down and a mouse up.
+ [NSTimer scheduledTimerWithTimeInterval:0.1
+ target:target.get()
+ selector:@selector(mouseTimer:)
+ userInfo:window
+ repeats:NO];
+ NSEvent* current = [NSApp currentEvent];
+ NSPoint click_point = NSMakePoint(frame.size.width / 2,
+ frame.size.height / 2);
+ NSEvent* down = [NSEvent mouseEventWithType:NSLeftMouseDown
+ location:[current locationInWindow]
+ modifierFlags:0
+ timestamp:[current timestamp]
+ windowNumber:[window windowNumber]
+ context:nil
+ eventNumber:0
+ clickCount:1
+ pressure:1.0];
+ [[controller view] mouseDown:down];
+
+ EXPECT_TRUE([target closedOtherTabs]);
+ [[controller view] removeFromSuperview];
+}
+
// Tests setting the |selected| property via code.
TEST_F(TabControllerTest, APISelection) {
NSWindow* window = test_window();
« no previous file with comments | « chrome/browser/ui/cocoa/tabs/tab_controller_target.h ('k') | chrome/browser/ui/cocoa/tabs/tab_strip_controller.mm » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698