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 #include "base/memory/scoped_ptr.h" | 5 #include "base/memory/scoped_ptr.h" |
6 #include "base/message_loop/message_loop.h" | 6 #include "base/message_loop/message_loop.h" |
7 #include "base/strings/string16.h" | 7 #include "base/strings/string16.h" |
8 #include "base/strings/utf_string_conversions.h" | 8 #include "base/strings/utf_string_conversions.h" |
9 #include "chrome/browser/bookmarks/bookmark_model.h" | 9 #include "chrome/browser/bookmarks/bookmark_model.h" |
10 #include "chrome/browser/bookmarks/bookmark_model_factory.h" | 10 #include "chrome/browser/bookmarks/bookmark_model_factory.h" |
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
57 ui::OSExchangeData data; | 57 ui::OSExchangeData data; |
58 data.SetURL(url, title); | 58 data.SetURL(url, title); |
59 | 59 |
60 BookmarkNodeData drag_data; | 60 BookmarkNodeData drag_data; |
61 EXPECT_TRUE(drag_data.Read(ui::OSExchangeData(CloneProvider(data)))); | 61 EXPECT_TRUE(drag_data.Read(ui::OSExchangeData(CloneProvider(data)))); |
62 EXPECT_TRUE(drag_data.is_valid()); | 62 EXPECT_TRUE(drag_data.is_valid()); |
63 ASSERT_EQ(1, drag_data.elements.size()); | 63 ASSERT_EQ(1, drag_data.elements.size()); |
64 EXPECT_TRUE(drag_data.elements[0].is_url); | 64 EXPECT_TRUE(drag_data.elements[0].is_url); |
65 EXPECT_EQ(url, drag_data.elements[0].url); | 65 EXPECT_EQ(url, drag_data.elements[0].url); |
66 EXPECT_EQ(title, drag_data.elements[0].title); | 66 EXPECT_EQ(title, drag_data.elements[0].title); |
| 67 EXPECT_TRUE(drag_data.elements[0].date_added.is_null()); |
| 68 EXPECT_TRUE(drag_data.elements[0].date_folder_modified.is_null()); |
67 EXPECT_EQ(0, drag_data.elements[0].children.size()); | 69 EXPECT_EQ(0, drag_data.elements[0].children.size()); |
68 } | 70 } |
69 | 71 |
70 TEST_F(BookmarkNodeDataTest, URL) { | 72 TEST_F(BookmarkNodeDataTest, URL) { |
71 // Write a single node representing a URL to the clipboard. | 73 // Write a single node representing a URL to the clipboard. |
72 TestingProfile profile; | 74 TestingProfile profile; |
73 profile.SetID(L"id"); | 75 profile.SetID(L"id"); |
74 profile.CreateBookmarkModel(false); | 76 profile.CreateBookmarkModel(false); |
75 BookmarkModel* model = BookmarkModelFactory::GetForProfile(&profile); | 77 BookmarkModel* model = BookmarkModelFactory::GetForProfile(&profile); |
76 ui_test_utils::WaitForBookmarkModelToLoad(model); | 78 ui_test_utils::WaitForBookmarkModelToLoad(model); |
77 const BookmarkNode* root = model->bookmark_bar_node(); | 79 const BookmarkNode* root = model->bookmark_bar_node(); |
78 GURL url(GURL("http://foo.com")); | 80 GURL url(GURL("http://foo.com")); |
79 const string16 title(ASCIIToUTF16("foo.com")); | 81 const string16 title(ASCIIToUTF16("foo.com")); |
80 const BookmarkNode* node = model->AddURL(root, 0, title, url); | 82 const BookmarkNode* node = model->AddURL(root, 0, title, url); |
81 BookmarkNodeData drag_data(node); | 83 BookmarkNodeData drag_data(node); |
82 EXPECT_TRUE(drag_data.is_valid()); | 84 EXPECT_TRUE(drag_data.is_valid()); |
83 ASSERT_EQ(1, drag_data.elements.size()); | 85 ASSERT_EQ(1, drag_data.elements.size()); |
84 EXPECT_TRUE(drag_data.elements[0].is_url); | 86 EXPECT_TRUE(drag_data.elements[0].is_url); |
85 EXPECT_EQ(url, drag_data.elements[0].url); | 87 EXPECT_EQ(url, drag_data.elements[0].url); |
86 EXPECT_EQ(title, drag_data.elements[0].title); | 88 EXPECT_EQ(title, drag_data.elements[0].title); |
| 89 EXPECT_EQ(node->date_added(), drag_data.elements[0].date_added); |
| 90 EXPECT_EQ(node->date_folder_modified(), |
| 91 drag_data.elements[0].date_folder_modified); |
87 ui::OSExchangeData data; | 92 ui::OSExchangeData data; |
88 drag_data.Write(&profile, &data); | 93 drag_data.Write(&profile, &data); |
89 | 94 |
90 // Now read the data back in. | 95 // Now read the data back in. |
91 ui::OSExchangeData data2(CloneProvider(data)); | 96 ui::OSExchangeData data2(CloneProvider(data)); |
92 BookmarkNodeData read_data; | 97 BookmarkNodeData read_data; |
93 EXPECT_TRUE(read_data.Read(data2)); | 98 EXPECT_TRUE(read_data.Read(data2)); |
94 EXPECT_TRUE(read_data.is_valid()); | 99 EXPECT_TRUE(read_data.is_valid()); |
95 ASSERT_EQ(1, read_data.elements.size()); | 100 ASSERT_EQ(1, read_data.elements.size()); |
96 EXPECT_TRUE(read_data.elements[0].is_url); | 101 EXPECT_TRUE(read_data.elements[0].is_url); |
97 EXPECT_EQ(url, read_data.elements[0].url); | 102 EXPECT_EQ(url, read_data.elements[0].url); |
98 EXPECT_EQ(title, read_data.elements[0].title); | 103 EXPECT_EQ(title, read_data.elements[0].title); |
| 104 EXPECT_TRUE(read_data.elements[0].date_added.is_null()); |
| 105 EXPECT_TRUE(read_data.elements[0].date_folder_modified.is_null()); |
99 EXPECT_TRUE(read_data.GetFirstNode(&profile) == node); | 106 EXPECT_TRUE(read_data.GetFirstNode(&profile) == node); |
100 | 107 |
101 // Make sure asking for the node with a different profile returns NULL. | 108 // Make sure asking for the node with a different profile returns NULL. |
102 TestingProfile profile2; | 109 TestingProfile profile2; |
103 EXPECT_TRUE(read_data.GetFirstNode(&profile2) == NULL); | 110 EXPECT_TRUE(read_data.GetFirstNode(&profile2) == NULL); |
104 | 111 |
105 // Writing should also put the URL and title on the clipboard. | 112 // Writing should also put the URL and title on the clipboard. |
106 GURL read_url; | 113 GURL read_url; |
107 string16 read_title; | 114 string16 read_title; |
108 EXPECT_TRUE(data2.GetURLAndTitle(&read_url, &read_title)); | 115 EXPECT_TRUE(data2.GetURLAndTitle(&read_url, &read_title)); |
(...skipping 13 matching lines...) Expand all Loading... |
122 const BookmarkNode* root = model->bookmark_bar_node(); | 129 const BookmarkNode* root = model->bookmark_bar_node(); |
123 const BookmarkNode* g1 = model->AddFolder(root, 0, ASCIIToUTF16("g1")); | 130 const BookmarkNode* g1 = model->AddFolder(root, 0, ASCIIToUTF16("g1")); |
124 const BookmarkNode* g11 = model->AddFolder(g1, 0, ASCIIToUTF16("g11")); | 131 const BookmarkNode* g11 = model->AddFolder(g1, 0, ASCIIToUTF16("g11")); |
125 const BookmarkNode* g12 = model->AddFolder(g1, 0, ASCIIToUTF16("g12")); | 132 const BookmarkNode* g12 = model->AddFolder(g1, 0, ASCIIToUTF16("g12")); |
126 | 133 |
127 BookmarkNodeData drag_data(g12); | 134 BookmarkNodeData drag_data(g12); |
128 EXPECT_TRUE(drag_data.is_valid()); | 135 EXPECT_TRUE(drag_data.is_valid()); |
129 ASSERT_EQ(1, drag_data.elements.size()); | 136 ASSERT_EQ(1, drag_data.elements.size()); |
130 EXPECT_EQ(g12->GetTitle(), drag_data.elements[0].title); | 137 EXPECT_EQ(g12->GetTitle(), drag_data.elements[0].title); |
131 EXPECT_FALSE(drag_data.elements[0].is_url); | 138 EXPECT_FALSE(drag_data.elements[0].is_url); |
| 139 EXPECT_EQ(g12->date_added(), drag_data.elements[0].date_added); |
| 140 EXPECT_EQ(g12->date_folder_modified(), |
| 141 drag_data.elements[0].date_folder_modified); |
132 | 142 |
133 ui::OSExchangeData data; | 143 ui::OSExchangeData data; |
134 drag_data.Write(&profile, &data); | 144 drag_data.Write(&profile, &data); |
135 | 145 |
136 // Now read the data back in. | 146 // Now read the data back in. |
137 ui::OSExchangeData data2(CloneProvider(data)); | 147 ui::OSExchangeData data2(CloneProvider(data)); |
138 BookmarkNodeData read_data; | 148 BookmarkNodeData read_data; |
139 EXPECT_TRUE(read_data.Read(data2)); | 149 EXPECT_TRUE(read_data.Read(data2)); |
140 EXPECT_TRUE(read_data.is_valid()); | 150 EXPECT_TRUE(read_data.is_valid()); |
141 ASSERT_EQ(1, read_data.elements.size()); | 151 ASSERT_EQ(1, read_data.elements.size()); |
142 EXPECT_EQ(g12->GetTitle(), read_data.elements[0].title); | 152 EXPECT_EQ(g12->GetTitle(), read_data.elements[0].title); |
143 EXPECT_FALSE(read_data.elements[0].is_url); | 153 EXPECT_FALSE(read_data.elements[0].is_url); |
| 154 EXPECT_TRUE(read_data.elements[0].date_added.is_null()); |
| 155 EXPECT_TRUE(read_data.elements[0].date_folder_modified.is_null()); |
144 | 156 |
145 // We should get back the same node when asking for the same profile. | 157 // We should get back the same node when asking for the same profile. |
146 const BookmarkNode* r_g12 = read_data.GetFirstNode(&profile); | 158 const BookmarkNode* r_g12 = read_data.GetFirstNode(&profile); |
147 EXPECT_TRUE(g12 == r_g12); | 159 EXPECT_TRUE(g12 == r_g12); |
148 | 160 |
149 // A different profile should return NULL for the node. | 161 // A different profile should return NULL for the node. |
150 TestingProfile profile2; | 162 TestingProfile profile2; |
151 EXPECT_TRUE(read_data.GetFirstNode(&profile2) == NULL); | 163 EXPECT_TRUE(read_data.GetFirstNode(&profile2) == NULL); |
152 } | 164 } |
153 | 165 |
(...skipping 24 matching lines...) Expand all Loading... |
178 BookmarkNodeData read_data; | 190 BookmarkNodeData read_data; |
179 EXPECT_TRUE(read_data.Read(data2)); | 191 EXPECT_TRUE(read_data.Read(data2)); |
180 ASSERT_EQ(1, read_data.elements.size()); | 192 ASSERT_EQ(1, read_data.elements.size()); |
181 ASSERT_EQ(1, read_data.elements[0].children.size()); | 193 ASSERT_EQ(1, read_data.elements[0].children.size()); |
182 const BookmarkNodeData::Element& read_child = | 194 const BookmarkNodeData::Element& read_child = |
183 read_data.elements[0].children[0]; | 195 read_data.elements[0].children[0]; |
184 | 196 |
185 EXPECT_TRUE(read_child.is_url); | 197 EXPECT_TRUE(read_child.is_url); |
186 EXPECT_EQ(title, read_child.title); | 198 EXPECT_EQ(title, read_child.title); |
187 EXPECT_EQ(url, read_child.url); | 199 EXPECT_EQ(url, read_child.url); |
| 200 EXPECT_TRUE(read_data.elements[0].date_added.is_null()); |
| 201 EXPECT_TRUE(read_data.elements[0].date_folder_modified.is_null()); |
188 EXPECT_TRUE(read_child.is_url); | 202 EXPECT_TRUE(read_child.is_url); |
189 | 203 |
190 // And make sure we get the node back. | 204 // And make sure we get the node back. |
191 const BookmarkNode* r_folder = read_data.GetFirstNode(&profile); | 205 const BookmarkNode* r_folder = read_data.GetFirstNode(&profile); |
192 EXPECT_TRUE(folder == r_folder); | 206 EXPECT_TRUE(folder == r_folder); |
193 } | 207 } |
194 | 208 |
195 // Tests reading/writing of multiple nodes. | 209 // Tests reading/writing of multiple nodes. |
196 TEST_F(BookmarkNodeDataTest, MultipleNodes) { | 210 TEST_F(BookmarkNodeDataTest, MultipleNodes) { |
197 TestingProfile profile; | 211 TestingProfile profile; |
(...skipping 19 matching lines...) Expand all Loading... |
217 ui::OSExchangeData data; | 231 ui::OSExchangeData data; |
218 drag_data.Write(&profile, &data); | 232 drag_data.Write(&profile, &data); |
219 | 233 |
220 // Read the data back in. | 234 // Read the data back in. |
221 ui::OSExchangeData data2(CloneProvider(data)); | 235 ui::OSExchangeData data2(CloneProvider(data)); |
222 BookmarkNodeData read_data; | 236 BookmarkNodeData read_data; |
223 EXPECT_TRUE(read_data.Read(data2)); | 237 EXPECT_TRUE(read_data.Read(data2)); |
224 EXPECT_TRUE(read_data.is_valid()); | 238 EXPECT_TRUE(read_data.is_valid()); |
225 ASSERT_EQ(2, read_data.elements.size()); | 239 ASSERT_EQ(2, read_data.elements.size()); |
226 ASSERT_EQ(1, read_data.elements[0].children.size()); | 240 ASSERT_EQ(1, read_data.elements[0].children.size()); |
| 241 EXPECT_TRUE(read_data.elements[0].date_added.is_null()); |
| 242 EXPECT_TRUE(read_data.elements[0].date_folder_modified.is_null()); |
227 | 243 |
228 const BookmarkNodeData::Element& read_folder = read_data.elements[0]; | 244 const BookmarkNodeData::Element& read_folder = read_data.elements[0]; |
229 EXPECT_FALSE(read_folder.is_url); | 245 EXPECT_FALSE(read_folder.is_url); |
230 EXPECT_EQ(L"g1", read_folder.title); | 246 EXPECT_EQ(L"g1", read_folder.title); |
231 EXPECT_EQ(1, read_folder.children.size()); | 247 EXPECT_EQ(1, read_folder.children.size()); |
232 | 248 |
233 const BookmarkNodeData::Element& read_url = read_data.elements[1]; | 249 const BookmarkNodeData::Element& read_url = read_data.elements[1]; |
234 EXPECT_TRUE(read_url.is_url); | 250 EXPECT_TRUE(read_url.is_url); |
235 EXPECT_EQ(title, read_url.title); | 251 EXPECT_EQ(title, read_url.title); |
236 EXPECT_EQ(0, read_url.children.size()); | 252 EXPECT_EQ(0, read_url.children.size()); |
237 | 253 |
238 // And make sure we get the node back. | 254 // And make sure we get the node back. |
239 std::vector<const BookmarkNode*> read_nodes = read_data.GetNodes(&profile); | 255 std::vector<const BookmarkNode*> read_nodes = read_data.GetNodes(&profile); |
240 ASSERT_EQ(2, read_nodes.size()); | 256 ASSERT_EQ(2, read_nodes.size()); |
241 EXPECT_TRUE(read_nodes[0] == folder); | 257 EXPECT_TRUE(read_nodes[0] == folder); |
242 EXPECT_TRUE(read_nodes[1] == url_node); | 258 EXPECT_TRUE(read_nodes[1] == url_node); |
243 | 259 |
244 // Asking for the first node should return NULL with more than one element | 260 // Asking for the first node should return NULL with more than one element |
245 // present. | 261 // present. |
246 EXPECT_TRUE(read_data.GetFirstNode(&profile) == NULL); | 262 EXPECT_TRUE(read_data.GetFirstNode(&profile) == NULL); |
247 } | 263 } |
OLD | NEW |