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

Side by Side Diff: chrome/browser/ui/cocoa/applescript/bookmark_folder_applescript_browsertest.mm

Issue 2724603002: MacViews: Enable AppleScript support. (Closed)
Patch Set: MacViews: Enable AppleScript support. Created 3 years, 9 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
OLDNEW
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #import <Cocoa/Cocoa.h> 5 #import <Cocoa/Cocoa.h>
6 6
7 #include "base/mac/scoped_nsobject.h" 7 #include "base/mac/scoped_nsobject.h"
8 #include "base/strings/sys_string_conversions.h" 8 #include "base/strings/sys_string_conversions.h"
9 #import "chrome/browser/ui/cocoa/applescript/bookmark_applescript_utils_unittest .h" 9 #import "chrome/browser/ui/cocoa/applescript/bookmark_applescript_utils_test.h"
10 #import "chrome/browser/ui/cocoa/applescript/bookmark_folder_applescript.h" 10 #import "chrome/browser/ui/cocoa/applescript/bookmark_folder_applescript.h"
11 #import "chrome/browser/ui/cocoa/applescript/bookmark_item_applescript.h" 11 #import "chrome/browser/ui/cocoa/applescript/bookmark_item_applescript.h"
12 #import "chrome/browser/ui/cocoa/applescript/constants_applescript.h" 12 #import "chrome/browser/ui/cocoa/applescript/constants_applescript.h"
13 #import "chrome/browser/ui/cocoa/applescript/error_applescript.h" 13 #import "chrome/browser/ui/cocoa/applescript/error_applescript.h"
14 #include "testing/gtest/include/gtest/gtest.h" 14 #include "testing/gtest/include/gtest/gtest.h"
15 #import "testing/gtest_mac.h" 15 #import "testing/gtest_mac.h"
16 #include "testing/platform_test.h" 16 #include "testing/platform_test.h"
17 #include "url/gurl.h" 17 #include "url/gurl.h"
18 18
19 typedef BookmarkAppleScriptTest BookmarkFolderAppleScriptTest; 19 typedef BookmarkAppleScriptTest BookmarkFolderAppleScriptTest;
20 20
21 namespace { 21 namespace {
22 22
23 // Test all the bookmark folders within. 23 // Test all the bookmark folders within.
24 TEST_F(BookmarkFolderAppleScriptTest, BookmarkFolders) { 24 IN_PROC_BROWSER_TEST_F(BookmarkFolderAppleScriptTest, BookmarkFolders) {
25 NSArray* bookmarkFolders = [bookmarkBar_.get() bookmarkFolders]; 25 NSArray* bookmarkFolders = [bookmarkBar_.get() bookmarkFolders];
26 26
27 EXPECT_EQ(2U, [bookmarkFolders count]); 27 EXPECT_EQ(2U, [bookmarkFolders count]);
28 28
29 BookmarkFolderAppleScript* f1 = [bookmarkFolders objectAtIndex:0]; 29 BookmarkFolderAppleScript* f1 = [bookmarkFolders objectAtIndex:0];
30 BookmarkFolderAppleScript* f2 = [bookmarkFolders objectAtIndex:1]; 30 BookmarkFolderAppleScript* f2 = [bookmarkFolders objectAtIndex:1];
31 EXPECT_NSEQ(@"f1", [f1 title]); 31 EXPECT_NSEQ(@"f1", [f1 title]);
32 EXPECT_NSEQ(@"f2", [f2 title]); 32 EXPECT_NSEQ(@"f2", [f2 title]);
33 EXPECT_EQ(2, [[f1 index] intValue]); 33 EXPECT_EQ(2, [[f1 index] intValue]);
34 EXPECT_EQ(4, [[f2 index] intValue]); 34 EXPECT_EQ(4, [[f2 index] intValue]);
35 35
36 for (BookmarkFolderAppleScript* bookmarkFolder in bookmarkFolders) { 36 for (BookmarkFolderAppleScript* bookmarkFolder in bookmarkFolders) {
37 EXPECT_EQ([bookmarkFolder container], bookmarkBar_.get()); 37 EXPECT_EQ([bookmarkFolder container], bookmarkBar_.get());
38 EXPECT_NSEQ(AppleScript::kBookmarkFoldersProperty, 38 EXPECT_NSEQ(AppleScript::kBookmarkFoldersProperty,
39 [bookmarkFolder containerProperty]); 39 [bookmarkFolder containerProperty]);
40 } 40 }
41 } 41 }
42 42
43 // Insert a new bookmark folder. 43 // Insert a new bookmark folder.
44 TEST_F(BookmarkFolderAppleScriptTest, InsertBookmarkFolder) { 44 IN_PROC_BROWSER_TEST_F(BookmarkFolderAppleScriptTest, InsertBookmarkFolder) {
45 // Emulate what applescript would do when inserting a new bookmark folder. 45 // Emulate what applescript would do when inserting a new bookmark folder.
46 // Emulates a script like |set var to make new bookmark folder with 46 // Emulates a script like |set var to make new bookmark folder with
47 // properties {title:"foo"}|. 47 // properties {title:"foo"}|.
48 base::scoped_nsobject<BookmarkFolderAppleScript> bookmarkFolder( 48 base::scoped_nsobject<BookmarkFolderAppleScript> bookmarkFolder(
49 [[BookmarkFolderAppleScript alloc] init]); 49 [[BookmarkFolderAppleScript alloc] init]);
50 base::scoped_nsobject<NSNumber> var([[bookmarkFolder.get() uniqueID] copy]); 50 base::scoped_nsobject<NSNumber> var([[bookmarkFolder.get() uniqueID] copy]);
51 [bookmarkFolder.get() setTitle:@"foo"]; 51 [bookmarkFolder.get() setTitle:@"foo"];
52 [bookmarkBar_.get() insertInBookmarkFolders:bookmarkFolder.get()]; 52 [bookmarkBar_.get() insertInBookmarkFolders:bookmarkFolder.get()];
53 53
54 // Represents the bookmark folder after it's added. 54 // Represents the bookmark folder after it's added.
55 BookmarkFolderAppleScript* bf = 55 BookmarkFolderAppleScript* bf =
56 [[bookmarkBar_.get() bookmarkFolders] objectAtIndex:2]; 56 [[bookmarkBar_.get() bookmarkFolders] objectAtIndex:2];
57 EXPECT_NSEQ(@"foo", [bf title]); 57 EXPECT_NSEQ(@"foo", [bf title]);
58 EXPECT_EQ([bf container], bookmarkBar_.get()); 58 EXPECT_EQ([bf container], bookmarkBar_.get());
59 EXPECT_NSEQ(AppleScript::kBookmarkFoldersProperty, 59 EXPECT_NSEQ(AppleScript::kBookmarkFoldersProperty,
60 [bf containerProperty]); 60 [bf containerProperty]);
61 EXPECT_NSEQ(var.get(), [bf uniqueID]); 61 EXPECT_NSEQ(var.get(), [bf uniqueID]);
62 } 62 }
63 63
64 // Insert a new bookmark folder at a particular position. 64 // Insert a new bookmark folder at a particular position.
65 TEST_F(BookmarkFolderAppleScriptTest, InsertBookmarkFolderAtPosition) { 65 IN_PROC_BROWSER_TEST_F(BookmarkFolderAppleScriptTest,
66 InsertBookmarkFolderAtPosition) {
66 // Emulate what applescript would do when inserting a new bookmark folder. 67 // Emulate what applescript would do when inserting a new bookmark folder.
67 // Emulates a script like |set var to make new bookmark folder with 68 // Emulates a script like |set var to make new bookmark folder with
68 // properties {title:"foo"} at after bookmark folder 1|. 69 // properties {title:"foo"} at after bookmark folder 1|.
69 base::scoped_nsobject<BookmarkFolderAppleScript> bookmarkFolder( 70 base::scoped_nsobject<BookmarkFolderAppleScript> bookmarkFolder(
70 [[BookmarkFolderAppleScript alloc] init]); 71 [[BookmarkFolderAppleScript alloc] init]);
71 base::scoped_nsobject<NSNumber> var([[bookmarkFolder.get() uniqueID] copy]); 72 base::scoped_nsobject<NSNumber> var([[bookmarkFolder.get() uniqueID] copy]);
72 [bookmarkFolder.get() setTitle:@"foo"]; 73 [bookmarkFolder.get() setTitle:@"foo"];
73 [bookmarkBar_.get() insertInBookmarkFolders:bookmarkFolder.get() atIndex:1]; 74 [bookmarkBar_.get() insertInBookmarkFolders:bookmarkFolder.get() atIndex:1];
74 75
75 // Represents the bookmark folder after it's added. 76 // Represents the bookmark folder after it's added.
76 BookmarkFolderAppleScript* bf = 77 BookmarkFolderAppleScript* bf =
77 [[bookmarkBar_.get() bookmarkFolders] objectAtIndex:1]; 78 [[bookmarkBar_.get() bookmarkFolders] objectAtIndex:1];
78 EXPECT_NSEQ(@"foo", [bf title]); 79 EXPECT_NSEQ(@"foo", [bf title]);
79 EXPECT_EQ([bf container], bookmarkBar_.get()); 80 EXPECT_EQ([bf container], bookmarkBar_.get());
80 EXPECT_NSEQ(AppleScript::kBookmarkFoldersProperty, [bf containerProperty]); 81 EXPECT_NSEQ(AppleScript::kBookmarkFoldersProperty, [bf containerProperty]);
81 EXPECT_NSEQ(var.get(), [bf uniqueID]); 82 EXPECT_NSEQ(var.get(), [bf uniqueID]);
82 } 83 }
83 84
84 // Delete bookmark folders. 85 // Delete bookmark folders.
85 TEST_F(BookmarkFolderAppleScriptTest, DeleteBookmarkFolders) { 86 IN_PROC_BROWSER_TEST_F(BookmarkFolderAppleScriptTest, DeleteBookmarkFolders) {
86 unsigned int folderCount = 2, itemCount = 3; 87 unsigned int folderCount = 2, itemCount = 3;
87 for (unsigned int i = 0; i < folderCount; ++i) { 88 for (unsigned int i = 0; i < folderCount; ++i) {
88 EXPECT_EQ(folderCount - i, [[bookmarkBar_.get() bookmarkFolders] count]); 89 EXPECT_EQ(folderCount - i, [[bookmarkBar_.get() bookmarkFolders] count]);
89 EXPECT_EQ(itemCount, [[bookmarkBar_.get() bookmarkItems] count]); 90 EXPECT_EQ(itemCount, [[bookmarkBar_.get() bookmarkItems] count]);
90 [bookmarkBar_.get() removeFromBookmarkFoldersAtIndex:0]; 91 [bookmarkBar_.get() removeFromBookmarkFoldersAtIndex:0];
91 } 92 }
92 } 93 }
93 94
94 // Test all the bookmark items within. 95 // Test all the bookmark items within.
95 TEST_F(BookmarkFolderAppleScriptTest, BookmarkItems) { 96 IN_PROC_BROWSER_TEST_F(BookmarkFolderAppleScriptTest, BookmarkItems) {
96 NSArray* bookmarkItems = [bookmarkBar_.get() bookmarkItems]; 97 NSArray* bookmarkItems = [bookmarkBar_.get() bookmarkItems];
97 98
98 EXPECT_EQ(3U, [bookmarkItems count]); 99 EXPECT_EQ(3U, [bookmarkItems count]);
99 100
100 BookmarkItemAppleScript* i1 = [bookmarkItems objectAtIndex:0]; 101 BookmarkItemAppleScript* i1 = [bookmarkItems objectAtIndex:0];
101 BookmarkItemAppleScript* i2 = [bookmarkItems objectAtIndex:1]; 102 BookmarkItemAppleScript* i2 = [bookmarkItems objectAtIndex:1];
102 BookmarkItemAppleScript* i3 = [bookmarkItems objectAtIndex:2]; 103 BookmarkItemAppleScript* i3 = [bookmarkItems objectAtIndex:2];
103 EXPECT_NSEQ(@"a", [i1 title]); 104 EXPECT_NSEQ(@"a", [i1 title]);
104 EXPECT_NSEQ(@"d", [i2 title]); 105 EXPECT_NSEQ(@"d", [i2 title]);
105 EXPECT_NSEQ(@"h", [i3 title]); 106 EXPECT_NSEQ(@"h", [i3 title]);
106 EXPECT_EQ(1, [[i1 index] intValue]); 107 EXPECT_EQ(1, [[i1 index] intValue]);
107 EXPECT_EQ(3, [[i2 index] intValue]); 108 EXPECT_EQ(3, [[i2 index] intValue]);
108 EXPECT_EQ(5, [[i3 index] intValue]); 109 EXPECT_EQ(5, [[i3 index] intValue]);
109 110
110 for (BookmarkItemAppleScript* bookmarkItem in bookmarkItems) { 111 for (BookmarkItemAppleScript* bookmarkItem in bookmarkItems) {
111 EXPECT_EQ([bookmarkItem container], bookmarkBar_.get()); 112 EXPECT_EQ([bookmarkItem container], bookmarkBar_.get());
112 EXPECT_NSEQ(AppleScript::kBookmarkItemsProperty, 113 EXPECT_NSEQ(AppleScript::kBookmarkItemsProperty,
113 [bookmarkItem containerProperty]); 114 [bookmarkItem containerProperty]);
114 } 115 }
115 } 116 }
116 117
117 // Insert a new bookmark item. 118 // Insert a new bookmark item.
118 TEST_F(BookmarkFolderAppleScriptTest, InsertBookmarkItem) { 119 IN_PROC_BROWSER_TEST_F(BookmarkFolderAppleScriptTest, InsertBookmarkItem) {
119 // Emulate what applescript would do when inserting a new bookmark folder. 120 // Emulate what applescript would do when inserting a new bookmark folder.
120 // Emulates a script like |set var to make new bookmark item with 121 // Emulates a script like |set var to make new bookmark item with
121 // properties {title:"Google", URL:"http://google.com"}|. 122 // properties {title:"Google", URL:"http://google.com"}|.
122 base::scoped_nsobject<BookmarkItemAppleScript> bookmarkItem( 123 base::scoped_nsobject<BookmarkItemAppleScript> bookmarkItem(
123 [[BookmarkItemAppleScript alloc] init]); 124 [[BookmarkItemAppleScript alloc] init]);
124 base::scoped_nsobject<NSNumber> var([[bookmarkItem.get() uniqueID] copy]); 125 base::scoped_nsobject<NSNumber> var([[bookmarkItem.get() uniqueID] copy]);
125 [bookmarkItem.get() setTitle:@"Google"]; 126 [bookmarkItem.get() setTitle:@"Google"];
126 [bookmarkItem.get() setURL:@"http://google.com"]; 127 [bookmarkItem.get() setURL:@"http://google.com"];
127 [bookmarkBar_.get() insertInBookmarkItems:bookmarkItem.get()]; 128 [bookmarkBar_.get() insertInBookmarkItems:bookmarkItem.get()];
128 129
(...skipping 10 matching lines...) Expand all
139 // Test to see no bookmark item is created when no/invlid URL is entered. 140 // Test to see no bookmark item is created when no/invlid URL is entered.
140 base::scoped_nsobject<FakeScriptCommand> fakeScriptCommand( 141 base::scoped_nsobject<FakeScriptCommand> fakeScriptCommand(
141 [[FakeScriptCommand alloc] init]); 142 [[FakeScriptCommand alloc] init]);
142 bookmarkItem.reset([[BookmarkItemAppleScript alloc] init]); 143 bookmarkItem.reset([[BookmarkItemAppleScript alloc] init]);
143 [bookmarkBar_.get() insertInBookmarkItems:bookmarkItem.get()]; 144 [bookmarkBar_.get() insertInBookmarkItems:bookmarkItem.get()];
144 EXPECT_EQ((int)AppleScript::errInvalidURL, 145 EXPECT_EQ((int)AppleScript::errInvalidURL,
145 [fakeScriptCommand.get() scriptErrorNumber]); 146 [fakeScriptCommand.get() scriptErrorNumber]);
146 } 147 }
147 148
148 // Insert a new bookmark item at a particular position. 149 // Insert a new bookmark item at a particular position.
149 TEST_F(BookmarkFolderAppleScriptTest, InsertBookmarkItemAtPosition) { 150 IN_PROC_BROWSER_TEST_F(BookmarkFolderAppleScriptTest,
151 InsertBookmarkItemAtPosition) {
150 // Emulate what applescript would do when inserting a new bookmark item. 152 // Emulate what applescript would do when inserting a new bookmark item.
151 // Emulates a script like |set var to make new bookmark item with 153 // Emulates a script like |set var to make new bookmark item with
152 // properties {title:"XKCD", URL:"http://xkcd.org} 154 // properties {title:"XKCD", URL:"http://xkcd.org}
153 // at after bookmark item 1|. 155 // at after bookmark item 1|.
154 base::scoped_nsobject<BookmarkItemAppleScript> bookmarkItem( 156 base::scoped_nsobject<BookmarkItemAppleScript> bookmarkItem(
155 [[BookmarkItemAppleScript alloc] init]); 157 [[BookmarkItemAppleScript alloc] init]);
156 base::scoped_nsobject<NSNumber> var([[bookmarkItem.get() uniqueID] copy]); 158 base::scoped_nsobject<NSNumber> var([[bookmarkItem.get() uniqueID] copy]);
157 [bookmarkItem.get() setTitle:@"XKCD"]; 159 [bookmarkItem.get() setTitle:@"XKCD"];
158 [bookmarkItem.get() setURL:@"http://xkcd.org"]; 160 [bookmarkItem.get() setURL:@"http://xkcd.org"];
159 161
(...skipping 13 matching lines...) Expand all
173 // Test to see no bookmark item is created when no/invlid URL is entered. 175 // Test to see no bookmark item is created when no/invlid URL is entered.
174 base::scoped_nsobject<FakeScriptCommand> fakeScriptCommand( 176 base::scoped_nsobject<FakeScriptCommand> fakeScriptCommand(
175 [[FakeScriptCommand alloc] init]); 177 [[FakeScriptCommand alloc] init]);
176 bookmarkItem.reset([[BookmarkItemAppleScript alloc] init]); 178 bookmarkItem.reset([[BookmarkItemAppleScript alloc] init]);
177 [bookmarkBar_.get() insertInBookmarkItems:bookmarkItem.get() atIndex:1]; 179 [bookmarkBar_.get() insertInBookmarkItems:bookmarkItem.get() atIndex:1];
178 EXPECT_EQ((int)AppleScript::errInvalidURL, 180 EXPECT_EQ((int)AppleScript::errInvalidURL,
179 [fakeScriptCommand.get() scriptErrorNumber]); 181 [fakeScriptCommand.get() scriptErrorNumber]);
180 } 182 }
181 183
182 // Delete bookmark items. 184 // Delete bookmark items.
183 TEST_F(BookmarkFolderAppleScriptTest, DeleteBookmarkItems) { 185 IN_PROC_BROWSER_TEST_F(BookmarkFolderAppleScriptTest, DeleteBookmarkItems) {
184 unsigned int folderCount = 2, itemCount = 3; 186 unsigned int folderCount = 2, itemCount = 3;
185 for (unsigned int i = 0; i < itemCount; ++i) { 187 for (unsigned int i = 0; i < itemCount; ++i) {
186 EXPECT_EQ(folderCount, [[bookmarkBar_.get() bookmarkFolders] count]); 188 EXPECT_EQ(folderCount, [[bookmarkBar_.get() bookmarkFolders] count]);
187 EXPECT_EQ(itemCount - i, [[bookmarkBar_.get() bookmarkItems] count]); 189 EXPECT_EQ(itemCount - i, [[bookmarkBar_.get() bookmarkItems] count]);
188 [bookmarkBar_.get() removeFromBookmarkItemsAtIndex:0]; 190 [bookmarkBar_.get() removeFromBookmarkItemsAtIndex:0];
189 } 191 }
190 } 192 }
191 193
192 // Set and get title. 194 // Set and get title.
193 TEST_F(BookmarkFolderAppleScriptTest, GetAndSetTitle) { 195 IN_PROC_BROWSER_TEST_F(BookmarkFolderAppleScriptTest, GetAndSetTitle) {
194 NSArray* bookmarkFolders = [bookmarkBar_.get() bookmarkFolders]; 196 NSArray* bookmarkFolders = [bookmarkBar_.get() bookmarkFolders];
195 BookmarkFolderAppleScript* folder1 = [bookmarkFolders objectAtIndex:0]; 197 BookmarkFolderAppleScript* folder1 = [bookmarkFolders objectAtIndex:0];
196 [folder1 setTitle:@"Foo"]; 198 [folder1 setTitle:@"Foo"];
197 EXPECT_NSEQ(@"Foo", [folder1 title]); 199 EXPECT_NSEQ(@"Foo", [folder1 title]);
198 } 200 }
199 201
200 } // namespace 202 } // namespace
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698