diff options
author | pinkerton@chromium.org <pinkerton@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-11-29 18:15:24 +0000 |
---|---|---|
committer | pinkerton@chromium.org <pinkerton@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-11-29 18:15:24 +0000 |
commit | c3dc6a32a89a4503515bb565eb9681c56baf8399 (patch) | |
tree | 75e63d85191686530b662fceaae188996e04073b | |
parent | af9d3ecf686e5d5bc1955073a15f01ea8f2bc305 (diff) | |
download | chromium_src-c3dc6a32a89a4503515bb565eb9681c56baf8399.zip chromium_src-c3dc6a32a89a4503515bb565eb9681c56baf8399.tar.gz chromium_src-c3dc6a32a89a4503515bb565eb9681c56baf8399.tar.bz2 |
Added a method to return the index of a bookmark with respect to its parent bookmark folder. Patch from v.a.shreyas@gmail.com.
BUG=62522
TEST=Passes BookmarkFolderAppleScriptTest
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@67559 0039d316-1c4b-4281-b951-d872f2087c98
4 files changed, 27 insertions, 5 deletions
diff --git a/chrome/browser/cocoa/applescript/bookmark_folder_applescript_unittest.mm b/chrome/browser/cocoa/applescript/bookmark_folder_applescript_unittest.mm index 17a0b6a9..658f1fc 100644 --- a/chrome/browser/cocoa/applescript/bookmark_folder_applescript_unittest.mm +++ b/chrome/browser/cocoa/applescript/bookmark_folder_applescript_unittest.mm @@ -26,8 +26,12 @@ TEST_F(BookmarkFolderAppleScriptTest, BookmarkFolders) { EXPECT_EQ(2U, [bookmarkFolders count]); - EXPECT_NSEQ(@"f1", [[bookmarkFolders objectAtIndex:0] title]); - EXPECT_NSEQ(@"f2", [[bookmarkFolders objectAtIndex:1] title]); + BookmarkFolderAppleScript* f1 = [bookmarkFolders objectAtIndex:0]; + BookmarkFolderAppleScript* f2 = [bookmarkFolders objectAtIndex:1]; + EXPECT_NSEQ(@"f1", [f1 title]); + EXPECT_NSEQ(@"f2", [f2 title]); + EXPECT_EQ(2, [[f1 index] intValue]); + EXPECT_EQ(4, [[f2 index] intValue]); for (BookmarkFolderAppleScript* bookmarkFolder in bookmarkFolders) { EXPECT_EQ([bookmarkFolder container], bookmarkBar_.get()); @@ -93,9 +97,15 @@ TEST_F(BookmarkFolderAppleScriptTest, BookmarkItems) { EXPECT_EQ(3U, [bookmarkItems count]); - EXPECT_NSEQ(@"a", [[bookmarkItems objectAtIndex:0] title]); - EXPECT_NSEQ(@"d", [[bookmarkItems objectAtIndex:1] title]); - EXPECT_NSEQ(@"h", [[bookmarkItems objectAtIndex:2] title]); + BookmarkItemAppleScript* i1 = [bookmarkItems objectAtIndex:0]; + BookmarkItemAppleScript* i2 = [bookmarkItems objectAtIndex:1]; + BookmarkItemAppleScript* i3 = [bookmarkItems objectAtIndex:2]; + EXPECT_NSEQ(@"a", [i1 title]); + EXPECT_NSEQ(@"d", [i2 title]); + EXPECT_NSEQ(@"h", [i3 title]); + EXPECT_EQ(1, [[i1 index] intValue]); + EXPECT_EQ(3, [[i2 index] intValue]); + EXPECT_EQ(5, [[i3 index] intValue]); for (BookmarkItemAppleScript* bookmarkItem in bookmarkItems) { EXPECT_EQ([bookmarkItem container], bookmarkBar_.get()); diff --git a/chrome/browser/cocoa/applescript/bookmark_node_applescript.h b/chrome/browser/cocoa/applescript/bookmark_node_applescript.h index 818b8ba..7ec8856 100644 --- a/chrome/browser/cocoa/applescript/bookmark_node_applescript.h +++ b/chrome/browser/cocoa/applescript/bookmark_node_applescript.h @@ -37,6 +37,9 @@ class BookmarkNode; - (NSString*)title; - (void)setTitle:(NSString*)aTitle; +// Returns the index with respect to its parent bookmark folder. +- (NSNumber*)index; + // Returns the bookmark model of the browser, returns NULL if there is an error. - (BookmarkModel*)bookmarkModel; diff --git a/chrome/browser/cocoa/applescript/bookmark_node_applescript.mm b/chrome/browser/cocoa/applescript/bookmark_node_applescript.mm index af30c04..9ad57bd 100644 --- a/chrome/browser/cocoa/applescript/bookmark_node_applescript.mm +++ b/chrome/browser/cocoa/applescript/bookmark_node_applescript.mm @@ -102,6 +102,13 @@ model->SetTitle(bookmarkNode_, base::SysNSStringToUTF16(aTitle)); } +- (NSNumber*)index { + const BookmarkNode* parent = bookmarkNode_->GetParent(); + int index = parent->IndexOfChild(bookmarkNode_); + // NOTE: AppleScript is 1-Based. + return [NSNumber numberWithInt:index+1]; +} + - (BookmarkModel*)bookmarkModel { AppController* appDelegate = [NSApp delegate]; diff --git a/chrome/browser/cocoa/applescript/scripting.sdef b/chrome/browser/cocoa/applescript/scripting.sdef index 86c00c6..b67b2b7 100644 --- a/chrome/browser/cocoa/applescript/scripting.sdef +++ b/chrome/browser/cocoa/applescript/scripting.sdef @@ -249,6 +249,7 @@ <cocoa key="uniqueID"/> </property> <property name="title" code="pnam" description="The title of the folder." type="text"/> + <property name="index" code="indx" description="Returns the index with respect to its parent bookmark folder" type="number" access="r"/> </class> <class name="bookmark item" code="CrBI" description="An item consists of an URL and the title of a bookmark"> <cocoa class="BookmarkItemAppleScript"/> @@ -257,6 +258,7 @@ </property> <property name="title" code="pnam" description="The title of the bookmark item." type="text"/> <property name="URL" code="URL " description="The URL of the bookmark." type="text"/> + <property name="index" code="indx" description="Returns the index with respect to its parent bookmark folder" type="number" access="r"/> </class> <command name="reload" code="CrSuRlod" description="Reload a tab."> <direct-parameter description="The tab to execute the command in." type="specifier"/> |