bookmark_manager_private_apitest.cc revision 5d1f7b1de12d16ceb2c938c56701a3e8bfa558f7
15821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Copyright (c) 2012 The Chromium Authors. All rights reserved.
25821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be
35821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// found in the LICENSE file.
45821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
55821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "chrome/browser/extensions/api/bookmark_manager_private/bookmark_manager_private_api.h"
65821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
75821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "base/command_line.h"
85821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "base/prefs/pref_service.h"
95821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "base/strings/utf_string_conversions.h"
105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "chrome/browser/bookmarks/bookmark_model.h"
111320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci#include "chrome/browser/bookmarks/bookmark_model_factory.h"
125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "chrome/browser/bookmarks/bookmark_test_helpers.h"
139ab5563a3196760eb381d102cbb2bc0f7abc6a50Ben Murdoch#include "chrome/browser/extensions/extension_apitest.h"
14cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)#include "chrome/browser/profiles/profile.h"
155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "chrome/browser/ui/browser.h"
165d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)#include "chrome/common/pref_names.h"
17f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)#include "components/user_prefs/user_prefs.h"
185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Times out on win asan, http://crbug.com/166026
205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#if defined(OS_WIN) && defined(ADDRESS_SANITIZER)
214e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)#define MAYBE_BookmarkManager DISABLED_BookmarkManager
225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#else
235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define MAYBE_BookmarkManager BookmarkManager
245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif
255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)IN_PROC_BROWSER_TEST_F(ExtensionApiTest, MAYBE_BookmarkManager) {
265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  ASSERT_TRUE(RunComponentExtensionTest("bookmark_manager/standard"))
275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      << message_;
285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)IN_PROC_BROWSER_TEST_F(ExtensionApiTest, BookmarkManagerEditDisabled) {
315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  Profile* profile = browser()->profile();
325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  // Provide some testing data here, since bookmark editing will be disabled
345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  // within the extension.
355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  BookmarkModel* model = BookmarkModelFactory::GetForProfile(profile);
365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  test::WaitForBookmarkModelToLoad(model);
375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  const BookmarkNode* bar = model->bookmark_bar_node();
385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  const BookmarkNode* folder =
395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      model->AddFolder(bar, 0, base::ASCIIToUTF16("Folder"));
402a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  model->AddURL(bar, 1, base::ASCIIToUTF16("AAA"),
412a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)                GURL("http://aaa.example.com"));
425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  model->AddURL(folder, 0, base::ASCIIToUTF16("BBB"),
435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                GURL("http://bbb.example.com"));
445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  PrefService* prefs = user_prefs::UserPrefs::Get(profile);
465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  prefs->SetBoolean(prefs::kEditBookmarksEnabled, false);
475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  ASSERT_TRUE(RunComponentExtensionTest("bookmark_manager/edit_disabled"))
495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      << message_;
505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)