OLD | NEW |
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #import <Cocoa/Cocoa.h> | 5 #import <Cocoa/Cocoa.h> |
6 | 6 |
7 #include "base/basictypes.h" | 7 #include "base/basictypes.h" |
8 #include "base/scoped_nsobject.h" | 8 #include "base/scoped_nsobject.h" |
9 #include "base/utf_string_conversions.h" | 9 #include "base/utf_string_conversions.h" |
10 #include "chrome/browser/bookmarks/bookmark_model.h" | 10 #include "chrome/browser/bookmarks/bookmark_model.h" |
(...skipping 238 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
249 BookmarkButton* parentButton = [[bar_ buttons] objectAtIndex:0]; | 249 BookmarkButton* parentButton = [[bar_ buttons] objectAtIndex:0]; |
250 EXPECT_TRUE(parentButton); | 250 EXPECT_TRUE(parentButton); |
251 | 251 |
252 // If parent is a BookmarkBarController, grow down. | 252 // If parent is a BookmarkBarController, grow down. |
253 scoped_nsobject<BookmarkBarFolderController> bbfc; | 253 scoped_nsobject<BookmarkBarFolderController> bbfc; |
254 bbfc.reset([[BookmarkBarFolderController alloc] | 254 bbfc.reset([[BookmarkBarFolderController alloc] |
255 initWithParentButton:parentButton | 255 initWithParentButton:parentButton |
256 parentController:nil | 256 parentController:nil |
257 barController:bar_]); | 257 barController:bar_]); |
258 [bbfc window]; | 258 [bbfc window]; |
259 NSPoint pt = [bbfc windowTopLeftForWidth:0]; // screen coords | 259 NSPoint pt = [bbfc windowTopLeftForWidth:0 height:100]; // screen coords |
260 NSPoint buttonOriginInScreen = | 260 NSPoint buttonOriginInScreen = |
261 [[parentButton window] | 261 [[parentButton window] |
262 convertBaseToScreen:[parentButton | 262 convertBaseToScreen:[parentButton |
263 convertRectToBase:[parentButton frame]].origin]; | 263 convertRectToBase:[parentButton frame]].origin]; |
264 // Within margin | 264 // Within margin |
265 EXPECT_LE(abs(pt.x - buttonOriginInScreen.x), | 265 EXPECT_LE(abs(pt.x - buttonOriginInScreen.x), |
266 bookmarks::kBookmarkMenuOverlap+1); | 266 bookmarks::kBookmarkMenuOverlap+1); |
267 EXPECT_LE(abs(pt.y - buttonOriginInScreen.y), | 267 EXPECT_LE(abs(pt.y - buttonOriginInScreen.y), |
268 bookmarks::kBookmarkMenuOverlap+1); | 268 bookmarks::kBookmarkMenuOverlap+1); |
269 | 269 |
270 // Make sure we see the window shift left if it spills off the screen | 270 // Make sure we see the window shift left if it spills off the screen |
271 pt = [bbfc windowTopLeftForWidth:0]; | 271 pt = [bbfc windowTopLeftForWidth:0 height:100]; |
272 NSPoint shifted = [bbfc windowTopLeftForWidth:9999999]; | 272 NSPoint shifted = [bbfc windowTopLeftForWidth:9999999 height:100]; |
273 EXPECT_LT(shifted.x, pt.x); | 273 EXPECT_LT(shifted.x, pt.x); |
274 | 274 |
275 // If parent is a BookmarkBarFolderController, grow right. | 275 // If parent is a BookmarkBarFolderController, grow right. |
276 scoped_nsobject<BookmarkBarFolderController> bbfc2; | 276 scoped_nsobject<BookmarkBarFolderController> bbfc2; |
277 bbfc2.reset([[BookmarkBarFolderController alloc] | 277 bbfc2.reset([[BookmarkBarFolderController alloc] |
278 initWithParentButton:[[bbfc buttons] objectAtIndex:0] | 278 initWithParentButton:[[bbfc buttons] objectAtIndex:0] |
279 parentController:bbfc.get() | 279 parentController:bbfc.get() |
280 barController:bar_]); | 280 barController:bar_]); |
281 [bbfc2 window]; | 281 [bbfc2 window]; |
282 pt = [bbfc2 windowTopLeftForWidth:0]; | 282 pt = [bbfc2 windowTopLeftForWidth:0 height:100]; |
283 // We're now overlapping the window a bit. | 283 // We're now overlapping the window a bit. |
284 EXPECT_EQ(pt.x, NSMaxX([[bbfc.get() window] frame]) - | 284 EXPECT_EQ(pt.x, NSMaxX([[bbfc.get() window] frame]) - |
285 bookmarks::kBookmarkMenuOverlap); | 285 bookmarks::kBookmarkMenuOverlap); |
286 } | 286 } |
287 | 287 |
288 // Confirm we grow right until end of screen, then start growing left | 288 // Confirm we grow right until end of screen, then start growing left |
289 // until end of screen again, then right. | 289 // until end of screen again, then right. |
290 TEST_F(BookmarkBarFolderControllerTest, PositionRightLeftRight) { | 290 TEST_F(BookmarkBarFolderControllerTest, PositionRightLeftRight) { |
291 BookmarkModel* model = helper_.profile()->GetBookmarkModel(); | 291 BookmarkModel* model = helper_.profile()->GetBookmarkModel(); |
292 const BookmarkNode* parent = model->GetBookmarkBarNode(); | 292 const BookmarkNode* parent = model->GetBookmarkBarNode(); |
(...skipping 1257 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1550 [folder deleteBookmark:folder]; | 1550 [folder deleteBookmark:folder]; |
1551 EXPECT_FALSE([folder folderController]); | 1551 EXPECT_FALSE([folder folderController]); |
1552 } | 1552 } |
1553 | 1553 |
1554 // TODO(jrg): draggingEntered: and draggingExited: trigger timers so | 1554 // TODO(jrg): draggingEntered: and draggingExited: trigger timers so |
1555 // they are hard to test. Factor out "fire timers" into routines | 1555 // they are hard to test. Factor out "fire timers" into routines |
1556 // which can be overridden to fire immediately to make behavior | 1556 // which can be overridden to fire immediately to make behavior |
1557 // confirmable. | 1557 // confirmable. |
1558 // There is a similar problem with mouseEnteredButton: and | 1558 // There is a similar problem with mouseEnteredButton: and |
1559 // mouseExitedButton:. | 1559 // mouseExitedButton:. |
OLD | NEW |