OLD | NEW |
1 // Copyright (c) 2009 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2009 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 #import "chrome/browser/cocoa/bookmark_bubble_controller.h" | 9 #import "chrome/browser/cocoa/bookmark_bubble_controller.h" |
10 #include "chrome/browser/cocoa/browser_test_helper.h" | 10 #include "chrome/browser/cocoa/browser_test_helper.h" |
(...skipping 24 matching lines...) Expand all Loading... |
35 | 35 |
36 // Returns a controller but ownership not transferred. | 36 // Returns a controller but ownership not transferred. |
37 // Only one of these will be valid at a time. | 37 // Only one of these will be valid at a time. |
38 BookmarkBubbleController* ControllerForNode(const BookmarkNode* node) { | 38 BookmarkBubbleController* ControllerForNode(const BookmarkNode* node) { |
39 if (controller_ && !IsWindowClosing()) { | 39 if (controller_ && !IsWindowClosing()) { |
40 [controller_ close]; | 40 [controller_ close]; |
41 controller_ = nil; | 41 controller_ = nil; |
42 } | 42 } |
43 controller_ = [[BookmarkBubbleController alloc] | 43 controller_ = [[BookmarkBubbleController alloc] |
44 initWithParentWindow:test_window() | 44 initWithParentWindow:test_window() |
45 topLeftForBubble:TopLeftForBubble() | 45 topRightForBubble:TopRightForBubble() |
46 model:helper_.profile()->GetBookmarkModel() | 46 model:helper_.profile()->GetBookmarkModel() |
47 node:node | 47 node:node |
48 alreadyBookmarked:YES]; | 48 alreadyBookmarked:YES]; |
49 EXPECT_TRUE([controller_ window]); | 49 EXPECT_TRUE([controller_ window]); |
50 // The window must be gone or we'll fail a unit test with windows left open. | 50 // The window must be gone or we'll fail a unit test with windows left open. |
51 [static_cast<InfoBubbleWindow*>([controller_ window]) setDelayOnClose:NO]; | 51 [static_cast<InfoBubbleWindow*>([controller_ window]) setDelayOnClose:NO]; |
52 [controller_ showWindow:nil]; | 52 [controller_ showWindow:nil]; |
53 return controller_; | 53 return controller_; |
54 } | 54 } |
55 | 55 |
56 BookmarkModel* GetBookmarkModel() { | 56 BookmarkModel* GetBookmarkModel() { |
57 return helper_.profile()->GetBookmarkModel(); | 57 return helper_.profile()->GetBookmarkModel(); |
58 } | 58 } |
59 | 59 |
60 bool IsWindowClosing() { | 60 bool IsWindowClosing() { |
61 return [static_cast<InfoBubbleWindow*>([controller_ window]) isClosing]; | 61 return [static_cast<InfoBubbleWindow*>([controller_ window]) isClosing]; |
62 } | 62 } |
63 | 63 |
64 NSPoint TopLeftForBubble() { | 64 NSPoint TopRightForBubble() { |
65 return NSMakePoint(10, 300); | 65 return NSMakePoint(NSWidth([test_window() frame]) - 10, 300); |
66 } | 66 } |
67 }; | 67 }; |
68 | 68 |
69 // Confirm basics about the bubble window (e.g. that it is inside the | 69 // Confirm basics about the bubble window (e.g. that it is inside the |
70 // parent window) | 70 // parent window) |
71 TEST_F(BookmarkBubbleControllerTest, TestBubbleWindow) { | 71 TEST_F(BookmarkBubbleControllerTest, TestBubbleWindow) { |
72 BookmarkModel* model = GetBookmarkModel(); | 72 BookmarkModel* model = GetBookmarkModel(); |
73 const BookmarkNode* node = model->AddURL(model->GetBookmarkBarNode(), | 73 const BookmarkNode* node = model->AddURL(model->GetBookmarkBarNode(), |
74 0, | 74 0, |
75 L"Bookie markie title", | 75 L"Bookie markie title", |
(...skipping 251 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
327 TEST_F(BookmarkBubbleControllerTest, EscapeRemovesNewBookmark) { | 327 TEST_F(BookmarkBubbleControllerTest, EscapeRemovesNewBookmark) { |
328 BookmarkModel* model = GetBookmarkModel(); | 328 BookmarkModel* model = GetBookmarkModel(); |
329 GURL gurl("http://www.google.com"); | 329 GURL gurl("http://www.google.com"); |
330 const BookmarkNode* node = model->AddURL(model->GetBookmarkBarNode(), | 330 const BookmarkNode* node = model->AddURL(model->GetBookmarkBarNode(), |
331 0, | 331 0, |
332 L"Bookie markie title", | 332 L"Bookie markie title", |
333 gurl); | 333 gurl); |
334 BookmarkBubbleController* controller = | 334 BookmarkBubbleController* controller = |
335 [[BookmarkBubbleController alloc] | 335 [[BookmarkBubbleController alloc] |
336 initWithParentWindow:test_window() | 336 initWithParentWindow:test_window() |
337 topLeftForBubble:TopLeftForBubble() | 337 topRightForBubble:TopRightForBubble() |
338 model:helper_.profile()->GetBookmarkModel() | 338 model:helper_.profile()->GetBookmarkModel() |
339 node:node | 339 node:node |
340 alreadyBookmarked:NO]; // The last param is the key difference. | 340 alreadyBookmarked:NO]; // The last param is the key difference. |
341 EXPECT_TRUE([controller window]); | 341 EXPECT_TRUE([controller window]); |
342 // Calls release on controller. | 342 // Calls release on controller. |
343 [controller cancel:nil]; | 343 [controller cancel:nil]; |
344 EXPECT_FALSE(model->IsBookmarked(gurl)); | 344 EXPECT_FALSE(model->IsBookmarked(gurl)); |
345 } | 345 } |
346 | 346 |
347 // Create a controller where the bookmark already existed prior to clicking | 347 // Create a controller where the bookmark already existed prior to clicking |
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
398 // Normally this would be sent up the responder tree correctly, but since | 398 // Normally this would be sent up the responder tree correctly, but since |
399 // tests run in the background, key window and main window are never set on | 399 // tests run in the background, key window and main window are never set on |
400 // NSApplication. Adding it to NSApplication directly removes the need for | 400 // NSApplication. Adding it to NSApplication directly removes the need for |
401 // worrying about what the current window with focus is. | 401 // worrying about what the current window with focus is. |
402 - (void)editBookmarkNode:(id)sender { | 402 - (void)editBookmarkNode:(id)sender { |
403 EXPECT_TRUE([sender respondsToSelector:@selector(node)]); | 403 EXPECT_TRUE([sender respondsToSelector:@selector(node)]); |
404 BookmarkBubbleControllerTest::edits_++; | 404 BookmarkBubbleControllerTest::edits_++; |
405 } | 405 } |
406 | 406 |
407 @end | 407 @end |
OLD | NEW |