bookmark_manager_private_apitest.cc revision effb81e5f8246d0db0270817048dc992db66e9fb
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)
558537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)#include "chrome/browser/extensions/api/bookmark_manager_private/bookmark_manager_private_api.h"
658537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)
75821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "base/command_line.h"
82a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include "base/prefs/pref_service.h"
9868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)#include "base/strings/utf_string_conversions.h"
105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "chrome/browser/bookmarks/bookmark_model.h"
115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "chrome/browser/bookmarks/bookmark_model_factory.h"
1258537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)#include "chrome/browser/bookmarks/bookmark_test_helpers.h"
135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "chrome/browser/extensions/extension_apitest.h"
145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "chrome/browser/profiles/profile.h"
155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "chrome/browser/ui/browser.h"
165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "chrome/common/pref_names.h"
172a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include "components/user_prefs/user_prefs.h"
182a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
19effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch// Times out on win syzyasan, http://crbug.com/166026
20effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch#if defined(SYZYASAN)
212a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#define MAYBE_BookmarkManager DISABLED_BookmarkManager
222a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#else
232a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#define MAYBE_BookmarkManager BookmarkManager
242a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#endif
252a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (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);
3658537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)  test::WaitForBookmarkModelToLoad(model);
375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  const BookmarkNode* bar = model->bookmark_bar_node();
385d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)  const BookmarkNode* folder =
395d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)      model->AddFolder(bar, 0, base::ASCIIToUTF16("Folder"));
405d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)  model->AddURL(bar, 1, base::ASCIIToUTF16("AAA"),
415d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)                GURL("http://aaa.example.com"));
425d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)  model->AddURL(folder, 0, base::ASCIIToUTF16("BBB"),
435d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)                GURL("http://bbb.example.com"));
445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
455e3f23d412006dc4db4e659864679f29341e113fTorne (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)}
51