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 #import <Cocoa/Cocoa.h> | 5 #import <Cocoa/Cocoa.h> |
6 | 6 |
7 #include "base/message_loop.h" | 7 #include "base/message_loop.h" |
8 #import "chrome/browser/ui/cocoa/bookmarks/bookmark_bar_controller.h" | 8 #import "chrome/browser/ui/cocoa/bookmarks/bookmark_bar_controller.h" |
9 #import "chrome/browser/ui/cocoa/bookmarks/bookmark_bar_folder_hover_state.h" | 9 #import "chrome/browser/ui/cocoa/bookmarks/bookmark_bar_folder_hover_state.h" |
10 #import "chrome/browser/ui/cocoa/cocoa_test_helper.h" | 10 #import "chrome/browser/ui/cocoa/cocoa_test_helper.h" |
11 | 11 |
12 namespace { | 12 namespace { |
13 | 13 |
14 class BookmarkBarFolderHoverStateTest : public CocoaTest { | 14 class BookmarkBarFolderHoverStateTest : public CocoaTest { |
15 }; | 15 }; |
16 | 16 |
17 // Hover state machine interface. | 17 // Hover state machine interface. |
18 // A strict call order is implied with these calls. It is ONLY valid to make | 18 // A strict call order is implied with these calls. It is ONLY valid to make |
19 // these specific state transitions. | 19 // these specific state transitions. |
20 TEST_F(BookmarkBarFolderHoverStateTest, HoverState) { | 20 TEST_F(BookmarkBarFolderHoverStateTest, HoverState) { |
21 base::MessageLoopForUI message_loop; | 21 base::MessageLoopForUI message_loop; |
22 scoped_nsobject<BookmarkBarFolderHoverState> bbfhs; | 22 base::scoped_nsobject<BookmarkBarFolderHoverState> bbfhs; |
23 bbfhs.reset([[BookmarkBarFolderHoverState alloc] init]); | 23 bbfhs.reset([[BookmarkBarFolderHoverState alloc] init]); |
24 | 24 |
25 // Initial state. | 25 // Initial state. |
26 EXPECT_FALSE([bbfhs hoverButton]); | 26 EXPECT_FALSE([bbfhs hoverButton]); |
27 ASSERT_EQ(kHoverStateClosed, [bbfhs hoverState]); | 27 ASSERT_EQ(kHoverStateClosed, [bbfhs hoverState]); |
28 | 28 |
29 scoped_nsobject<BookmarkButton> button; | 29 base::scoped_nsobject<BookmarkButton> button; |
30 button.reset([[BookmarkButton alloc] initWithFrame:NSMakeRect(0, 0, 20, 20)]); | 30 button.reset([[BookmarkButton alloc] initWithFrame:NSMakeRect(0, 0, 20, 20)]); |
31 | 31 |
32 // Test transition from closed to opening. | 32 // Test transition from closed to opening. |
33 ASSERT_EQ(kHoverStateClosed, [bbfhs hoverState]); | 33 ASSERT_EQ(kHoverStateClosed, [bbfhs hoverState]); |
34 [bbfhs scheduleOpenBookmarkFolderOnHoverButton:button]; | 34 [bbfhs scheduleOpenBookmarkFolderOnHoverButton:button]; |
35 ASSERT_EQ(kHoverStateOpening, [bbfhs hoverState]); | 35 ASSERT_EQ(kHoverStateOpening, [bbfhs hoverState]); |
36 | 36 |
37 // Test transition from opening to closed (aka cancel open). | 37 // Test transition from opening to closed (aka cancel open). |
38 [bbfhs cancelPendingOpenBookmarkFolderOnHoverButton]; | 38 [bbfhs cancelPendingOpenBookmarkFolderOnHoverButton]; |
39 ASSERT_EQ(kHoverStateClosed, [bbfhs hoverState]); | 39 ASSERT_EQ(kHoverStateClosed, [bbfhs hoverState]); |
(...skipping 30 matching lines...) Expand all Loading... |
70 FROM_HERE, | 70 FROM_HERE, |
71 base::MessageLoop::QuitClosure(), | 71 base::MessageLoop::QuitClosure(), |
72 base::TimeDelta::FromMilliseconds( | 72 base::TimeDelta::FromMilliseconds( |
73 bookmarks::kDragHoverCloseDelay * 1000.0 * 1.5)); | 73 bookmarks::kDragHoverCloseDelay * 1000.0 * 1.5)); |
74 message_loop.Run(); | 74 message_loop.Run(); |
75 ASSERT_EQ(kHoverStateClosed, [bbfhs hoverState]); | 75 ASSERT_EQ(kHoverStateClosed, [bbfhs hoverState]); |
76 ASSERT_EQ(nil, [bbfhs hoverButton]); | 76 ASSERT_EQ(nil, [bbfhs hoverButton]); |
77 } | 77 } |
78 | 78 |
79 } // namespace | 79 } // namespace |
OLD | NEW |