| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 #include <cmath> | 5 #include <cmath> |
| 6 | 6 |
| 7 #include "base/mac/scoped_nsobject.h" | 7 #include "base/mac/scoped_nsobject.h" |
| 8 #include "base/strings/utf_string_conversions.h" | 8 #include "base/strings/utf_string_conversions.h" |
| 9 #include "chrome/browser/bookmarks/bookmark_model_factory.h" | 9 #include "chrome/browser/bookmarks/bookmark_model_factory.h" |
| 10 #import "chrome/browser/ui/cocoa/bookmarks/bookmark_bar_constants.h" | 10 #import "chrome/browser/ui/cocoa/bookmarks/bookmark_bar_constants.h" |
| (...skipping 1266 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1277 ASCIIToUTF16("BIG")); | 1277 ASCIIToUTF16("BIG")); |
| 1278 | 1278 |
| 1279 // Pop open the new folder window and verify it has one (empty) item. | 1279 // Pop open the new folder window and verify it has one (empty) item. |
| 1280 BookmarkButton* button = [bar_ buttonWithTitleEqualTo:@"BIG"]; | 1280 BookmarkButton* button = [bar_ buttonWithTitleEqualTo:@"BIG"]; |
| 1281 [[button target] performSelector:@selector(openBookmarkFolderFromButton:) | 1281 [[button target] performSelector:@selector(openBookmarkFolderFromButton:) |
| 1282 withObject:button]; | 1282 withObject:button]; |
| 1283 BookmarkBarFolderController* folderController = [bar_ folderController]; | 1283 BookmarkBarFolderController* folderController = [bar_ folderController]; |
| 1284 EXPECT_TRUE(folderController); | 1284 EXPECT_TRUE(folderController); |
| 1285 NSWindow* folderWindow = [folderController window]; | 1285 NSWindow* folderWindow = [folderController window]; |
| 1286 EXPECT_TRUE(folderWindow); | 1286 EXPECT_TRUE(folderWindow); |
| 1287 CGFloat expectedHeight = | 1287 CGFloat expectedHeight = (CGFloat)bookmarks::kBookmarkFolderButtonHeight + |
| 1288 (CGFloat)bookmarks::kBookmarkFolderButtonHeight + | 1288 (2*bookmarks::BookmarkVerticalPadding()); |
| 1289 bookmarks::BookmarkTopVerticalPadding() + | |
| 1290 bookmarks::BookmarkBottomVerticalPadding(); | |
| 1291 NSRect windowFrame = [folderWindow frame]; | 1289 NSRect windowFrame = [folderWindow frame]; |
| 1292 CGFloat windowHeight = NSHeight(windowFrame); | 1290 CGFloat windowHeight = NSHeight(windowFrame); |
| 1293 EXPECT_CGFLOAT_EQ(expectedHeight, windowHeight); | 1291 EXPECT_CGFLOAT_EQ(expectedHeight, windowHeight); |
| 1294 EXPECT_FALSE([folderController canScrollUp]); | 1292 EXPECT_FALSE([folderController canScrollUp]); |
| 1295 EXPECT_FALSE([folderController canScrollDown]); | 1293 EXPECT_FALSE([folderController canScrollDown]); |
| 1296 | 1294 |
| 1297 // Now add a real bookmark and reopen. | 1295 // Now add a real bookmark and reopen. |
| 1298 model->AddURL(folder, folder->child_count(), ASCIIToUTF16("a"), | 1296 model->AddURL(folder, folder->child_count(), ASCIIToUTF16("a"), |
| 1299 GURL("http://a.com/")); | 1297 GURL("http://a.com/")); |
| 1300 folderController = [bar_ folderController]; | 1298 folderController = [bar_ folderController]; |
| (...skipping 287 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1588 EXPECT_EQ(model_string, actual); | 1586 EXPECT_EQ(model_string, actual); |
| 1589 | 1587 |
| 1590 // Pop open the folder. | 1588 // Pop open the folder. |
| 1591 BookmarkButton* button = [bar_ buttonWithTitleEqualTo:@"2f"]; | 1589 BookmarkButton* button = [bar_ buttonWithTitleEqualTo:@"2f"]; |
| 1592 [[button target] performSelector:@selector(openBookmarkFolderFromButton:) | 1590 [[button target] performSelector:@selector(openBookmarkFolderFromButton:) |
| 1593 withObject:button]; | 1591 withObject:button]; |
| 1594 BookmarkBarFolderController* folder = [bar_ folderController]; | 1592 BookmarkBarFolderController* folder = [bar_ folderController]; |
| 1595 EXPECT_TRUE(folder); | 1593 EXPECT_TRUE(folder); |
| 1596 | 1594 |
| 1597 // Test a series of points starting at the top of the folder. | 1595 // Test a series of points starting at the top of the folder. |
| 1598 const CGFloat yTopOffset = 0.5 * bookmarks::BookmarkTopVerticalPadding(); | 1596 const CGFloat yOffset = 0.5 * bookmarks::BookmarkVerticalPadding(); |
| 1599 const CGFloat yBottomOffset = | |
| 1600 0.5 * bookmarks::BookmarkBottomVerticalPadding(); | |
| 1601 BookmarkButton* targetButton = [folder buttonWithTitleEqualTo:@"2f1b"]; | 1597 BookmarkButton* targetButton = [folder buttonWithTitleEqualTo:@"2f1b"]; |
| 1602 ASSERT_TRUE(targetButton); | 1598 ASSERT_TRUE(targetButton); |
| 1603 NSPoint targetPoint = [targetButton top]; | 1599 NSPoint targetPoint = [targetButton top]; |
| 1604 CGFloat pos = [folder indicatorPosForDragToPoint:targetPoint]; | 1600 CGFloat pos = [folder indicatorPosForDragToPoint:targetPoint]; |
| 1605 EXPECT_CGFLOAT_EQ(targetPoint.y + yTopOffset, pos); | 1601 EXPECT_CGFLOAT_EQ(targetPoint.y + yOffset, pos); |
| 1606 pos = [folder indicatorPosForDragToPoint:[targetButton bottom]]; | 1602 pos = [folder indicatorPosForDragToPoint:[targetButton bottom]]; |
| 1607 targetButton = [folder buttonWithTitleEqualTo:@"2f2f"]; | 1603 targetButton = [folder buttonWithTitleEqualTo:@"2f2f"]; |
| 1608 EXPECT_CGFLOAT_EQ([targetButton top].y + yTopOffset, pos); | 1604 EXPECT_CGFLOAT_EQ([targetButton top].y + yOffset, pos); |
| 1609 pos = [folder indicatorPosForDragToPoint:NSMakePoint(10,0)]; | 1605 pos = [folder indicatorPosForDragToPoint:NSMakePoint(10,0)]; |
| 1610 targetButton = [folder buttonWithTitleEqualTo:@"2f3b"]; | 1606 targetButton = [folder buttonWithTitleEqualTo:@"2f3b"]; |
| 1611 EXPECT_CGFLOAT_EQ([targetButton bottom].y - yBottomOffset, pos); | 1607 EXPECT_CGFLOAT_EQ([targetButton bottom].y - yOffset, pos); |
| 1612 } | 1608 } |
| 1613 | 1609 |
| 1614 @interface BookmarkBarControllerNoDelete : BookmarkBarController | 1610 @interface BookmarkBarControllerNoDelete : BookmarkBarController |
| 1615 - (IBAction)deleteBookmark:(id)sender; | 1611 - (IBAction)deleteBookmark:(id)sender; |
| 1616 @end | 1612 @end |
| 1617 | 1613 |
| 1618 @implementation BookmarkBarControllerNoDelete | 1614 @implementation BookmarkBarControllerNoDelete |
| 1619 - (IBAction)deleteBookmark:(id)sender { | 1615 - (IBAction)deleteBookmark:(id)sender { |
| 1620 // NOP | 1616 // NOP |
| 1621 } | 1617 } |
| (...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1666 DeleteBookmark([folder parentButton], profile()); | 1662 DeleteBookmark([folder parentButton], profile()); |
| 1667 EXPECT_FALSE([folder folderController]); | 1663 EXPECT_FALSE([folder folderController]); |
| 1668 } | 1664 } |
| 1669 | 1665 |
| 1670 // TODO(jrg): draggingEntered: and draggingExited: trigger timers so | 1666 // TODO(jrg): draggingEntered: and draggingExited: trigger timers so |
| 1671 // they are hard to test. Factor out "fire timers" into routines | 1667 // they are hard to test. Factor out "fire timers" into routines |
| 1672 // which can be overridden to fire immediately to make behavior | 1668 // which can be overridden to fire immediately to make behavior |
| 1673 // confirmable. | 1669 // confirmable. |
| 1674 // There is a similar problem with mouseEnteredButton: and | 1670 // There is a similar problem with mouseEnteredButton: and |
| 1675 // mouseExitedButton:. | 1671 // mouseExitedButton:. |
| OLD | NEW |