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 "chrome/browser/bookmarks/bookmark_model.h" | 5 #include "chrome/browser/bookmarks/bookmark_model.h" |
6 | 6 |
7 #include <set> | 7 #include <set> |
8 #include <string> | 8 #include <string> |
9 | 9 |
10 #include "base/base_paths.h" | 10 #include "base/base_paths.h" |
(...skipping 290 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
301 EXPECT_EQ(0, mobile_node->child_count()); | 301 EXPECT_EQ(0, mobile_node->child_count()); |
302 EXPECT_EQ(BookmarkNode::MOBILE, mobile_node->type()); | 302 EXPECT_EQ(BookmarkNode::MOBILE, mobile_node->type()); |
303 | 303 |
304 EXPECT_TRUE(bb_node->id() != other_node->id()); | 304 EXPECT_TRUE(bb_node->id() != other_node->id()); |
305 EXPECT_TRUE(bb_node->id() != mobile_node->id()); | 305 EXPECT_TRUE(bb_node->id() != mobile_node->id()); |
306 EXPECT_TRUE(other_node->id() != mobile_node->id()); | 306 EXPECT_TRUE(other_node->id() != mobile_node->id()); |
307 } | 307 } |
308 | 308 |
309 TEST_F(BookmarkModelTest, AddURL) { | 309 TEST_F(BookmarkModelTest, AddURL) { |
310 const BookmarkNode* root = model_.bookmark_bar_node(); | 310 const BookmarkNode* root = model_.bookmark_bar_node(); |
311 const string16 title(ASCIIToUTF16("foo")); | 311 const base::string16 title(ASCIIToUTF16("foo")); |
312 const GURL url("http://foo.com"); | 312 const GURL url("http://foo.com"); |
313 | 313 |
314 const BookmarkNode* new_node = model_.AddURL(root, 0, title, url); | 314 const BookmarkNode* new_node = model_.AddURL(root, 0, title, url); |
315 AssertObserverCount(1, 0, 0, 0, 0, 0, 0, 0, 0); | 315 AssertObserverCount(1, 0, 0, 0, 0, 0, 0, 0, 0); |
316 observer_details_.ExpectEquals(root, NULL, 0, -1); | 316 observer_details_.ExpectEquals(root, NULL, 0, -1); |
317 | 317 |
318 ASSERT_EQ(1, root->child_count()); | 318 ASSERT_EQ(1, root->child_count()); |
319 ASSERT_EQ(title, new_node->GetTitle()); | 319 ASSERT_EQ(title, new_node->GetTitle()); |
320 ASSERT_TRUE(url == new_node->url()); | 320 ASSERT_TRUE(url == new_node->url()); |
321 ASSERT_EQ(BookmarkNode::URL, new_node->type()); | 321 ASSERT_EQ(BookmarkNode::URL, new_node->type()); |
322 ASSERT_TRUE(new_node == model_.GetMostRecentlyAddedNodeForURL(url)); | 322 ASSERT_TRUE(new_node == model_.GetMostRecentlyAddedNodeForURL(url)); |
323 | 323 |
324 EXPECT_TRUE(new_node->id() != root->id() && | 324 EXPECT_TRUE(new_node->id() != root->id() && |
325 new_node->id() != model_.other_node()->id() && | 325 new_node->id() != model_.other_node()->id() && |
326 new_node->id() != model_.mobile_node()->id()); | 326 new_node->id() != model_.mobile_node()->id()); |
327 } | 327 } |
328 | 328 |
329 TEST_F(BookmarkModelTest, AddURLWithUnicodeTitle) { | 329 TEST_F(BookmarkModelTest, AddURLWithUnicodeTitle) { |
330 const BookmarkNode* root = model_.bookmark_bar_node(); | 330 const BookmarkNode* root = model_.bookmark_bar_node(); |
331 const string16 title(WideToUTF16( | 331 const base::string16 title(WideToUTF16( |
332 L"\u767e\u5ea6\u4e00\u4e0b\uff0c\u4f60\u5c31\u77e5\u9053")); | 332 L"\u767e\u5ea6\u4e00\u4e0b\uff0c\u4f60\u5c31\u77e5\u9053")); |
333 const GURL url("https://www.baidu.com/"); | 333 const GURL url("https://www.baidu.com/"); |
334 | 334 |
335 const BookmarkNode* new_node = model_.AddURL(root, 0, title, url); | 335 const BookmarkNode* new_node = model_.AddURL(root, 0, title, url); |
336 AssertObserverCount(1, 0, 0, 0, 0, 0, 0, 0, 0); | 336 AssertObserverCount(1, 0, 0, 0, 0, 0, 0, 0, 0); |
337 observer_details_.ExpectEquals(root, NULL, 0, -1); | 337 observer_details_.ExpectEquals(root, NULL, 0, -1); |
338 | 338 |
339 ASSERT_EQ(1, root->child_count()); | 339 ASSERT_EQ(1, root->child_count()); |
340 ASSERT_EQ(title, new_node->GetTitle()); | 340 ASSERT_EQ(title, new_node->GetTitle()); |
341 ASSERT_TRUE(url == new_node->url()); | 341 ASSERT_TRUE(url == new_node->url()); |
342 ASSERT_EQ(BookmarkNode::URL, new_node->type()); | 342 ASSERT_EQ(BookmarkNode::URL, new_node->type()); |
343 ASSERT_TRUE(new_node == model_.GetMostRecentlyAddedNodeForURL(url)); | 343 ASSERT_TRUE(new_node == model_.GetMostRecentlyAddedNodeForURL(url)); |
344 | 344 |
345 EXPECT_TRUE(new_node->id() != root->id() && | 345 EXPECT_TRUE(new_node->id() != root->id() && |
346 new_node->id() != model_.other_node()->id() && | 346 new_node->id() != model_.other_node()->id() && |
347 new_node->id() != model_.mobile_node()->id()); | 347 new_node->id() != model_.mobile_node()->id()); |
348 } | 348 } |
349 | 349 |
350 TEST_F(BookmarkModelTest, AddURLWithWhitespaceTitle) { | 350 TEST_F(BookmarkModelTest, AddURLWithWhitespaceTitle) { |
351 for (size_t i = 0; i < ARRAYSIZE_UNSAFE(url_whitespace_test_cases); ++i) { | 351 for (size_t i = 0; i < ARRAYSIZE_UNSAFE(url_whitespace_test_cases); ++i) { |
352 const BookmarkNode* root = model_.bookmark_bar_node(); | 352 const BookmarkNode* root = model_.bookmark_bar_node(); |
353 const string16 title( | 353 const base::string16 title( |
354 ASCIIToUTF16(url_whitespace_test_cases[i].input_title)); | 354 ASCIIToUTF16(url_whitespace_test_cases[i].input_title)); |
355 const GURL url("http://foo.com"); | 355 const GURL url("http://foo.com"); |
356 | 356 |
357 const BookmarkNode* new_node = model_.AddURL(root, i, title, url); | 357 const BookmarkNode* new_node = model_.AddURL(root, i, title, url); |
358 | 358 |
359 int size = i + 1; | 359 int size = i + 1; |
360 EXPECT_EQ(size, root->child_count()); | 360 EXPECT_EQ(size, root->child_count()); |
361 EXPECT_EQ(ASCIIToUTF16(url_whitespace_test_cases[i].expected_title), | 361 EXPECT_EQ(ASCIIToUTF16(url_whitespace_test_cases[i].expected_title), |
362 new_node->GetTitle()); | 362 new_node->GetTitle()); |
363 EXPECT_EQ(BookmarkNode::URL, new_node->type()); | 363 EXPECT_EQ(BookmarkNode::URL, new_node->type()); |
364 } | 364 } |
365 } | 365 } |
366 | 366 |
367 TEST_F(BookmarkModelTest, AddURLToMobileBookmarks) { | 367 TEST_F(BookmarkModelTest, AddURLToMobileBookmarks) { |
368 const BookmarkNode* root = model_.mobile_node(); | 368 const BookmarkNode* root = model_.mobile_node(); |
369 const string16 title(ASCIIToUTF16("foo")); | 369 const base::string16 title(ASCIIToUTF16("foo")); |
370 const GURL url("http://foo.com"); | 370 const GURL url("http://foo.com"); |
371 | 371 |
372 const BookmarkNode* new_node = model_.AddURL(root, 0, title, url); | 372 const BookmarkNode* new_node = model_.AddURL(root, 0, title, url); |
373 AssertObserverCount(1, 0, 0, 0, 0, 0, 0, 0, 0); | 373 AssertObserverCount(1, 0, 0, 0, 0, 0, 0, 0, 0); |
374 observer_details_.ExpectEquals(root, NULL, 0, -1); | 374 observer_details_.ExpectEquals(root, NULL, 0, -1); |
375 | 375 |
376 ASSERT_EQ(1, root->child_count()); | 376 ASSERT_EQ(1, root->child_count()); |
377 ASSERT_EQ(title, new_node->GetTitle()); | 377 ASSERT_EQ(title, new_node->GetTitle()); |
378 ASSERT_TRUE(url == new_node->url()); | 378 ASSERT_TRUE(url == new_node->url()); |
379 ASSERT_EQ(BookmarkNode::URL, new_node->type()); | 379 ASSERT_EQ(BookmarkNode::URL, new_node->type()); |
380 ASSERT_TRUE(new_node == model_.GetMostRecentlyAddedNodeForURL(url)); | 380 ASSERT_TRUE(new_node == model_.GetMostRecentlyAddedNodeForURL(url)); |
381 | 381 |
382 EXPECT_TRUE(new_node->id() != root->id() && | 382 EXPECT_TRUE(new_node->id() != root->id() && |
383 new_node->id() != model_.other_node()->id() && | 383 new_node->id() != model_.other_node()->id() && |
384 new_node->id() != model_.mobile_node()->id()); | 384 new_node->id() != model_.mobile_node()->id()); |
385 } | 385 } |
386 | 386 |
387 TEST_F(BookmarkModelTest, AddFolder) { | 387 TEST_F(BookmarkModelTest, AddFolder) { |
388 const BookmarkNode* root = model_.bookmark_bar_node(); | 388 const BookmarkNode* root = model_.bookmark_bar_node(); |
389 const string16 title(ASCIIToUTF16("foo")); | 389 const base::string16 title(ASCIIToUTF16("foo")); |
390 | 390 |
391 const BookmarkNode* new_node = model_.AddFolder(root, 0, title); | 391 const BookmarkNode* new_node = model_.AddFolder(root, 0, title); |
392 AssertObserverCount(1, 0, 0, 0, 0, 0, 0, 0, 0); | 392 AssertObserverCount(1, 0, 0, 0, 0, 0, 0, 0, 0); |
393 observer_details_.ExpectEquals(root, NULL, 0, -1); | 393 observer_details_.ExpectEquals(root, NULL, 0, -1); |
394 | 394 |
395 ASSERT_EQ(1, root->child_count()); | 395 ASSERT_EQ(1, root->child_count()); |
396 ASSERT_EQ(title, new_node->GetTitle()); | 396 ASSERT_EQ(title, new_node->GetTitle()); |
397 ASSERT_EQ(BookmarkNode::FOLDER, new_node->type()); | 397 ASSERT_EQ(BookmarkNode::FOLDER, new_node->type()); |
398 | 398 |
399 EXPECT_TRUE(new_node->id() != root->id() && | 399 EXPECT_TRUE(new_node->id() != root->id() && |
400 new_node->id() != model_.other_node()->id() && | 400 new_node->id() != model_.other_node()->id() && |
401 new_node->id() != model_.mobile_node()->id()); | 401 new_node->id() != model_.mobile_node()->id()); |
402 | 402 |
403 // Add another folder, just to make sure folder_ids are incremented correctly. | 403 // Add another folder, just to make sure folder_ids are incremented correctly. |
404 ClearCounts(); | 404 ClearCounts(); |
405 model_.AddFolder(root, 0, title); | 405 model_.AddFolder(root, 0, title); |
406 AssertObserverCount(1, 0, 0, 0, 0, 0, 0, 0, 0); | 406 AssertObserverCount(1, 0, 0, 0, 0, 0, 0, 0, 0); |
407 observer_details_.ExpectEquals(root, NULL, 0, -1); | 407 observer_details_.ExpectEquals(root, NULL, 0, -1); |
408 } | 408 } |
409 | 409 |
410 TEST_F(BookmarkModelTest, AddFolderWithWhitespaceTitle) { | 410 TEST_F(BookmarkModelTest, AddFolderWithWhitespaceTitle) { |
411 for (size_t i = 0; i < ARRAYSIZE_UNSAFE(title_whitespace_test_cases); ++i) { | 411 for (size_t i = 0; i < ARRAYSIZE_UNSAFE(title_whitespace_test_cases); ++i) { |
412 const BookmarkNode* root = model_.bookmark_bar_node(); | 412 const BookmarkNode* root = model_.bookmark_bar_node(); |
413 const string16 title( | 413 const base::string16 title( |
414 ASCIIToUTF16(title_whitespace_test_cases[i].input_title)); | 414 ASCIIToUTF16(title_whitespace_test_cases[i].input_title)); |
415 | 415 |
416 const BookmarkNode* new_node = model_.AddFolder(root, i, title); | 416 const BookmarkNode* new_node = model_.AddFolder(root, i, title); |
417 | 417 |
418 int size = i + 1; | 418 int size = i + 1; |
419 EXPECT_EQ(size, root->child_count()); | 419 EXPECT_EQ(size, root->child_count()); |
420 EXPECT_EQ(ASCIIToUTF16(title_whitespace_test_cases[i].expected_title), | 420 EXPECT_EQ(ASCIIToUTF16(title_whitespace_test_cases[i].expected_title), |
421 new_node->GetTitle()); | 421 new_node->GetTitle()); |
422 EXPECT_EQ(BookmarkNode::FOLDER, new_node->type()); | 422 EXPECT_EQ(BookmarkNode::FOLDER, new_node->type()); |
423 } | 423 } |
424 } | 424 } |
425 | 425 |
426 TEST_F(BookmarkModelTest, RemoveURL) { | 426 TEST_F(BookmarkModelTest, RemoveURL) { |
427 const BookmarkNode* root = model_.bookmark_bar_node(); | 427 const BookmarkNode* root = model_.bookmark_bar_node(); |
428 const string16 title(ASCIIToUTF16("foo")); | 428 const base::string16 title(ASCIIToUTF16("foo")); |
429 const GURL url("http://foo.com"); | 429 const GURL url("http://foo.com"); |
430 model_.AddURL(root, 0, title, url); | 430 model_.AddURL(root, 0, title, url); |
431 ClearCounts(); | 431 ClearCounts(); |
432 | 432 |
433 model_.Remove(root, 0); | 433 model_.Remove(root, 0); |
434 ASSERT_EQ(0, root->child_count()); | 434 ASSERT_EQ(0, root->child_count()); |
435 AssertObserverCount(0, 0, 1, 0, 0, 1, 0, 0, 0); | 435 AssertObserverCount(0, 0, 1, 0, 0, 1, 0, 0, 0); |
436 observer_details_.ExpectEquals(root, NULL, 0, -1); | 436 observer_details_.ExpectEquals(root, NULL, 0, -1); |
437 | 437 |
438 // Make sure there is no mapping for the URL. | 438 // Make sure there is no mapping for the URL. |
439 ASSERT_TRUE(model_.GetMostRecentlyAddedNodeForURL(url) == NULL); | 439 ASSERT_TRUE(model_.GetMostRecentlyAddedNodeForURL(url) == NULL); |
440 } | 440 } |
441 | 441 |
442 TEST_F(BookmarkModelTest, RemoveFolder) { | 442 TEST_F(BookmarkModelTest, RemoveFolder) { |
443 const BookmarkNode* root = model_.bookmark_bar_node(); | 443 const BookmarkNode* root = model_.bookmark_bar_node(); |
444 const BookmarkNode* folder = model_.AddFolder(root, 0, ASCIIToUTF16("foo")); | 444 const BookmarkNode* folder = model_.AddFolder(root, 0, ASCIIToUTF16("foo")); |
445 | 445 |
446 ClearCounts(); | 446 ClearCounts(); |
447 | 447 |
448 // Add a URL as a child. | 448 // Add a URL as a child. |
449 const string16 title(ASCIIToUTF16("foo")); | 449 const base::string16 title(ASCIIToUTF16("foo")); |
450 const GURL url("http://foo.com"); | 450 const GURL url("http://foo.com"); |
451 model_.AddURL(folder, 0, title, url); | 451 model_.AddURL(folder, 0, title, url); |
452 | 452 |
453 ClearCounts(); | 453 ClearCounts(); |
454 | 454 |
455 // Now remove the folder. | 455 // Now remove the folder. |
456 model_.Remove(root, 0); | 456 model_.Remove(root, 0); |
457 ASSERT_EQ(0, root->child_count()); | 457 ASSERT_EQ(0, root->child_count()); |
458 AssertObserverCount(0, 0, 1, 0, 0, 1, 0, 0, 0); | 458 AssertObserverCount(0, 0, 1, 0, 0, 1, 0, 0, 0); |
459 observer_details_.ExpectEquals(root, NULL, 0, -1); | 459 observer_details_.ExpectEquals(root, NULL, 0, -1); |
460 | 460 |
461 // Make sure there is no mapping for the URL. | 461 // Make sure there is no mapping for the URL. |
462 ASSERT_TRUE(model_.GetMostRecentlyAddedNodeForURL(url) == NULL); | 462 ASSERT_TRUE(model_.GetMostRecentlyAddedNodeForURL(url) == NULL); |
463 } | 463 } |
464 | 464 |
465 TEST_F(BookmarkModelTest, RemoveAll) { | 465 TEST_F(BookmarkModelTest, RemoveAll) { |
466 const BookmarkNode* bookmark_bar_node = model_.bookmark_bar_node(); | 466 const BookmarkNode* bookmark_bar_node = model_.bookmark_bar_node(); |
467 | 467 |
468 ClearCounts(); | 468 ClearCounts(); |
469 | 469 |
470 // Add a url to bookmark bar. | 470 // Add a url to bookmark bar. |
471 string16 title(ASCIIToUTF16("foo")); | 471 base::string16 title(ASCIIToUTF16("foo")); |
472 GURL url("http://foo.com"); | 472 GURL url("http://foo.com"); |
473 model_.AddURL(bookmark_bar_node, 0, title, url); | 473 model_.AddURL(bookmark_bar_node, 0, title, url); |
474 | 474 |
475 // Add a folder with child URL. | 475 // Add a folder with child URL. |
476 const BookmarkNode* folder = model_.AddFolder(bookmark_bar_node, 0, title); | 476 const BookmarkNode* folder = model_.AddFolder(bookmark_bar_node, 0, title); |
477 model_.AddURL(folder, 0, title, url); | 477 model_.AddURL(folder, 0, title, url); |
478 | 478 |
479 AssertObserverCount(3, 0, 0, 0, 0, 0, 0, 0, 0); | 479 AssertObserverCount(3, 0, 0, 0, 0, 0, 0, 0, 0); |
480 ClearCounts(); | 480 ClearCounts(); |
481 | 481 |
482 model_.RemoveAll(); | 482 model_.RemoveAll(); |
483 | 483 |
484 EXPECT_EQ(0, bookmark_bar_node->child_count()); | 484 EXPECT_EQ(0, bookmark_bar_node->child_count()); |
485 // No individual BookmarkNodeRemoved events are fired, so removed count | 485 // No individual BookmarkNodeRemoved events are fired, so removed count |
486 // should be 0. | 486 // should be 0. |
487 AssertObserverCount(0, 0, 0, 0, 0, 0, 0, 0, 1); | 487 AssertObserverCount(0, 0, 0, 0, 0, 0, 0, 0, 1); |
488 AssertExtensiveChangesObserverCount(1, 1); | 488 AssertExtensiveChangesObserverCount(1, 1); |
489 EXPECT_EQ(1, AllNodesRemovedObserverCount()); | 489 EXPECT_EQ(1, AllNodesRemovedObserverCount()); |
490 } | 490 } |
491 | 491 |
492 TEST_F(BookmarkModelTest, SetTitle) { | 492 TEST_F(BookmarkModelTest, SetTitle) { |
493 const BookmarkNode* root = model_.bookmark_bar_node(); | 493 const BookmarkNode* root = model_.bookmark_bar_node(); |
494 string16 title(ASCIIToUTF16("foo")); | 494 base::string16 title(ASCIIToUTF16("foo")); |
495 const GURL url("http://foo.com"); | 495 const GURL url("http://foo.com"); |
496 const BookmarkNode* node = model_.AddURL(root, 0, title, url); | 496 const BookmarkNode* node = model_.AddURL(root, 0, title, url); |
497 | 497 |
498 ClearCounts(); | 498 ClearCounts(); |
499 | 499 |
500 title = ASCIIToUTF16("foo2"); | 500 title = ASCIIToUTF16("foo2"); |
501 model_.SetTitle(node, title); | 501 model_.SetTitle(node, title); |
502 AssertObserverCount(0, 0, 0, 1, 0, 0, 1, 0, 0); | 502 AssertObserverCount(0, 0, 0, 1, 0, 0, 1, 0, 0); |
503 observer_details_.ExpectEquals(node, NULL, -1, -1); | 503 observer_details_.ExpectEquals(node, NULL, -1, -1); |
504 EXPECT_EQ(title, node->GetTitle()); | 504 EXPECT_EQ(title, node->GetTitle()); |
505 } | 505 } |
506 | 506 |
507 TEST_F(BookmarkModelTest, SetTitleWithWhitespace) { | 507 TEST_F(BookmarkModelTest, SetTitleWithWhitespace) { |
508 for (size_t i = 0; i < ARRAYSIZE_UNSAFE(title_whitespace_test_cases); ++i) { | 508 for (size_t i = 0; i < ARRAYSIZE_UNSAFE(title_whitespace_test_cases); ++i) { |
509 const BookmarkNode* root = model_.bookmark_bar_node(); | 509 const BookmarkNode* root = model_.bookmark_bar_node(); |
510 string16 title(ASCIIToUTF16("dummy")); | 510 base::string16 title(ASCIIToUTF16("dummy")); |
511 const GURL url("http://foo.com"); | 511 const GURL url("http://foo.com"); |
512 const BookmarkNode* node = model_.AddURL(root, 0, title, url); | 512 const BookmarkNode* node = model_.AddURL(root, 0, title, url); |
513 | 513 |
514 title = ASCIIToUTF16(title_whitespace_test_cases[i].input_title); | 514 title = ASCIIToUTF16(title_whitespace_test_cases[i].input_title); |
515 model_.SetTitle(node, title); | 515 model_.SetTitle(node, title); |
516 EXPECT_EQ(ASCIIToUTF16(title_whitespace_test_cases[i].expected_title), | 516 EXPECT_EQ(ASCIIToUTF16(title_whitespace_test_cases[i].expected_title), |
517 node->GetTitle()); | 517 node->GetTitle()); |
518 } | 518 } |
519 } | 519 } |
520 | 520 |
521 TEST_F(BookmarkModelTest, SetURL) { | 521 TEST_F(BookmarkModelTest, SetURL) { |
522 const BookmarkNode* root = model_.bookmark_bar_node(); | 522 const BookmarkNode* root = model_.bookmark_bar_node(); |
523 const string16 title(ASCIIToUTF16("foo")); | 523 const base::string16 title(ASCIIToUTF16("foo")); |
524 GURL url("http://foo.com"); | 524 GURL url("http://foo.com"); |
525 const BookmarkNode* node = model_.AddURL(root, 0, title, url); | 525 const BookmarkNode* node = model_.AddURL(root, 0, title, url); |
526 | 526 |
527 ClearCounts(); | 527 ClearCounts(); |
528 | 528 |
529 url = GURL("http://foo2.com"); | 529 url = GURL("http://foo2.com"); |
530 model_.SetURL(node, url); | 530 model_.SetURL(node, url); |
531 AssertObserverCount(0, 0, 0, 1, 0, 0, 1, 0, 0); | 531 AssertObserverCount(0, 0, 0, 1, 0, 0, 1, 0, 0); |
532 observer_details_.ExpectEquals(node, NULL, -1, -1); | 532 observer_details_.ExpectEquals(node, NULL, -1, -1); |
533 EXPECT_EQ(url, node->url()); | 533 EXPECT_EQ(url, node->url()); |
534 } | 534 } |
535 | 535 |
536 TEST_F(BookmarkModelTest, SetDateAdded) { | 536 TEST_F(BookmarkModelTest, SetDateAdded) { |
537 const BookmarkNode* root = model_.bookmark_bar_node(); | 537 const BookmarkNode* root = model_.bookmark_bar_node(); |
538 const string16 title(ASCIIToUTF16("foo")); | 538 const base::string16 title(ASCIIToUTF16("foo")); |
539 GURL url("http://foo.com"); | 539 GURL url("http://foo.com"); |
540 const BookmarkNode* node = model_.AddURL(root, 0, title, url); | 540 const BookmarkNode* node = model_.AddURL(root, 0, title, url); |
541 | 541 |
542 ClearCounts(); | 542 ClearCounts(); |
543 | 543 |
544 base::Time new_time = base::Time::Now() + base::TimeDelta::FromMinutes(20); | 544 base::Time new_time = base::Time::Now() + base::TimeDelta::FromMinutes(20); |
545 model_.SetDateAdded(node, new_time); | 545 model_.SetDateAdded(node, new_time); |
546 AssertObserverCount(0, 0, 0, 0, 0, 0, 0, 0, 0); | 546 AssertObserverCount(0, 0, 0, 0, 0, 0, 0, 0, 0); |
547 EXPECT_EQ(new_time, node->date_added()); | 547 EXPECT_EQ(new_time, node->date_added()); |
548 EXPECT_EQ(new_time, model_.bookmark_bar_node()->date_folder_modified()); | 548 EXPECT_EQ(new_time, model_.bookmark_bar_node()->date_folder_modified()); |
549 } | 549 } |
550 | 550 |
551 TEST_F(BookmarkModelTest, Move) { | 551 TEST_F(BookmarkModelTest, Move) { |
552 const BookmarkNode* root = model_.bookmark_bar_node(); | 552 const BookmarkNode* root = model_.bookmark_bar_node(); |
553 const string16 title(ASCIIToUTF16("foo")); | 553 const base::string16 title(ASCIIToUTF16("foo")); |
554 const GURL url("http://foo.com"); | 554 const GURL url("http://foo.com"); |
555 const BookmarkNode* node = model_.AddURL(root, 0, title, url); | 555 const BookmarkNode* node = model_.AddURL(root, 0, title, url); |
556 const BookmarkNode* folder1 = model_.AddFolder(root, 0, ASCIIToUTF16("foo")); | 556 const BookmarkNode* folder1 = model_.AddFolder(root, 0, ASCIIToUTF16("foo")); |
557 ClearCounts(); | 557 ClearCounts(); |
558 | 558 |
559 model_.Move(node, folder1, 0); | 559 model_.Move(node, folder1, 0); |
560 | 560 |
561 AssertObserverCount(0, 1, 0, 0, 0, 0, 0, 0, 0); | 561 AssertObserverCount(0, 1, 0, 0, 0, 0, 0, 0, 0); |
562 observer_details_.ExpectEquals(root, folder1, 1, 0); | 562 observer_details_.ExpectEquals(root, folder1, 1, 0); |
563 EXPECT_TRUE(folder1 == node->parent()); | 563 EXPECT_TRUE(folder1 == node->parent()); |
564 EXPECT_EQ(1, root->child_count()); | 564 EXPECT_EQ(1, root->child_count()); |
565 EXPECT_EQ(folder1, root->GetChild(0)); | 565 EXPECT_EQ(folder1, root->GetChild(0)); |
566 EXPECT_EQ(1, folder1->child_count()); | 566 EXPECT_EQ(1, folder1->child_count()); |
567 EXPECT_EQ(node, folder1->GetChild(0)); | 567 EXPECT_EQ(node, folder1->GetChild(0)); |
568 | 568 |
569 // And remove the folder. | 569 // And remove the folder. |
570 ClearCounts(); | 570 ClearCounts(); |
571 model_.Remove(root, 0); | 571 model_.Remove(root, 0); |
572 AssertObserverCount(0, 0, 1, 0, 0, 1, 0, 0, 0); | 572 AssertObserverCount(0, 0, 1, 0, 0, 1, 0, 0, 0); |
573 observer_details_.ExpectEquals(root, NULL, 0, -1); | 573 observer_details_.ExpectEquals(root, NULL, 0, -1); |
574 EXPECT_TRUE(model_.GetMostRecentlyAddedNodeForURL(url) == NULL); | 574 EXPECT_TRUE(model_.GetMostRecentlyAddedNodeForURL(url) == NULL); |
575 EXPECT_EQ(0, root->child_count()); | 575 EXPECT_EQ(0, root->child_count()); |
576 } | 576 } |
577 | 577 |
578 TEST_F(BookmarkModelTest, NonMovingMoveCall) { | 578 TEST_F(BookmarkModelTest, NonMovingMoveCall) { |
579 const BookmarkNode* root = model_.bookmark_bar_node(); | 579 const BookmarkNode* root = model_.bookmark_bar_node(); |
580 const string16 title(ASCIIToUTF16("foo")); | 580 const base::string16 title(ASCIIToUTF16("foo")); |
581 const GURL url("http://foo.com"); | 581 const GURL url("http://foo.com"); |
582 const base::Time old_date(base::Time::Now() - base::TimeDelta::FromDays(1)); | 582 const base::Time old_date(base::Time::Now() - base::TimeDelta::FromDays(1)); |
583 | 583 |
584 const BookmarkNode* node = model_.AddURL(root, 0, title, url); | 584 const BookmarkNode* node = model_.AddURL(root, 0, title, url); |
585 model_.SetDateFolderModified(root, old_date); | 585 model_.SetDateFolderModified(root, old_date); |
586 | 586 |
587 // Since |node| is already at the index 0 of |root|, this is no-op. | 587 // Since |node| is already at the index 0 of |root|, this is no-op. |
588 model_.Move(node, root, 0); | 588 model_.Move(node, root, 0); |
589 | 589 |
590 // Check that the modification date is kept untouched. | 590 // Check that the modification date is kept untouched. |
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
643 actual_model_string = test::ModelStringFromNode(root); | 643 actual_model_string = test::ModelStringFromNode(root); |
644 EXPECT_EQ("a 2:[ e 1:[ b d c ] f 1:[ b d c ] g ] d 1:[ b d c ] " | 644 EXPECT_EQ("a 2:[ e 1:[ b d c ] f 1:[ b d c ] g ] d 1:[ b d c ] " |
645 "d 2:[ e 1:[ b d c ] f 1:[ b d c ] g ] h d ", | 645 "d 2:[ e 1:[ b d c ] f 1:[ b d c ] g ] h d ", |
646 actual_model_string); | 646 actual_model_string); |
647 } | 647 } |
648 | 648 |
649 // Tests that adding a URL to a folder updates the last modified time. | 649 // Tests that adding a URL to a folder updates the last modified time. |
650 TEST_F(BookmarkModelTest, ParentForNewNodes) { | 650 TEST_F(BookmarkModelTest, ParentForNewNodes) { |
651 ASSERT_EQ(model_.bookmark_bar_node(), model_.GetParentForNewNodes()); | 651 ASSERT_EQ(model_.bookmark_bar_node(), model_.GetParentForNewNodes()); |
652 | 652 |
653 const string16 title(ASCIIToUTF16("foo")); | 653 const base::string16 title(ASCIIToUTF16("foo")); |
654 const GURL url("http://foo.com"); | 654 const GURL url("http://foo.com"); |
655 | 655 |
656 model_.AddURL(model_.other_node(), 0, title, url); | 656 model_.AddURL(model_.other_node(), 0, title, url); |
657 ASSERT_EQ(model_.other_node(), model_.GetParentForNewNodes()); | 657 ASSERT_EQ(model_.other_node(), model_.GetParentForNewNodes()); |
658 } | 658 } |
659 | 659 |
660 // Tests that adding a URL to a folder updates the last modified time. | 660 // Tests that adding a URL to a folder updates the last modified time. |
661 TEST_F(BookmarkModelTest, ParentForNewMobileNodes) { | 661 TEST_F(BookmarkModelTest, ParentForNewMobileNodes) { |
662 ASSERT_EQ(model_.bookmark_bar_node(), model_.GetParentForNewNodes()); | 662 ASSERT_EQ(model_.bookmark_bar_node(), model_.GetParentForNewNodes()); |
663 | 663 |
664 const string16 title(ASCIIToUTF16("foo")); | 664 const base::string16 title(ASCIIToUTF16("foo")); |
665 const GURL url("http://foo.com"); | 665 const GURL url("http://foo.com"); |
666 | 666 |
667 model_.AddURL(model_.mobile_node(), 0, title, url); | 667 model_.AddURL(model_.mobile_node(), 0, title, url); |
668 ASSERT_EQ(model_.mobile_node(), model_.GetParentForNewNodes()); | 668 ASSERT_EQ(model_.mobile_node(), model_.GetParentForNewNodes()); |
669 } | 669 } |
670 | 670 |
671 // Make sure recently modified stays in sync when adding a URL. | 671 // Make sure recently modified stays in sync when adding a URL. |
672 TEST_F(BookmarkModelTest, MostRecentlyModifiedFolders) { | 672 TEST_F(BookmarkModelTest, MostRecentlyModifiedFolders) { |
673 // Add a folder. | 673 // Add a folder. |
674 const BookmarkNode* folder = model_.AddFolder(model_.other_node(), 0, | 674 const BookmarkNode* folder = model_.AddFolder(model_.other_node(), 0, |
(...skipping 77 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
752 ASSERT_EQ(n1, model_.GetMostRecentlyAddedNodeForURL(url)); | 752 ASSERT_EQ(n1, model_.GetMostRecentlyAddedNodeForURL(url)); |
753 | 753 |
754 // swap 1 and 2, then check again. | 754 // swap 1 and 2, then check again. |
755 SwapDateAdded(n1, n2); | 755 SwapDateAdded(n1, n2); |
756 ASSERT_EQ(n2, model_.GetMostRecentlyAddedNodeForURL(url)); | 756 ASSERT_EQ(n2, model_.GetMostRecentlyAddedNodeForURL(url)); |
757 } | 757 } |
758 | 758 |
759 // Makes sure GetBookmarks removes duplicates. | 759 // Makes sure GetBookmarks removes duplicates. |
760 TEST_F(BookmarkModelTest, GetBookmarksWithDups) { | 760 TEST_F(BookmarkModelTest, GetBookmarksWithDups) { |
761 const GURL url("http://foo.com/0"); | 761 const GURL url("http://foo.com/0"); |
762 const string16 title(ASCIIToUTF16("blah")); | 762 const base::string16 title(ASCIIToUTF16("blah")); |
763 model_.AddURL(model_.bookmark_bar_node(), 0, title, url); | 763 model_.AddURL(model_.bookmark_bar_node(), 0, title, url); |
764 model_.AddURL(model_.bookmark_bar_node(), 1, title, url); | 764 model_.AddURL(model_.bookmark_bar_node(), 1, title, url); |
765 | 765 |
766 std::vector<BookmarkService::URLAndTitle> bookmarks; | 766 std::vector<BookmarkService::URLAndTitle> bookmarks; |
767 model_.GetBookmarks(&bookmarks); | 767 model_.GetBookmarks(&bookmarks); |
768 ASSERT_EQ(1U, bookmarks.size()); | 768 ASSERT_EQ(1U, bookmarks.size()); |
769 EXPECT_EQ(url, bookmarks[0].url); | 769 EXPECT_EQ(url, bookmarks[0].url); |
770 EXPECT_EQ(title, bookmarks[0].title); | 770 EXPECT_EQ(title, bookmarks[0].title); |
771 | 771 |
772 model_.AddURL(model_.bookmark_bar_node(), 2, ASCIIToUTF16("Title2"), url); | 772 model_.AddURL(model_.bookmark_bar_node(), 2, ASCIIToUTF16("Title2"), url); |
(...skipping 273 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1046 const BookmarkNode* parent = model_.bookmark_bar_node(); | 1046 const BookmarkNode* parent = model_.bookmark_bar_node(); |
1047 PopulateBookmarkNode(&bbn, &model_, parent); | 1047 PopulateBookmarkNode(&bbn, &model_, parent); |
1048 EXPECT_TRUE(parent->GetChild(0)->IsVisible()); | 1048 EXPECT_TRUE(parent->GetChild(0)->IsVisible()); |
1049 | 1049 |
1050 // Bookmark bar should be visible now that it has a child. | 1050 // Bookmark bar should be visible now that it has a child. |
1051 EXPECT_TRUE(model_.bookmark_bar_node()->IsVisible()); | 1051 EXPECT_TRUE(model_.bookmark_bar_node()->IsVisible()); |
1052 } | 1052 } |
1053 | 1053 |
1054 TEST_F(BookmarkModelTest, MobileNodeVisibileWithChildren) { | 1054 TEST_F(BookmarkModelTest, MobileNodeVisibileWithChildren) { |
1055 const BookmarkNode* root = model_.mobile_node(); | 1055 const BookmarkNode* root = model_.mobile_node(); |
1056 const string16 title(ASCIIToUTF16("foo")); | 1056 const base::string16 title(ASCIIToUTF16("foo")); |
1057 const GURL url("http://foo.com"); | 1057 const GURL url("http://foo.com"); |
1058 | 1058 |
1059 model_.AddURL(root, 0, title, url); | 1059 model_.AddURL(root, 0, title, url); |
1060 EXPECT_TRUE(model_.mobile_node()->IsVisible()); | 1060 EXPECT_TRUE(model_.mobile_node()->IsVisible()); |
1061 } | 1061 } |
1062 | 1062 |
1063 TEST_F(BookmarkModelTest, ExtensiveChangesObserver) { | 1063 TEST_F(BookmarkModelTest, ExtensiveChangesObserver) { |
1064 AssertExtensiveChangesObserverCount(0, 0); | 1064 AssertExtensiveChangesObserverCount(0, 0); |
1065 EXPECT_FALSE(model_.IsDoingExtensiveChanges()); | 1065 EXPECT_FALSE(model_.IsDoingExtensiveChanges()); |
1066 model_.BeginExtensiveChanges(); | 1066 model_.BeginExtensiveChanges(); |
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1114 EXPECT_TRUE(node.DeleteMetaInfo("key2.subkey2.leaf")); | 1114 EXPECT_TRUE(node.DeleteMetaInfo("key2.subkey2.leaf")); |
1115 EXPECT_FALSE(node.DeleteMetaInfo("key3")); | 1115 EXPECT_FALSE(node.DeleteMetaInfo("key3")); |
1116 EXPECT_FALSE(node.GetMetaInfo("key1", &out_value)); | 1116 EXPECT_FALSE(node.GetMetaInfo("key1", &out_value)); |
1117 EXPECT_FALSE(node.GetMetaInfo("key2.subkey1", &out_value)); | 1117 EXPECT_FALSE(node.GetMetaInfo("key2.subkey1", &out_value)); |
1118 EXPECT_FALSE(node.GetMetaInfo("key2.subkey2", &out_value)); | 1118 EXPECT_FALSE(node.GetMetaInfo("key2.subkey2", &out_value)); |
1119 EXPECT_FALSE(node.GetMetaInfo("key2.subkey2.leaf", &out_value)); | 1119 EXPECT_FALSE(node.GetMetaInfo("key2.subkey2.leaf", &out_value)); |
1120 EXPECT_FALSE(node.GetMetaInfoMap()); | 1120 EXPECT_FALSE(node.GetMetaInfoMap()); |
1121 } | 1121 } |
1122 | 1122 |
1123 } // namespace | 1123 } // namespace |
OLD | NEW |