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)#ifndef CHROME_BROWSER_SYNC_TEST_INTEGRATION_BOOKMARKS_HELPER_H_ 65821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define CHROME_BROWSER_SYNC_TEST_INTEGRATION_BOOKMARKS_HELPER_H_ 75821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 85821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include <set> 95821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include <string> 105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include <vector> 115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "base/compiler_specific.h" 13cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)#include "components/bookmarks/browser/bookmark_model.h" 145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "testing/gtest/include/gtest/gtest.h" 155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "third_party/skia/include/core/SkBitmap.h" 16eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch#include "url/gurl.h" 175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class GURL; 195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)namespace bookmarks_helper { 215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Used to access the bookmark model within a particular sync profile. 235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)BookmarkModel* GetBookmarkModel(int index) WARN_UNUSED_RESULT; 245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Used to access the bookmark bar within a particular sync profile. 265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)const BookmarkNode* GetBookmarkBarNode(int index) WARN_UNUSED_RESULT; 275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Used to access the "other bookmarks" node within a particular sync profile. 295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)const BookmarkNode* GetOtherNode(int index) WARN_UNUSED_RESULT; 305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Used to access the "Synced Bookmarks" node within a particular sync profile. 325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)const BookmarkNode* GetSyncedBookmarksNode(int index) WARN_UNUSED_RESULT; 335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 341320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci// Used to access the "Managed Bookmarks" node for the given profile. 351320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucciconst BookmarkNode* GetManagedNode(int index) WARN_UNUSED_RESULT; 361320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Used to access the bookmarks within the verifier sync profile. 385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)BookmarkModel* GetVerifierBookmarkModel() WARN_UNUSED_RESULT; 395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Adds a URL with address |url| and title |title| to the bookmark bar of 415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// profile |profile|. Returns a pointer to the node that was added. 425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)const BookmarkNode* AddURL( 435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int profile, 44f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) const std::string& title, 455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const GURL& url) WARN_UNUSED_RESULT; 465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Adds a URL with address |url| and title |title| to the bookmark bar of 485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// profile |profile| at position |index|. Returns a pointer to the node that 495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// was added. 505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)const BookmarkNode* AddURL( 515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int profile, 525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int index, 53f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) const std::string& title, 545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const GURL& url) WARN_UNUSED_RESULT; 555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Adds a URL with address |url| and title |title| under the node |parent| of 575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// profile |profile| at position |index|. Returns a pointer to the node that 585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// was added. 595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)const BookmarkNode* AddURL( 605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int profile, 615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const BookmarkNode* parent, 625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int index, 63f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) const std::string& title, 645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const GURL& url) WARN_UNUSED_RESULT; 655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Adds a folder named |title| to the bookmark bar of profile |profile|. 675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Returns a pointer to the folder that was added. 685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)const BookmarkNode* AddFolder( 695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int profile, 70f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) const std::string& title) WARN_UNUSED_RESULT; 715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Adds a folder named |title| to the bookmark bar of profile |profile| at 735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// position |index|. Returns a pointer to the folder that was added. 745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)const BookmarkNode* AddFolder( 755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int profile, 765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int index, 77f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) const std::string& title) WARN_UNUSED_RESULT; 785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Adds a folder named |title| to the node |parent| in the bookmark model of 805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// profile |profile| at position |index|. Returns a pointer to the node that 815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// was added. 825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)const BookmarkNode* AddFolder( 835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int profile, 845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const BookmarkNode* parent, 855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int index, 86f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) const std::string& title) WARN_UNUSED_RESULT; 875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Changes the title of the node |node| in the bookmark model of profile 895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// |profile| to |new_title|. 905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void SetTitle(int profile, 911320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci const BookmarkNode* node, 921320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci const std::string& new_title); 935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 942a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// The source of the favicon. 952a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)enum FaviconSource { 962a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) FROM_UI, 972a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) FROM_SYNC 982a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)}; 992a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 1002a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// Sets the |icon_url| and |image| data for the favicon for |node| in the 1012a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// bookmark model for |profile|. 1022a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)void SetFavicon(int profile, 1032a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) const BookmarkNode* node, 1042a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) const GURL& icon_url, 1052a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) const gfx::Image& image, 1062a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) FaviconSource source); 1075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Changes the url of the node |node| in the bookmark model of profile 1095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// |profile| to |new_url|. Returns a pointer to the node with the changed url. 1105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)const BookmarkNode* SetURL( 1115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int profile, 1125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const BookmarkNode* node, 1135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const GURL& new_url) WARN_UNUSED_RESULT; 1145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Moves the node |node| in the bookmark model of profile |profile| so it ends 1165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// up under the node |new_parent| at position |index|. 1175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void Move( 1185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int profile, 1195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const BookmarkNode* node, 1205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const BookmarkNode* new_parent, 1215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int index); 1225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Removes the node in the bookmark model of profile |profile| under the node 1245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// |parent| at position |index|. 1255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void Remove(int profile, const BookmarkNode* parent, int index); 1265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 127c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)// Removes all non-permanent nodes in the bookmark model of profile |profile|. 128c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)void RemoveAll(int profile); 129c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 1305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Sorts the children of the node |parent| in the bookmark model of profile 1315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// |profile|. 1325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void SortChildren(int profile, const BookmarkNode* parent); 1335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Reverses the order of the children of the node |parent| in the bookmark 1355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// model of profile |profile|. 1365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void ReverseChildOrder(int profile, const BookmarkNode* parent); 1375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Checks if the bookmark model of profile |profile| matches the verifier 1395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// bookmark model. Returns true if they match. 1405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)bool ModelMatchesVerifier(int profile) WARN_UNUSED_RESULT; 1415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Checks if the bookmark models of all sync profiles match the verifier 1435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// bookmark model. Returns true if they match. 1445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)bool AllModelsMatchVerifier() WARN_UNUSED_RESULT; 1455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Checks if the bookmark models of |profile_a| and |profile_b| match each 1475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// other. Returns true if they match. 1485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)bool ModelsMatch(int profile_a, int profile_b) WARN_UNUSED_RESULT; 1495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Checks if the bookmark models of all sync profiles match each other. Does 1515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// not compare them with the verifier bookmark model. Returns true if they 1525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// match. 1535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)bool AllModelsMatch() WARN_UNUSED_RESULT; 1545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 155a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch// Check if the bookmarks models of all sync profiles match each other, using 156a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch// AllModelsMatch. Returns true if bookmark models match and don't timeout 157a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch// while checking. 158a02191e04bc25c4935f804f2c080ae28663d096dBen Murdochbool AwaitAllModelsMatch() WARN_UNUSED_RESULT; 159a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch 1605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Checks if the bookmark model of profile |profile| contains any instances of 1615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// two bookmarks with the same URL under the same parent folder. Returns true 1625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// if even one instance is found. 1635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)bool ContainsDuplicateBookmarks(int profile); 1645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Returns whether a node exists with the specified url. 1665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)bool HasNodeWithURL(int profile, const GURL& url); 1675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Gets the node in the bookmark model of profile |profile| that has the url 1695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// |url|. Note: Only one instance of |url| is assumed to be present. 1705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)const BookmarkNode* GetUniqueNodeByURL( 1715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int profile, 1725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const GURL& url) WARN_UNUSED_RESULT; 1735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Returns the number of bookmarks in bookmark model of profile |profile| 1755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// whose titles match the string |title|. 1765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)int CountBookmarksWithTitlesMatching( 1775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int profile, 178f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) const std::string& title) WARN_UNUSED_RESULT; 1795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Returns the number of bookmark folders in the bookmark model of profile 1815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// |profile| whose titles contain the query string |title|. 1825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)int CountFoldersWithTitlesMatching( 1835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int profile, 184f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) const std::string& title) WARN_UNUSED_RESULT; 1855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1862a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// Creates a favicon of |color| with image reps of the platform's supported 1872a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// scale factors (eg MacOS) in addition to 1x. 1882a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)gfx::Image CreateFavicon(SkColor color); 1892a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 1902a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// Creates a 1x only favicon from the PNG file at |path|. 1912a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)gfx::Image Create1xFaviconFromPNGFile(const std::string& path); 1925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Returns a URL identifiable by |i|. 1945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)std::string IndexedURL(int i); 1955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Returns a URL title identifiable by |i|. 197f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)std::string IndexedURLTitle(int i); 1985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Returns a folder name identifiable by |i|. 200f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)std::string IndexedFolderName(int i); 2015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Returns a subfolder name identifiable by |i|. 203f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)std::string IndexedSubfolderName(int i); 2045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Returns a subsubfolder name identifiable by |i|. 206f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)std::string IndexedSubsubfolderName(int i); 2075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} // namespace bookmarks_helper 2095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif // CHROME_BROWSER_SYNC_TEST_INTEGRATION_BOOKMARKS_HELPER_H_ 211