bookmarks_helper.h revision cedac228d2dd51db4b79ea1e72c7f249408ee061
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) 345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Used to access the bookmarks within the verifier sync profile. 355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)BookmarkModel* GetVerifierBookmarkModel() WARN_UNUSED_RESULT; 365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Adds a URL with address |url| and title |title| to the bookmark bar of 385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// profile |profile|. Returns a pointer to the node that was added. 395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)const BookmarkNode* AddURL( 405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int profile, 415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const std::wstring& title, 425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const GURL& url) WARN_UNUSED_RESULT; 435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Adds a URL with address |url| and title |title| to the bookmark bar of 455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// profile |profile| at position |index|. Returns a pointer to the node that 465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// was added. 475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)const BookmarkNode* AddURL( 485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int profile, 495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int index, 505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const std::wstring& title, 515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const GURL& url) WARN_UNUSED_RESULT; 525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Adds a URL with address |url| and title |title| under the node |parent| of 545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// profile |profile| at position |index|. Returns a pointer to the node that 555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// was added. 565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)const BookmarkNode* AddURL( 575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int profile, 585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const BookmarkNode* parent, 595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int index, 605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const std::wstring& title, 615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const GURL& url) WARN_UNUSED_RESULT; 625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Adds a folder named |title| to the bookmark bar of profile |profile|. 645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Returns a pointer to the folder that was added. 655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)const BookmarkNode* AddFolder( 665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int profile, 675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const std::wstring& title) WARN_UNUSED_RESULT; 685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Adds a folder named |title| to the bookmark bar of profile |profile| at 705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// position |index|. Returns a pointer to the folder that was added. 715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)const BookmarkNode* AddFolder( 725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int profile, 735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int index, 745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const std::wstring& title) WARN_UNUSED_RESULT; 755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Adds a folder named |title| to the node |parent| in the bookmark model of 775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// profile |profile| at position |index|. Returns a pointer to the node that 785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// was added. 795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)const BookmarkNode* AddFolder( 805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int profile, 815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const BookmarkNode* parent, 825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int index, 835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const std::wstring& title) WARN_UNUSED_RESULT; 845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Changes the title of the node |node| in the bookmark model of profile 865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// |profile| to |new_title|. 875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void SetTitle(int profile, 885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const BookmarkNode* node, 895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const std::wstring& new_title); 905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 912a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// The source of the favicon. 922a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)enum FaviconSource { 932a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) FROM_UI, 942a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) FROM_SYNC 952a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)}; 962a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 972a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// Sets the |icon_url| and |image| data for the favicon for |node| in the 982a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// bookmark model for |profile|. 992a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)void SetFavicon(int profile, 1002a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) const BookmarkNode* node, 1012a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) const GURL& icon_url, 1022a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) const gfx::Image& image, 1032a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) FaviconSource source); 1045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Changes the url of the node |node| in the bookmark model of profile 1065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// |profile| to |new_url|. Returns a pointer to the node with the changed url. 1075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)const BookmarkNode* SetURL( 1085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int profile, 1095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const BookmarkNode* node, 1105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const GURL& new_url) WARN_UNUSED_RESULT; 1115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Moves the node |node| in the bookmark model of profile |profile| so it ends 1135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// up under the node |new_parent| at position |index|. 1145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void Move( 1155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int profile, 1165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const BookmarkNode* node, 1175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const BookmarkNode* new_parent, 1185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int index); 1195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Removes the node in the bookmark model of profile |profile| under the node 1215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// |parent| at position |index|. 1225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void Remove(int profile, const BookmarkNode* parent, int index); 1235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 124c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)// Removes all non-permanent nodes in the bookmark model of profile |profile|. 125c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)void RemoveAll(int profile); 126c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 1275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Sorts the children of the node |parent| in the bookmark model of profile 1285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// |profile|. 1295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void SortChildren(int profile, const BookmarkNode* parent); 1305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Reverses the order of the children of the node |parent| in the bookmark 1325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// model of profile |profile|. 1335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void ReverseChildOrder(int profile, const BookmarkNode* parent); 1345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Checks if the bookmark model of profile |profile| matches the verifier 1365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// bookmark model. Returns true if they match. 1375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)bool ModelMatchesVerifier(int profile) WARN_UNUSED_RESULT; 1385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Checks if the bookmark models of all sync profiles match the verifier 1405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// bookmark model. Returns true if they match. 1415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)bool AllModelsMatchVerifier() WARN_UNUSED_RESULT; 1425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Checks if the bookmark models of |profile_a| and |profile_b| match each 1445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// other. Returns true if they match. 1455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)bool ModelsMatch(int profile_a, int profile_b) WARN_UNUSED_RESULT; 1465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Checks if the bookmark models of all sync profiles match each other. Does 1485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// not compare them with the verifier bookmark model. Returns true if they 1495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// match. 1505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)bool AllModelsMatch() WARN_UNUSED_RESULT; 1515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 152a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch// Check if the bookmarks models of all sync profiles match each other, using 153a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch// AllModelsMatch. Returns true if bookmark models match and don't timeout 154a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch// while checking. 155a02191e04bc25c4935f804f2c080ae28663d096dBen Murdochbool AwaitAllModelsMatch() WARN_UNUSED_RESULT; 156a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch 1575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Checks if the bookmark model of profile |profile| contains any instances of 1585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// two bookmarks with the same URL under the same parent folder. Returns true 1595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// if even one instance is found. 1605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)bool ContainsDuplicateBookmarks(int profile); 1615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Returns whether a node exists with the specified url. 1635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)bool HasNodeWithURL(int profile, const GURL& url); 1645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Gets the node in the bookmark model of profile |profile| that has the url 1665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// |url|. Note: Only one instance of |url| is assumed to be present. 1675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)const BookmarkNode* GetUniqueNodeByURL( 1685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int profile, 1695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const GURL& url) WARN_UNUSED_RESULT; 1705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Returns the number of bookmarks in bookmark model of profile |profile| 1725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// whose titles match the string |title|. 1735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)int CountBookmarksWithTitlesMatching( 1745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int profile, 1755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const std::wstring& title) WARN_UNUSED_RESULT; 1765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Returns the number of bookmark folders in the bookmark model of profile 1785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// |profile| whose titles contain the query string |title|. 1795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)int CountFoldersWithTitlesMatching( 1805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int profile, 1815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const std::wstring& title) WARN_UNUSED_RESULT; 1825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1832a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// Creates a favicon of |color| with image reps of the platform's supported 1842a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// scale factors (eg MacOS) in addition to 1x. 1852a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)gfx::Image CreateFavicon(SkColor color); 1862a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 1872a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// Creates a 1x only favicon from the PNG file at |path|. 1882a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)gfx::Image Create1xFaviconFromPNGFile(const std::string& path); 1895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Returns a URL identifiable by |i|. 1915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)std::string IndexedURL(int i); 1925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Returns a URL title identifiable by |i|. 1945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)std::wstring IndexedURLTitle(int i); 1955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Returns a folder name identifiable by |i|. 1975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)std::wstring IndexedFolderName(int i); 1985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Returns a subfolder name identifiable by |i|. 2005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)std::wstring IndexedSubfolderName(int i); 2015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Returns a subsubfolder name identifiable by |i|. 2035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)std::wstring IndexedSubsubfolderName(int i); 2045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} // namespace bookmarks_helper 2065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif // CHROME_BROWSER_SYNC_TEST_INTEGRATION_BOOKMARKS_HELPER_H_ 208