10529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch// Copyright 2013 The Chromium Authors. All rights reserved.
23551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be
33551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)// found in the LICENSE file.
43551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)
50529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch#include "chrome/browser/ui/bookmarks/bookmark_editor.h"
63551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)
73551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)#include "base/strings/utf_string_conversions.h"
83551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)#include "components/bookmarks/test/test_bookmark_client.h"
93551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)#include "testing/gtest/include/gtest/gtest.h"
100529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch
113551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)using base::ASCIIToUTF16;
123551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)
133551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)namespace {
143551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)
153551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)TEST(BookmarkEditorTest, ApplyEditsWithNoFolderChange) {
163551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)  bookmarks::TestBookmarkClient client;
170529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch  scoped_ptr<BookmarkModel> model(client.CreateModel());
180529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch  const BookmarkNode* bookmarkbar = model->bookmark_bar_node();
193551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)  model->AddURL(bookmarkbar, 0, ASCIIToUTF16("url0"), GURL("chrome://newtab"));
200529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch  model->AddURL(bookmarkbar, 1, ASCIIToUTF16("url1"), GURL("chrome://newtab"));
210529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch
223551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)  {
233551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)    BookmarkEditor::EditDetails detail(
243551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)        BookmarkEditor::EditDetails::AddFolder(bookmarkbar, 1));
253551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)    BookmarkEditor::ApplyEditsWithNoFolderChange(model.get(),
263551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)                                                 bookmarkbar,
273551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)                                                 detail,
283551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)                                                 ASCIIToUTF16("folder0"),
293551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)                                                 GURL(std::string()));
303551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)    EXPECT_EQ(ASCIIToUTF16("folder0"), bookmarkbar->GetChild(1)->GetTitle());
313551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)  }
32a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)  {
333551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)    BookmarkEditor::EditDetails detail(
343551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)        BookmarkEditor::EditDetails::AddFolder(bookmarkbar, -1));
35f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)    BookmarkEditor::ApplyEditsWithNoFolderChange(model.get(),
36f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)                                                 bookmarkbar,
370529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch                                                 detail,
380529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch                                                 ASCIIToUTF16("folder1"),
393551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)                                                 GURL(std::string()));
403551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)    EXPECT_EQ(ASCIIToUTF16("folder1"), bookmarkbar->GetChild(3)->GetTitle());
413551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)  }
423551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)  {
43    BookmarkEditor::EditDetails detail(
44        BookmarkEditor::EditDetails::AddFolder(bookmarkbar, 10));
45    BookmarkEditor::ApplyEditsWithNoFolderChange(model.get(),
46                                                 bookmarkbar,
47                                                 detail,
48                                                 ASCIIToUTF16("folder2"),
49                                                 GURL(std::string()));
50    EXPECT_EQ(ASCIIToUTF16("folder2"), bookmarkbar->GetChild(4)->GetTitle());
51  }
52}
53
54}  // namespace
55