| OLD | NEW |
| (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 |
| OLD | NEW |