| Index: chrome/browser/bookmarks/bookmark_utils_unittest.cc
 | 
| diff --git a/chrome/browser/bookmarks/bookmark_utils_unittest.cc b/chrome/browser/bookmarks/bookmark_utils_unittest.cc
 | 
| index 428fa1b0168a86226773b4b818167e7a4ac170a2..d5702275780c9580f740d584ed68533de3e1b279 100644
 | 
| --- a/chrome/browser/bookmarks/bookmark_utils_unittest.cc
 | 
| +++ b/chrome/browser/bookmarks/bookmark_utils_unittest.cc
 | 
| @@ -11,6 +11,7 @@
 | 
|  #include "chrome/browser/bookmarks/base_bookmark_model_observer.h"
 | 
|  #include "chrome/browser/bookmarks/bookmark_model.h"
 | 
|  #include "chrome/browser/bookmarks/bookmark_node_data.h"
 | 
| +#include "chrome/browser/bookmarks/test_bookmark_client.h"
 | 
|  #include "testing/gtest/include/gtest/gtest.h"
 | 
|  #include "ui/base/clipboard/clipboard.h"
 | 
|  #include "ui/base/clipboard/scoped_clipboard_writer.h"
 | 
| @@ -70,36 +71,36 @@ class BookmarkUtilsTest : public testing::Test,
 | 
|  };
 | 
|  
 | 
