bookmark_manager_private_apitest.cc revision 5e3f23d412006dc4db4e659864679f29341e113f
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 "base/command_line.h"
62a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include "base/prefs/pref_service.h"
7868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)#include "base/strings/utf_string_conversions.h"
85821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "chrome/browser/bookmarks/bookmark_model.h"
95821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "chrome/browser/bookmarks/bookmark_model_factory.h"
102a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include "chrome/browser/extensions/api/bookmark_manager_private/bookmark_manager_private_api.h"
115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "chrome/browser/extensions/extension_apitest.h"
125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "chrome/browser/profiles/profile.h"
135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "chrome/browser/ui/browser.h"
145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "chrome/common/chrome_switches.h"
155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "chrome/common/pref_names.h"
165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "chrome/test/base/ui_test_utils.h"
172a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include "components/user_prefs/user_prefs.h"
182a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
192a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// Times out on win asan, http://crbug.com/166026
202a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#if defined(OS_WIN) && defined(ADDRESS_SANITIZER)
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)  CommandLine::ForCurrentProcess()->AppendSwitch(
275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      switches::kEnableExperimentalExtensionApis);
285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  ASSERT_TRUE(RunComponentExtensionTest("bookmark_manager/standard"))
305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      << message_;
315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)IN_PROC_BROWSER_TEST_F(ExtensionApiTest, BookmarkManagerEditDisabled) {
345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  CommandLine::ForCurrentProcess()->AppendSwitch(
355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      switches::kEnableExperimentalExtensionApis);
365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  Profile* profile = browser()->profile();
385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  // Provide some testing data here, since bookmark editing will be disabled
405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  // within the extension.
415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  BookmarkModel* model = BookmarkModelFactory::GetForProfile(profile);
425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  ui_test_utils::WaitForBookmarkModelToLoad(model);
435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  const BookmarkNode* bar = model->bookmark_bar_node();
445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  const BookmarkNode* folder = model->AddFolder(bar, 0, ASCIIToUTF16("Folder"));
455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  model->AddURL(bar, 1, ASCIIToUTF16("AAA"), GURL("http://aaa.example.com"));
465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  model->AddURL(folder, 0, ASCIIToUTF16("BBB"), GURL("http://bbb.example.com"));
475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
485e3f23d412006dc4db4e659864679f29341e113fTorne (Richard Coles)  PrefService* prefs = user_prefs::UserPrefs::Get(profile);
495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  prefs->SetBoolean(prefs::kEditBookmarksEnabled, false);
505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  ASSERT_TRUE(RunComponentExtensionTest("bookmark_manager/edit_disabled"))
525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      << message_;
535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
54