OLD | NEW |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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 "components/bookmarks/browser/bookmark_utils.h" | 5 #include "components/bookmarks/browser/bookmark_utils.h" |
6 | 6 |
7 #include <vector> | 7 #include <vector> |
8 | 8 |
9 #include "base/message_loop/message_loop.h" | 9 #include "base/message_loop/message_loop.h" |
10 #include "base/strings/utf_string_conversions.h" | 10 #include "base/strings/utf_string_conversions.h" |
(...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
68 int grouped_changes_ended_count_; | 68 int grouped_changes_ended_count_; |
69 | 69 |
70 // Clipboard requires a message loop. | 70 // Clipboard requires a message loop. |
71 base::MessageLoopForUI loop_; | 71 base::MessageLoopForUI loop_; |
72 | 72 |
73 DISALLOW_COPY_AND_ASSIGN(BookmarkUtilsTest); | 73 DISALLOW_COPY_AND_ASSIGN(BookmarkUtilsTest); |
74 }; | 74 }; |
75 | 75 |
76 TEST_F(BookmarkUtilsTest, GetBookmarksMatchingPropertiesWordPhraseQuery) { | 76 TEST_F(BookmarkUtilsTest, GetBookmarksMatchingPropertiesWordPhraseQuery) { |
77 test::TestBookmarkClient client; | 77 test::TestBookmarkClient client; |
78 scoped_ptr<BookmarkModel> model(client.CreateModel()); | 78 scoped_ptr<BookmarkModel> model(client.CreateModel(false)); |
79 const BookmarkNode* node1 = model->AddURL(model->other_node(), | 79 const BookmarkNode* node1 = model->AddURL(model->other_node(), |
80 0, | 80 0, |
81 ASCIIToUTF16("foo bar"), | 81 ASCIIToUTF16("foo bar"), |
82 GURL("http://www.google.com")); | 82 GURL("http://www.google.com")); |
83 const BookmarkNode* node2 = model->AddURL(model->other_node(), | 83 const BookmarkNode* node2 = model->AddURL(model->other_node(), |
84 0, | 84 0, |
85 ASCIIToUTF16("baz buz"), | 85 ASCIIToUTF16("baz buz"), |
86 GURL("http://www.cnn.com")); | 86 GURL("http://www.cnn.com")); |
87 const BookmarkNode* folder1 = | 87 const BookmarkNode* folder1 = |
88 model->AddFolder(model->other_node(), 0, ASCIIToUTF16("foo")); | 88 model->AddFolder(model->other_node(), 0, ASCIIToUTF16("foo")); |
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
126 // Bookmark Bar and Other Bookmarks are not returned in search results. | 126 // Bookmark Bar and Other Bookmarks are not returned in search results. |
127 *query.word_phrase_query = ASCIIToUTF16("Bookmark"); | 127 *query.word_phrase_query = ASCIIToUTF16("Bookmark"); |
128 GetBookmarksMatchingProperties(model.get(), query, 100, string(), &nodes); | 128 GetBookmarksMatchingProperties(model.get(), query, 100, string(), &nodes); |
129 ASSERT_EQ(0U, nodes.size()); | 129 ASSERT_EQ(0U, nodes.size()); |
130 nodes.clear(); | 130 nodes.clear(); |
131 } | 131 } |
132 | 132 |
133 // Check exact matching against a URL query. | 133 // Check exact matching against a URL query. |
134 TEST_F(BookmarkUtilsTest, GetBookmarksMatchingPropertiesUrl) { | 134 TEST_F(BookmarkUtilsTest, GetBookmarksMatchingPropertiesUrl) { |
135 test::TestBookmarkClient client; | 135 test::TestBookmarkClient client; |
136 scoped_ptr<BookmarkModel> model(client.CreateModel()); | 136 scoped_ptr<BookmarkModel> model(client.CreateModel(false)); |
137 const BookmarkNode* node1 = model->AddURL(model->other_node(), | 137 const BookmarkNode* node1 = model->AddURL(model->other_node(), |
138 0, | 138 0, |
139 ASCIIToUTF16("Google"), | 139 ASCIIToUTF16("Google"), |
140 GURL("https://www.google.com/")); | 140 GURL("https://www.google.com/")); |
141 model->AddURL(model->other_node(), | 141 model->AddURL(model->other_node(), |
142 0, | 142 0, |
143 ASCIIToUTF16("Google Calendar"), | 143 ASCIIToUTF16("Google Calendar"), |
144 GURL("https://www.google.com/calendar")); | 144 GURL("https://www.google.com/calendar")); |
145 | 145 |
146 model->AddFolder(model->other_node(), 0, ASCIIToUTF16("Folder")); | 146 model->AddFolder(model->other_node(), 0, ASCIIToUTF16("Folder")); |
(...skipping 15 matching lines...) Expand all Loading... |
162 // Empty URL should not match folders. | 162 // Empty URL should not match folders. |
163 *query.url = ASCIIToUTF16(""); | 163 *query.url = ASCIIToUTF16(""); |
164 GetBookmarksMatchingProperties(model.get(), query, 100, string(), &nodes); | 164 GetBookmarksMatchingProperties(model.get(), query, 100, string(), &nodes); |
165 ASSERT_EQ(0U, nodes.size()); | 165 ASSERT_EQ(0U, nodes.size()); |
166 nodes.clear(); | 166 nodes.clear(); |
167 } | 167 } |
168 | 168 |
169 // Check exact matching against a title query. | 169 // Check exact matching against a title query. |
170 TEST_F(BookmarkUtilsTest, GetBookmarksMatchingPropertiesTitle) { | 170 TEST_F(BookmarkUtilsTest, GetBookmarksMatchingPropertiesTitle) { |
171 test::TestBookmarkClient client; | 171 test::TestBookmarkClient client; |
172 scoped_ptr<BookmarkModel> model(client.CreateModel()); | 172 scoped_ptr<BookmarkModel> model(client.CreateModel(false)); |
173 const BookmarkNode* node1 = model->AddURL(model->other_node(), | 173 const BookmarkNode* node1 = model->AddURL(model->other_node(), |
174 0, | 174 0, |
175 ASCIIToUTF16("Google"), | 175 ASCIIToUTF16("Google"), |
176 GURL("https://www.google.com/")); | 176 GURL("https://www.google.com/")); |
177 model->AddURL(model->other_node(), | 177 model->AddURL(model->other_node(), |
178 0, | 178 0, |
179 ASCIIToUTF16("Google Calendar"), | 179 ASCIIToUTF16("Google Calendar"), |
180 GURL("https://www.google.com/calendar")); | 180 GURL("https://www.google.com/calendar")); |
181 | 181 |
182 const BookmarkNode* folder1 = | 182 const BookmarkNode* folder1 = |
(...skipping 17 matching lines...) Expand all Loading... |
200 *query.title = ASCIIToUTF16("Folder"); | 200 *query.title = ASCIIToUTF16("Folder"); |
201 GetBookmarksMatchingProperties(model.get(), query, 100, string(), &nodes); | 201 GetBookmarksMatchingProperties(model.get(), query, 100, string(), &nodes); |
202 ASSERT_EQ(1U, nodes.size()); | 202 ASSERT_EQ(1U, nodes.size()); |
203 EXPECT_TRUE(nodes[0] == folder1); | 203 EXPECT_TRUE(nodes[0] == folder1); |
204 nodes.clear(); | 204 nodes.clear(); |
205 } | 205 } |
206 | 206 |
207 // Check matching against a query with multiple predicates. | 207 // Check matching against a query with multiple predicates. |
208 TEST_F(BookmarkUtilsTest, GetBookmarksMatchingPropertiesConjunction) { | 208 TEST_F(BookmarkUtilsTest, GetBookmarksMatchingPropertiesConjunction) { |
209 test::TestBookmarkClient client; | 209 test::TestBookmarkClient client; |
210 scoped_ptr<BookmarkModel> model(client.CreateModel()); | 210 scoped_ptr<BookmarkModel> model(client.CreateModel(false)); |
211 const BookmarkNode* node1 = model->AddURL(model->other_node(), | 211 const BookmarkNode* node1 = model->AddURL(model->other_node(), |
212 0, | 212 0, |
213 ASCIIToUTF16("Google"), | 213 ASCIIToUTF16("Google"), |
214 GURL("https://www.google.com/")); | 214 GURL("https://www.google.com/")); |
215 model->AddURL(model->other_node(), | 215 model->AddURL(model->other_node(), |
216 0, | 216 0, |
217 ASCIIToUTF16("Google Calendar"), | 217 ASCIIToUTF16("Google Calendar"), |
218 GURL("https://www.google.com/calendar")); | 218 GURL("https://www.google.com/calendar")); |
219 | 219 |
220 model->AddFolder(model->other_node(), 0, ASCIIToUTF16("Folder")); | 220 model->AddFolder(model->other_node(), 0, ASCIIToUTF16("Folder")); |
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
252 ASSERT_EQ(0U, nodes.size()); | 252 ASSERT_EQ(0U, nodes.size()); |
253 nodes.clear(); | 253 nodes.clear(); |
254 fields[i]->reset(original_value.release()); | 254 fields[i]->reset(original_value.release()); |
255 } | 255 } |
256 } | 256 } |
257 | 257 |
258 // Copy and paste is not yet supported on iOS. http://crbug.com/228147 | 258 // Copy and paste is not yet supported on iOS. http://crbug.com/228147 |
259 #if !defined(OS_IOS) | 259 #if !defined(OS_IOS) |
260 TEST_F(BookmarkUtilsTest, CopyPaste) { | 260 TEST_F(BookmarkUtilsTest, CopyPaste) { |
261 test::TestBookmarkClient client; | 261 test::TestBookmarkClient client; |
262 scoped_ptr<BookmarkModel> model(client.CreateModel()); | 262 scoped_ptr<BookmarkModel> model(client.CreateModel(false)); |
263 const BookmarkNode* node = model->AddURL(model->other_node(), | 263 const BookmarkNode* node = model->AddURL(model->other_node(), |
264 0, | 264 0, |
265 ASCIIToUTF16("foo bar"), | 265 ASCIIToUTF16("foo bar"), |
266 GURL("http://www.google.com")); | 266 GURL("http://www.google.com")); |
267 | 267 |
268 // Copy a node to the clipboard. | 268 // Copy a node to the clipboard. |
269 std::vector<const BookmarkNode*> nodes; | 269 std::vector<const BookmarkNode*> nodes; |
270 nodes.push_back(node); | 270 nodes.push_back(node); |
271 CopyToClipboard(model.get(), nodes, false); | 271 CopyToClipboard(model.get(), nodes, false); |
272 | 272 |
273 // And make sure we can paste a bookmark from the clipboard. | 273 // And make sure we can paste a bookmark from the clipboard. |
274 EXPECT_TRUE(CanPasteFromClipboard(model.get(), model->bookmark_bar_node())); | 274 EXPECT_TRUE(CanPasteFromClipboard(model.get(), model->bookmark_bar_node())); |
275 | 275 |
276 // Write some text to the clipboard. | 276 // Write some text to the clipboard. |
277 { | 277 { |
278 ui::ScopedClipboardWriter clipboard_writer( | 278 ui::ScopedClipboardWriter clipboard_writer( |
279 ui::Clipboard::GetForCurrentThread(), | 279 ui::Clipboard::GetForCurrentThread(), |
280 ui::CLIPBOARD_TYPE_COPY_PASTE); | 280 ui::CLIPBOARD_TYPE_COPY_PASTE); |
281 clipboard_writer.WriteText(ASCIIToUTF16("foo")); | 281 clipboard_writer.WriteText(ASCIIToUTF16("foo")); |
282 } | 282 } |
283 | 283 |
284 // Now we shouldn't be able to paste from the clipboard. | 284 // Now we shouldn't be able to paste from the clipboard. |
285 EXPECT_FALSE(CanPasteFromClipboard(model.get(), model->bookmark_bar_node())); | 285 EXPECT_FALSE(CanPasteFromClipboard(model.get(), model->bookmark_bar_node())); |
286 } | 286 } |
287 | 287 |
288 TEST_F(BookmarkUtilsTest, CopyPasteMetaInfo) { | 288 TEST_F(BookmarkUtilsTest, CopyPasteMetaInfo) { |
289 test::TestBookmarkClient client; | 289 test::TestBookmarkClient client; |
290 scoped_ptr<BookmarkModel> model(client.CreateModel()); | 290 scoped_ptr<BookmarkModel> model(client.CreateModel(false)); |
291 const BookmarkNode* node = model->AddURL(model->other_node(), | 291 const BookmarkNode* node = model->AddURL(model->other_node(), |
292 0, | 292 0, |
293 ASCIIToUTF16("foo bar"), | 293 ASCIIToUTF16("foo bar"), |
294 GURL("http://www.google.com")); | 294 GURL("http://www.google.com")); |
295 model->SetNodeMetaInfo(node, "somekey", "somevalue"); | 295 model->SetNodeMetaInfo(node, "somekey", "somevalue"); |
296 model->SetNodeMetaInfo(node, "someotherkey", "someothervalue"); | 296 model->SetNodeMetaInfo(node, "someotherkey", "someothervalue"); |
297 | 297 |
298 // Copy a node to the clipboard. | 298 // Copy a node to the clipboard. |
299 std::vector<const BookmarkNode*> nodes; | 299 std::vector<const BookmarkNode*> nodes; |
300 nodes.push_back(node); | 300 nodes.push_back(node); |
(...skipping 22 matching lines...) Expand all Loading... |
323 } | 323 } |
324 | 324 |
325 #if defined(OS_LINUX) || defined(OS_MACOSX) | 325 #if defined(OS_LINUX) || defined(OS_MACOSX) |
326 // http://crbug.com/396472 | 326 // http://crbug.com/396472 |
327 #define MAYBE_CutToClipboard DISABLED_CutToClipboard | 327 #define MAYBE_CutToClipboard DISABLED_CutToClipboard |
328 #else | 328 #else |
329 #define MAYBE_CutToClipboard CutToClipboard | 329 #define MAYBE_CutToClipboard CutToClipboard |
330 #endif | 330 #endif |
331 TEST_F(BookmarkUtilsTest, MAYBE_CutToClipboard) { | 331 TEST_F(BookmarkUtilsTest, MAYBE_CutToClipboard) { |
332 test::TestBookmarkClient client; | 332 test::TestBookmarkClient client; |
333 scoped_ptr<BookmarkModel> model(client.CreateModel()); | 333 scoped_ptr<BookmarkModel> model(client.CreateModel(false)); |
334 model->AddObserver(this); | 334 model->AddObserver(this); |
335 | 335 |
336 base::string16 title(ASCIIToUTF16("foo")); | 336 base::string16 title(ASCIIToUTF16("foo")); |
337 GURL url("http://foo.com"); | 337 GURL url("http://foo.com"); |
338 const BookmarkNode* n1 = model->AddURL(model->other_node(), 0, title, url); | 338 const BookmarkNode* n1 = model->AddURL(model->other_node(), 0, title, url); |
339 const BookmarkNode* n2 = model->AddURL(model->other_node(), 1, title, url); | 339 const BookmarkNode* n2 = model->AddURL(model->other_node(), 1, title, url); |
340 | 340 |
341 // Cut the nodes to the clipboard. | 341 // Cut the nodes to the clipboard. |
342 std::vector<const BookmarkNode*> nodes; | 342 std::vector<const BookmarkNode*> nodes; |
343 nodes.push_back(n1); | 343 nodes.push_back(n1); |
(...skipping 11 matching lines...) Expand all Loading... |
355 } | 355 } |
356 | 356 |
357 TEST_F(BookmarkUtilsTest, PasteNonEditableNodes) { | 357 TEST_F(BookmarkUtilsTest, PasteNonEditableNodes) { |
358 test::TestBookmarkClient client; | 358 test::TestBookmarkClient client; |
359 // Load a model with an extra node that is not editable. | 359 // Load a model with an extra node that is not editable. |
360 BookmarkPermanentNode* extra_node = new BookmarkPermanentNode(100); | 360 BookmarkPermanentNode* extra_node = new BookmarkPermanentNode(100); |
361 BookmarkPermanentNodeList extra_nodes; | 361 BookmarkPermanentNodeList extra_nodes; |
362 extra_nodes.push_back(extra_node); | 362 extra_nodes.push_back(extra_node); |
363 client.SetExtraNodesToLoad(extra_nodes.Pass()); | 363 client.SetExtraNodesToLoad(extra_nodes.Pass()); |
364 | 364 |
365 scoped_ptr<BookmarkModel> model(client.CreateModel()); | 365 scoped_ptr<BookmarkModel> model(client.CreateModel(false)); |
366 const BookmarkNode* node = model->AddURL(model->other_node(), | 366 const BookmarkNode* node = model->AddURL(model->other_node(), |
367 0, | 367 0, |
368 ASCIIToUTF16("foo bar"), | 368 ASCIIToUTF16("foo bar"), |
369 GURL("http://www.google.com")); | 369 GURL("http://www.google.com")); |
370 | 370 |
371 // Copy a node to the clipboard. | 371 // Copy a node to the clipboard. |
372 std::vector<const BookmarkNode*> nodes; | 372 std::vector<const BookmarkNode*> nodes; |
373 nodes.push_back(node); | 373 nodes.push_back(node); |
374 CopyToClipboard(model.get(), nodes, false); | 374 CopyToClipboard(model.get(), nodes, false); |
375 | 375 |
376 // And make sure we can paste a bookmark from the clipboard. | 376 // And make sure we can paste a bookmark from the clipboard. |
377 EXPECT_TRUE(CanPasteFromClipboard(model.get(), model->bookmark_bar_node())); | 377 EXPECT_TRUE(CanPasteFromClipboard(model.get(), model->bookmark_bar_node())); |
378 | 378 |
379 // But it can't be pasted into a non-editable folder. | 379 // But it can't be pasted into a non-editable folder. |
380 BookmarkClient* upcast = &client; | 380 BookmarkClient* upcast = &client; |
381 EXPECT_FALSE(upcast->CanBeEditedByUser(extra_node)); | 381 EXPECT_FALSE(upcast->CanBeEditedByUser(extra_node)); |
382 EXPECT_FALSE(CanPasteFromClipboard(model.get(), extra_node)); | 382 EXPECT_FALSE(CanPasteFromClipboard(model.get(), extra_node)); |
383 } | 383 } |
384 #endif // !defined(OS_IOS) | 384 #endif // !defined(OS_IOS) |
385 | 385 |
386 TEST_F(BookmarkUtilsTest, GetParentForNewNodes) { | 386 TEST_F(BookmarkUtilsTest, GetParentForNewNodes) { |
387 test::TestBookmarkClient client; | 387 test::TestBookmarkClient client; |
388 scoped_ptr<BookmarkModel> model(client.CreateModel()); | 388 scoped_ptr<BookmarkModel> model(client.CreateModel(false)); |
389 // This tests the case where selection contains one item and that item is a | 389 // This tests the case where selection contains one item and that item is a |
390 // folder. | 390 // folder. |
391 std::vector<const BookmarkNode*> nodes; | 391 std::vector<const BookmarkNode*> nodes; |
392 nodes.push_back(model->bookmark_bar_node()); | 392 nodes.push_back(model->bookmark_bar_node()); |
393 int index = -1; | 393 int index = -1; |
394 const BookmarkNode* real_parent = | 394 const BookmarkNode* real_parent = |
395 GetParentForNewNodes(model->bookmark_bar_node(), nodes, &index); | 395 GetParentForNewNodes(model->bookmark_bar_node(), nodes, &index); |
396 EXPECT_EQ(real_parent, model->bookmark_bar_node()); | 396 EXPECT_EQ(real_parent, model->bookmark_bar_node()); |
397 EXPECT_EQ(0, index); | 397 EXPECT_EQ(0, index); |
398 | 398 |
(...skipping 21 matching lines...) Expand all Loading... |
420 // This tests the case where selection doesn't contain any items. | 420 // This tests the case where selection doesn't contain any items. |
421 nodes.clear(); | 421 nodes.clear(); |
422 real_parent = GetParentForNewNodes(model->bookmark_bar_node(), nodes, &index); | 422 real_parent = GetParentForNewNodes(model->bookmark_bar_node(), nodes, &index); |
423 EXPECT_EQ(real_parent, model->bookmark_bar_node()); | 423 EXPECT_EQ(real_parent, model->bookmark_bar_node()); |
424 EXPECT_EQ(2, index); | 424 EXPECT_EQ(2, index); |
425 } | 425 } |
426 | 426 |
427 // Verifies that meta info is copied when nodes are cloned. | 427 // Verifies that meta info is copied when nodes are cloned. |
428 TEST_F(BookmarkUtilsTest, CloneMetaInfo) { | 428 TEST_F(BookmarkUtilsTest, CloneMetaInfo) { |
429 test::TestBookmarkClient client; | 429 test::TestBookmarkClient client; |
430 scoped_ptr<BookmarkModel> model(client.CreateModel()); | 430 scoped_ptr<BookmarkModel> model(client.CreateModel(false)); |
431 // Add a node containing meta info. | 431 // Add a node containing meta info. |
432 const BookmarkNode* node = model->AddURL(model->other_node(), | 432 const BookmarkNode* node = model->AddURL(model->other_node(), |
433 0, | 433 0, |
434 ASCIIToUTF16("foo bar"), | 434 ASCIIToUTF16("foo bar"), |
435 GURL("http://www.google.com")); | 435 GURL("http://www.google.com")); |
436 model->SetNodeMetaInfo(node, "somekey", "somevalue"); | 436 model->SetNodeMetaInfo(node, "somekey", "somevalue"); |
437 model->SetNodeMetaInfo(node, "someotherkey", "someothervalue"); | 437 model->SetNodeMetaInfo(node, "someotherkey", "someothervalue"); |
438 | 438 |
439 // Clone node to a different folder. | 439 // Clone node to a different folder. |
440 const BookmarkNode* folder = | 440 const BookmarkNode* folder = |
(...skipping 17 matching lines...) Expand all Loading... |
458 } | 458 } |
459 | 459 |
460 TEST_F(BookmarkUtilsTest, RemoveAllBookmarks) { | 460 TEST_F(BookmarkUtilsTest, RemoveAllBookmarks) { |
461 test::TestBookmarkClient client; | 461 test::TestBookmarkClient client; |
462 // Load a model with an extra node that is not editable. | 462 // Load a model with an extra node that is not editable. |
463 BookmarkPermanentNode* extra_node = new BookmarkPermanentNode(100); | 463 BookmarkPermanentNode* extra_node = new BookmarkPermanentNode(100); |
464 BookmarkPermanentNodeList extra_nodes; | 464 BookmarkPermanentNodeList extra_nodes; |
465 extra_nodes.push_back(extra_node); | 465 extra_nodes.push_back(extra_node); |
466 client.SetExtraNodesToLoad(extra_nodes.Pass()); | 466 client.SetExtraNodesToLoad(extra_nodes.Pass()); |
467 | 467 |
468 scoped_ptr<BookmarkModel> model(client.CreateModel()); | 468 scoped_ptr<BookmarkModel> model(client.CreateModel(false)); |
469 EXPECT_TRUE(model->bookmark_bar_node()->empty()); | 469 EXPECT_TRUE(model->bookmark_bar_node()->empty()); |
470 EXPECT_TRUE(model->other_node()->empty()); | 470 EXPECT_TRUE(model->other_node()->empty()); |
471 EXPECT_TRUE(model->mobile_node()->empty()); | 471 EXPECT_TRUE(model->mobile_node()->empty()); |
472 EXPECT_TRUE(extra_node->empty()); | 472 EXPECT_TRUE(extra_node->empty()); |
473 | 473 |
474 const base::string16 title = base::ASCIIToUTF16("Title"); | 474 const base::string16 title = base::ASCIIToUTF16("Title"); |
475 const GURL url("http://google.com"); | 475 const GURL url("http://google.com"); |
476 model->AddURL(model->bookmark_bar_node(), 0, title, url); | 476 model->AddURL(model->bookmark_bar_node(), 0, title, url); |
477 model->AddURL(model->other_node(), 0, title, url); | 477 model->AddURL(model->other_node(), 0, title, url); |
478 model->AddURL(model->mobile_node(), 0, title, url); | 478 model->AddURL(model->mobile_node(), 0, title, url); |
479 model->AddURL(extra_node, 0, title, url); | 479 model->AddURL(extra_node, 0, title, url); |
480 | 480 |
481 std::vector<const BookmarkNode*> nodes; | 481 std::vector<const BookmarkNode*> nodes; |
482 model->GetNodesByURL(url, &nodes); | 482 model->GetNodesByURL(url, &nodes); |
483 ASSERT_EQ(4u, nodes.size()); | 483 ASSERT_EQ(4u, nodes.size()); |
484 | 484 |
485 RemoveAllBookmarks(model.get(), url); | 485 RemoveAllBookmarks(model.get(), url); |
486 | 486 |
487 nodes.clear(); | 487 nodes.clear(); |
488 model->GetNodesByURL(url, &nodes); | 488 model->GetNodesByURL(url, &nodes); |
489 ASSERT_EQ(1u, nodes.size()); | 489 ASSERT_EQ(1u, nodes.size()); |
490 EXPECT_TRUE(model->bookmark_bar_node()->empty()); | 490 EXPECT_TRUE(model->bookmark_bar_node()->empty()); |
491 EXPECT_TRUE(model->other_node()->empty()); | 491 EXPECT_TRUE(model->other_node()->empty()); |
492 EXPECT_TRUE(model->mobile_node()->empty()); | 492 EXPECT_TRUE(model->mobile_node()->empty()); |
493 EXPECT_EQ(1, extra_node->child_count()); | 493 EXPECT_EQ(1, extra_node->child_count()); |
494 } | 494 } |
495 | 495 |
496 } // namespace | 496 } // namespace |
497 } // namespace bookmarks | 497 } // namespace bookmarks |
OLD | NEW |