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

Unified Diff: chrome/browser/ui/cocoa/bookmarks/bookmark_bar_folder_view_unittest.mm

Issue 8141003: [Mac] Restore the old bookmark menus now that the experiment is over. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 9 years, 2 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/bookmarks/bookmark_bar_folder_view_unittest.mm
diff --git a/chrome/browser/ui/cocoa/bookmarks/bookmark_bar_folder_view_unittest.mm b/chrome/browser/ui/cocoa/bookmarks/bookmark_bar_folder_view_unittest.mm
new file mode 100644
index 0000000000000000000000000000000000000000..aecb48f493e17d4cf176f68f81369e086607ff7a
--- /dev/null
+++ b/chrome/browser/ui/cocoa/bookmarks/bookmark_bar_folder_view_unittest.mm
@@ -0,0 +1,151 @@
+// Copyright (c) 2011 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "base/memory/scoped_nsobject.h"
+#import "chrome/browser/ui/cocoa/bookmarks/bookmark_bar_folder_controller.h"
+#import "chrome/browser/ui/cocoa/bookmarks/bookmark_bar_folder_view.h"
+#import "chrome/browser/ui/cocoa/bookmarks/bookmark_button.h"
+#import "chrome/browser/ui/cocoa/bookmarks/bookmark_folder_target.h"
+#import "chrome/browser/ui/cocoa/cocoa_test_helper.h"
+#import "chrome/browser/ui/cocoa/url_drop_target.h"
+#include "testing/gtest/include/gtest/gtest.h"
+#include "testing/platform_test.h"
+#import "third_party/mozilla/NSPasteboard+Utils.h"
+#import "third_party/ocmock/OCMock/OCMock.h"
+#import "third_party/ocmock/ocmock_extensions.h"
+
+// Allows us to verify BookmarkBarFolderView.
+@interface BookmarkBarFolderView(TestingAPI)
+
+@property(readonly, nonatomic) BOOL dropIndicatorShown;
+@property(readonly, nonatomic) CGFloat dropIndicatorPosition;
+
+-(void)setController:(id<BookmarkButtonControllerProtocol>)controller;
+
+@end
+
+@implementation BookmarkBarFolderView(TestingAPI)
+
+-(void)setController:(id<BookmarkButtonControllerProtocol>)controller {
+ controller_ = controller;
+}
+
+-(BOOL)dropIndicatorShown {
+ return dropIndicatorShown_;
+}
+
+-(CGFloat)dropIndicatorPosition {
+ return dropIndicatorPosition_;
+}
+
+@end
+
+namespace {
+
+// Some values used for mocks and fakes.
+const CGFloat kFakeIndicatorPos = 7.0;
+const NSPoint kPoint = {10, 10};
+
+class BookmarkBarFolderViewTest : public CocoaTest {
+ public:
+ virtual void SetUp() {
+ CocoaTest::SetUp();
+ view_.reset([[BookmarkBarFolderView alloc] init]);
+ mock_controller_.reset([GetMockController(YES) retain]);
+ [view_ awakeFromNib];
+ [view_ setController:mock_controller_];
+ }
+
+ virtual void TearDown() {
+ [mock_controller_ verify];
+ CocoaTest::TearDown();
+ }
+
+ id GetFakePasteboardForType(NSString* dataType) {
+ id pasteboard = [OCMockObject mockForClass:[NSPasteboard class]];
+ [[[pasteboard stub] andReturn:[NSData data]] dataForType:dataType];
+ [[[pasteboard stub] andReturn:nil] dataForType:OCMOCK_ANY];
+ [[[pasteboard stub] andReturnBool:YES] containsURLData];
+ [[pasteboard stub] getURLs:[OCMArg setTo:nil]
+ andTitles:[OCMArg setTo:nil]
+ convertingFilenames:YES];
+ return pasteboard;
+ }
+
+ id GetFakeDragInfoForType(NSString* dataType) {
+ // Need something non-nil to return as the draggingSource.
+ id source = [OCMockObject mockForClass:[NSObject class]];
+ id drag_info = [OCMockObject mockForProtocol:@protocol(NSDraggingInfo)];
+ id pasteboard = GetFakePasteboardForType(dataType);
+ [[[drag_info stub] andReturn:pasteboard] draggingPasteboard];
+ [[[drag_info stub] andReturnNSPoint:kPoint] draggingLocation];
+ [[[drag_info stub] andReturn:source] draggingSource];
+ [[[drag_info stub]
+ andReturnUnsignedInteger:NSDragOperationCopy | NSDragOperationMove]
+ draggingSourceOperationMask];
+ return drag_info;
+ }
+
+ id GetMockController(BOOL show_indicator) {
+ id mock_controller
+ = [OCMockObject mockForClass:[BookmarkBarFolderController class]];
+ [[[mock_controller stub] andReturnBool:YES]
+ draggingAllowed:OCMOCK_ANY];
+ [[[mock_controller stub] andReturnBool:show_indicator]
+ shouldShowIndicatorShownForPoint:kPoint];
+ [[[mock_controller stub] andReturnFloat:kFakeIndicatorPos]
+ indicatorPosForDragToPoint:kPoint];
+ return mock_controller;
+ }
+
+ scoped_nsobject<id> mock_controller_;
+ scoped_nsobject<BookmarkBarFolderView> view_;
+};
+
+TEST_F(BookmarkBarFolderViewTest, BookmarkButtonDragAndDrop) {
+ id drag_info = GetFakeDragInfoForType(kBookmarkButtonDragType);
+ [[[mock_controller_ expect] andReturnUnsignedInteger:NSDragOperationNone]
+ draggingEntered:drag_info];
+ [[[mock_controller_ expect] andReturnBool:NO] dragBookmarkData:drag_info];
+ [[[mock_controller_ expect] andReturnBool:YES] dragButton:OCMOCK_ANY
+ to:kPoint
+ copy:NO];
+
+ EXPECT_EQ([view_ draggingEntered:drag_info], NSDragOperationMove);
+ EXPECT_TRUE([view_ performDragOperation:drag_info]);
+}
+
+TEST_F(BookmarkBarFolderViewTest, URLDragAndDrop) {
+ NSArray* dragTypes = [URLDropTargetHandler handledDragTypes];
+ for (NSString* type in dragTypes) {
+ id drag_info = GetFakeDragInfoForType(type);
+ [[[mock_controller_ expect] andReturnUnsignedInteger:NSDragOperationNone]
+ draggingEntered:drag_info];
+ [[[mock_controller_ expect] andReturnBool:NO] dragBookmarkData:drag_info];
+ [[[mock_controller_ expect] andReturnBool:YES] addURLs:OCMOCK_ANY
+ withTitles:OCMOCK_ANY
+ at:kPoint];
+ EXPECT_EQ([view_ draggingEntered:drag_info], NSDragOperationMove);
+ EXPECT_TRUE([view_ performDragOperation:drag_info]);
+ [mock_controller_ verify];
+ }
+}
+
+TEST_F(BookmarkBarFolderViewTest, BookmarkButtonDropIndicator) {
+ id drag_info = GetFakeDragInfoForType(kBookmarkButtonDragType);
+ [[[mock_controller_ expect] andReturnUnsignedInteger:NSDragOperationNone]
+ draggingEntered:drag_info];
+ EXPECT_EQ([view_ draggingEntered:drag_info], NSDragOperationMove);
+ [mock_controller_ verify];
+ EXPECT_TRUE([view_ dropIndicatorShown]);
+ EXPECT_EQ([view_ dropIndicatorPosition], kFakeIndicatorPos);
+ mock_controller_.reset([GetMockController(NO) retain]);
+ [view_ setController:mock_controller_];
+ [[[mock_controller_ expect] andReturnUnsignedInteger:NSDragOperationNone]
+ draggingEntered:drag_info];
+ EXPECT_EQ([view_ draggingEntered:drag_info], NSDragOperationMove);
+ EXPECT_FALSE([view_ dropIndicatorShown]);
+}
+
+} // namespace

Powered by Google App Engine
This is Rietveld 408576698