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/basictypes.h" | 7 #include "base/basictypes.h" |
8 #include "base/command_line.h" | 8 #include "base/command_line.h" |
9 #include "base/memory/scoped_nsobject.h" | 9 #include "base/memory/scoped_nsobject.h" |
10 #include "base/string16.h" | 10 #include "base/string16.h" |
11 #include "base/string_util.h" | 11 #include "base/string_util.h" |
12 #include "base/strings/sys_string_conversions.h" | 12 #include "base/strings/sys_string_conversions.h" |
13 #include "base/utf_string_conversions.h" | 13 #include "base/utf_string_conversions.h" |
14 #include "chrome/browser/bookmarks/bookmark_model.h" | 14 #include "chrome/browser/bookmarks/bookmark_model.h" |
15 #include "chrome/browser/bookmarks/bookmark_model_factory.h" | 15 #include "chrome/browser/bookmarks/bookmark_model_factory.h" |
16 #include "chrome/browser/bookmarks/bookmark_utils.h" | 16 #include "chrome/browser/bookmarks/bookmark_utils.h" |
17 #include "chrome/browser/extensions/test_extension_system.h" | 17 #include "chrome/browser/extensions/test_extension_system.h" |
18 #import "chrome/browser/ui/cocoa/animation_utils.h" | 18 #import "chrome/browser/ui/cocoa/animation_utils.h" |
19 #import "chrome/browser/ui/cocoa/bookmarks/bookmark_bar_constants.h" | 19 #import "chrome/browser/ui/cocoa/bookmarks/bookmark_bar_constants.h" |
20 #import "chrome/browser/ui/cocoa/bookmarks/bookmark_bar_controller.h" | 20 #import "chrome/browser/ui/cocoa/bookmarks/bookmark_bar_controller.h" |
21 #import "chrome/browser/ui/cocoa/bookmarks/bookmark_bar_folder_window.h" | 21 #import "chrome/browser/ui/cocoa/bookmarks/bookmark_bar_folder_window.h" |
22 #import "chrome/browser/ui/cocoa/bookmarks/bookmark_bar_unittest_helper.h" | 22 #import "chrome/browser/ui/cocoa/bookmarks/bookmark_bar_unittest_helper.h" |
23 #import "chrome/browser/ui/cocoa/bookmarks/bookmark_bar_view.h" | 23 #import "chrome/browser/ui/cocoa/bookmarks/bookmark_bar_view.h" |
24 #import "chrome/browser/ui/cocoa/bookmarks/bookmark_button.h" | 24 #import "chrome/browser/ui/cocoa/bookmarks/bookmark_button.h" |
25 #import "chrome/browser/ui/cocoa/bookmarks/bookmark_button_cell.h" | 25 #import "chrome/browser/ui/cocoa/bookmarks/bookmark_button_cell.h" |
26 #include "chrome/browser/ui/cocoa/cocoa_profile_test.h" | 26 #include "chrome/browser/ui/cocoa/cocoa_profile_test.h" |
27 #import "chrome/browser/ui/cocoa/view_resizer_pong.h" | 27 #import "chrome/browser/ui/cocoa/view_resizer_pong.h" |
28 #include "chrome/common/chrome_switches.h" | |
29 #include "chrome/common/pref_names.h" | |
28 #include "chrome/test/base/model_test_utils.h" | 30 #include "chrome/test/base/model_test_utils.h" |
29 #include "testing/gtest/include/gtest/gtest.h" | 31 #include "testing/gtest/include/gtest/gtest.h" |
30 #import "testing/gtest_mac.h" | 32 #import "testing/gtest_mac.h" |
31 #include "testing/platform_test.h" | 33 #include "testing/platform_test.h" |
32 #include "third_party/ocmock/gtest_support.h" | 34 #include "third_party/ocmock/gtest_support.h" |
33 #import "third_party/ocmock/OCMock/OCMock.h" | 35 #import "third_party/ocmock/OCMock/OCMock.h" |
34 #include "ui/base/test/cocoa_test_event_utils.h" | 36 #include "ui/base/test/cocoa_test_event_utils.h" |
35 #include "ui/base/theme_provider.h" | 37 #include "ui/base/theme_provider.h" |
36 #include "ui/gfx/image/image_skia.h" | 38 #include "ui/gfx/image/image_skia.h" |
37 | 39 |
(...skipping 294 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
332 }; | 334 }; |
333 | 335 |
334 class BookmarkBarControllerTest : public BookmarkBarControllerTestBase { | 336 class BookmarkBarControllerTest : public BookmarkBarControllerTestBase { |
335 public: | 337 public: |
336 scoped_nsobject<NSButtonCell> cell_; | 338 scoped_nsobject<NSButtonCell> cell_; |
337 scoped_nsobject<BookmarkBarControllerNoOpen> bar_; | 339 scoped_nsobject<BookmarkBarControllerNoOpen> bar_; |
338 | 340 |
339 virtual void SetUp() { | 341 virtual void SetUp() { |
340 BookmarkBarControllerTestBase::SetUp(); | 342 BookmarkBarControllerTestBase::SetUp(); |
341 ASSERT_TRUE(browser()); | 343 ASSERT_TRUE(browser()); |
344 AddCommandLineSwitches(); | |
342 | 345 |
343 bar_.reset( | 346 bar_.reset( |
344 [[BookmarkBarControllerNoOpen alloc] | 347 [[BookmarkBarControllerNoOpen alloc] |
345 initWithBrowser:browser() | 348 initWithBrowser:browser() |
346 initialWidth:NSWidth([parent_view_ frame]) | 349 initialWidth:NSWidth([parent_view_ frame]) |
347 delegate:nil | 350 delegate:nil |
348 resizeDelegate:resizeDelegate_.get()]); | 351 resizeDelegate:resizeDelegate_.get()]); |
349 | 352 |
350 InstallAndToggleBar(bar_.get()); | 353 InstallAndToggleBar(bar_.get()); |
351 } | 354 } |
352 | 355 |
356 virtual void AddCommandLineSwitches() {} | |
357 | |
353 BookmarkBarControllerNoOpen* noOpenBar() { | 358 BookmarkBarControllerNoOpen* noOpenBar() { |
354 return (BookmarkBarControllerNoOpen*)bar_.get(); | 359 return (BookmarkBarControllerNoOpen*)bar_.get(); |
355 } | 360 } |
356 }; | 361 }; |
357 | 362 |
358 TEST_F(BookmarkBarControllerTest, ShowWhenShowBookmarkBarTrue) { | 363 TEST_F(BookmarkBarControllerTest, ShowWhenShowBookmarkBarTrue) { |
359 [bar_ updateState:BookmarkBar::SHOW | 364 [bar_ updateState:BookmarkBar::SHOW |
360 changeType:BookmarkBar::DONT_ANIMATE_STATE_CHANGE]; | 365 changeType:BookmarkBar::DONT_ANIMATE_STATE_CHANGE]; |
361 EXPECT_TRUE([bar_ isInState:BookmarkBar::SHOW]); | 366 EXPECT_TRUE([bar_ isInState:BookmarkBar::SHOW]); |
362 EXPECT_FALSE([bar_ isInState:BookmarkBar::DETACHED]); | 367 EXPECT_FALSE([bar_ isInState:BookmarkBar::DETACHED]); |
(...skipping 1172 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
1535 ++i) { | 1540 ++i) { |
1536 NSRect frame = [[bar_ view] frame]; | 1541 NSRect frame = [[bar_ view] frame]; |
1537 frame.size.width = viewWidths[i] + bookmarks::kBookmarkRightMargin; | 1542 frame.size.width = viewWidths[i] + bookmarks::kBookmarkRightMargin; |
1538 [[bar_ view] setFrame:frame]; | 1543 [[bar_ view] setFrame:frame]; |
1539 EXPECT_EQ(offTheSideButtonIsHiddenResults[i], | 1544 EXPECT_EQ(offTheSideButtonIsHiddenResults[i], |
1540 [bar_ offTheSideButtonIsHidden]); | 1545 [bar_ offTheSideButtonIsHidden]); |
1541 EXPECT_EQ(displayedButtonCountResults[i], [bar_ displayedButtonCount]); | 1546 EXPECT_EQ(displayedButtonCountResults[i], [bar_ displayedButtonCount]); |
1542 } | 1547 } |
1543 } | 1548 } |
1544 | 1549 |
1550 class BookmarkBarControllerWithInstantExtendedTest : | |
1551 public BookmarkBarControllerTest { | |
1552 public: | |
1553 virtual void AddCommandLineSwitches() { | |
Alexei Svitkine (slow)
2013/04/16 16:29:13
Nit: OVERRIDE
beaudoin
2013/04/16 20:49:56
Done.
| |
1554 CommandLine::ForCurrentProcess()->AppendSwitch( | |
1555 switches::kEnableInstantExtendedAPI); | |
1556 } | |
1557 }; | |
1558 | |
1559 TEST_F(BookmarkBarControllerWithInstantExtendedTest, | |
1560 BookmarksWithAppsPageShortcut) { | |
1561 BookmarkModel* model = BookmarkModelFactory::GetForProfile(profile()); | |
1562 const BookmarkNode* root = model->bookmark_bar_node(); | |
1563 const std::string model_string("1b 2f:[ 2f1b 2f2b ] 3b "); | |
1564 model_test_utils::AddNodesFromModelString(model, root, model_string); | |
1565 [bar_ frameDidChange]; | |
1566 | |
1567 // Apps page shortcut button should be visible. | |
1568 ASSERT_FALSE([bar_ appsPageShortcutButtonIsHidden]); | |
1569 | |
1570 // Bookmarks should be to the right of the Apps page shortcut button. | |
1571 CGFloat apps_button_right = NSMaxX([[bar_ appsPageShortcutButton] frame]); | |
1572 CGFloat right = apps_button_right; | |
1573 NSArray* buttons = [bar_ buttons]; | |
1574 for (size_t i = 0; i < [buttons count]; ++i) { | |
1575 EXPECT_LE(right, NSMinX([[buttons objectAtIndex:i] frame])); | |
1576 right = NSMaxX([[buttons objectAtIndex:i] frame]); | |
1577 } | |
1578 | |
1579 // Removing the Apps button should move every bookmark to the left. | |
1580 profile()->GetPrefs()->SetBoolean(prefs::kShowAppsShortcutInBookmarkBar, | |
1581 false); | |
1582 ASSERT_TRUE([bar_ appsPageShortcutButtonIsHidden]); | |
1583 EXPECT_GT(apps_button_right, NSMinX([[buttons objectAtIndex:0] frame])); | |
1584 for (size_t i = 1; i < [buttons count]; ++i) { | |
1585 EXPECT_LE(NSMaxX([[buttons objectAtIndex:i - 1] frame]), | |
1586 NSMinX([[buttons objectAtIndex:i] frame])); | |
1587 } | |
1588 } | |
1589 | |
1590 TEST_F(BookmarkBarControllerWithInstantExtendedTest, | |
1591 BookmarksWithoutAppsPageShortcut) { | |
1592 // The no item containers should be to the right of the Apps button. | |
1593 ASSERT_FALSE([bar_ appsPageShortcutButtonIsHidden]); | |
1594 CGFloat apps_button_right = NSMaxX([[bar_ appsPageShortcutButton] frame]); | |
1595 EXPECT_LE(apps_button_right, | |
1596 NSMinX([[[bar_ buttonView] noItemTextfield] frame])); | |
1597 EXPECT_LE(NSMaxX([[[bar_ buttonView] noItemTextfield] frame]), | |
1598 NSMinX([[[bar_ buttonView] importBookmarksButton] frame])); | |
1599 | |
1600 // Removing the Apps button should move the no item containers to the left. | |
1601 profile()->GetPrefs()->SetBoolean(prefs::kShowAppsShortcutInBookmarkBar, | |
1602 false); | |
1603 ASSERT_TRUE([bar_ appsPageShortcutButtonIsHidden]); | |
1604 EXPECT_GT(apps_button_right, | |
1605 NSMinX([[[bar_ buttonView] noItemTextfield] frame])); | |
1606 EXPECT_LE(NSMaxX([[[bar_ buttonView] noItemTextfield] frame]), | |
1607 NSMinX([[[bar_ buttonView] importBookmarksButton] frame])); | |
1608 } | |
1609 | |
1545 class BookmarkBarControllerOpenAllTest : public BookmarkBarControllerTest { | 1610 class BookmarkBarControllerOpenAllTest : public BookmarkBarControllerTest { |
1546 public: | 1611 public: |
1547 virtual void SetUp() { | 1612 virtual void SetUp() { |
1548 BookmarkBarControllerTest::SetUp(); | 1613 BookmarkBarControllerTest::SetUp(); |
1549 ASSERT_TRUE(profile()); | 1614 ASSERT_TRUE(profile()); |
1550 | 1615 |
1551 resizeDelegate_.reset([[ViewResizerPong alloc] init]); | 1616 resizeDelegate_.reset([[ViewResizerPong alloc] init]); |
1552 NSRect parent_frame = NSMakeRect(0, 0, 800, 50); | 1617 NSRect parent_frame = NSMakeRect(0, 0, 800, 50); |
1553 bar_.reset( | 1618 bar_.reset( |
1554 [[BookmarkBarControllerOpenAllPong alloc] | 1619 [[BookmarkBarControllerOpenAllPong alloc] |
(...skipping 449 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
2004 "2f3b ] 4b "); | 2069 "2f3b ] 4b "); |
2005 actual = model_test_utils::ModelStringFromNode(root); | 2070 actual = model_test_utils::ModelStringFromNode(root); |
2006 EXPECT_EQ(expected, actual); | 2071 EXPECT_EQ(expected, actual); |
2007 | 2072 |
2008 // Verify that the other bookmark folder can't be deleted. | 2073 // Verify that the other bookmark folder can't be deleted. |
2009 BookmarkButton *otherButton = [bar_ otherBookmarksButton]; | 2074 BookmarkButton *otherButton = [bar_ otherBookmarksButton]; |
2010 EXPECT_FALSE([bar_ canDragBookmarkButtonToTrash:otherButton]); | 2075 EXPECT_FALSE([bar_ canDragBookmarkButtonToTrash:otherButton]); |
2011 } | 2076 } |
2012 | 2077 |
2013 } // namespace | 2078 } // namespace |
OLD | NEW |