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/mac/mac_util.h" | 9 #include "base/mac/mac_util.h" |
10 #include "base/mac/scoped_nsobject.h" | 10 #include "base/mac/scoped_nsobject.h" |
(...skipping 2068 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2079 | 2079 |
2080 TEST_F(BookmarkBarControllerDragDropTest, PulseButton) { | 2080 TEST_F(BookmarkBarControllerDragDropTest, PulseButton) { |
2081 BookmarkModel* model = BookmarkModelFactory::GetForProfile(profile()); | 2081 BookmarkModel* model = BookmarkModelFactory::GetForProfile(profile()); |
2082 const BookmarkNode* root = model->bookmark_bar_node(); | 2082 const BookmarkNode* root = model->bookmark_bar_node(); |
2083 GURL gurl("http://www.google.com"); | 2083 GURL gurl("http://www.google.com"); |
2084 const BookmarkNode* node = model->AddURL(root, root->child_count(), | 2084 const BookmarkNode* node = model->AddURL(root, root->child_count(), |
2085 ASCIIToUTF16("title"), gurl); | 2085 ASCIIToUTF16("title"), gurl); |
2086 | 2086 |
2087 BookmarkButton* button = [[bar_ buttons] objectAtIndex:0]; | 2087 BookmarkButton* button = [[bar_ buttons] objectAtIndex:0]; |
2088 EXPECT_FALSE([button isContinuousPulsing]); | 2088 EXPECT_FALSE([button isContinuousPulsing]); |
| 2089 [bar_ startPulsingBookmarkNode:node]; |
| 2090 EXPECT_TRUE([button isContinuousPulsing]); |
| 2091 [bar_ stopPulsingBookmarkNode]; |
| 2092 EXPECT_FALSE([button isContinuousPulsing]); |
2089 | 2093 |
2090 NSValue *value = [NSValue valueWithPointer:node]; | 2094 // Pulsing a node within a folder should pulse the folder button. |
2091 NSDictionary *dict = [NSDictionary | 2095 const BookmarkNode* folder = |
2092 dictionaryWithObjectsAndKeys:value, | 2096 model->AddFolder(root, root->child_count(), ASCIIToUTF16("folder")); |
2093 bookmark_button::kBookmarkKey, | 2097 const BookmarkNode* inner = |
2094 [NSNumber numberWithBool:YES], | 2098 model->AddURL(folder, folder->child_count(), ASCIIToUTF16("inner"), gurl); |
2095 bookmark_button::kBookmarkPulseFlagKey, | |
2096 nil]; | |
2097 [[NSNotificationCenter defaultCenter] | |
2098 postNotificationName:bookmark_button::kPulseBookmarkButtonNotification | |
2099 object:nil | |
2100 userInfo:dict]; | |
2101 EXPECT_TRUE([button isContinuousPulsing]); | |
2102 | 2099 |
2103 dict = [NSDictionary dictionaryWithObjectsAndKeys:value, | 2100 BookmarkButton* folder_button = [[bar_ buttons] objectAtIndex:1]; |
2104 bookmark_button::kBookmarkKey, | 2101 EXPECT_FALSE([folder_button isContinuousPulsing]); |
2105 [NSNumber numberWithBool:NO], | 2102 [bar_ startPulsingBookmarkNode:inner]; |
2106 bookmark_button::kBookmarkPulseFlagKey, | 2103 EXPECT_TRUE([folder_button isContinuousPulsing]); |
2107 nil]; | 2104 [bar_ stopPulsingBookmarkNode]; |
2108 [[NSNotificationCenter defaultCenter] | 2105 EXPECT_FALSE([folder_button isContinuousPulsing]); |
2109 postNotificationName:bookmark_button::kPulseBookmarkButtonNotification | 2106 |
2110 object:nil | 2107 // Stop pulsing if the node moved. |
2111 userInfo:dict]; | 2108 [bar_ startPulsingBookmarkNode:inner]; |
2112 EXPECT_FALSE([button isContinuousPulsing]); | 2109 EXPECT_TRUE([folder_button isContinuousPulsing]); |
| 2110 const BookmarkNode* folder2 = |
| 2111 model->AddFolder(root, root->child_count(), ASCIIToUTF16("folder2")); |
| 2112 model->Move(inner, folder2, 0); |
| 2113 EXPECT_FALSE([folder_button isContinuousPulsing]); |
| 2114 |
| 2115 // Removing a pulsing folder is allowed. |
| 2116 [bar_ startPulsingBookmarkNode:inner]; |
| 2117 BookmarkButton* folder2_button = [[bar_ buttons] objectAtIndex:2]; |
| 2118 EXPECT_TRUE([folder2_button isContinuousPulsing]); |
| 2119 model->Remove(folder2); |
| 2120 EXPECT_FALSE([folder2_button isContinuousPulsing]); |
| 2121 [bar_ stopPulsingBookmarkNode]; // Should not crash. |
2113 } | 2122 } |
2114 | 2123 |
2115 TEST_F(BookmarkBarControllerDragDropTest, DragBookmarkDataToTrash) { | 2124 TEST_F(BookmarkBarControllerDragDropTest, DragBookmarkDataToTrash) { |
2116 BookmarkModel* model = BookmarkModelFactory::GetForProfile(profile()); | 2125 BookmarkModel* model = BookmarkModelFactory::GetForProfile(profile()); |
2117 const BookmarkNode* root = model->bookmark_bar_node(); | 2126 const BookmarkNode* root = model->bookmark_bar_node(); |
2118 const std::string model_string("1b 2f:[ 2f1b 2f2f:[ 2f2f1b 2f2f2b 2f2f3b ] " | 2127 const std::string model_string("1b 2f:[ 2f1b 2f2f:[ 2f2f1b 2f2f2b 2f2f3b ] " |
2119 "2f3b ] 3b 4b "); | 2128 "2f3b ] 3b 4b "); |
2120 bookmarks::test::AddNodesFromModelString(model, root, model_string); | 2129 bookmarks::test::AddNodesFromModelString(model, root, model_string); |
2121 | 2130 |
2122 // Validate initial model. | 2131 // Validate initial model. |
(...skipping 16 matching lines...) Expand all Loading... |
2139 "2f3b ] 4b "); | 2148 "2f3b ] 4b "); |
2140 actual = bookmarks::test::ModelStringFromNode(root); | 2149 actual = bookmarks::test::ModelStringFromNode(root); |
2141 EXPECT_EQ(expected, actual); | 2150 EXPECT_EQ(expected, actual); |
2142 | 2151 |
2143 // Verify that the other bookmark folder can't be deleted. | 2152 // Verify that the other bookmark folder can't be deleted. |
2144 BookmarkButton *otherButton = [bar_ otherBookmarksButton]; | 2153 BookmarkButton *otherButton = [bar_ otherBookmarksButton]; |
2145 EXPECT_FALSE([bar_ canDragBookmarkButtonToTrash:otherButton]); | 2154 EXPECT_FALSE([bar_ canDragBookmarkButtonToTrash:otherButton]); |
2146 } | 2155 } |
2147 | 2156 |
2148 } // namespace | 2157 } // namespace |
OLD | NEW |