Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(566)

Side by Side Diff: chrome/browser/cocoa/applescript/bookmark_folder_applescript_unittest.mm

Issue 3046042: Added AppleScript support (Closed) Base URL: http://src.chromium.org/svn/trunk/src/
Patch Set: '' Created 10 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
Property Changes:
Added: svn:eol-style
+ LF
OLDNEW
(Empty)
1 // Copyright (c) 2010 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 #import <Cocoa/Cocoa.h>
6
7 #include "base/scoped_nsobject.h"
8 #include "base/sys_string_conversions.h"
9 #import "chrome/browser/cocoa/applescript/bookmark_applescript_utils_unittest.h"
10 #import "chrome/browser/cocoa/applescript/bookmark_folder_applescript.h"
11 #import "chrome/browser/cocoa/applescript/bookmark_item_applescript.h"
12 #import "chrome/browser/cocoa/applescript/constants_applescript.h"
13 #import "chrome/browser/cocoa/applescript/error_applescript.h"
14 #include "googleurl/src/gurl.h"
15 #include "testing/gtest/include/gtest/gtest.h"
16 #import "testing/gtest_mac.h"
17 #include "testing/platform_test.h"
18
19 typedef BookmarkAppleScriptTest BookmarkFolderAppleScriptTest;
20
21 namespace {
22
23 // Test all the bookmark folders within.
24 TEST_F(BookmarkFolderAppleScriptTest, BookmarkFolders) {
25 NSArray* bookmarkFolders = [bookmarkBar_.get() bookmarkFolders];
26 BookmarkFolderAppleScript* folder1 = [bookmarkFolders objectAtIndex:0];
27 BookmarkFolderAppleScript* folder2 = [bookmarkFolders objectAtIndex:1];
28
29 EXPECT_EQ(2U, [bookmarkFolders count]);
30
31 EXPECT_NSEQ(@"f1", [folder1 title]);
32 EXPECT_NSEQ(@"f2", [folder2 title]);
33 EXPECT_EQ([folder1 container], bookmarkBar_.get());
34 EXPECT_EQ([folder2 container], bookmarkBar_.get());
35 EXPECT_NSEQ(AppleScript::kBookmarkFoldersProperty,
36 [folder1 containerProperty]);
37 EXPECT_NSEQ(AppleScript::kBookmarkFoldersProperty,
38 [folder2 containerProperty]);
39 }
40
41 // Insert a new bookmark folder.
42 TEST_F(BookmarkFolderAppleScriptTest, InsertBookmarkFolder) {
43 // Emulate what applescript would do when inserting a new bookmark folder.
44 // Emulates a script like |set var to make new bookmark folder with
45 // properties {title:"foo"}|.
46 scoped_nsobject<BookmarkFolderAppleScript> bookmarkFolder(
47 [[BookmarkFolderAppleScript alloc] init]);
48 scoped_nsobject<NSNumber> var([[bookmarkFolder.get() uniqueID] copy]);
49 [bookmarkFolder.get() setTitle:@"foo"];
50 [bookmarkBar_.get() insertInBookmarkFolders:bookmarkFolder.get()];
51
52 // Represents the bookmark folder after its added.
53 BookmarkFolderAppleScript* bf =
54 [[bookmarkBar_.get() bookmarkFolders] objectAtIndex:2];
55 EXPECT_NSEQ(@"foo", [bf title]);
56 EXPECT_EQ([bf container], bookmarkBar_.get());
57 EXPECT_NSEQ(AppleScript::kBookmarkFoldersProperty,
58 [bf containerProperty]);
59 EXPECT_NSEQ(var.get(), [bf uniqueID]);
60 }
61
62 // Insert a new bookmark folder at a particular position.
63 TEST_F(BookmarkFolderAppleScriptTest, InsertBookmarkFolderAtPosition) {
64 // Emulate what applescript would do when inserting a new bookmark folder.
65 // Emulates a script like |set var to make new bookmark folder with
66 // properties {title:"foo"} at after bookmark folder 1|.
67 scoped_nsobject<BookmarkFolderAppleScript> bookmarkFolder(
68 [[BookmarkFolderAppleScript alloc] init]);
69 scoped_nsobject<NSNumber> var([[bookmarkFolder.get() uniqueID] copy]);
70 [bookmarkFolder.get() setTitle:@"foo"];
71 [bookmarkBar_.get() insertInBookmarkFolders:bookmarkFolder.get() atIndex:1];
72
73 // Represents the bookmark folder after its added.
74 BookmarkFolderAppleScript* bf =
75 [[bookmarkBar_.get() bookmarkFolders] objectAtIndex:1];
76 EXPECT_NSEQ(@"foo", [bf title]);
77 EXPECT_EQ([bf container], bookmarkBar_.get());
78 EXPECT_NSEQ(AppleScript::kBookmarkFoldersProperty, [bf containerProperty]);
79 EXPECT_NSEQ(var.get(), [bf uniqueID]);
80 }
81
82 // Delete bookmark folders.
83 TEST_F(BookmarkFolderAppleScriptTest, DeleteBookmarkFolders) {
84 unsigned int folderCount = 2, itemCount = 3;
85 for (unsigned int i = 0; i < folderCount; ++i) {
86 EXPECT_EQ(folderCount - i, [[bookmarkBar_.get() bookmarkFolders] count]);
87 EXPECT_EQ(itemCount, [[bookmarkBar_.get() bookmarkItems] count]);
88 [bookmarkBar_.get() removeFromBookmarkFoldersAtIndex:0];
89 }
90 }
91
92 // Test all the bookmark items within.
93 TEST_F(BookmarkFolderAppleScriptTest, BookmarkItems) {
94 NSArray* bookmarkItems = [bookmarkBar_.get() bookmarkItems];
95 BookmarkItemAppleScript* item1 = [bookmarkItems objectAtIndex:0];
96 BookmarkItemAppleScript* item2 = [bookmarkItems objectAtIndex:1];
97 BookmarkItemAppleScript* item3 = [bookmarkItems objectAtIndex:2];
98
99 EXPECT_EQ(3U, [bookmarkItems count]);
100
101 EXPECT_NSEQ(@"a", [item1 title]);
102 EXPECT_NSEQ(@"d", [item2 title]);
103 EXPECT_NSEQ(@"h", [item3 title]);
104 EXPECT_EQ([item1 container], bookmarkBar_.get());
105 EXPECT_EQ([item2 container], bookmarkBar_.get());
106 EXPECT_EQ([item3 container], bookmarkBar_.get());
107 EXPECT_NSEQ(AppleScript::kBookmarkItemsProperty, [item1 containerProperty]);
108 EXPECT_NSEQ(AppleScript::kBookmarkItemsProperty, [item2 containerProperty]);
109 EXPECT_NSEQ(AppleScript::kBookmarkItemsProperty, [item3 containerProperty]);
110 }
111
112 // Insert a new bookmark item.
113 TEST_F(BookmarkFolderAppleScriptTest, InsertBookmarkItem) {
114 // Emulate what applescript would do when inserting a new bookmark folder.
115 // Emulates a script like |set var to make new bookmark item with
116 // properties {title:"Google", URL:"http://google.com"}|.
117 scoped_nsobject<BookmarkItemAppleScript> bookmarkItem(
118 [[BookmarkItemAppleScript alloc] init]);
119 scoped_nsobject<NSNumber> var([[bookmarkItem.get() uniqueID] copy]);
120 [bookmarkItem.get() setTitle:@"Google"];
121 [bookmarkItem.get() setURL:@"http://google.com"];
122 [bookmarkBar_.get() insertInBookmarkItems:bookmarkItem.get()];
123
124 // Represents the bookmark item after its added.
125 BookmarkItemAppleScript* bi =
126 [[bookmarkBar_.get() bookmarkItems] objectAtIndex:3];
127 EXPECT_NSEQ(@"Google", [bi title]);
128 EXPECT_EQ(GURL("http://google.com/"),
129 GURL(base::SysNSStringToUTF8([bi URL])));
130 EXPECT_EQ([bi container], bookmarkBar_.get());
131 EXPECT_NSEQ(AppleScript::kBookmarkItemsProperty, [bi containerProperty]);
132 EXPECT_NSEQ(var.get(), [bi uniqueID]);
133
134 // Test to see no bookmark item is created when no/invlid URL is entered.
135 scoped_nsobject<FakeScriptCommand> fakeScriptCommand(
136 [[FakeScriptCommand alloc] init]);
137 bookmarkItem.reset([[BookmarkItemAppleScript alloc] init]);
138 [bookmarkBar_.get() insertInBookmarkItems:bookmarkItem.get()];
139 EXPECT_EQ((int)AppleScript::errInvalidURL,
140 [fakeScriptCommand.get() scriptErrorNumber]);
141 }
142
143 // Insert a new bookmark item at a particular position.
144 TEST_F(BookmarkFolderAppleScriptTest, InsertBookmarkItemAtPosition) {
145 // Emulate what applescript would do when inserting a new bookmark item.
146 // Emulates a script like |set var to make new bookmark item with
147 // properties {title:"XKCD", URL:"http://xkcd.org}
148 // at after bookmark item 1|.
149 scoped_nsobject<BookmarkItemAppleScript> bookmarkItem(
150 [[BookmarkItemAppleScript alloc] init]);
151 scoped_nsobject<NSNumber> var([[bookmarkItem.get() uniqueID] copy]);
152 [bookmarkItem.get() setTitle:@"XKCD"];
153 [bookmarkItem.get() setURL:@"http://xkcd.org"];
154
155 [bookmarkBar_.get() insertInBookmarkItems:bookmarkItem.get() atIndex:1];
156
157 // Represents the bookmark item after its added.
158 BookmarkItemAppleScript* bi =
159 [[bookmarkBar_.get() bookmarkItems] objectAtIndex:1];
160 EXPECT_NSEQ(@"XKCD", [bi title]);
161 EXPECT_EQ(GURL("http://xkcd.org/"),
162 GURL(base::SysNSStringToUTF8([bi URL])));
163 EXPECT_EQ([bi container], bookmarkBar_.get());
164 EXPECT_NSEQ(AppleScript::kBookmarkItemsProperty,
165 [bi containerProperty]);
166 EXPECT_NSEQ(var.get(), [bi uniqueID]);
167
168 // Test to see no bookmark item is created when no/invlid URL is entered.
169 scoped_nsobject<FakeScriptCommand> fakeScriptCommand(
170 [[FakeScriptCommand alloc] init]);
171 bookmarkItem.reset([[BookmarkItemAppleScript alloc] init]);
172 [bookmarkBar_.get() insertInBookmarkItems:bookmarkItem.get() atIndex:1];
173 EXPECT_EQ((int)AppleScript::errInvalidURL,
174 [fakeScriptCommand.get() scriptErrorNumber]);
175 }
176
177 // Delete bookmark items.
178 TEST_F(BookmarkFolderAppleScriptTest, DeleteBookmarkItems) {
179 unsigned int folderCount = 2, itemCount = 3;
180 for (unsigned int i = 0; i < itemCount; ++i) {
181 EXPECT_EQ(folderCount, [[bookmarkBar_.get() bookmarkFolders] count]);
182 EXPECT_EQ(itemCount - i, [[bookmarkBar_.get() bookmarkItems] count]);
183 [bookmarkBar_.get() removeFromBookmarkItemsAtIndex:0];
184 }
185 }
186
187 // Set and get title.
188 TEST_F(BookmarkFolderAppleScriptTest, GetAndSetTitle) {
189 NSArray* bookmarkFolders = [bookmarkBar_.get() bookmarkFolders];
190 BookmarkFolderAppleScript* folder1 = [bookmarkFolders objectAtIndex:0];
191 [folder1 setTitle:@"Foo"];
192 EXPECT_NSEQ(@"Foo", [folder1 title]);
193 }
194
195 } // namespace
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698