OLD | NEW |
1 // Copyright 2016 The Chromium Authors. All rights reserved. | 1 // Copyright 2016 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 #include <vector> | 5 #include <vector> |
6 | 6 |
7 #import <EarlGrey/EarlGrey.h> | 7 #import <EarlGrey/EarlGrey.h> |
8 #import <UIKit/UIKit.h> | 8 #import <UIKit/UIKit.h> |
9 #import <XCTest/XCTest.h> | 9 #import <XCTest/XCTest.h> |
10 | 10 |
(...skipping 24 matching lines...) Expand all Loading... |
35 #import "ios/chrome/test/earl_grey/chrome_test_case.h" | 35 #import "ios/chrome/test/earl_grey/chrome_test_case.h" |
36 #import "ios/public/provider/chrome/browser/signin/fake_chrome_identity.h" | 36 #import "ios/public/provider/chrome/browser/signin/fake_chrome_identity.h" |
37 #import "ios/public/provider/chrome/browser/signin/fake_chrome_identity_service.
h" | 37 #import "ios/public/provider/chrome/browser/signin/fake_chrome_identity_service.
h" |
38 #import "ios/testing/wait_util.h" | 38 #import "ios/testing/wait_util.h" |
39 #import "ios/web/public/test/http_server.h" | 39 #import "ios/web/public/test/http_server.h" |
40 #include "ios/web/public/test/http_server_util.h" | 40 #include "ios/web/public/test/http_server_util.h" |
41 #include "ui/base/l10n/l10n_util.h" | 41 #include "ui/base/l10n/l10n_util.h" |
42 #include "ui/base/models/tree_node_iterator.h" | 42 #include "ui/base/models/tree_node_iterator.h" |
43 #include "url/gurl.h" | 43 #include "url/gurl.h" |
44 | 44 |
| 45 #if !defined(__has_feature) || !__has_feature(objc_arc) |
| 46 #error "This file requires ARC support." |
| 47 #endif |
| 48 |
45 using chrome_test_util::ButtonWithAccessibilityLabel; | 49 using chrome_test_util::ButtonWithAccessibilityLabel; |
46 using chrome_test_util::ButtonWithAccessibilityLabelId; | 50 using chrome_test_util::ButtonWithAccessibilityLabelId; |
47 | 51 |
48 namespace { | 52 namespace { |
49 // TODO(crbug.com/616929): Move common matchers that are useful across tests | 53 // TODO(crbug.com/616929): Move common matchers that are useful across tests |
50 // into a shared location. | 54 // into a shared location. |
51 | 55 |
52 // Matcher for bookmarks tool tip star. | 56 // Matcher for bookmarks tool tip star. |
53 id<GREYMatcher> StarButton() { | 57 id<GREYMatcher> StarButton() { |
54 return ButtonWithAccessibilityLabelId(IDS_TOOLTIP_STAR); | 58 return ButtonWithAccessibilityLabelId(IDS_TOOLTIP_STAR); |
(...skipping 105 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
160 "http://ios/testing/data/http_server_files/pony.html"); | 164 "http://ios/testing/data/http_server_files/pony.html"); |
161 std::string expectedURLContent = bookmarkedURL.GetContent(); | 165 std::string expectedURLContent = bookmarkedURL.GetContent(); |
162 NSString* bookmarkTitle = @"my bookmark"; | 166 NSString* bookmarkTitle = @"my bookmark"; |
163 | 167 |
164 [ChromeEarlGrey loadURL:bookmarkedURL]; | 168 [ChromeEarlGrey loadURL:bookmarkedURL]; |
165 [[EarlGrey selectElementWithMatcher:chrome_test_util::OmniboxText( | 169 [[EarlGrey selectElementWithMatcher:chrome_test_util::OmniboxText( |
166 expectedURLContent)] | 170 expectedURLContent)] |
167 assertWithMatcher:grey_notNil()]; | 171 assertWithMatcher:grey_notNil()]; |
168 | 172 |
169 // Add the bookmark from the UI. | 173 // Add the bookmark from the UI. |
170 [[self class] bookmarkCurrentTabWithTitle:bookmarkTitle]; | 174 [BookmarksTestCase bookmarkCurrentTabWithTitle:bookmarkTitle]; |
171 | 175 |
172 // Verify the bookmark is set. | 176 // Verify the bookmark is set. |
173 [[self class] assertBookmarksWithTitle:bookmarkTitle expectedCount:1]; | 177 [BookmarksTestCase assertBookmarksWithTitle:bookmarkTitle expectedCount:1]; |
174 | 178 |
175 NSString* const kStarLitLabel = | 179 NSString* const kStarLitLabel = |
176 !IsCompact() ? l10n_util::GetNSString(IDS_TOOLTIP_STAR) | 180 !IsCompact() ? l10n_util::GetNSString(IDS_TOOLTIP_STAR) |
177 : l10n_util::GetNSString(IDS_IOS_BOOKMARK_EDIT_SCREEN_TITLE); | 181 : l10n_util::GetNSString(IDS_IOS_BOOKMARK_EDIT_SCREEN_TITLE); |
178 // Verify the star is lit. | 182 // Verify the star is lit. |
179 if (IsCompact()) { | 183 if (IsCompact()) { |
180 [ChromeEarlGreyUI openToolsMenu]; | 184 [ChromeEarlGreyUI openToolsMenu]; |
181 } | 185 } |
182 [[EarlGrey selectElementWithMatcher:grey_accessibilityLabel(kStarLitLabel)] | 186 [[EarlGrey selectElementWithMatcher:grey_accessibilityLabel(kStarLitLabel)] |
183 assertWithMatcher:grey_notNil()]; | 187 assertWithMatcher:grey_notNil()]; |
184 | 188 |
185 // Clear the bookmark via the UI. | 189 // Clear the bookmark via the UI. |
186 [[EarlGrey selectElementWithMatcher:grey_accessibilityLabel(kStarLitLabel)] | 190 [[EarlGrey selectElementWithMatcher:grey_accessibilityLabel(kStarLitLabel)] |
187 performAction:grey_tap()]; | 191 performAction:grey_tap()]; |
188 [[EarlGrey selectElementWithMatcher:ActionSheet(ActionDelete)] | 192 [[EarlGrey selectElementWithMatcher:ActionSheet(ActionDelete)] |
189 performAction:grey_tap()]; | 193 performAction:grey_tap()]; |
190 | 194 |
191 // Verify the bookmark is not in the BookmarkModel. | 195 // Verify the bookmark is not in the BookmarkModel. |
192 [[self class] assertBookmarksWithTitle:bookmarkTitle expectedCount:0]; | 196 [BookmarksTestCase assertBookmarksWithTitle:bookmarkTitle expectedCount:0]; |
193 | 197 |
194 NSString* const kStarUnlitLabel = | 198 NSString* const kStarUnlitLabel = |
195 !IsCompact() ? l10n_util::GetNSString(IDS_TOOLTIP_STAR) | 199 !IsCompact() ? l10n_util::GetNSString(IDS_TOOLTIP_STAR) |
196 : l10n_util::GetNSString(IDS_BOOKMARK_ADD_EDITOR_TITLE); | 200 : l10n_util::GetNSString(IDS_BOOKMARK_ADD_EDITOR_TITLE); |
197 | 201 |
198 // Verify the star is not lit. | 202 // Verify the star is not lit. |
199 if (IsCompact()) { | 203 if (IsCompact()) { |
200 [ChromeEarlGreyUI openToolsMenu]; | 204 [ChromeEarlGreyUI openToolsMenu]; |
201 } | 205 } |
202 [[EarlGrey selectElementWithMatcher:grey_accessibilityLabel(kStarUnlitLabel)] | 206 [[EarlGrey selectElementWithMatcher:grey_accessibilityLabel(kStarUnlitLabel)] |
203 assertWithMatcher:grey_notNil()]; | 207 assertWithMatcher:grey_notNil()]; |
204 | 208 |
205 // TODO(crbug.com/617652): This code should be removed when a common helper | 209 // TODO(crbug.com/617652): This code should be removed when a common helper |
206 // is added to close any menus, which should be run as test setup. | 210 // is added to close any menus, which should be run as test setup. |
207 if (IsCompact()) { | 211 if (IsCompact()) { |
208 [[EarlGrey selectElementWithMatcher:CloseToolsMenuButton()] | 212 [[EarlGrey selectElementWithMatcher:CloseToolsMenuButton()] |
209 performAction:grey_tap()]; | 213 performAction:grey_tap()]; |
210 } | 214 } |
211 | 215 |
212 // Close the opened tab. | 216 // Close the opened tab. |
213 base::scoped_nsobject<GenericChromeCommand> command( | 217 GenericChromeCommand* command = |
214 [[GenericChromeCommand alloc] initWithTag:IDC_CLOSE_TAB]); | 218 [[GenericChromeCommand alloc] initWithTag:IDC_CLOSE_TAB]; |
215 chrome_test_util::RunCommandWithActiveViewController(command); | 219 chrome_test_util::RunCommandWithActiveViewController(command); |
216 } | 220 } |
217 | 221 |
218 // Tests that tapping a bookmark on the NTP navigates to the proper URL. | 222 // Tests that tapping a bookmark on the NTP navigates to the proper URL. |
219 - (void)testTapBookmark { | 223 - (void)testTapBookmark { |
220 const GURL bookmarkURL = web::test::HttpServer::MakeUrl( | 224 const GURL bookmarkURL = web::test::HttpServer::MakeUrl( |
221 "http://ios/testing/data/http_server_files/destination.html"); | 225 "http://ios/testing/data/http_server_files/destination.html"); |
222 NSString* bookmarkTitle = @"smokeTapBookmark"; | 226 NSString* bookmarkTitle = @"smokeTapBookmark"; |
223 | 227 |
224 // Load a bookmark into the bookmark model. | 228 // Load a bookmark into the bookmark model. |
225 [[self class] addBookmark:bookmarkURL withTitle:bookmarkTitle]; | 229 [BookmarksTestCase addBookmark:bookmarkURL withTitle:bookmarkTitle]; |
226 | 230 |
227 // Open the UI for Bookmarks. | 231 // Open the UI for Bookmarks. |
228 [[self class] openMobileBookmarks]; | 232 [BookmarksTestCase openMobileBookmarks]; |
229 | 233 |
230 // Verify bookmark is visible. | 234 // Verify bookmark is visible. |
231 [[EarlGrey | 235 [[EarlGrey |
232 selectElementWithMatcher:ButtonWithAccessibilityLabel(bookmarkTitle)] | 236 selectElementWithMatcher:ButtonWithAccessibilityLabel(bookmarkTitle)] |
233 assertWithMatcher:grey_sufficientlyVisible() | 237 assertWithMatcher:grey_sufficientlyVisible() |
234 error:nil]; | 238 error:nil]; |
235 | 239 |
236 // Tap on the bookmark and verify the URL that appears in the omnibox. | 240 // Tap on the bookmark and verify the URL that appears in the omnibox. |
237 [[EarlGrey | 241 [[EarlGrey |
238 selectElementWithMatcher:ButtonWithAccessibilityLabel(bookmarkTitle)] | 242 selectElementWithMatcher:ButtonWithAccessibilityLabel(bookmarkTitle)] |
239 performAction:grey_tap()]; | 243 performAction:grey_tap()]; |
240 [[EarlGrey selectElementWithMatcher:chrome_test_util::OmniboxText( | 244 [[EarlGrey selectElementWithMatcher:chrome_test_util::OmniboxText( |
241 bookmarkURL.GetContent())] | 245 bookmarkURL.GetContent())] |
242 assertWithMatcher:grey_notNil()]; | 246 assertWithMatcher:grey_notNil()]; |
243 } | 247 } |
244 | 248 |
245 // Test to set bookmarks in multiple tabs. | 249 // Test to set bookmarks in multiple tabs. |
246 - (void)testBookmarkMultipleTabs { | 250 - (void)testBookmarkMultipleTabs { |
247 const GURL firstURL = web::test::HttpServer::MakeUrl( | 251 const GURL firstURL = web::test::HttpServer::MakeUrl( |
248 "http://ios/testing/data/http_server_files/pony.html"); | 252 "http://ios/testing/data/http_server_files/pony.html"); |
249 const GURL secondURL = web::test::HttpServer::MakeUrl( | 253 const GURL secondURL = web::test::HttpServer::MakeUrl( |
250 "http://ios/testing/data/http_server_files/destination.html"); | 254 "http://ios/testing/data/http_server_files/destination.html"); |
251 [ChromeEarlGrey loadURL:firstURL]; | 255 [ChromeEarlGrey loadURL:firstURL]; |
252 chrome_test_util::OpenNewTab(); | 256 chrome_test_util::OpenNewTab(); |
253 [ChromeEarlGrey loadURL:secondURL]; | 257 [ChromeEarlGrey loadURL:secondURL]; |
254 | 258 |
255 [[self class] bookmarkCurrentTabWithTitle:@"my bookmark"]; | 259 [BookmarksTestCase bookmarkCurrentTabWithTitle:@"my bookmark"]; |
256 [[self class] assertBookmarksWithTitle:@"my bookmark" expectedCount:1]; | 260 [BookmarksTestCase assertBookmarksWithTitle:@"my bookmark" expectedCount:1]; |
257 } | 261 } |
258 | 262 |
259 // Try navigating to the bookmark screen, and selecting a bookmark. | 263 // Try navigating to the bookmark screen, and selecting a bookmark. |
260 - (void)testSelectBookmark { | 264 - (void)testSelectBookmark { |
261 [[self class] setupStandardBookmarks]; | 265 [BookmarksTestCase setupStandardBookmarks]; |
262 [[self class] openMobileBookmarks]; | 266 [BookmarksTestCase openMobileBookmarks]; |
263 | 267 |
264 // Tap on one of the standard bookmark. Verify that it loads. | 268 // Tap on one of the standard bookmark. Verify that it loads. |
265 [[EarlGrey selectElementWithMatcher:grey_text(@"Second URL")] | 269 [[EarlGrey selectElementWithMatcher:grey_text(@"Second URL")] |
266 performAction:grey_tap()]; | 270 performAction:grey_tap()]; |
267 | 271 |
268 // Wait for the page to load. | 272 // Wait for the page to load. |
269 [ChromeEarlGrey waitForPageToFinishLoading]; | 273 [ChromeEarlGrey waitForPageToFinishLoading]; |
270 | 274 |
271 // Check the URL is correct. | 275 // Check the URL is correct. |
272 const GURL secondURL = web::test::HttpServer::MakeUrl( | 276 const GURL secondURL = web::test::HttpServer::MakeUrl( |
273 "http://ios/testing/data/http_server_files/destination.html"); | 277 "http://ios/testing/data/http_server_files/destination.html"); |
274 [[EarlGrey selectElementWithMatcher:chrome_test_util::Omnibox()] | 278 [[EarlGrey selectElementWithMatcher:chrome_test_util::Omnibox()] |
275 assertWithMatcher:chrome_test_util::OmniboxText(secondURL.GetContent())]; | 279 assertWithMatcher:chrome_test_util::OmniboxText(secondURL.GetContent())]; |
276 } | 280 } |
277 | 281 |
278 // Try deleting a bookmark, then undoing that delete. | 282 // Try deleting a bookmark, then undoing that delete. |
279 - (void)testUndoDeleteBookmark { | 283 - (void)testUndoDeleteBookmark { |
280 [[self class] setupStandardBookmarks]; | 284 [BookmarksTestCase setupStandardBookmarks]; |
281 [[self class] openMobileBookmarks]; | 285 [BookmarksTestCase openMobileBookmarks]; |
282 | 286 |
283 // Load the menu for a bookmark. | 287 // Load the menu for a bookmark. |
284 [[EarlGrey selectElementWithMatcher:grey_accessibilityID(@"Second URL Info")] | 288 [[EarlGrey selectElementWithMatcher:grey_accessibilityID(@"Second URL Info")] |
285 performAction:grey_tap()]; | 289 performAction:grey_tap()]; |
286 | 290 |
287 // Delete it. | 291 // Delete it. |
288 [[EarlGrey selectElementWithMatcher:ActionSheet(ActionDelete)] | 292 [[EarlGrey selectElementWithMatcher:ActionSheet(ActionDelete)] |
289 performAction:grey_tap()]; | 293 performAction:grey_tap()]; |
290 | 294 |
291 // Wait until it's gone. | 295 // Wait until it's gone. |
292 [[self class] waitForDeletionOfBookmarkWithTitle:@"Second URL"]; | 296 [BookmarksTestCase waitForDeletionOfBookmarkWithTitle:@"Second URL"]; |
293 | 297 |
294 // Press undo | 298 // Press undo |
295 [[EarlGrey selectElementWithMatcher:grey_accessibilityID(@"Undo")] | 299 [[EarlGrey selectElementWithMatcher:grey_accessibilityID(@"Undo")] |
296 performAction:grey_tap()]; | 300 performAction:grey_tap()]; |
297 | 301 |
298 // Verify it's back. | 302 // Verify it's back. |
299 [[EarlGrey selectElementWithMatcher:grey_accessibilityID(@"Second URL")] | 303 [[EarlGrey selectElementWithMatcher:grey_accessibilityID(@"Second URL")] |
300 assertWithMatcher:grey_notNil()]; | 304 assertWithMatcher:grey_notNil()]; |
301 } | 305 } |
302 | 306 |
303 // Try deleting a bookmark from the edit screen, then undoing that delete. | 307 // Try deleting a bookmark from the edit screen, then undoing that delete. |
304 - (void)testUndoDeleteBookmarkFromEditScreen { | 308 - (void)testUndoDeleteBookmarkFromEditScreen { |
305 [[self class] setupStandardBookmarks]; | 309 [BookmarksTestCase setupStandardBookmarks]; |
306 [[self class] openMobileBookmarks]; | 310 [BookmarksTestCase openMobileBookmarks]; |
307 | 311 |
308 // Load the menu for a bookmark. | 312 // Load the menu for a bookmark. |
309 [[EarlGrey selectElementWithMatcher:grey_accessibilityID(@"Second URL Info")] | 313 [[EarlGrey selectElementWithMatcher:grey_accessibilityID(@"Second URL Info")] |
310 performAction:grey_tap()]; | 314 performAction:grey_tap()]; |
311 | 315 |
312 // Tap the edit action. | 316 // Tap the edit action. |
313 [[EarlGrey selectElementWithMatcher:ActionSheet(ActionEdit)] | 317 [[EarlGrey selectElementWithMatcher:ActionSheet(ActionEdit)] |
314 performAction:grey_tap()]; | 318 performAction:grey_tap()]; |
315 | 319 |
316 // Delete it. | 320 // Delete it. |
(...skipping 15 matching lines...) Expand all Loading... |
332 [[EarlGrey selectElementWithMatcher:grey_accessibilityID(@"Undo")] | 336 [[EarlGrey selectElementWithMatcher:grey_accessibilityID(@"Undo")] |
333 performAction:grey_tap()]; | 337 performAction:grey_tap()]; |
334 | 338 |
335 // Verify it's back. | 339 // Verify it's back. |
336 [[EarlGrey selectElementWithMatcher:grey_accessibilityID(@"Second URL")] | 340 [[EarlGrey selectElementWithMatcher:grey_accessibilityID(@"Second URL")] |
337 assertWithMatcher:grey_notNil()]; | 341 assertWithMatcher:grey_notNil()]; |
338 } | 342 } |
339 | 343 |
340 // Try moving bookmarks, then undoing that move. | 344 // Try moving bookmarks, then undoing that move. |
341 - (void)testUndoMoveBookmark { | 345 - (void)testUndoMoveBookmark { |
342 [[self class] setupStandardBookmarks]; | 346 [BookmarksTestCase setupStandardBookmarks]; |
343 [[self class] openMobileBookmarks]; | 347 [BookmarksTestCase openMobileBookmarks]; |
344 | 348 |
345 // Verify that folder 2 only has 1 child. | 349 // Verify that folder 2 only has 1 child. |
346 [[self class] assertChildCount:1 ofFolderWithName:@"Folder 2"]; | 350 [BookmarksTestCase assertChildCount:1 ofFolderWithName:@"Folder 2"]; |
347 | 351 |
348 // Load the menu for a bookmark. | 352 // Load the menu for a bookmark. |
349 [[EarlGrey selectElementWithMatcher:grey_accessibilityID(@"Second URL Info")] | 353 [[EarlGrey selectElementWithMatcher:grey_accessibilityID(@"Second URL Info")] |
350 performAction:grey_tap()]; | 354 performAction:grey_tap()]; |
351 | 355 |
352 // Select a first bookmark. | 356 // Select a first bookmark. |
353 [[EarlGrey selectElementWithMatcher:ActionSheet(ActionSelect)] | 357 [[EarlGrey selectElementWithMatcher:ActionSheet(ActionSelect)] |
354 performAction:grey_tap()]; | 358 performAction:grey_tap()]; |
355 | 359 |
356 // Select a second bookmark. | 360 // Select a second bookmark. |
357 [[EarlGrey selectElementWithMatcher:grey_accessibilityID(@"First URL")] | 361 [[EarlGrey selectElementWithMatcher:grey_accessibilityID(@"First URL")] |
358 performAction:grey_tap()]; | 362 performAction:grey_tap()]; |
359 | 363 |
360 // Choose the move action. | 364 // Choose the move action. |
361 [[EarlGrey selectElementWithMatcher:grey_accessibilityID(@"Move")] | 365 [[EarlGrey selectElementWithMatcher:grey_accessibilityID(@"Move")] |
362 performAction:grey_tap()]; | 366 performAction:grey_tap()]; |
363 | 367 |
364 // Pick the destination. | 368 // Pick the destination. |
365 [[EarlGrey selectElementWithMatcher:grey_accessibilityID(@"Folder 2")] | 369 [[EarlGrey selectElementWithMatcher:grey_accessibilityID(@"Folder 2")] |
366 performAction:grey_tap()]; | 370 performAction:grey_tap()]; |
367 | 371 |
368 // Wait for undo to show up (there is a 300ms delay for the user to see the | 372 // Wait for undo to show up (there is a 300ms delay for the user to see the |
369 // change). | 373 // change). |
370 [[EarlGrey selectElementWithMatcher:grey_accessibilityID(@"Undo")] | 374 [[EarlGrey selectElementWithMatcher:grey_accessibilityID(@"Undo")] |
371 assertWithMatcher:grey_sufficientlyVisible()]; | 375 assertWithMatcher:grey_sufficientlyVisible()]; |
372 | 376 |
373 // Verify that folder 2 has 3 children now, and that they are no longer | 377 // Verify that folder 2 has 3 children now, and that they are no longer |
374 // visible. | 378 // visible. |
375 [[self class] assertChildCount:3 ofFolderWithName:@"Folder 2"]; | 379 [BookmarksTestCase assertChildCount:3 ofFolderWithName:@"Folder 2"]; |
376 [[EarlGrey selectElementWithMatcher:grey_accessibilityID(@"Second URL")] | 380 [[EarlGrey selectElementWithMatcher:grey_accessibilityID(@"Second URL")] |
377 assertWithMatcher:grey_notVisible()]; | 381 assertWithMatcher:grey_notVisible()]; |
378 | 382 |
379 // Press undo. | 383 // Press undo. |
380 [[EarlGrey selectElementWithMatcher:grey_accessibilityID(@"Undo")] | 384 [[EarlGrey selectElementWithMatcher:grey_accessibilityID(@"Undo")] |
381 performAction:grey_tap()]; | 385 performAction:grey_tap()]; |
382 | 386 |
383 [[GREYUIThreadExecutor sharedInstance] drainUntilIdle]; | 387 [[GREYUIThreadExecutor sharedInstance] drainUntilIdle]; |
384 | 388 |
385 // Verify it's back. | 389 // Verify it's back. |
386 [[EarlGrey selectElementWithMatcher:grey_accessibilityID(@"Second URL")] | 390 [[EarlGrey selectElementWithMatcher:grey_accessibilityID(@"Second URL")] |
387 assertWithMatcher:grey_notNil()]; | 391 assertWithMatcher:grey_notNil()]; |
388 | 392 |
389 // Verify that folder 2 is back to one child. | 393 // Verify that folder 2 is back to one child. |
390 [[self class] assertChildCount:1 ofFolderWithName:@"Folder 2"]; | 394 [BookmarksTestCase assertChildCount:1 ofFolderWithName:@"Folder 2"]; |
391 } | 395 } |
392 | 396 |
393 - (void)testLabelUpdatedUponMove { | 397 - (void)testLabelUpdatedUponMove { |
394 [[self class] setupStandardBookmarks]; | 398 [BookmarksTestCase setupStandardBookmarks]; |
395 [[self class] openMobileBookmarks]; | 399 [BookmarksTestCase openMobileBookmarks]; |
396 | 400 |
397 // Load the menu for a bookmark. | 401 // Load the menu for a bookmark. |
398 [[EarlGrey selectElementWithMatcher:grey_accessibilityID(@"First URL Info")] | 402 [[EarlGrey selectElementWithMatcher:grey_accessibilityID(@"First URL Info")] |
399 performAction:grey_tap()]; | 403 performAction:grey_tap()]; |
400 | 404 |
401 // Tap on the Edit action. | 405 // Tap on the Edit action. |
402 [[EarlGrey selectElementWithMatcher:ActionSheet(ActionEdit)] | 406 [[EarlGrey selectElementWithMatcher:ActionSheet(ActionEdit)] |
403 performAction:grey_tap()]; | 407 performAction:grey_tap()]; |
404 | 408 |
405 // Tap the Folder button. | 409 // Tap the Folder button. |
406 [[EarlGrey selectElementWithMatcher:grey_accessibilityID(@"Change Folder")] | 410 [[EarlGrey selectElementWithMatcher:grey_accessibilityID(@"Change Folder")] |
407 performAction:grey_tap()]; | 411 performAction:grey_tap()]; |
408 | 412 |
409 // Create a new folder with default name. | 413 // Create a new folder with default name. |
410 [[self class] addFolderWithName:nil]; | 414 [BookmarksTestCase addFolderWithName:nil]; |
411 | 415 |
412 // Verify that the editor is present. | 416 // Verify that the editor is present. |
413 [[EarlGrey | 417 [[EarlGrey |
414 selectElementWithMatcher:grey_accessibilityID(@"Single Bookmark Editor")] | 418 selectElementWithMatcher:grey_accessibilityID(@"Single Bookmark Editor")] |
415 assertWithMatcher:grey_notNil()]; | 419 assertWithMatcher:grey_notNil()]; |
416 | 420 |
417 // Check the new folder label. | 421 // Check the new folder label. |
418 [[EarlGrey | 422 [[EarlGrey |
419 selectElementWithMatcher:grey_allOf( | 423 selectElementWithMatcher:grey_allOf( |
420 grey_accessibilityID(@"Change Folder"), | 424 grey_accessibilityID(@"Change Folder"), |
421 grey_accessibilityLabel(@"New Folder"), nil)] | 425 grey_accessibilityLabel(@"New Folder"), nil)] |
422 assertWithMatcher:grey_notNil()]; | 426 assertWithMatcher:grey_notNil()]; |
423 } | 427 } |
424 | 428 |
425 // Test the creation of a bookmark and new folder. | 429 // Test the creation of a bookmark and new folder. |
426 - (void)testAddBookmarkInNewFolder { | 430 - (void)testAddBookmarkInNewFolder { |
427 const GURL bookmarkedURL = web::test::HttpServer::MakeUrl( | 431 const GURL bookmarkedURL = web::test::HttpServer::MakeUrl( |
428 "http://ios/testing/data/http_server_files/pony.html"); | 432 "http://ios/testing/data/http_server_files/pony.html"); |
429 std::string expectedURLContent = bookmarkedURL.GetContent(); | 433 std::string expectedURLContent = bookmarkedURL.GetContent(); |
430 | 434 |
431 [ChromeEarlGrey loadURL:bookmarkedURL]; | 435 [ChromeEarlGrey loadURL:bookmarkedURL]; |
432 [[EarlGrey selectElementWithMatcher:chrome_test_util::OmniboxText( | 436 [[EarlGrey selectElementWithMatcher:chrome_test_util::OmniboxText( |
433 expectedURLContent)] | 437 expectedURLContent)] |
434 assertWithMatcher:grey_notNil()]; | 438 assertWithMatcher:grey_notNil()]; |
435 | 439 |
436 [[self class] starCurrentTab]; | 440 [BookmarksTestCase starCurrentTab]; |
437 | 441 |
438 // Verify the snackbar title. | 442 // Verify the snackbar title. |
439 [[EarlGrey selectElementWithMatcher:grey_accessibilityLabel(@"Bookmarked")] | 443 [[EarlGrey selectElementWithMatcher:grey_accessibilityLabel(@"Bookmarked")] |
440 assertWithMatcher:grey_notNil()]; | 444 assertWithMatcher:grey_notNil()]; |
441 | 445 |
442 // Tap on the snackbar. | 446 // Tap on the snackbar. |
443 NSString* snackbarLabel = | 447 NSString* snackbarLabel = |
444 l10n_util::GetNSString(IDS_IOS_NAVIGATION_BAR_EDIT_BUTTON); | 448 l10n_util::GetNSString(IDS_IOS_NAVIGATION_BAR_EDIT_BUTTON); |
445 [[EarlGrey selectElementWithMatcher:grey_accessibilityLabel(snackbarLabel)] | 449 [[EarlGrey selectElementWithMatcher:grey_accessibilityLabel(snackbarLabel)] |
446 performAction:grey_tap()]; | 450 performAction:grey_tap()]; |
447 | 451 |
448 // Verify that the newly-created bookmark is in the BookmarkModel. | 452 // Verify that the newly-created bookmark is in the BookmarkModel. |
449 [[self class] | 453 [BookmarksTestCase |
450 assertBookmarksWithTitle:base::SysUTF8ToNSString(expectedURLContent) | 454 assertBookmarksWithTitle:base::SysUTF8ToNSString(expectedURLContent) |
451 expectedCount:1]; | 455 expectedCount:1]; |
452 | 456 |
453 // Verify that the editor is present. | 457 // Verify that the editor is present. |
454 [[EarlGrey | 458 [[EarlGrey |
455 selectElementWithMatcher:grey_accessibilityID(@"Single Bookmark Editor")] | 459 selectElementWithMatcher:grey_accessibilityID(@"Single Bookmark Editor")] |
456 assertWithMatcher:grey_notNil()]; | 460 assertWithMatcher:grey_notNil()]; |
457 | 461 |
458 [[self class] assertFolderName:@"Mobile Bookmarks"]; | 462 [BookmarksTestCase assertFolderName:@"Mobile Bookmarks"]; |
459 | 463 |
460 // Tap the Folder button. | 464 // Tap the Folder button. |
461 [[EarlGrey selectElementWithMatcher:grey_accessibilityID(@"Change Folder")] | 465 [[EarlGrey selectElementWithMatcher:grey_accessibilityID(@"Change Folder")] |
462 performAction:grey_tap()]; | 466 performAction:grey_tap()]; |
463 | 467 |
464 // Create a new folder with default name. | 468 // Create a new folder with default name. |
465 [[self class] addFolderWithName:nil]; | 469 [BookmarksTestCase addFolderWithName:nil]; |
466 | 470 |
467 // Verify that the editor is present. | 471 // Verify that the editor is present. |
468 [[EarlGrey | 472 [[EarlGrey |
469 selectElementWithMatcher:grey_accessibilityID(@"Single Bookmark Editor")] | 473 selectElementWithMatcher:grey_accessibilityID(@"Single Bookmark Editor")] |
470 assertWithMatcher:grey_notNil()]; | 474 assertWithMatcher:grey_notNil()]; |
471 | 475 |
472 [[self class] assertFolderExists:@"New Folder"]; | 476 [BookmarksTestCase assertFolderExists:@"New Folder"]; |
473 } | 477 } |
474 | 478 |
475 // Tests that changing a folder's title in edit mode works as expected. | 479 // Tests that changing a folder's title in edit mode works as expected. |
476 - (void)testChangeFolderTitle { | 480 - (void)testChangeFolderTitle { |
477 NSString* existingFolderTitle = @"Folder 1"; | 481 NSString* existingFolderTitle = @"Folder 1"; |
478 NSString* newFolderTitle = @"New Folder Title"; | 482 NSString* newFolderTitle = @"New Folder Title"; |
479 | 483 |
480 [[self class] setupStandardBookmarks]; | 484 [BookmarksTestCase setupStandardBookmarks]; |
481 [[self class] openMobileBookmarks]; | 485 [BookmarksTestCase openMobileBookmarks]; |
482 [[self class] openEditBookmarkFolderWithFolderTitle:existingFolderTitle]; | 486 [BookmarksTestCase openEditBookmarkFolderWithFolderTitle:existingFolderTitle]; |
483 [[self class] renameBookmarkFolderWithFolderTitle:newFolderTitle]; | 487 [BookmarksTestCase renameBookmarkFolderWithFolderTitle:newFolderTitle]; |
484 [[self class] closeEditBookmarkFolder]; | 488 [BookmarksTestCase closeEditBookmarkFolder]; |
485 | 489 |
486 if (IsCompact()) { | 490 if (IsCompact()) { |
487 // Exit from bookmarks modal. IPad shows bookmarks in tab. | 491 // Exit from bookmarks modal. IPad shows bookmarks in tab. |
488 [[EarlGrey selectElementWithMatcher:BookmarksDoneButton()] | 492 [[EarlGrey selectElementWithMatcher:BookmarksDoneButton()] |
489 performAction:grey_tap()]; | 493 performAction:grey_tap()]; |
490 } | 494 } |
491 | 495 |
492 // Verify that the change has been made. | 496 // Verify that the change has been made. |
493 [[self class] openMobileBookmarks]; | 497 [BookmarksTestCase openMobileBookmarks]; |
494 [[EarlGrey selectElementWithMatcher:grey_accessibilityID(existingFolderTitle)] | 498 [[EarlGrey selectElementWithMatcher:grey_accessibilityID(existingFolderTitle)] |
495 assertWithMatcher:grey_nil()]; | 499 assertWithMatcher:grey_nil()]; |
496 [[EarlGrey selectElementWithMatcher:grey_accessibilityID(newFolderTitle)] | 500 [[EarlGrey selectElementWithMatcher:grey_accessibilityID(newFolderTitle)] |
497 assertWithMatcher:grey_notNil()]; | 501 assertWithMatcher:grey_notNil()]; |
498 } | 502 } |
499 | 503 |
500 // Tests that the default folder bookmarks are saved in is updated to the last | 504 // Tests that the default folder bookmarks are saved in is updated to the last |
501 // used folder. | 505 // used folder. |
502 - (void)testStickyDefaultFolder { | 506 - (void)testStickyDefaultFolder { |
503 [[self class] setupStandardBookmarks]; | 507 [BookmarksTestCase setupStandardBookmarks]; |
504 [[self class] openMobileBookmarks]; | 508 [BookmarksTestCase openMobileBookmarks]; |
505 | 509 |
506 // Tap on the top-right button. | 510 // Tap on the top-right button. |
507 [[EarlGrey selectElementWithMatcher:grey_accessibilityID(@"First URL Info")] | 511 [[EarlGrey selectElementWithMatcher:grey_accessibilityID(@"First URL Info")] |
508 performAction:grey_tap()]; | 512 performAction:grey_tap()]; |
509 | 513 |
510 // Tap the edit action. | 514 // Tap the edit action. |
511 [[EarlGrey selectElementWithMatcher:ActionSheet(ActionEdit)] | 515 [[EarlGrey selectElementWithMatcher:ActionSheet(ActionEdit)] |
512 performAction:grey_tap()]; | 516 performAction:grey_tap()]; |
513 | 517 |
514 // Tap the Folder button. | 518 // Tap the Folder button. |
515 [[EarlGrey selectElementWithMatcher:grey_accessibilityID(@"Change Folder")] | 519 [[EarlGrey selectElementWithMatcher:grey_accessibilityID(@"Change Folder")] |
516 performAction:grey_tap()]; | 520 performAction:grey_tap()]; |
517 | 521 |
518 // Create a new folder. | 522 // Create a new folder. |
519 [[self class] addFolderWithName:@"Sticky Folder"]; | 523 [BookmarksTestCase addFolderWithName:@"Sticky Folder"]; |
520 | 524 |
521 // Verify that the editor is present. | 525 // Verify that the editor is present. |
522 [[EarlGrey | 526 [[EarlGrey |
523 selectElementWithMatcher:grey_accessibilityID(@"Single Bookmark Editor")] | 527 selectElementWithMatcher:grey_accessibilityID(@"Single Bookmark Editor")] |
524 assertWithMatcher:grey_sufficientlyVisible()]; | 528 assertWithMatcher:grey_sufficientlyVisible()]; |
525 | 529 |
526 // Tap the Done button. | 530 // Tap the Done button. |
527 [[EarlGrey selectElementWithMatcher:BookmarksDoneButton()] | 531 [[EarlGrey selectElementWithMatcher:BookmarksDoneButton()] |
528 performAction:grey_tap()]; | 532 performAction:grey_tap()]; |
529 [[EarlGrey | 533 [[EarlGrey |
530 selectElementWithMatcher:grey_accessibilityID(@"Single Bookmark Editor")] | 534 selectElementWithMatcher:grey_accessibilityID(@"Single Bookmark Editor")] |
531 assertWithMatcher:grey_notVisible()]; | 535 assertWithMatcher:grey_notVisible()]; |
532 | 536 |
533 if (IsCompact()) { | 537 if (IsCompact()) { |
534 // Dismiss the bookmarks screen. | 538 // Dismiss the bookmarks screen. |
535 [[EarlGrey selectElementWithMatcher:grey_accessibilityID(@"Exit")] | 539 [[EarlGrey selectElementWithMatcher:grey_accessibilityID(@"Exit")] |
536 performAction:grey_tap()]; | 540 performAction:grey_tap()]; |
537 } | 541 } |
538 | 542 |
539 // Second, bookmark a page. | 543 // Second, bookmark a page. |
540 | 544 |
541 // Verify that the bookmark that is going to be added is not in the | 545 // Verify that the bookmark that is going to be added is not in the |
542 // BookmarkModel. | 546 // BookmarkModel. |
543 const GURL bookmarkedURL = web::test::HttpServer::MakeUrl( | 547 const GURL bookmarkedURL = web::test::HttpServer::MakeUrl( |
544 "http://ios/testing/data/http_server_files/fullscreen.html"); | 548 "http://ios/testing/data/http_server_files/fullscreen.html"); |
545 NSString* const bookmarkedURLString = | 549 NSString* const bookmarkedURLString = |
546 base::SysUTF8ToNSString(bookmarkedURL.spec()); | 550 base::SysUTF8ToNSString(bookmarkedURL.spec()); |
547 [[self class] assertBookmarksWithTitle:bookmarkedURLString expectedCount:0]; | 551 [BookmarksTestCase assertBookmarksWithTitle:bookmarkedURLString |
| 552 expectedCount:0]; |
548 // Open the page. | 553 // Open the page. |
549 std::string expectedURLContent = bookmarkedURL.GetContent(); | 554 std::string expectedURLContent = bookmarkedURL.GetContent(); |
550 [ChromeEarlGrey loadURL:bookmarkedURL]; | 555 [ChromeEarlGrey loadURL:bookmarkedURL]; |
551 [[EarlGrey selectElementWithMatcher:chrome_test_util::OmniboxText( | 556 [[EarlGrey selectElementWithMatcher:chrome_test_util::OmniboxText( |
552 expectedURLContent)] | 557 expectedURLContent)] |
553 assertWithMatcher:grey_notNil()]; | 558 assertWithMatcher:grey_notNil()]; |
554 | 559 |
555 // Verify that the folder has only one element. | 560 // Verify that the folder has only one element. |
556 [[self class] assertChildCount:1 ofFolderWithName:@"Sticky Folder"]; | 561 [BookmarksTestCase assertChildCount:1 ofFolderWithName:@"Sticky Folder"]; |
557 | 562 |
558 // Bookmark the page. | 563 // Bookmark the page. |
559 [[self class] starCurrentTab]; | 564 [BookmarksTestCase starCurrentTab]; |
560 | 565 |
561 // Verify the snackbar title. | 566 // Verify the snackbar title. |
562 [[EarlGrey selectElementWithMatcher:grey_accessibilityLabel( | 567 [[EarlGrey selectElementWithMatcher:grey_accessibilityLabel( |
563 @"Bookmarked to Sticky Folder")] | 568 @"Bookmarked to Sticky Folder")] |
564 assertWithMatcher:grey_sufficientlyVisible()]; | 569 assertWithMatcher:grey_sufficientlyVisible()]; |
565 | 570 |
566 // Verify that the newly-created bookmark is in the BookmarkModel. | 571 // Verify that the newly-created bookmark is in the BookmarkModel. |
567 [[self class] assertBookmarksWithTitle:bookmarkedURLString expectedCount:1]; | 572 [BookmarksTestCase assertBookmarksWithTitle:bookmarkedURLString |
| 573 expectedCount:1]; |
568 | 574 |
569 // Verify that the folder has now two elements. | 575 // Verify that the folder has now two elements. |
570 [[self class] assertChildCount:2 ofFolderWithName:@"Sticky Folder"]; | 576 [BookmarksTestCase assertChildCount:2 ofFolderWithName:@"Sticky Folder"]; |
571 } | 577 } |
572 | 578 |
573 // Tests that changes to the parent folder from the Single Bookmark Controller | 579 // Tests that changes to the parent folder from the Single Bookmark Controller |
574 // are saved to the bookmark only when saving the results. | 580 // are saved to the bookmark only when saving the results. |
575 - (void)testMoveDoesSaveOnSave { | 581 - (void)testMoveDoesSaveOnSave { |
576 [[self class] setupStandardBookmarks]; | 582 [BookmarksTestCase setupStandardBookmarks]; |
577 [[self class] openTopLevelBookmarksFolder]; | 583 [BookmarksTestCase openTopLevelBookmarksFolder]; |
578 | 584 |
579 // Tap on the top-right button. | 585 // Tap on the top-right button. |
580 [[EarlGrey selectElementWithMatcher:grey_accessibilityID(@"First URL Info")] | 586 [[EarlGrey selectElementWithMatcher:grey_accessibilityID(@"First URL Info")] |
581 performAction:grey_tap()]; | 587 performAction:grey_tap()]; |
582 | 588 |
583 // Tap the edit action. | 589 // Tap the edit action. |
584 [[EarlGrey selectElementWithMatcher:ActionSheet(ActionEdit)] | 590 [[EarlGrey selectElementWithMatcher:ActionSheet(ActionEdit)] |
585 performAction:grey_tap()]; | 591 performAction:grey_tap()]; |
586 | 592 |
587 // Tap the Folder button. | 593 // Tap the Folder button. |
588 [[EarlGrey selectElementWithMatcher:grey_accessibilityID(@"Change Folder")] | 594 [[EarlGrey selectElementWithMatcher:grey_accessibilityID(@"Change Folder")] |
589 performAction:grey_tap()]; | 595 performAction:grey_tap()]; |
590 | 596 |
591 // Create a new folder. | 597 // Create a new folder. |
592 [[self class] addFolderWithName:nil]; | 598 [BookmarksTestCase addFolderWithName:nil]; |
593 | 599 |
594 // Verify that the editor is present. | 600 // Verify that the editor is present. |
595 [[EarlGrey | 601 [[EarlGrey |
596 selectElementWithMatcher:grey_accessibilityID(@"Single Bookmark Editor")] | 602 selectElementWithMatcher:grey_accessibilityID(@"Single Bookmark Editor")] |
597 assertWithMatcher:grey_sufficientlyVisible()]; | 603 assertWithMatcher:grey_sufficientlyVisible()]; |
598 | 604 |
599 // Check that the new folder doesn't contain the bookmark. | 605 // Check that the new folder doesn't contain the bookmark. |
600 [[self class] assertChildCount:0 ofFolderWithName:@"New Folder"]; | 606 [BookmarksTestCase assertChildCount:0 ofFolderWithName:@"New Folder"]; |
601 | 607 |
602 // Tap the Done button. | 608 // Tap the Done button. |
603 [[EarlGrey selectElementWithMatcher:BookmarksDoneButton()] | 609 [[EarlGrey selectElementWithMatcher:BookmarksDoneButton()] |
604 performAction:grey_tap()]; | 610 performAction:grey_tap()]; |
605 [[EarlGrey | 611 [[EarlGrey |
606 selectElementWithMatcher:grey_accessibilityID(@"Single Bookmark Editor")] | 612 selectElementWithMatcher:grey_accessibilityID(@"Single Bookmark Editor")] |
607 assertWithMatcher:grey_notVisible()]; | 613 assertWithMatcher:grey_notVisible()]; |
608 | 614 |
609 // Check that the new folder contains the bookmark. | 615 // Check that the new folder contains the bookmark. |
610 [[self class] assertChildCount:1 ofFolderWithName:@"New Folder"]; | 616 [BookmarksTestCase assertChildCount:1 ofFolderWithName:@"New Folder"]; |
611 | 617 |
612 // Dismiss the bookmarks screen. | 618 // Dismiss the bookmarks screen. |
613 if (IsCompact()) { | 619 if (IsCompact()) { |
614 // Dismiss the bookmarks screen. | 620 // Dismiss the bookmarks screen. |
615 [[EarlGrey selectElementWithMatcher:grey_accessibilityID(@"Exit")] | 621 [[EarlGrey selectElementWithMatcher:grey_accessibilityID(@"Exit")] |
616 performAction:grey_tap()]; | 622 performAction:grey_tap()]; |
617 } | 623 } |
618 | 624 |
619 // Check that the new folder still contains the bookmark. | 625 // Check that the new folder still contains the bookmark. |
620 [[self class] assertChildCount:1 ofFolderWithName:@"New Folder"]; | 626 [BookmarksTestCase assertChildCount:1 ofFolderWithName:@"New Folder"]; |
621 } | 627 } |
622 | 628 |
623 // Test thats editing a single bookmark correctly persists data. | 629 // Test thats editing a single bookmark correctly persists data. |
624 - (void)testSingleBookmarkEdit { | 630 - (void)testSingleBookmarkEdit { |
625 [[self class] setupStandardBookmarks]; | 631 [BookmarksTestCase setupStandardBookmarks]; |
626 [[self class] openTopLevelBookmarksFolder]; | 632 [BookmarksTestCase openTopLevelBookmarksFolder]; |
627 | 633 |
628 // Load the menu for a bookmark. | 634 // Load the menu for a bookmark. |
629 [[EarlGrey selectElementWithMatcher:grey_accessibilityID(@"First URL Info")] | 635 [[EarlGrey selectElementWithMatcher:grey_accessibilityID(@"First URL Info")] |
630 performAction:grey_tap()]; | 636 performAction:grey_tap()]; |
631 | 637 |
632 // Tap the edit action. | 638 // Tap the edit action. |
633 [[EarlGrey selectElementWithMatcher:ActionSheet(ActionEdit)] | 639 [[EarlGrey selectElementWithMatcher:ActionSheet(ActionEdit)] |
634 performAction:grey_tap()]; | 640 performAction:grey_tap()]; |
635 | 641 |
636 // Replace the title field with new text. | 642 // Replace the title field with new text. |
(...skipping 21 matching lines...) Expand all Loading... |
658 // Dismiss editor. | 664 // Dismiss editor. |
659 [[EarlGrey selectElementWithMatcher:BookmarksDoneButton()] | 665 [[EarlGrey selectElementWithMatcher:BookmarksDoneButton()] |
660 performAction:grey_tap()]; | 666 performAction:grey_tap()]; |
661 [[EarlGrey | 667 [[EarlGrey |
662 selectElementWithMatcher:grey_accessibilityID(@"Single Bookmark Editor")] | 668 selectElementWithMatcher:grey_accessibilityID(@"Single Bookmark Editor")] |
663 assertWithMatcher:grey_notVisible()]; | 669 assertWithMatcher:grey_notVisible()]; |
664 | 670 |
665 // Verify that the bookmark was updated. | 671 // Verify that the bookmark was updated. |
666 [[EarlGrey selectElementWithMatcher:ButtonWithAccessibilityLabel(@"n5")] | 672 [[EarlGrey selectElementWithMatcher:ButtonWithAccessibilityLabel(@"n5")] |
667 assertWithMatcher:grey_sufficientlyVisible()]; | 673 assertWithMatcher:grey_sufficientlyVisible()]; |
668 [[self class] assertExistenceOfBookmarkWithURL:@"http://www.a.fr" name:@"n5"]; | 674 [BookmarksTestCase assertExistenceOfBookmarkWithURL:@"http://www.a.fr" |
| 675 name:@"n5"]; |
669 } | 676 } |
670 | 677 |
671 // Tests that cancelling editing a single bookmark correctly doesn't persist | 678 // Tests that cancelling editing a single bookmark correctly doesn't persist |
672 // data. | 679 // data. |
673 - (void)testSingleBookmarkCancelEdit { | 680 - (void)testSingleBookmarkCancelEdit { |
674 [[self class] setupStandardBookmarks]; | 681 [BookmarksTestCase setupStandardBookmarks]; |
675 [[self class] openTopLevelBookmarksFolder]; | 682 [BookmarksTestCase openTopLevelBookmarksFolder]; |
676 | 683 |
677 // Load the menu for a bookmark. | 684 // Load the menu for a bookmark. |
678 [[EarlGrey selectElementWithMatcher:grey_accessibilityID(@"First URL Info")] | 685 [[EarlGrey selectElementWithMatcher:grey_accessibilityID(@"First URL Info")] |
679 performAction:grey_tap()]; | 686 performAction:grey_tap()]; |
680 | 687 |
681 // Tap the edit action. | 688 // Tap the edit action. |
682 [[EarlGrey selectElementWithMatcher:ActionSheet(ActionEdit)] | 689 [[EarlGrey selectElementWithMatcher:ActionSheet(ActionEdit)] |
683 performAction:grey_tap()]; | 690 performAction:grey_tap()]; |
684 | 691 |
685 // Replace the title field with new text. | 692 // Replace the title field with new text. |
(...skipping 21 matching lines...) Expand all Loading... |
707 // Dismiss editor with Cancel button. | 714 // Dismiss editor with Cancel button. |
708 [[EarlGrey selectElementWithMatcher:grey_accessibilityID(@"Cancel")] | 715 [[EarlGrey selectElementWithMatcher:grey_accessibilityID(@"Cancel")] |
709 performAction:grey_tap()]; | 716 performAction:grey_tap()]; |
710 [[EarlGrey | 717 [[EarlGrey |
711 selectElementWithMatcher:grey_accessibilityID(@"Single Bookmark Editor")] | 718 selectElementWithMatcher:grey_accessibilityID(@"Single Bookmark Editor")] |
712 assertWithMatcher:grey_notVisible()]; | 719 assertWithMatcher:grey_notVisible()]; |
713 | 720 |
714 // Verify that the bookmark was not updated. | 721 // Verify that the bookmark was not updated. |
715 [[EarlGrey selectElementWithMatcher:ButtonWithAccessibilityLabel(@"n5")] | 722 [[EarlGrey selectElementWithMatcher:ButtonWithAccessibilityLabel(@"n5")] |
716 assertWithMatcher:grey_notVisible()]; | 723 assertWithMatcher:grey_notVisible()]; |
717 [[self class] assertAbsenceOfBookmarkWithURL:@"http://www.a.fr"]; | 724 [BookmarksTestCase assertAbsenceOfBookmarkWithURL:@"http://www.a.fr"]; |
718 } | 725 } |
719 | 726 |
720 // Tests that long pressing a bookmark selects it and gives access to editing, | 727 // Tests that long pressing a bookmark selects it and gives access to editing, |
721 // as does the Info menu. | 728 // as does the Info menu. |
722 - (void)testLongPressBookmark { | 729 - (void)testLongPressBookmark { |
723 [[self class] setupStandardBookmarks]; | 730 [BookmarksTestCase setupStandardBookmarks]; |
724 [[self class] openTopLevelBookmarksFolder]; | 731 [BookmarksTestCase openTopLevelBookmarksFolder]; |
725 | 732 |
726 // Long press the top-right button. | 733 // Long press the top-right button. |
727 [[EarlGrey selectElementWithMatcher:grey_accessibilityID(@"First URL Info")] | 734 [[EarlGrey selectElementWithMatcher:grey_accessibilityID(@"First URL Info")] |
728 performAction:grey_longPress()]; | 735 performAction:grey_longPress()]; |
729 | 736 |
730 // Tap the edit button. | 737 // Tap the edit button. |
731 [[EarlGrey selectElementWithMatcher:grey_accessibilityID(@"Edit_editing_bar")] | 738 [[EarlGrey selectElementWithMatcher:grey_accessibilityID(@"Edit_editing_bar")] |
732 performAction:grey_tap()]; | 739 performAction:grey_tap()]; |
733 | 740 |
734 // Dismiss the editor screen. | 741 // Dismiss the editor screen. |
735 [[EarlGrey selectElementWithMatcher:BookmarksDoneButton()] | 742 [[EarlGrey selectElementWithMatcher:BookmarksDoneButton()] |
736 performAction:grey_tap()]; | 743 performAction:grey_tap()]; |
737 | 744 |
738 // Tap on the top-right button. | 745 // Tap on the top-right button. |
739 [[EarlGrey selectElementWithMatcher:grey_accessibilityID(@"First URL Info")] | 746 [[EarlGrey selectElementWithMatcher:grey_accessibilityID(@"First URL Info")] |
740 performAction:grey_tap()]; | 747 performAction:grey_tap()]; |
741 | 748 |
742 // Tap the edit action. | 749 // Tap the edit action. |
743 [[EarlGrey selectElementWithMatcher:ActionSheet(ActionEdit)] | 750 [[EarlGrey selectElementWithMatcher:ActionSheet(ActionEdit)] |
744 performAction:grey_tap()]; | 751 performAction:grey_tap()]; |
745 | 752 |
746 // Dismiss the editor screen. | 753 // Dismiss the editor screen. |
747 [[EarlGrey selectElementWithMatcher:BookmarksDoneButton()] | 754 [[EarlGrey selectElementWithMatcher:BookmarksDoneButton()] |
748 performAction:grey_tap()]; | 755 performAction:grey_tap()]; |
749 } | 756 } |
750 | 757 |
751 // Tests the editing of a folder. | 758 // Tests the editing of a folder. |
752 - (void)testEditFolder { | 759 - (void)testEditFolder { |
753 [[self class] setupStandardBookmarks]; | 760 [BookmarksTestCase setupStandardBookmarks]; |
754 [[self class] openBookmarkFolder:@"Folder 1"]; | 761 [BookmarksTestCase openBookmarkFolder:@"Folder 1"]; |
755 | 762 |
756 // Tap the Edit button in the navigation bar. | 763 // Tap the Edit button in the navigation bar. |
757 [[EarlGrey | 764 [[EarlGrey |
758 selectElementWithMatcher:grey_accessibilityID(@"Edit_navigation_bar")] | 765 selectElementWithMatcher:grey_accessibilityID(@"Edit_navigation_bar")] |
759 performAction:grey_tap()]; | 766 performAction:grey_tap()]; |
760 | 767 |
761 // Change the title. | 768 // Change the title. |
762 // TODO(crbug.com/644730): Use grey_replaceText instead of | 769 // TODO(crbug.com/644730): Use grey_replaceText instead of |
763 // grey_clearText/grey_typeText when EarlGrey's issue is fixed: | 770 // grey_clearText/grey_typeText when EarlGrey's issue is fixed: |
764 // https://github.com/google/EarlGrey/issues/253 | 771 // https://github.com/google/EarlGrey/issues/253 |
765 [[EarlGrey selectElementWithMatcher:grey_accessibilityID(@"Title_textField")] | 772 [[EarlGrey selectElementWithMatcher:grey_accessibilityID(@"Title_textField")] |
766 performAction:grey_clearText()]; | 773 performAction:grey_clearText()]; |
767 [[EarlGrey selectElementWithMatcher:grey_accessibilityID(@"Title_textField")] | 774 [[EarlGrey selectElementWithMatcher:grey_accessibilityID(@"Title_textField")] |
768 performAction:grey_typeText(@"Renamed Folder")]; | 775 performAction:grey_typeText(@"Renamed Folder")]; |
769 | 776 |
770 // Cancel without saving. | 777 // Cancel without saving. |
771 [[EarlGrey selectElementWithMatcher:grey_accessibilityID(@"Cancel")] | 778 [[EarlGrey selectElementWithMatcher:grey_accessibilityID(@"Cancel")] |
772 performAction:grey_tap()]; | 779 performAction:grey_tap()]; |
773 | 780 |
774 // Check that Folder 1 still exists at this name, and Renamed Folder doesn't. | 781 // Check that Folder 1 still exists at this name, and Renamed Folder doesn't. |
775 [[self class] assertFolderExistsWithTitle:@"Folder 1"]; | 782 [BookmarksTestCase assertFolderExistsWithTitle:@"Folder 1"]; |
776 [[self class] assertFolderDoesntExistWithTitle:@"Renamed Folder"]; | 783 [BookmarksTestCase assertFolderDoesntExistWithTitle:@"Renamed Folder"]; |
777 | 784 |
778 // Tap the Edit button in the navigation bar. | 785 // Tap the Edit button in the navigation bar. |
779 [[EarlGrey | 786 [[EarlGrey |
780 selectElementWithMatcher:grey_accessibilityID(@"Edit_navigation_bar")] | 787 selectElementWithMatcher:grey_accessibilityID(@"Edit_navigation_bar")] |
781 performAction:grey_tap()]; | 788 performAction:grey_tap()]; |
782 | 789 |
783 // Change the title. | 790 // Change the title. |
784 // TODO(crbug.com/644730): Use grey_replaceText instead of | 791 // TODO(crbug.com/644730): Use grey_replaceText instead of |
785 // grey_clearText/grey_typeText when EarlGrey's issue is fixed: | 792 // grey_clearText/grey_typeText when EarlGrey's issue is fixed: |
786 // https://github.com/google/EarlGrey/issues/253 | 793 // https://github.com/google/EarlGrey/issues/253 |
787 [[EarlGrey selectElementWithMatcher:grey_accessibilityID(@"Title_textField")] | 794 [[EarlGrey selectElementWithMatcher:grey_accessibilityID(@"Title_textField")] |
788 performAction:grey_clearText()]; | 795 performAction:grey_clearText()]; |
789 [[EarlGrey selectElementWithMatcher:grey_accessibilityID(@"Title_textField")] | 796 [[EarlGrey selectElementWithMatcher:grey_accessibilityID(@"Title_textField")] |
790 performAction:grey_typeText(@"Renamed Folder")]; | 797 performAction:grey_typeText(@"Renamed Folder")]; |
791 | 798 |
792 // Save. | 799 // Save. |
793 [[EarlGrey selectElementWithMatcher:grey_accessibilityID(@"Save")] | 800 [[EarlGrey selectElementWithMatcher:grey_accessibilityID(@"Save")] |
794 performAction:grey_tap()]; | 801 performAction:grey_tap()]; |
795 | 802 |
796 // Check that Folder 1 doesn't exist and Renamed Folder does. | 803 // Check that Folder 1 doesn't exist and Renamed Folder does. |
797 [[self class] assertFolderDoesntExistWithTitle:@"Folder 1"]; | 804 [BookmarksTestCase assertFolderDoesntExistWithTitle:@"Folder 1"]; |
798 [[self class] assertFolderExistsWithTitle:@"Renamed Folder"]; | 805 [BookmarksTestCase assertFolderExistsWithTitle:@"Renamed Folder"]; |
799 } | 806 } |
800 | 807 |
801 // Tests the deletion of a folder. | 808 // Tests the deletion of a folder. |
802 - (void)testDeleteFolder { | 809 - (void)testDeleteFolder { |
803 [[self class] setupStandardBookmarks]; | 810 [BookmarksTestCase setupStandardBookmarks]; |
804 [[self class] openBookmarkFolder:@"Folder 1"]; | 811 [BookmarksTestCase openBookmarkFolder:@"Folder 1"]; |
805 | 812 |
806 // Delete the folder. | 813 // Delete the folder. |
807 [[self class] deleteSelectedFolder]; | 814 [BookmarksTestCase deleteSelectedFolder]; |
808 | 815 |
809 // Check that the folder doesn't exist anymore. | 816 // Check that the folder doesn't exist anymore. |
810 [[self class] assertFolderDoesntExistWithTitle:@"Folder 1"]; | 817 [BookmarksTestCase assertFolderDoesntExistWithTitle:@"Folder 1"]; |
811 } | 818 } |
812 | 819 |
813 // Navigates to a deeply nested folder, deletes it and makes sure the UI is | 820 // Navigates to a deeply nested folder, deletes it and makes sure the UI is |
814 // consistent. | 821 // consistent. |
815 - (void)testDeleteCurrentSubfolder { | 822 - (void)testDeleteCurrentSubfolder { |
816 [[self class] setupStandardBookmarks]; | 823 [BookmarksTestCase setupStandardBookmarks]; |
817 [[self class] openBookmarkFolder:@"Folder 1"]; | 824 [BookmarksTestCase openBookmarkFolder:@"Folder 1"]; |
818 [[EarlGrey selectElementWithMatcher:ButtonWithAccessibilityLabel(@"Folder 2")] | 825 [[EarlGrey selectElementWithMatcher:ButtonWithAccessibilityLabel(@"Folder 2")] |
819 performAction:grey_tap()]; | 826 performAction:grey_tap()]; |
820 [[EarlGrey selectElementWithMatcher:ButtonWithAccessibilityLabel(@"Folder 3")] | 827 [[EarlGrey selectElementWithMatcher:ButtonWithAccessibilityLabel(@"Folder 3")] |
821 performAction:grey_tap()]; | 828 performAction:grey_tap()]; |
822 | 829 |
823 // Delete the folder. | 830 // Delete the folder. |
824 [[self class] deleteSelectedFolder]; | 831 [BookmarksTestCase deleteSelectedFolder]; |
825 | 832 |
826 // Folder 3 is now deleted, UI should have moved to Folder 2, and Folder 2 | 833 // Folder 3 is now deleted, UI should have moved to Folder 2, and Folder 2 |
827 // should be empty. | 834 // should be empty. |
828 [[EarlGrey selectElementWithMatcher:grey_accessibilityLabel(@"Folder 2")] | 835 [[EarlGrey selectElementWithMatcher:grey_accessibilityLabel(@"Folder 2")] |
829 assertWithMatcher:grey_sufficientlyVisible()]; | 836 assertWithMatcher:grey_sufficientlyVisible()]; |
830 [[self class] assertChildCount:0 ofFolderWithName:@"Folder 2"]; | 837 [BookmarksTestCase assertChildCount:0 ofFolderWithName:@"Folder 2"]; |
831 [[self class] assertFolderDoesntExistWithTitle:@"Folder 3"]; | 838 [BookmarksTestCase assertFolderDoesntExistWithTitle:@"Folder 3"]; |
832 [[self class] waitForDeletionOfBookmarkWithTitle:@"Folder 3"]; | 839 [BookmarksTestCase waitForDeletionOfBookmarkWithTitle:@"Folder 3"]; |
833 } | 840 } |
834 | 841 |
835 // Navigates to a deeply nested folder, delete its parent programatically. | 842 // Navigates to a deeply nested folder, delete its parent programatically. |
836 // Verifies that the UI is as expected. | 843 // Verifies that the UI is as expected. |
837 - (void)testDeleteParentFolder { | 844 - (void)testDeleteParentFolder { |
838 [[self class] setupStandardBookmarks]; | 845 [BookmarksTestCase setupStandardBookmarks]; |
839 [[self class] openBookmarkFolder:@"Folder 1"]; | 846 [BookmarksTestCase openBookmarkFolder:@"Folder 1"]; |
840 [[EarlGrey selectElementWithMatcher:ButtonWithAccessibilityLabel(@"Folder 2")] | 847 [[EarlGrey selectElementWithMatcher:ButtonWithAccessibilityLabel(@"Folder 2")] |
841 performAction:grey_tap()]; | 848 performAction:grey_tap()]; |
842 [[EarlGrey selectElementWithMatcher:ButtonWithAccessibilityLabel(@"Folder 3")] | 849 [[EarlGrey selectElementWithMatcher:ButtonWithAccessibilityLabel(@"Folder 3")] |
843 performAction:grey_tap()]; | 850 performAction:grey_tap()]; |
844 | 851 |
845 // Remove the parent programmatically. | 852 // Remove the parent programmatically. |
846 [[self class] removeBookmarkWithTitle:@"Folder 2"]; | 853 [BookmarksTestCase removeBookmarkWithTitle:@"Folder 2"]; |
847 | 854 |
848 // Folder 2 and 3 are now deleted, UI should have moved to Folder1, and | 855 // Folder 2 and 3 are now deleted, UI should have moved to Folder1, and |
849 // Folder 1 should be empty. | 856 // Folder 1 should be empty. |
850 [[EarlGrey | 857 [[EarlGrey |
851 selectElementWithMatcher:grey_allOf( | 858 selectElementWithMatcher:grey_allOf( |
852 grey_kindOfClass(NSClassFromString( | 859 grey_kindOfClass(NSClassFromString( |
853 @"BookmarkNavigationBar")), | 860 @"BookmarkNavigationBar")), |
854 grey_descendant(grey_text(@"Folder 1")), | 861 grey_descendant(grey_text(@"Folder 1")), |
855 nil)] | 862 nil)] |
856 assertWithMatcher:grey_sufficientlyVisible()]; | 863 assertWithMatcher:grey_sufficientlyVisible()]; |
857 [[self class] assertChildCount:0 ofFolderWithName:@"Folder 1"]; | 864 [BookmarksTestCase assertChildCount:0 ofFolderWithName:@"Folder 1"]; |
858 [[EarlGrey selectElementWithMatcher:grey_accessibilityLabel(@"Folder 2")] | 865 [[EarlGrey selectElementWithMatcher:grey_accessibilityLabel(@"Folder 2")] |
859 assertWithMatcher:grey_notVisible()]; | 866 assertWithMatcher:grey_notVisible()]; |
860 [[self class] assertFolderDoesntExistWithTitle:@"Folder 2"]; | 867 [BookmarksTestCase assertFolderDoesntExistWithTitle:@"Folder 2"]; |
861 [[self class] assertFolderDoesntExistWithTitle:@"Folder 3"]; | 868 [BookmarksTestCase assertFolderDoesntExistWithTitle:@"Folder 3"]; |
862 | 869 |
863 // Check that the selected folder in the menu is Folder 1. | 870 // Check that the selected folder in the menu is Folder 1. |
864 if (IsCompact()) { | 871 if (IsCompact()) { |
865 // Opens the bookmark manager sidebar on handsets. | 872 // Opens the bookmark manager sidebar on handsets. |
866 [[EarlGrey selectElementWithMatcher:grey_accessibilityID(@"Menu")] | 873 [[EarlGrey selectElementWithMatcher:grey_accessibilityID(@"Menu")] |
867 performAction:grey_tap()]; | 874 performAction:grey_tap()]; |
868 } | 875 } |
869 [[EarlGrey | 876 [[EarlGrey |
870 selectElementWithMatcher:grey_allOf( | 877 selectElementWithMatcher:grey_allOf( |
871 grey_kindOfClass( | 878 grey_kindOfClass( |
872 NSClassFromString(@"BookmarkMenuCell")), | 879 NSClassFromString(@"BookmarkMenuCell")), |
873 grey_descendant(grey_text(@"Folder 1")), | 880 grey_descendant(grey_text(@"Folder 1")), |
874 nil)] | 881 nil)] |
875 assertWithMatcher:grey_sufficientlyVisible()]; | 882 assertWithMatcher:grey_sufficientlyVisible()]; |
876 } | 883 } |
877 | 884 |
878 // Tests that the menu button changes to a back button as expected when browsing | 885 // Tests that the menu button changes to a back button as expected when browsing |
879 // nested folders. | 886 // nested folders. |
880 - (void)testBrowseNestedFolders { | 887 - (void)testBrowseNestedFolders { |
881 [[self class] setupStandardBookmarks]; | 888 [BookmarksTestCase setupStandardBookmarks]; |
882 [[self class] openMobileBookmarks]; | 889 [BookmarksTestCase openMobileBookmarks]; |
883 | 890 |
884 // Navigate down the nested folders. | 891 // Navigate down the nested folders. |
885 [[EarlGrey selectElementWithMatcher:grey_accessibilityID(@"Folder 1")] | 892 [[EarlGrey selectElementWithMatcher:grey_accessibilityID(@"Folder 1")] |
886 performAction:grey_tap()]; | 893 performAction:grey_tap()]; |
887 [[EarlGrey selectElementWithMatcher:grey_accessibilityID(@"Folder 2")] | 894 [[EarlGrey selectElementWithMatcher:grey_accessibilityID(@"Folder 2")] |
888 performAction:grey_tap()]; | 895 performAction:grey_tap()]; |
889 [[EarlGrey selectElementWithMatcher:grey_accessibilityID(@"Folder 3")] | 896 [[EarlGrey selectElementWithMatcher:grey_accessibilityID(@"Folder 3")] |
890 performAction:grey_tap()]; | 897 performAction:grey_tap()]; |
891 | 898 |
892 // Verify the back button is visible to be able to go back to parent. | 899 // Verify the back button is visible to be able to go back to parent. |
(...skipping 18 matching lines...) Expand all Loading... |
911 | 918 |
912 if (IsCompact()) { | 919 if (IsCompact()) { |
913 // Verify menu button reappears. | 920 // Verify menu button reappears. |
914 [[EarlGrey selectElementWithMatcher:grey_accessibilityID(@"Menu")] | 921 [[EarlGrey selectElementWithMatcher:grey_accessibilityID(@"Menu")] |
915 assertWithMatcher:grey_sufficientlyVisible()]; | 922 assertWithMatcher:grey_sufficientlyVisible()]; |
916 } | 923 } |
917 } | 924 } |
918 | 925 |
919 // Tests moving a bookmark into a new folder created in the moving process. | 926 // Tests moving a bookmark into a new folder created in the moving process. |
920 - (void)testCreateNewFolderWhileMovingBookmark { | 927 - (void)testCreateNewFolderWhileMovingBookmark { |
921 [[self class] setupStandardBookmarks]; | 928 [BookmarksTestCase setupStandardBookmarks]; |
922 [[self class] openMobileBookmarks]; | 929 [BookmarksTestCase openMobileBookmarks]; |
923 | 930 |
924 // Tap the info disclosure indicator for the bookmark we want to move. | 931 // Tap the info disclosure indicator for the bookmark we want to move. |
925 [[EarlGrey selectElementWithMatcher:grey_accessibilityID(@"First URL Info")] | 932 [[EarlGrey selectElementWithMatcher:grey_accessibilityID(@"First URL Info")] |
926 performAction:grey_tap()]; | 933 performAction:grey_tap()]; |
927 | 934 |
928 // Choose to move the bookmark in the context menu. | 935 // Choose to move the bookmark in the context menu. |
929 [[EarlGrey selectElementWithMatcher:ActionSheet(ActionMove)] | 936 [[EarlGrey selectElementWithMatcher:ActionSheet(ActionMove)] |
930 performAction:grey_tap()]; | 937 performAction:grey_tap()]; |
931 | 938 |
932 // Choose to move the bookmark into a new folder. | 939 // Choose to move the bookmark into a new folder. |
933 [[EarlGrey | 940 [[EarlGrey |
934 selectElementWithMatcher:grey_accessibilityID(@"Create New Folder")] | 941 selectElementWithMatcher:grey_accessibilityID(@"Create New Folder")] |
935 performAction:grey_tap()]; | 942 performAction:grey_tap()]; |
936 | 943 |
937 // Enter custom new folder name. | 944 // Enter custom new folder name. |
938 [[self class] renameBookmarkFolderWithFolderTitle:@"Title For New Folder"]; | 945 [BookmarksTestCase |
| 946 renameBookmarkFolderWithFolderTitle:@"Title For New Folder"]; |
939 | 947 |
940 // Verify current parent folder (Change Folder) is Bookmarks folder. | 948 // Verify current parent folder (Change Folder) is Bookmarks folder. |
941 [[EarlGrey | 949 [[EarlGrey |
942 selectElementWithMatcher:grey_allOf( | 950 selectElementWithMatcher:grey_allOf( |
943 grey_accessibilityID(@"Change Folder"), | 951 grey_accessibilityID(@"Change Folder"), |
944 grey_accessibilityLabel(@"Mobile Bookmarks"), | 952 grey_accessibilityLabel(@"Mobile Bookmarks"), |
945 nil)] | 953 nil)] |
946 assertWithMatcher:grey_sufficientlyVisible()]; | 954 assertWithMatcher:grey_sufficientlyVisible()]; |
947 | 955 |
948 // Choose new parent folder (Change Folder). | 956 // Choose new parent folder (Change Folder). |
949 [[EarlGrey selectElementWithMatcher:grey_accessibilityID(@"Change Folder")] | 957 [[EarlGrey selectElementWithMatcher:grey_accessibilityID(@"Change Folder")] |
950 performAction:grey_tap()]; | 958 performAction:grey_tap()]; |
951 | 959 |
952 // Verify folder picker UI is displayed. | 960 // Verify folder picker UI is displayed. |
953 [[EarlGrey selectElementWithMatcher:grey_accessibilityID(@"Folder Picker")] | 961 [[EarlGrey selectElementWithMatcher:grey_accessibilityID(@"Folder Picker")] |
954 assertWithMatcher:grey_sufficientlyVisible()]; | 962 assertWithMatcher:grey_sufficientlyVisible()]; |
955 | 963 |
956 // Verify Folder 2 only has one item. | 964 // Verify Folder 2 only has one item. |
957 [[self class] assertChildCount:1 ofFolderWithName:@"Folder 2"]; | 965 [BookmarksTestCase assertChildCount:1 ofFolderWithName:@"Folder 2"]; |
958 | 966 |
959 // Select Folder 2 as new Change Folder. | 967 // Select Folder 2 as new Change Folder. |
960 [[EarlGrey selectElementWithMatcher:grey_accessibilityID(@"Folder 2")] | 968 [[EarlGrey selectElementWithMatcher:grey_accessibilityID(@"Folder 2")] |
961 performAction:grey_tap()]; | 969 performAction:grey_tap()]; |
962 | 970 |
963 // Verify folder picker is dismissed and folder creator is now visible. | 971 // Verify folder picker is dismissed and folder creator is now visible. |
964 [[EarlGrey selectElementWithMatcher:grey_accessibilityID(@"Folder Creator")] | 972 [[EarlGrey selectElementWithMatcher:grey_accessibilityID(@"Folder Creator")] |
965 assertWithMatcher:grey_sufficientlyVisible()]; | 973 assertWithMatcher:grey_sufficientlyVisible()]; |
966 [[EarlGrey selectElementWithMatcher:grey_accessibilityID(@"Folder Picker")] | 974 [[EarlGrey selectElementWithMatcher:grey_accessibilityID(@"Folder Picker")] |
967 assertWithMatcher:grey_notVisible()]; | 975 assertWithMatcher:grey_notVisible()]; |
(...skipping 11 matching lines...) Expand all Loading... |
979 | 987 |
980 // Verify all folder flow UI is now closed. | 988 // Verify all folder flow UI is now closed. |
981 [[EarlGrey selectElementWithMatcher:grey_accessibilityID(@"Folder Creator")] | 989 [[EarlGrey selectElementWithMatcher:grey_accessibilityID(@"Folder Creator")] |
982 assertWithMatcher:grey_notVisible()]; | 990 assertWithMatcher:grey_notVisible()]; |
983 [[EarlGrey selectElementWithMatcher:grey_accessibilityID(@"Folder Picker")] | 991 [[EarlGrey selectElementWithMatcher:grey_accessibilityID(@"Folder Picker")] |
984 assertWithMatcher:grey_notVisible()]; | 992 assertWithMatcher:grey_notVisible()]; |
985 [[EarlGrey selectElementWithMatcher:grey_accessibilityID(@"Folder Editor")] | 993 [[EarlGrey selectElementWithMatcher:grey_accessibilityID(@"Folder Editor")] |
986 assertWithMatcher:grey_notVisible()]; | 994 assertWithMatcher:grey_notVisible()]; |
987 | 995 |
988 // Verify new folder has been created under Folder 2. | 996 // Verify new folder has been created under Folder 2. |
989 [[self class] assertChildCount:2 ofFolderWithName:@"Folder 2"]; | 997 [BookmarksTestCase assertChildCount:2 ofFolderWithName:@"Folder 2"]; |
990 | 998 |
991 // Verify new folder has one bookmark. | 999 // Verify new folder has one bookmark. |
992 [[self class] assertChildCount:1 ofFolderWithName:@"Title For New Folder"]; | 1000 [BookmarksTestCase assertChildCount:1 |
| 1001 ofFolderWithName:@"Title For New Folder"]; |
993 } | 1002 } |
994 | 1003 |
995 // Navigates to a deeply nested folder, deletes its root ancestor and checks | 1004 // Navigates to a deeply nested folder, deletes its root ancestor and checks |
996 // that the UI is on the top level folder. | 1005 // that the UI is on the top level folder. |
997 - (void)testDeleteRootFolder { | 1006 - (void)testDeleteRootFolder { |
998 [[self class] setupStandardBookmarks]; | 1007 [BookmarksTestCase setupStandardBookmarks]; |
999 [[self class] openBookmarkFolder:@"Folder 1"]; | 1008 [BookmarksTestCase openBookmarkFolder:@"Folder 1"]; |
1000 [[EarlGrey selectElementWithMatcher:grey_text(@"Folder 2")] | 1009 [[EarlGrey selectElementWithMatcher:grey_text(@"Folder 2")] |
1001 performAction:grey_tap()]; | 1010 performAction:grey_tap()]; |
1002 [[EarlGrey selectElementWithMatcher:grey_text(@"Folder 3")] | 1011 [[EarlGrey selectElementWithMatcher:grey_text(@"Folder 3")] |
1003 performAction:grey_tap()]; | 1012 performAction:grey_tap()]; |
1004 | 1013 |
1005 [[self class] removeBookmarkWithTitle:@"Folder 1"]; | 1014 [BookmarksTestCase removeBookmarkWithTitle:@"Folder 1"]; |
1006 | 1015 |
1007 NSString* rootFolderTitle = nil; | 1016 NSString* rootFolderTitle = nil; |
1008 rootFolderTitle = @"Mobile Bookmarks"; | 1017 rootFolderTitle = @"Mobile Bookmarks"; |
1009 | 1018 |
1010 // Folder 2 and 3 are now deleted, UI should have moved to top level folder. | 1019 // Folder 2 and 3 are now deleted, UI should have moved to top level folder. |
1011 [[EarlGrey | 1020 [[EarlGrey |
1012 selectElementWithMatcher:grey_allOf( | 1021 selectElementWithMatcher:grey_allOf( |
1013 grey_kindOfClass(NSClassFromString( | 1022 grey_kindOfClass(NSClassFromString( |
1014 @"BookmarkNavigationBar")), | 1023 @"BookmarkNavigationBar")), |
1015 grey_descendant(grey_text(rootFolderTitle)), | 1024 grey_descendant(grey_text(rootFolderTitle)), |
(...skipping 26 matching lines...) Expand all Loading... |
1042 } | 1051 } |
1043 | 1052 |
1044 [[EarlGrey selectElementWithMatcher:grey_accessibilityLabel(@"Folder 1")] | 1053 [[EarlGrey selectElementWithMatcher:grey_accessibilityLabel(@"Folder 1")] |
1045 assertWithMatcher:grey_notVisible()]; | 1054 assertWithMatcher:grey_notVisible()]; |
1046 } | 1055 } |
1047 | 1056 |
1048 // Tests that keyboard commands are registered when a bookmark is added with the | 1057 // Tests that keyboard commands are registered when a bookmark is added with the |
1049 // new bookmark UI as it shows only a snackbar. | 1058 // new bookmark UI as it shows only a snackbar. |
1050 - (void)testKeyboardCommandsRegistered_AddBookmark { | 1059 - (void)testKeyboardCommandsRegistered_AddBookmark { |
1051 // Add the bookmark. | 1060 // Add the bookmark. |
1052 [[self class] starCurrentTab]; | 1061 [BookmarksTestCase starCurrentTab]; |
1053 GREYAssertTrue(chrome_test_util::GetRegisteredKeyCommandsCount() > 0, | 1062 GREYAssertTrue(chrome_test_util::GetRegisteredKeyCommandsCount() > 0, |
1054 @"Some keyboard commands are registered."); | 1063 @"Some keyboard commands are registered."); |
1055 } | 1064 } |
1056 | 1065 |
1057 // Tests that keyboard commands are not registered when a bookmark is edited, as | 1066 // Tests that keyboard commands are not registered when a bookmark is edited, as |
1058 // the edit screen is presented modally. | 1067 // the edit screen is presented modally. |
1059 - (void)testKeyboardCommandsNotRegistered_EditBookmark { | 1068 - (void)testKeyboardCommandsNotRegistered_EditBookmark { |
1060 [[self class] setupStandardBookmarks]; | 1069 [BookmarksTestCase setupStandardBookmarks]; |
1061 [[self class] openMobileBookmarks]; | 1070 [BookmarksTestCase openMobileBookmarks]; |
1062 | 1071 |
1063 // Go to a bookmarked page. Tap on one of the standard bookmark. | 1072 // Go to a bookmarked page. Tap on one of the standard bookmark. |
1064 [[EarlGrey selectElementWithMatcher:grey_text(@"Second URL")] | 1073 [[EarlGrey selectElementWithMatcher:grey_text(@"Second URL")] |
1065 performAction:grey_tap()]; | 1074 performAction:grey_tap()]; |
1066 | 1075 |
1067 // Edit the bookmark. | 1076 // Edit the bookmark. |
1068 if (!IsCompact()) { | 1077 if (!IsCompact()) { |
1069 [[EarlGrey selectElementWithMatcher:StarButton()] performAction:grey_tap()]; | 1078 [[EarlGrey selectElementWithMatcher:StarButton()] performAction:grey_tap()]; |
1070 } else { | 1079 } else { |
1071 [ChromeEarlGreyUI openToolsMenu]; | 1080 [ChromeEarlGreyUI openToolsMenu]; |
1072 [[EarlGrey selectElementWithMatcher:LitStarButtoniPhone()] | 1081 [[EarlGrey selectElementWithMatcher:LitStarButtoniPhone()] |
1073 performAction:grey_tap()]; | 1082 performAction:grey_tap()]; |
1074 } | 1083 } |
1075 GREYAssertTrue(chrome_test_util::GetRegisteredKeyCommandsCount() == 0, | 1084 GREYAssertTrue(chrome_test_util::GetRegisteredKeyCommandsCount() == 0, |
1076 @"No keyboard commands are registered."); | 1085 @"No keyboard commands are registered."); |
1077 } | 1086 } |
1078 | 1087 |
1079 // Tests that tapping No thanks on the promo make it disappear. | 1088 // Tests that tapping No thanks on the promo make it disappear. |
1080 - (void)testPromoNoThanksMakeItDisappear { | 1089 - (void)testPromoNoThanksMakeItDisappear { |
1081 [[self class] setupStandardBookmarks]; | 1090 [BookmarksTestCase setupStandardBookmarks]; |
1082 [[self class] openTopLevelBookmarksFolder]; | 1091 [BookmarksTestCase openTopLevelBookmarksFolder]; |
1083 | 1092 |
1084 // We are going to set the PromoAlreadySeen preference. Set a teardown handler | 1093 // We are going to set the PromoAlreadySeen preference. Set a teardown handler |
1085 // to reset it. | 1094 // to reset it. |
1086 [self setTearDownHandler:^{ | 1095 [self setTearDownHandler:^{ |
1087 [[self class] setPromoAlreadySeen:NO]; | 1096 [BookmarksTestCase setPromoAlreadySeen:NO]; |
1088 }]; | 1097 }]; |
1089 // Check that promo is visible. | 1098 // Check that promo is visible. |
1090 [[self class] verifyPromoAlreadySeen:NO]; | 1099 [BookmarksTestCase verifyPromoAlreadySeen:NO]; |
1091 [[EarlGrey selectElementWithMatcher:grey_accessibilityID(@"promo_view")] | 1100 [[EarlGrey selectElementWithMatcher:grey_accessibilityID(@"promo_view")] |
1092 assertWithMatcher:grey_notNil()]; | 1101 assertWithMatcher:grey_notNil()]; |
1093 | 1102 |
1094 // Tap the dismiss button. | 1103 // Tap the dismiss button. |
1095 [[EarlGrey | 1104 [[EarlGrey |
1096 selectElementWithMatcher:grey_accessibilityID(@"promo_no_thanks_button")] | 1105 selectElementWithMatcher:grey_accessibilityID(@"promo_no_thanks_button")] |
1097 performAction:grey_tap()]; | 1106 performAction:grey_tap()]; |
1098 | 1107 |
1099 // Wait until promo is gone. | 1108 // Wait until promo is gone. |
1100 [[EarlGrey selectElementWithMatcher:grey_accessibilityID(@"promo_view")] | 1109 [[EarlGrey selectElementWithMatcher:grey_accessibilityID(@"promo_view")] |
1101 assertWithMatcher:grey_notVisible()]; | 1110 assertWithMatcher:grey_notVisible()]; |
1102 | 1111 |
1103 // Check that the promo already seen state is updated. | 1112 // Check that the promo already seen state is updated. |
1104 [[self class] verifyPromoAlreadySeen:YES]; | 1113 [BookmarksTestCase verifyPromoAlreadySeen:YES]; |
1105 } | 1114 } |
1106 | 1115 |
1107 // Tests that tapping Sign in on the promo make the Sign in sheet appear and | 1116 // Tests that tapping Sign in on the promo make the Sign in sheet appear and |
1108 // the promo still appears after dismissing the Sign in sheet. | 1117 // the promo still appears after dismissing the Sign in sheet. |
1109 - (void)testUIPromoSignIn { | 1118 - (void)testUIPromoSignIn { |
1110 [[self class] setupStandardBookmarks]; | 1119 [BookmarksTestCase setupStandardBookmarks]; |
1111 [[self class] openTopLevelBookmarksFolder]; | 1120 [BookmarksTestCase openTopLevelBookmarksFolder]; |
1112 // Set up a fake identity. | 1121 // Set up a fake identity. |
1113 ChromeIdentity* identity = | 1122 ChromeIdentity* identity = |
1114 [FakeChromeIdentity identityWithEmail:@"fakefoo@egmail.com" | 1123 [FakeChromeIdentity identityWithEmail:@"fakefoo@egmail.com" |
1115 gaiaID:@"fakefoopassword" | 1124 gaiaID:@"fakefoopassword" |
1116 name:@"Fake Foo"]; | 1125 name:@"Fake Foo"]; |
1117 ios::FakeChromeIdentityService::GetInstanceFromChromeProvider()->AddIdentity( | 1126 ios::FakeChromeIdentityService::GetInstanceFromChromeProvider()->AddIdentity( |
1118 identity); | 1127 identity); |
1119 | 1128 |
1120 // Check that promo is visible. | 1129 // Check that promo is visible. |
1121 [[self class] verifyPromoAlreadySeen:NO]; | 1130 [BookmarksTestCase verifyPromoAlreadySeen:NO]; |
1122 [[EarlGrey selectElementWithMatcher:grey_accessibilityID(@"promo_view")] | 1131 [[EarlGrey selectElementWithMatcher:grey_accessibilityID(@"promo_view")] |
1123 assertWithMatcher:grey_notNil()]; | 1132 assertWithMatcher:grey_notNil()]; |
1124 | 1133 |
1125 // Tap the Sign in button. | 1134 // Tap the Sign in button. |
1126 [[EarlGrey | 1135 [[EarlGrey |
1127 selectElementWithMatcher:grey_accessibilityID(@"promo_sign_in_button")] | 1136 selectElementWithMatcher:grey_accessibilityID(@"promo_sign_in_button")] |
1128 performAction:grey_tap()]; | 1137 performAction:grey_tap()]; |
1129 | 1138 |
1130 // Tap the CANCEL button. | 1139 // Tap the CANCEL button. |
1131 [[EarlGrey selectElementWithMatcher: | 1140 [[EarlGrey selectElementWithMatcher: |
1132 grey_buttonTitle([l10n_util::GetNSString( | 1141 grey_buttonTitle([l10n_util::GetNSString( |
1133 IDS_IOS_ACCOUNT_CONSISTENCY_SETUP_SKIP_BUTTON) | 1142 IDS_IOS_ACCOUNT_CONSISTENCY_SETUP_SKIP_BUTTON) |
1134 uppercaseString])] performAction:grey_tap()]; | 1143 uppercaseString])] performAction:grey_tap()]; |
1135 | 1144 |
1136 // Check that the bookmarks UI reappeared and the cell is still here. | 1145 // Check that the bookmarks UI reappeared and the cell is still here. |
1137 [[EarlGrey selectElementWithMatcher:grey_accessibilityID(@"promo_view")] | 1146 [[EarlGrey selectElementWithMatcher:grey_accessibilityID(@"promo_view")] |
1138 assertWithMatcher:grey_notNil()]; | 1147 assertWithMatcher:grey_notNil()]; |
1139 | 1148 |
1140 [[self class] verifyPromoAlreadySeen:NO]; | 1149 [BookmarksTestCase verifyPromoAlreadySeen:NO]; |
1141 } | 1150 } |
1142 | 1151 |
1143 // Tests that all elements on the bookmarks landing page are accessible. | 1152 // Tests that all elements on the bookmarks landing page are accessible. |
1144 - (void)testAccessibilityOnBookmarksLandingPage { | 1153 - (void)testAccessibilityOnBookmarksLandingPage { |
1145 [[self class] openMobileBookmarksPrepopulatedWithOneBookmark]; | 1154 [BookmarksTestCase openMobileBookmarksPrepopulatedWithOneBookmark]; |
1146 | 1155 |
1147 chrome_test_util::VerifyAccessibilityForCurrentScreen(); | 1156 chrome_test_util::VerifyAccessibilityForCurrentScreen(); |
1148 if (IsCompact()) { | 1157 if (IsCompact()) { |
1149 // Exit from bookmarks modal. IPad shows bookmarks in tab. | 1158 // Exit from bookmarks modal. IPad shows bookmarks in tab. |
1150 [[EarlGrey selectElementWithMatcher:BookmarksDoneButton()] | 1159 [[EarlGrey selectElementWithMatcher:BookmarksDoneButton()] |
1151 performAction:grey_tap()]; | 1160 performAction:grey_tap()]; |
1152 } | 1161 } |
1153 } | 1162 } |
1154 | 1163 |
1155 // Tests that all elements on the bookmarks Edit page are accessible. | 1164 // Tests that all elements on the bookmarks Edit page are accessible. |
1156 - (void)testAccessibilityOnBookmarksEditPage { | 1165 - (void)testAccessibilityOnBookmarksEditPage { |
1157 [[self class] openMobileBookmarksPrepopulatedWithOneBookmark]; | 1166 [BookmarksTestCase openMobileBookmarksPrepopulatedWithOneBookmark]; |
1158 | 1167 |
1159 // Load the menu for a bookmark. | 1168 // Load the menu for a bookmark. |
1160 [[EarlGrey selectElementWithMatcher:MoreMenuButton()] | 1169 [[EarlGrey selectElementWithMatcher:MoreMenuButton()] |
1161 performAction:grey_tap()]; | 1170 performAction:grey_tap()]; |
1162 | 1171 |
1163 // Tap the edit action. | 1172 // Tap the edit action. |
1164 [[EarlGrey selectElementWithMatcher:ActionSheet(ActionEdit)] | 1173 [[EarlGrey selectElementWithMatcher:ActionSheet(ActionEdit)] |
1165 performAction:grey_tap()]; | 1174 performAction:grey_tap()]; |
1166 chrome_test_util::VerifyAccessibilityForCurrentScreen(); | 1175 chrome_test_util::VerifyAccessibilityForCurrentScreen(); |
1167 if (IsCompact()) { | 1176 if (IsCompact()) { |
1168 // Exit from bookmarks modal. IPad shows bookmarks in tab. | 1177 // Exit from bookmarks modal. IPad shows bookmarks in tab. |
1169 [[EarlGrey selectElementWithMatcher:BookmarksDoneButton()] | 1178 [[EarlGrey selectElementWithMatcher:BookmarksDoneButton()] |
1170 performAction:grey_tap()]; | 1179 performAction:grey_tap()]; |
1171 [[EarlGrey selectElementWithMatcher:BookmarksDoneButton()] | 1180 [[EarlGrey selectElementWithMatcher:BookmarksDoneButton()] |
1172 performAction:grey_tap()]; | 1181 performAction:grey_tap()]; |
1173 } | 1182 } |
1174 } | 1183 } |
1175 | 1184 |
1176 // Tests that all elements on the bookmarks Move page are accessible. | 1185 // Tests that all elements on the bookmarks Move page are accessible. |
1177 - (void)testAccessibilityOnBookmarksMovePage { | 1186 - (void)testAccessibilityOnBookmarksMovePage { |
1178 [[self class] openMobileBookmarksPrepopulatedWithOneBookmark]; | 1187 [BookmarksTestCase openMobileBookmarksPrepopulatedWithOneBookmark]; |
1179 | 1188 |
1180 // Load the menu for a bookmark. | 1189 // Load the menu for a bookmark. |
1181 [[EarlGrey selectElementWithMatcher:MoreMenuButton()] | 1190 [[EarlGrey selectElementWithMatcher:MoreMenuButton()] |
1182 performAction:grey_tap()]; | 1191 performAction:grey_tap()]; |
1183 | 1192 |
1184 // Tap the Move action. | 1193 // Tap the Move action. |
1185 [[EarlGrey selectElementWithMatcher:ActionSheet(ActionMove)] | 1194 [[EarlGrey selectElementWithMatcher:ActionSheet(ActionMove)] |
1186 performAction:grey_tap()]; | 1195 performAction:grey_tap()]; |
1187 chrome_test_util::VerifyAccessibilityForCurrentScreen(); | 1196 chrome_test_util::VerifyAccessibilityForCurrentScreen(); |
1188 if (IsCompact()) { | 1197 if (IsCompact()) { |
1189 // Exit from bookmarks modal. IPad shows bookmarks in tab. | 1198 // Exit from bookmarks modal. IPad shows bookmarks in tab. |
1190 [[EarlGrey selectElementWithMatcher:BookmarksDoneButton()] | 1199 [[EarlGrey selectElementWithMatcher:BookmarksDoneButton()] |
1191 performAction:grey_tap()]; | 1200 performAction:grey_tap()]; |
1192 [[EarlGrey selectElementWithMatcher:BookmarksDoneButton()] | 1201 [[EarlGrey selectElementWithMatcher:BookmarksDoneButton()] |
1193 performAction:grey_tap()]; | 1202 performAction:grey_tap()]; |
1194 } | 1203 } |
1195 } | 1204 } |
1196 | 1205 |
1197 // Tests that all elements on the bookmarks Move to New Folder page are | 1206 // Tests that all elements on the bookmarks Move to New Folder page are |
1198 // accessible. | 1207 // accessible. |
1199 - (void)testAccessibilityOnBookmarksMoveToNewFolderPage { | 1208 - (void)testAccessibilityOnBookmarksMoveToNewFolderPage { |
1200 [[self class] openMobileBookmarksPrepopulatedWithOneBookmark]; | 1209 [BookmarksTestCase openMobileBookmarksPrepopulatedWithOneBookmark]; |
1201 | 1210 |
1202 // Load the menu for a bookmark. | 1211 // Load the menu for a bookmark. |
1203 [[EarlGrey selectElementWithMatcher:MoreMenuButton()] | 1212 [[EarlGrey selectElementWithMatcher:MoreMenuButton()] |
1204 performAction:grey_tap()]; | 1213 performAction:grey_tap()]; |
1205 | 1214 |
1206 // Tap the Move action. | 1215 // Tap the Move action. |
1207 [[EarlGrey selectElementWithMatcher:ActionSheet(ActionMove)] | 1216 [[EarlGrey selectElementWithMatcher:ActionSheet(ActionMove)] |
1208 performAction:grey_tap()]; | 1217 performAction:grey_tap()]; |
1209 // Tap on "Create New Folder." | 1218 // Tap on "Create New Folder." |
1210 [[EarlGrey | 1219 [[EarlGrey |
1211 selectElementWithMatcher:grey_accessibilityID(@"Create New Folder")] | 1220 selectElementWithMatcher:grey_accessibilityID(@"Create New Folder")] |
1212 performAction:grey_tap()]; | 1221 performAction:grey_tap()]; |
1213 chrome_test_util::VerifyAccessibilityForCurrentScreen(); | 1222 chrome_test_util::VerifyAccessibilityForCurrentScreen(); |
1214 if (IsCompact()) { | 1223 if (IsCompact()) { |
1215 // Exit from bookmarks modal. IPad shows bookmarks in tab. | 1224 // Exit from bookmarks modal. IPad shows bookmarks in tab. |
1216 [[EarlGrey selectElementWithMatcher:BookmarksDoneButton()] | 1225 [[EarlGrey selectElementWithMatcher:BookmarksDoneButton()] |
1217 performAction:grey_tap()]; | 1226 performAction:grey_tap()]; |
1218 [[EarlGrey selectElementWithMatcher:BookmarksDoneButton()] | 1227 [[EarlGrey selectElementWithMatcher:BookmarksDoneButton()] |
1219 performAction:grey_tap()]; | 1228 performAction:grey_tap()]; |
1220 } | 1229 } |
1221 } | 1230 } |
1222 | 1231 |
1223 // Tests that all elements on bookmarks Delete and Undo are accessible. | 1232 // Tests that all elements on bookmarks Delete and Undo are accessible. |
1224 - (void)testAccessibilityOnBookmarksDeleteUndo { | 1233 - (void)testAccessibilityOnBookmarksDeleteUndo { |
1225 [[self class] openMobileBookmarksPrepopulatedWithOneBookmark]; | 1234 [BookmarksTestCase openMobileBookmarksPrepopulatedWithOneBookmark]; |
1226 | 1235 |
1227 // Load the menu for a bookmark. | 1236 // Load the menu for a bookmark. |
1228 [[EarlGrey selectElementWithMatcher:MoreMenuButton()] | 1237 [[EarlGrey selectElementWithMatcher:MoreMenuButton()] |
1229 performAction:grey_tap()]; | 1238 performAction:grey_tap()]; |
1230 | 1239 |
1231 // Tap the Delete action. | 1240 // Tap the Delete action. |
1232 [[EarlGrey selectElementWithMatcher:ActionSheet(ActionDelete)] | 1241 [[EarlGrey selectElementWithMatcher:ActionSheet(ActionDelete)] |
1233 performAction:grey_tap()]; | 1242 performAction:grey_tap()]; |
1234 chrome_test_util::VerifyAccessibilityForCurrentScreen(); | 1243 chrome_test_util::VerifyAccessibilityForCurrentScreen(); |
1235 if (IsCompact()) { | 1244 if (IsCompact()) { |
1236 // Exit from bookmarks modal. IPad shows bookmarks in tab. | 1245 // Exit from bookmarks modal. IPad shows bookmarks in tab. |
1237 [[EarlGrey selectElementWithMatcher:BookmarksDoneButton()] | 1246 [[EarlGrey selectElementWithMatcher:BookmarksDoneButton()] |
1238 performAction:grey_tap()]; | 1247 performAction:grey_tap()]; |
1239 } | 1248 } |
1240 } | 1249 } |
1241 | 1250 |
1242 // Tests that all elements on the bookmarks Select page are accessible. | 1251 // Tests that all elements on the bookmarks Select page are accessible. |
1243 - (void)testAccessibilityOnBookmarksSelect { | 1252 - (void)testAccessibilityOnBookmarksSelect { |
1244 [[self class] openMobileBookmarksPrepopulatedWithOneBookmark]; | 1253 [BookmarksTestCase openMobileBookmarksPrepopulatedWithOneBookmark]; |
1245 | 1254 |
1246 // Load the menu for a bookmark. | 1255 // Load the menu for a bookmark. |
1247 [[EarlGrey selectElementWithMatcher:MoreMenuButton()] | 1256 [[EarlGrey selectElementWithMatcher:MoreMenuButton()] |
1248 performAction:grey_tap()]; | 1257 performAction:grey_tap()]; |
1249 | 1258 |
1250 // Tap the Select action. | 1259 // Tap the Select action. |
1251 [[EarlGrey selectElementWithMatcher:ActionSheet(ActionSelect)] | 1260 [[EarlGrey selectElementWithMatcher:ActionSheet(ActionSelect)] |
1252 performAction:grey_tap()]; | 1261 performAction:grey_tap()]; |
1253 chrome_test_util::VerifyAccessibilityForCurrentScreen(); | 1262 chrome_test_util::VerifyAccessibilityForCurrentScreen(); |
1254 // Dismiss selector with Cancel button. | 1263 // Dismiss selector with Cancel button. |
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1301 [BookmarksTestCase openBookmarkFolder:@"Mobile Bookmarks"]; | 1310 [BookmarksTestCase openBookmarkFolder:@"Mobile Bookmarks"]; |
1302 } | 1311 } |
1303 | 1312 |
1304 // Adds a bookmark, then navigates to the bookmark manager UI, and | 1313 // Adds a bookmark, then navigates to the bookmark manager UI, and |
1305 // selects MobileBookmarks. | 1314 // selects MobileBookmarks. |
1306 + (void)openMobileBookmarksPrepopulatedWithOneBookmark { | 1315 + (void)openMobileBookmarksPrepopulatedWithOneBookmark { |
1307 const GURL bookmarkURL = web::test::HttpServer::MakeUrl( | 1316 const GURL bookmarkURL = web::test::HttpServer::MakeUrl( |
1308 "http://ios/testing/data/http_server_files/destination.html"); | 1317 "http://ios/testing/data/http_server_files/destination.html"); |
1309 NSString* bookmarkTitle = @"smokeTapBookmark"; | 1318 NSString* bookmarkTitle = @"smokeTapBookmark"; |
1310 // Load a bookmark into the bookmark model. | 1319 // Load a bookmark into the bookmark model. |
1311 [[self class] addBookmark:bookmarkURL withTitle:bookmarkTitle]; | 1320 [BookmarksTestCase addBookmark:bookmarkURL withTitle:bookmarkTitle]; |
1312 | 1321 |
1313 // Open the UI for Bookmarks. | 1322 // Open the UI for Bookmarks. |
1314 [[self class] openMobileBookmarks]; | 1323 [BookmarksTestCase openMobileBookmarks]; |
1315 | 1324 |
1316 // Verify bookmark is visible. | 1325 // Verify bookmark is visible. |
1317 [[EarlGrey | 1326 [[EarlGrey |
1318 selectElementWithMatcher:ButtonWithAccessibilityLabel(bookmarkTitle)] | 1327 selectElementWithMatcher:ButtonWithAccessibilityLabel(bookmarkTitle)] |
1319 assertWithMatcher:grey_sufficientlyVisible() | 1328 assertWithMatcher:grey_sufficientlyVisible() |
1320 error:nil]; | 1329 error:nil]; |
1321 } | 1330 } |
1322 | 1331 |
1323 // Navigates to the edit folder UI for |folderTitle|. | 1332 // Navigates to the edit folder UI for |folderTitle|. |
1324 + (void)openEditBookmarkFolderWithFolderTitle:(NSString*)folderTitle { | 1333 + (void)openEditBookmarkFolderWithFolderTitle:(NSString*)folderTitle { |
(...skipping 24 matching lines...) Expand all Loading... |
1349 // Type in the new title and use '\n' to dismiss the keyboard. | 1358 // Type in the new title and use '\n' to dismiss the keyboard. |
1350 NSString* folderTitleWithNewLine = | 1359 NSString* folderTitleWithNewLine = |
1351 [NSString stringWithFormat:@"%@\n", folderTitle]; | 1360 [NSString stringWithFormat:@"%@\n", folderTitle]; |
1352 [[EarlGrey selectElementWithMatcher:grey_accessibilityID(titleIdentifier)] | 1361 [[EarlGrey selectElementWithMatcher:grey_accessibilityID(titleIdentifier)] |
1353 performAction:grey_typeText(folderTitleWithNewLine)]; | 1362 performAction:grey_typeText(folderTitleWithNewLine)]; |
1354 } | 1363 } |
1355 | 1364 |
1356 // Tap on the star to bookmark a page, then edit the bookmark to change the | 1365 // Tap on the star to bookmark a page, then edit the bookmark to change the |
1357 // title to |title|. | 1366 // title to |title|. |
1358 + (void)bookmarkCurrentTabWithTitle:(NSString*)title { | 1367 + (void)bookmarkCurrentTabWithTitle:(NSString*)title { |
1359 [[self class] waitForBookmarkModelLoaded:YES]; | 1368 [BookmarksTestCase waitForBookmarkModelLoaded:YES]; |
1360 // Add the bookmark from the UI. | 1369 // Add the bookmark from the UI. |
1361 [[self class] starCurrentTab]; | 1370 [BookmarksTestCase starCurrentTab]; |
1362 | 1371 |
1363 // Set the bookmark name. | 1372 // Set the bookmark name. |
1364 [[EarlGrey selectElementWithMatcher:EditBookmarkButton()] | 1373 [[EarlGrey selectElementWithMatcher:EditBookmarkButton()] |
1365 performAction:grey_tap()]; | 1374 performAction:grey_tap()]; |
1366 NSString* titleIdentifier = @"Title Field_textField"; | 1375 NSString* titleIdentifier = @"Title Field_textField"; |
1367 [[EarlGrey selectElementWithMatcher:grey_accessibilityID(titleIdentifier)] | 1376 [[EarlGrey selectElementWithMatcher:grey_accessibilityID(titleIdentifier)] |
1368 performAction:grey_tap()]; | 1377 performAction:grey_tap()]; |
1369 [[EarlGrey selectElementWithMatcher:grey_accessibilityLabel(@"Clear text")] | 1378 [[EarlGrey selectElementWithMatcher:grey_accessibilityLabel(@"Clear text")] |
1370 performAction:grey_tap()]; | 1379 performAction:grey_tap()]; |
1371 | 1380 |
(...skipping 94 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1466 GREYAssert(folder, @"No folder named %@", name); | 1475 GREYAssert(folder, @"No folder named %@", name); |
1467 GREYAssertEqual( | 1476 GREYAssertEqual( |
1468 folder->child_count(), count, | 1477 folder->child_count(), count, |
1469 @"Unexpected number of children in folder '%@': %d instead of %d", name, | 1478 @"Unexpected number of children in folder '%@': %d instead of %d", name, |
1470 folder->child_count(), count); | 1479 folder->child_count(), count); |
1471 } | 1480 } |
1472 | 1481 |
1473 // Adds a bookmark with the given |url| and |title| into the Mobile Bookmarks | 1482 // Adds a bookmark with the given |url| and |title| into the Mobile Bookmarks |
1474 // folder. | 1483 // folder. |
1475 + (void)addBookmark:(const GURL)url withTitle:(NSString*)title { | 1484 + (void)addBookmark:(const GURL)url withTitle:(NSString*)title { |
1476 [[self class] waitForBookmarkModelLoaded:YES]; | 1485 [BookmarksTestCase waitForBookmarkModelLoaded:YES]; |
1477 bookmarks::BookmarkModel* bookmark_model = | 1486 bookmarks::BookmarkModel* bookmark_model = |
1478 ios::BookmarkModelFactory::GetForBrowserState( | 1487 ios::BookmarkModelFactory::GetForBrowserState( |
1479 chrome_test_util::GetOriginalBrowserState()); | 1488 chrome_test_util::GetOriginalBrowserState()); |
1480 bookmark_model->AddURL(bookmark_model->mobile_node(), 0, | 1489 bookmark_model->AddURL(bookmark_model->mobile_node(), 0, |
1481 base::SysNSStringToUTF16(title), url); | 1490 base::SysNSStringToUTF16(title), url); |
1482 } | 1491 } |
1483 | 1492 |
1484 // Creates a new folder starting from the folder picker. | 1493 // Creates a new folder starting from the folder picker. |
1485 // Passing a |name| of 0 length will use the default value. | 1494 // Passing a |name| of 0 length will use the default value. |
1486 + (void)addFolderWithName:(NSString*)name { | 1495 + (void)addFolderWithName:(NSString*)name { |
(...skipping 23 matching lines...) Expand all Loading... |
1510 performAction:grey_typeText(name)]; | 1519 performAction:grey_typeText(name)]; |
1511 } | 1520 } |
1512 | 1521 |
1513 // Tap the Save button. | 1522 // Tap the Save button. |
1514 [[EarlGrey selectElementWithMatcher:grey_accessibilityID(@"Save")] | 1523 [[EarlGrey selectElementWithMatcher:grey_accessibilityID(@"Save")] |
1515 performAction:grey_tap()]; | 1524 performAction:grey_tap()]; |
1516 } | 1525 } |
1517 | 1526 |
1518 // Loads a set of default bookmarks in the model for the tests to use. | 1527 // Loads a set of default bookmarks in the model for the tests to use. |
1519 + (void)setupStandardBookmarks { | 1528 + (void)setupStandardBookmarks { |
1520 [[self class] waitForBookmarkModelLoaded:YES]; | 1529 [BookmarksTestCase waitForBookmarkModelLoaded:YES]; |
1521 | 1530 |
1522 bookmarks::BookmarkModel* bookmark_model = | 1531 bookmarks::BookmarkModel* bookmark_model = |
1523 ios::BookmarkModelFactory::GetForBrowserState( | 1532 ios::BookmarkModelFactory::GetForBrowserState( |
1524 chrome_test_util::GetOriginalBrowserState()); | 1533 chrome_test_util::GetOriginalBrowserState()); |
1525 | 1534 |
1526 const GURL firstURL = web::test::HttpServer::MakeUrl( | 1535 const GURL firstURL = web::test::HttpServer::MakeUrl( |
1527 "http://ios/testing/data/http_server_files/pony.html"); | 1536 "http://ios/testing/data/http_server_files/pony.html"); |
1528 NSString* firstTitle = @"First URL"; | 1537 NSString* firstTitle = @"First URL"; |
1529 bookmark_model->AddURL(bookmark_model->mobile_node(), 0, | 1538 bookmark_model->AddURL(bookmark_model->mobile_node(), 0, |
1530 base::SysNSStringToUTF16(firstTitle), firstURL); | 1539 base::SysNSStringToUTF16(firstTitle), firstURL); |
(...skipping 82 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1613 continue; | 1622 continue; |
1614 // This is a folder. | 1623 // This is a folder. |
1615 if (bookmark->GetTitle() == folderTitle16) | 1624 if (bookmark->GetTitle() == folderTitle16) |
1616 return YES; | 1625 return YES; |
1617 } | 1626 } |
1618 return NO; | 1627 return NO; |
1619 } | 1628 } |
1620 | 1629 |
1621 // Asserts that there is a bookmark folder with the given title. | 1630 // Asserts that there is a bookmark folder with the given title. |
1622 + (void)assertFolderExistsWithTitle:(NSString*)folderTitle { | 1631 + (void)assertFolderExistsWithTitle:(NSString*)folderTitle { |
1623 GREYAssert([[self class] folderExistsWithTitle:folderTitle], | 1632 GREYAssert([BookmarksTestCase folderExistsWithTitle:folderTitle], |
1624 @"There is no folder named %@", folderTitle); | 1633 @"There is no folder named %@", folderTitle); |
1625 } | 1634 } |
1626 | 1635 |
1627 // Asserts that there is no bookmark folder with the given title. | 1636 // Asserts that there is no bookmark folder with the given title. |
1628 + (void)assertFolderDoesntExistWithTitle:(NSString*)folderTitle { | 1637 + (void)assertFolderDoesntExistWithTitle:(NSString*)folderTitle { |
1629 GREYAssert(![[self class] folderExistsWithTitle:folderTitle], | 1638 GREYAssert(![BookmarksTestCase folderExistsWithTitle:folderTitle], |
1630 @"There is a folder named %@", folderTitle); | 1639 @"There is a folder named %@", folderTitle); |
1631 } | 1640 } |
1632 | 1641 |
1633 // Deletes via the UI the currently focused folder. This must be called once | 1642 // Deletes via the UI the currently focused folder. This must be called once |
1634 // already in a non permanent folder (i.e. not Mobile Bookmarks, etc.). | 1643 // already in a non permanent folder (i.e. not Mobile Bookmarks, etc.). |
1635 + (void)deleteSelectedFolder { | 1644 + (void)deleteSelectedFolder { |
1636 // Enter edit mode. | 1645 // Enter edit mode. |
1637 [[EarlGrey | 1646 [[EarlGrey |
1638 selectElementWithMatcher:grey_accessibilityID(@"Edit_navigation_bar")] | 1647 selectElementWithMatcher:grey_accessibilityID(@"Edit_navigation_bar")] |
1639 performAction:grey_tap()]; | 1648 performAction:grey_tap()]; |
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1680 if (!IsCompact()) { | 1689 if (!IsCompact()) { |
1681 [[EarlGrey selectElementWithMatcher:StarButton()] performAction:grey_tap()]; | 1690 [[EarlGrey selectElementWithMatcher:StarButton()] performAction:grey_tap()]; |
1682 } else { | 1691 } else { |
1683 [ChromeEarlGreyUI openToolsMenu]; | 1692 [ChromeEarlGreyUI openToolsMenu]; |
1684 [[EarlGrey selectElementWithMatcher:AddBookmarkButton()] | 1693 [[EarlGrey selectElementWithMatcher:AddBookmarkButton()] |
1685 performAction:grey_tap()]; | 1694 performAction:grey_tap()]; |
1686 } | 1695 } |
1687 } | 1696 } |
1688 | 1697 |
1689 @end | 1698 @end |
OLD | NEW |