|  TEST_F(BookmarkUtilsTest, GetBookmarksMatchingPropertiesWordPhraseQuery) {
 | 
| -  BookmarkModel model(NULL, false);
 | 
| -  const BookmarkNode* node1 = model.AddURL(model.other_node(),
 | 
| -                                           0,
 | 
| -                                           ASCIIToUTF16("foo bar"),
 | 
| -                                           GURL("http://www.google.com"));
 | 
| -  const BookmarkNode* node2 = model.AddURL(model.other_node(),
 | 
| -                                           0,
 | 
| -                                           ASCIIToUTF16("baz buz"),
 | 
| -                                           GURL("http://www.cnn.com"));
 | 
| -  const BookmarkNode* folder1 = model.AddFolder(model.other_node(),
 | 
| -                                                0,
 | 
| -                                                ASCIIToUTF16("foo"));
 | 
| +  test::TestBookmarkClient client;
 | 
| +  scoped_ptr<BookmarkModel> model(client.CreateModel(false));
 | 
| +  const BookmarkNode* node1 = model->AddURL(model->other_node(),
 | 
| +                                            0,
 | 
| +                                            ASCIIToUTF16("foo bar"),
 | 
| +                                            GURL("http://www.google.com"));
 | 
| +  const BookmarkNode* node2 = model->AddURL(model->other_node(),
 | 
| +                                            0,
 | 
| +                                            ASCIIToUTF16("baz buz"),
 | 
| +                                            GURL("http://www.cnn.com"));
 | 
| +  const BookmarkNode* folder1 =
 | 
| +      model->AddFolder(model->other_node(), 0, ASCIIToUTF16("foo"));
 | 
|    std::vector<const BookmarkNode*> nodes;
 | 
|    QueryFields query;
 | 
|    query.word_phrase_query.reset(new base::string16);
 | 
|    // No nodes are returned for empty string.
 | 
|    *query.word_phrase_query = ASCIIToUTF16("");
 | 
| -  GetBookmarksMatchingProperties(&model, query, 100, string(), &nodes);
 | 
| +  GetBookmarksMatchingProperties(model.get(), query, 100, string(), &nodes);
 | 
|    EXPECT_TRUE(nodes.empty());
 | 
|    nodes.clear();
 | 
|  
 | 
|    // No nodes are returned for space-only string.
 | 
|    *query.word_phrase_query = ASCIIToUTF16("   ");
 | 
| -  GetBookmarksMatchingProperties(&model, query, 100, string(), &nodes);
 | 
| +  GetBookmarksMatchingProperties(model.get(), query, 100, string(), &nodes);
 | 
|    EXPECT_TRUE(nodes.empty());
 | 
|    nodes.clear();
 | 
|  
 | 
|    // Node "foo bar" and folder "foo" are returned in search results.
 | 
|    *query.word_phrase_query = ASCIIToUTF16("foo");
 | 
| -  GetBookmarksMatchingProperties(&model, query, 100, string(), &nodes);
 | 
| +  GetBookmarksMatchingProperties(model.get(), query, 100, string(), &nodes);
 | 
|    ASSERT_EQ(2U, nodes.size());
 | 
|    EXPECT_TRUE(nodes[0] == folder1);
 | 
|    EXPECT_TRUE(nodes[1] == node1);
 | 
| @@ -107,92 +108,94 @@ TEST_F(BookmarkUtilsTest, GetBookmarksMatchingPropertiesWordPhraseQuery) {
 | 
|  
 | 
|    // Ensure url matches return in search results.
 | 
|    *query.word_phrase_query = ASCIIToUTF16("cnn");
 | 
| -  GetBookmarksMatchingProperties(&model, query, 100, string(), &nodes);
 | 
| +  GetBookmarksMatchingProperties(model.get(), query, 100, string(), &nodes);
 | 
|    ASSERT_EQ(1U, nodes.size());
 | 
|    EXPECT_TRUE(nodes[0] == node2);
 | 
|    nodes.clear();
 | 
|  
 | 
|    // Ensure folder "foo" is not returned in more specific search.
 | 
|    *query.word_phrase_query = ASCIIToUTF16("foo bar");
 | 
| -  GetBookmarksMatchingProperties(&model, query, 100, string(), &nodes);
 | 
| +  GetBookmarksMatchingProperties(model.get(), query, 100, string(), &nodes);
 | 
|    ASSERT_EQ(1U, nodes.size());
 | 
|    EXPECT_TRUE(nodes[0] == node1);
 | 
|    nodes.clear();
 | 
|  
 | 
|    // Bookmark Bar and Other Bookmarks are not returned in search results.
 | 
|    *query.word_phrase_query = ASCIIToUTF16("Bookmark");
 | 
| -  GetBookmarksMatchingProperties(&model, query, 100, string(), &nodes);
 | 
| +  GetBookmarksMatchingProperties(model.get(), query, 100, string(), &nodes);
 | 
|    ASSERT_EQ(0U, nodes.size());
 | 
|    nodes.clear();
 | 
|  }
 | 
|  
 | 
|  // Check exact matching against a URL query.
 | 
|  TEST_F(BookmarkUtilsTest, GetBookmarksMatchingPropertiesUrl) {
 | 
| -  BookmarkModel model(NULL, false);
 | 
| -  const BookmarkNode* node1 = model.AddURL(model.other_node(),
 | 
| -                                           0,
 | 
| -                                           ASCIIToUTF16("Google"),
 | 
| -                                           GURL("https://www.google.com/"));
 | 
| -  model.AddURL(model.other_node(),
 | 
| -               0,
 | 
| -               ASCIIToUTF16("Google Calendar"),
 | 
| -               GURL("https://www.google.com/calendar"));
 | 
| -
 | 
| -  model.AddFolder(model.other_node(), 0, ASCIIToUTF16("Folder"));
 | 
| +  test::TestBookmarkClient client;
 | 
| +  scoped_ptr<BookmarkModel> model(client.CreateModel(false));
 | 
| +  const BookmarkNode* node1 = model->AddURL(model->other_node(),
 | 
| +                                            0,
 | 
| +                                            ASCIIToUTF16("Google"),
 | 
| +                                            GURL("https://www.google.com/"));
 | 
| +  model->AddURL(model->other_node(),
 | 
| +                0,
 | 
| +                ASCIIToUTF16("Google Calendar"),
 | 
| +                GURL("https://www.google.com/calendar"));
 | 
| +
 | 
| +  model->AddFolder(model->other_node(), 0, ASCIIToUTF16("Folder"));
 | 
|  
 | 
|    std::vector<const BookmarkNode*> nodes;
 | 
|    QueryFields query;
 | 
|    query.url.reset(new base::string16);
 | 
|    *query.url = ASCIIToUTF16("https://www.google.com/");
 | 
| -  GetBookmarksMatchingProperties(&model, query, 100, string(), &nodes);
 | 
| +  GetBookmarksMatchingProperties(model.get(), query, 100, string(), &nodes);
 | 
|    ASSERT_EQ(1U, nodes.size());
 | 
|    EXPECT_TRUE(nodes[0] == node1);
 | 
|    nodes.clear();
 | 
|  
 | 
|    *query.url = ASCIIToUTF16("calendar");
 | 
| -  GetBookmarksMatchingProperties(&model, query, 100, string(), &nodes);
 | 
| +  GetBookmarksMatchingProperties(model.get(), query, 100, string(), &nodes);
 | 
|    ASSERT_EQ(0U, nodes.size());
 | 
|    nodes.clear();
 | 
|  
 | 
|    // Empty URL should not match folders.
 | 
|    *query.url = ASCIIToUTF16("");
 | 
| -  GetBookmarksMatchingProperties(&model, query, 100, string(), &nodes);
 | 
| +  GetBookmarksMatchingProperties(model.get(), query, 100, string(), &nodes);
 | 
|    ASSERT_EQ(0U, nodes.size());
 | 
|    nodes.clear();
 | 
|  }
 | 
|  
 | 
|  // Check exact matching against a title query.
 | 
|  TEST_F(BookmarkUtilsTest, GetBookmarksMatchingPropertiesTitle) {
 | 
| -  BookmarkModel model(NULL, false);
 | 
| -  const BookmarkNode* node1 = model.AddURL(model.other_node(),
 | 
| -                                           0,
 | 
| -                                           ASCIIToUTF16("Google"),
 | 
| -                                           GURL("https://www.google.com/"));
 | 
| -  model.AddURL(model.other_node(),
 | 
| -               0,
 | 
| -               ASCIIToUTF16("Google Calendar"),
 | 
| -               GURL("https://www.google.com/calendar"));
 | 
| +  test::TestBookmarkClient client;
 | 
| +  scoped_ptr<BookmarkModel> model(client.CreateModel(false));
 | 
| +  const BookmarkNode* node1 = model->AddURL(model->other_node(),
 | 
| +                                            0,
 | 
| +                                            ASCIIToUTF16("Google"),
 | 
| +                                            GURL("https://www.google.com/"));
 | 
| +  model->AddURL(model->other_node(),
 | 
| +                0,
 | 
| +                ASCIIToUTF16("Google Calendar"),
 | 
| +                GURL("https://www.google.com/calendar"));
 | 
|  
 | 
|    const BookmarkNode* folder1 =
 | 
| -      model.AddFolder(model.other_node(), 0, ASCIIToUTF16("Folder"));
 | 
| +      model->AddFolder(model->other_node(), 0, ASCIIToUTF16("Folder"));
 | 
|  
 | 
|    std::vector<const BookmarkNode*> nodes;
 | 
|    QueryFields query;
 | 
|    query.title.reset(new base::string16);
 | 
|    *query.title = ASCIIToUTF16("Google");
 | 
| -  GetBookmarksMatchingProperties(&model, query, 100, string(), &nodes);
 | 
| +  GetBookmarksMatchingProperties(model.get(), query, 100, string(), &nodes);
 | 
|    ASSERT_EQ(1U, nodes.size());
 | 
|    EXPECT_TRUE(nodes[0] == node1);
 | 
|    nodes.clear();
 | 
|  
 | 
|    *query.title = ASCIIToUTF16("Calendar");
 | 
| -  GetBookmarksMatchingProperties(&model, query, 100, string(), &nodes);
 | 
| +  GetBookmarksMatchingProperties(model.get(), query, 100, string(), &nodes);
 | 
|    ASSERT_EQ(0U, nodes.size());
 | 
|    nodes.clear();
 | 
|  
 | 
|    // Title should match folders.
 | 
|    *query.title = ASCIIToUTF16("Folder");
 | 
| -  GetBookmarksMatchingProperties(&model, query, 100, string(), &nodes);
 | 
| +  GetBookmarksMatchingProperties(model.get(), query, 100, string(), &nodes);
 | 
|    ASSERT_EQ(1U, nodes.size());
 | 
|    EXPECT_TRUE(nodes[0] == folder1);
 | 
|    nodes.clear();
 | 
| @@ -200,17 +203,18 @@ TEST_F(BookmarkUtilsTest, GetBookmarksMatchingPropertiesTitle) {
 | 
|  
 | 
|  // Check matching against a query with multiple predicates.
 | 
|  TEST_F(BookmarkUtilsTest, GetBookmarksMatchingPropertiesConjunction) {
 | 
| -  BookmarkModel model(NULL, false);
 | 
| -  const BookmarkNode* node1 = model.AddURL(model.other_node(),
 | 
| -                                           0,
 | 
| -                                           ASCIIToUTF16("Google"),
 | 
| -                                           GURL("https://www.google.com/"));
 | 
| -  model.AddURL(model.other_node(),
 | 
| -               0,
 | 
| -               ASCIIToUTF16("Google Calendar"),
 | 
| -               GURL("https://www.google.com/calendar"));
 | 
| -
 | 
| -  model.AddFolder(model.other_node(), 0, ASCIIToUTF16("Folder"));
 | 
| +  test::TestBookmarkClient client;
 | 
| +  scoped_ptr<BookmarkModel> model(client.CreateModel(false));
 | 
| +  const BookmarkNode* node1 = model->AddURL(model->other_node(),
 | 
| +                                            0,
 | 
| +                                            ASCIIToUTF16("Google"),
 | 
| +                                            GURL("https://www.google.com/"));
 | 
| +  model->AddURL(model->other_node(),
 | 
| +                0,
 | 
| +                ASCIIToUTF16("Google Calendar"),
 | 
| +                GURL("https://www.google.com/calendar"));
 | 
| +
 | 
| +  model->AddFolder(model->other_node(), 0, ASCIIToUTF16("Folder"));
 | 
|  
 | 
|    std::vector<const BookmarkNode*> nodes;
 | 
|    QueryFields query;
 | 
| @@ -219,7 +223,7 @@ TEST_F(BookmarkUtilsTest, GetBookmarksMatchingPropertiesConjunction) {
 | 
|    query.word_phrase_query.reset(new base::string16(ASCIIToUTF16("www")));
 | 
|    query.url.reset(new base::string16(ASCIIToUTF16("https://www.google.com/")));
 | 
|    query.title.reset(new base::string16(ASCIIToUTF16("Google")));
 | 
| -  GetBookmarksMatchingProperties(&model, query, 100, string(), &nodes);
 | 
| +  GetBookmarksMatchingProperties(model.get(), query, 100, string(), &nodes);
 | 
|    ASSERT_EQ(1U, nodes.size());
 | 
|    EXPECT_TRUE(nodes[0] == node1);
 | 
|    nodes.clear();
 | 
| @@ -230,7 +234,7 @@ TEST_F(BookmarkUtilsTest, GetBookmarksMatchingPropertiesConjunction) {
 | 
|    // Test two fields matching.
 | 
|    for (size_t i = 0; i < arraysize(fields); i++) {
 | 
|      scoped_ptr<base::string16> original_value(fields[i]->release());
 | 
| -    GetBookmarksMatchingProperties(&model, query, 100, string(), &nodes);
 | 
| +    GetBookmarksMatchingProperties(model.get(), query, 100, string(), &nodes);
 | 
|      ASSERT_EQ(1U, nodes.size());
 | 
|      EXPECT_TRUE(nodes[0] == node1);
 | 
|      nodes.clear();
 | 
| @@ -241,7 +245,7 @@ TEST_F(BookmarkUtilsTest, GetBookmarksMatchingPropertiesConjunction) {
 | 
|    for (size_t i = 0; i < arraysize(fields); i++) {
 | 
|      scoped_ptr<base::string16> original_value(fields[i]->release());
 | 
|      fields[i]->reset(new base::string16(ASCIIToUTF16("fjdkslafjkldsa")));
 | 
| -    GetBookmarksMatchingProperties(&model, query, 100, string(), &nodes);
 | 
| +    GetBookmarksMatchingProperties(model.get(), query, 100, string(), &nodes);
 | 
|      ASSERT_EQ(0U, nodes.size());
 | 
|      nodes.clear();
 | 
|      fields[i]->reset(original_value.release());
 | 
| @@ -249,19 +253,20 @@ TEST_F(BookmarkUtilsTest, GetBookmarksMatchingPropertiesConjunction) {
 | 
|  }
 | 
|  
 | 
|  TEST_F(BookmarkUtilsTest, CopyPaste) {
 | 
| -  BookmarkModel model(NULL, false);
 | 
| -  const BookmarkNode* node = model.AddURL(model.other_node(),
 | 
| -                                          0,
 | 
| -                                          ASCIIToUTF16("foo bar"),
 | 
| -                                          GURL("http://www.google.com"));
 | 
| +  test::TestBookmarkClient client;
 | 
| +  scoped_ptr<BookmarkModel> model(client.CreateModel(false));
 | 
| +  const BookmarkNode* node = model->AddURL(model->other_node(),
 | 
| +                                           0,
 | 
| +                                           ASCIIToUTF16("foo bar"),
 | 
| +                                           GURL("http://www.google.com"));
 | 
|  
 | 
|    // Copy a node to the clipboard.
 | 
|    std::vector<const BookmarkNode*> nodes;
 | 
|    nodes.push_back(node);
 | 
| -  CopyToClipboard(&model, nodes, false);
 | 
| +  CopyToClipboard(model.get(), nodes, false);
 | 
|  
 | 
|    // And make sure we can paste a bookmark from the clipboard.
 | 
| -  EXPECT_TRUE(CanPasteFromClipboard(model.bookmark_bar_node()));
 | 
| +  EXPECT_TRUE(CanPasteFromClipboard(model->bookmark_bar_node()));
 | 
|  
 | 
|    // Write some text to the clipboard.
 | 
|    {
 | 
| @@ -272,93 +277,96 @@ TEST_F(BookmarkUtilsTest, CopyPaste) {
 | 
|    }
 | 
|  
 | 
|    // Now we shouldn't be able to paste from the clipboard.
 | 
| -  EXPECT_FALSE(CanPasteFromClipboard(model.bookmark_bar_node()));
 | 
| +  EXPECT_FALSE(CanPasteFromClipboard(model->bookmark_bar_node()));
 | 
|  }
 | 
|  
 | 
|  TEST_F(BookmarkUtilsTest, CutToClipboard) {
 | 
| -  BookmarkModel model(NULL, false);
 | 
| -  model.AddObserver(this);
 | 
| +  test::TestBookmarkClient client;
 | 
| +  scoped_ptr<BookmarkModel> model(client.CreateModel(false));
 | 
| +  model->AddObserver(this);
 | 
|  
 | 
|    base::string16 title(ASCIIToUTF16("foo"));
 | 
|    GURL url("http://foo.com");
 | 
| -  const BookmarkNode* n1 = model.AddURL(model.other_node(), 0, title, url);
 | 
| -  const BookmarkNode* n2 = model.AddURL(model.other_node(), 1, title, url);
 | 
| +  const BookmarkNode* n1 = model->AddURL(model->other_node(), 0, title, url);
 | 
| +  const BookmarkNode* n2 = model->AddURL(model->other_node(), 1, title, url);
 | 
|  
 | 
|    // Cut the nodes to the clipboard.
 | 
|    std::vector<const BookmarkNode*> nodes;
 | 
|    nodes.push_back(n1);
 | 
|    nodes.push_back(n2);
 | 
| -  CopyToClipboard(&model, nodes, true);
 | 
| +  CopyToClipboard(model.get(), nodes, true);
 | 
|  
 | 
|    // Make sure the nodes were removed.
 | 
| -  EXPECT_EQ(0, model.other_node()->child_count());
 | 
| +  EXPECT_EQ(0, model->other_node()->child_count());
 | 
|  
 | 
|    // Make sure observers were notified the set of changes should be grouped.
 | 
|    ExpectGroupedChangeCount(1, 1);
 | 
|  
 | 
|    // And make sure we can paste from the clipboard.
 | 
| -  EXPECT_TRUE(CanPasteFromClipboard(model.other_node()));
 | 
| +  EXPECT_TRUE(CanPasteFromClipboard(model->other_node()));
 | 
|  }
 | 
|  
 | 
|  TEST_F(BookmarkUtilsTest, GetParentForNewNodes) {
 | 
| -  BookmarkModel model(NULL, false);
 | 
| +  test::TestBookmarkClient client;
 | 
| +  scoped_ptr<BookmarkModel> model(client.CreateModel(false));
 | 
|    // This tests the case where selection contains one item and that item is a
 | 
|    // folder.
 | 
|    std::vector<const BookmarkNode*> nodes;
 | 
| -  nodes.push_back(model.bookmark_bar_node());
 | 
| +  nodes.push_back(model->bookmark_bar_node());
 | 
|    int index = -1;
 | 
| -  const BookmarkNode* real_parent = GetParentForNewNodes(
 | 
| -      model.bookmark_bar_node(), nodes, &index);
 | 
| -  EXPECT_EQ(real_parent, model.bookmark_bar_node());
 | 
| +  const BookmarkNode* real_parent =
 | 
| +      GetParentForNewNodes(model->bookmark_bar_node(), nodes, &index);
 | 
| +  EXPECT_EQ(real_parent, model->bookmark_bar_node());
 | 
|    EXPECT_EQ(0, index);
 | 
|  
 | 
|    nodes.clear();
 | 
|  
 | 
|    // This tests the case where selection contains one item and that item is an
 | 
|    // url.
 | 
| -  const BookmarkNode* page1 = model.AddURL(model.bookmark_bar_node(),
 | 
| -                                           0,
 | 
| -                                           ASCIIToUTF16("Google"),
 | 
| -                                           GURL("http://google.com"));
 | 
| +  const BookmarkNode* page1 = model->AddURL(model->bookmark_bar_node(),
 | 
| +                                            0,
 | 
| +                                            ASCIIToUTF16("Google"),
 | 
| +                                            GURL("http://google.com"));
 | 
|    nodes.push_back(page1);
 | 
| -  real_parent = GetParentForNewNodes(model.bookmark_bar_node(), nodes, &index);
 | 
| -  EXPECT_EQ(real_parent, model.bookmark_bar_node());
 | 
| +  real_parent = GetParentForNewNodes(model->bookmark_bar_node(), nodes, &index);
 | 
| +  EXPECT_EQ(real_parent, model->bookmark_bar_node());
 | 
|    EXPECT_EQ(1, index);
 | 
|  
 | 
|    // This tests the case where selection has more than one item.
 | 
| -  const BookmarkNode* folder1 = model.AddFolder(model.bookmark_bar_node(), 1,
 | 
| -                                                ASCIIToUTF16("Folder 1"));
 | 
| +  const BookmarkNode* folder1 =
 | 
| +      model->AddFolder(model->bookmark_bar_node(), 1, ASCIIToUTF16("Folder 1"));
 | 
|    nodes.push_back(folder1);
 | 
| -  real_parent = GetParentForNewNodes(model.bookmark_bar_node(), nodes, &index);
 | 
| -  EXPECT_EQ(real_parent, model.bookmark_bar_node());
 | 
| +  real_parent = GetParentForNewNodes(model->bookmark_bar_node(), nodes, &index);
 | 
| +  EXPECT_EQ(real_parent, model->bookmark_bar_node());
 | 
|    EXPECT_EQ(2, index);
 | 
|  
 | 
|    // This tests the case where selection doesn't contain any items.
 | 
|    nodes.clear();
 | 
| -  real_parent = GetParentForNewNodes(model.bookmark_bar_node(), nodes, &index);
 | 
| -  EXPECT_EQ(real_parent, model.bookmark_bar_node());
 | 
| +  real_parent = GetParentForNewNodes(model->bookmark_bar_node(), nodes, &index);
 | 
| +  EXPECT_EQ(real_parent, model->bookmark_bar_node());
 | 
|    EXPECT_EQ(2, index);
 | 
|  }
 | 
|  
 | 
|  // Verifies that meta info is copied when nodes are cloned.
 | 
|  TEST_F(BookmarkUtilsTest, CloneMetaInfo) {
 | 
| -  BookmarkModel model(NULL, false);
 | 
| +  test::TestBookmarkClient client;
 | 
| +  scoped_ptr<BookmarkModel> model(client.CreateModel(false));
 | 
|    // Add a node containing meta info.
 | 
| -  const BookmarkNode* node = model.AddURL(model.other_node(),
 | 
| -                                          0,
 | 
| -                                          ASCIIToUTF16("foo bar"),
 | 
| -                                          GURL("http://www.google.com"));
 | 
| -  model.SetNodeMetaInfo(node, "somekey", "somevalue");
 | 
| -  model.SetNodeMetaInfo(node, "someotherkey", "someothervalue");
 | 
| +  const BookmarkNode* node = model->AddURL(model->other_node(),
 | 
| +                                           0,
 | 
| +                                           ASCIIToUTF16("foo bar"),
 | 
| +                                           GURL("http://www.google.com"));
 | 
| +  model->SetNodeMetaInfo(node, "somekey", "somevalue");
 | 
| +  model->SetNodeMetaInfo(node, "someotherkey", "someothervalue");
 | 
|  
 | 
|    // Clone node to a different folder.
 | 
| -  const BookmarkNode* folder = model.AddFolder(model.bookmark_bar_node(), 0,
 | 
| -                                               ASCIIToUTF16("Folder"));
 | 
| +  const BookmarkNode* folder =
 | 
| +      model->AddFolder(model->bookmark_bar_node(), 0, ASCIIToUTF16("Folder"));
 | 
|    std::vector<BookmarkNodeData::Element> elements;
 | 
|    BookmarkNodeData::Element node_data(node);
 | 
|    elements.push_back(node_data);
 | 
|    EXPECT_EQ(0, folder->child_count());
 | 
| -  CloneBookmarkNode(&model, elements, folder, 0, false);
 | 
| +  CloneBookmarkNode(model.get(), elements, folder, 0, false);
 | 
|    ASSERT_EQ(1, folder->child_count());
 | 
|  
 | 
|    // Verify that the cloned node contains the same meta info.
 | 
| 
 |