summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorpinkerton@chromium.org <pinkerton@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-11-29 18:15:24 +0000
committerpinkerton@chromium.org <pinkerton@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-11-29 18:15:24 +0000
commitc3dc6a32a89a4503515bb565eb9681c56baf8399 (patch)
tree75e63d85191686530b662fceaae188996e04073b
parentaf9d3ecf686e5d5bc1955073a15f01ea8f2bc305 (diff)
downloadchromium_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
-rw-r--r--chrome/browser/cocoa/applescript/bookmark_folder_applescript_unittest.mm20
-rw-r--r--chrome/browser/cocoa/applescript/bookmark_node_applescript.h3
-rw-r--r--chrome/browser/cocoa/applescript/bookmark_node_applescript.mm7
-rw-r--r--chrome/browser/cocoa/applescript/scripting.sdef2
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"/>