Home | History | Annotate | Download | only in bookmarks
      1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
      2 // Use of this source code is governed by a BSD-style license that can be
      3 // found in the LICENSE file.
      4 
      5 #include "base/prefs/pref_service.h"
      6 #include "base/values.h"
      7 #include "chrome/browser/bookmarks/bookmark_model_factory.h"
      8 #include "chrome/browser/bookmarks/chrome_bookmark_client.h"
      9 #include "chrome/browser/bookmarks/chrome_bookmark_client_factory.h"
     10 #include "chrome/browser/extensions/extension_apitest.h"
     11 #include "chrome/browser/profiles/profile.h"
     12 #include "chrome/browser/ui/browser.h"
     13 #include "components/bookmarks/browser/bookmark_model.h"
     14 #include "components/bookmarks/browser/bookmark_node.h"
     15 #include "components/bookmarks/common/bookmark_pref_names.h"
     16 #include "components/bookmarks/test/bookmark_test_helpers.h"
     17 
     18 // Flaky on Windows and Linux. http://crbug.com/383452
     19 #if defined(OS_WIN) || defined(OS_LINUX)
     20 #define MAYBE_Bookmarks DISABLED_Bookmarks
     21 #else
     22 #define MAYBE_Bookmarks Bookmarks
     23 #endif
     24 IN_PROC_BROWSER_TEST_F(ExtensionApiTest, MAYBE_Bookmarks) {
     25   // Add test managed bookmarks to verify that the bookmarks API can read them
     26   // and can't modify them.
     27   Profile* profile = browser()->profile();
     28   BookmarkModel* model = BookmarkModelFactory::GetForProfile(profile);
     29   ChromeBookmarkClient* client =
     30       ChromeBookmarkClientFactory::GetForProfile(profile);
     31   test::WaitForBookmarkModelToLoad(model);
     32 
     33   base::ListValue list;
     34   base::DictionaryValue* node = new base::DictionaryValue();
     35   node->SetString("name", "Managed Bookmark");
     36   node->SetString("url", "http://www.chromium.org");
     37   list.Append(node);
     38   node = new base::DictionaryValue();
     39   node->SetString("name", "Managed Folder");
     40   node->Set("children", new base::ListValue());
     41   list.Append(node);
     42   profile->GetPrefs()->Set(prefs::kManagedBookmarks, list);
     43   ASSERT_EQ(2, client->managed_node()->child_count());
     44 
     45   ASSERT_TRUE(RunExtensionTest("bookmarks")) << message_;
     46 }
     47