Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright 2017 The Chromium Authors. All rights reserved. | 1 // Copyright 2017 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 "base/callback.h" | 5 #include "base/callback.h" |
| 6 #include "base/mac/foundation_util.h" | 6 #include "base/mac/foundation_util.h" |
| 7 #include "base/memory/ref_counted.h" | 7 #include "base/memory/ref_counted.h" |
| 8 #include "base/strings/utf_string_conversions.h" | 8 #include "base/strings/utf_string_conversions.h" |
| 9 #include "base/time/time.h" | 9 #include "base/time/time.h" |
| 10 #include "components/autofill/core/common/password_form.h" | 10 #include "components/autofill/core/common/password_form.h" |
| (...skipping 321 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 332 chrome_test_util::VerifyAccessibilityForCurrentScreen(); | 332 chrome_test_util::VerifyAccessibilityForCurrentScreen(); |
| 333 [self tapBackArrow]; | 333 [self tapBackArrow]; |
| 334 | 334 |
| 335 [self tapBackArrow]; | 335 [self tapBackArrow]; |
| 336 [self tapDone]; | 336 [self tapDone]; |
| 337 [self clearPasswordStore]; | 337 [self clearPasswordStore]; |
| 338 } | 338 } |
| 339 | 339 |
| 340 // Checks that attempts to copy a password provide appropriate feedback, | 340 // Checks that attempts to copy a password provide appropriate feedback, |
| 341 // both when reauthentication succeeds and when it fails. | 341 // both when reauthentication succeeds and when it fails. |
| 342 // TODO(crbug.com/718043): Re-enable test. | 342 - (void)testCopyPasswordToast { |
| 343 - (void)DISABLED_testCopyPasswordToast { | |
| 344 [self scopedEnablePasswordManagementAndViewingUI]; | 343 [self scopedEnablePasswordManagementAndViewingUI]; |
| 345 | 344 |
| 346 // Saving a form is needed for using the "password details" view. | 345 // Saving a form is needed for using the "password details" view. |
| 347 [self saveExamplePasswordForm]; | 346 [self saveExamplePasswordForm]; |
| 348 | 347 |
| 349 [self openPasswordSettings]; | 348 [self openPasswordSettings]; |
| 350 | 349 |
| 351 [[EarlGrey selectElementWithMatcher:Entry(@"https://example.com, user")] | 350 [[EarlGrey selectElementWithMatcher:Entry(@"https://example.com, user")] |
| 352 performAction:grey_tap()]; | 351 performAction:grey_tap()]; |
| 353 | 352 |
| (...skipping 12 matching lines...) Expand all Loading... | |
| 366 [password_details_collection_view_controller | 365 [password_details_collection_view_controller |
| 367 setReauthenticationModule:mock_reauthentication_module]; | 366 setReauthenticationModule:mock_reauthentication_module]; |
| 368 | 367 |
| 369 // Check the snackbar in case of successful reauthentication. | 368 // Check the snackbar in case of successful reauthentication. |
| 370 mock_reauthentication_module.shouldSucceed = YES; | 369 mock_reauthentication_module.shouldSucceed = YES; |
| 371 [[EarlGrey selectElementWithMatcher:CopyPasswordButton()] | 370 [[EarlGrey selectElementWithMatcher:CopyPasswordButton()] |
| 372 performAction:grey_tap()]; | 371 performAction:grey_tap()]; |
| 373 [[GREYUIThreadExecutor sharedInstance] drainUntilIdle]; | 372 [[GREYUIThreadExecutor sharedInstance] drainUntilIdle]; |
| 374 NSString* snackbarLabel = | 373 NSString* snackbarLabel = |
| 375 l10n_util::GetNSString(IDS_IOS_SETTINGS_PASSWORD_WAS_COPIED_MESSAGE); | 374 l10n_util::GetNSString(IDS_IOS_SETTINGS_PASSWORD_WAS_COPIED_MESSAGE); |
| 375 // Tap the snackbar instead of just asserting that it is there, and wait | |
| 376 // until the tap causes it to close. Otherwise it will block the copy button | |
| 377 // for the rest of the test on small devices, and scrolling to reach the | |
| 378 // button won't work when the snackbar is up. | |
|
lpromero
2017/05/04 09:21:08
Is this an action item we could solve? Scrolling o
vabr (Chromium)
2017/05/04 11:00:04
When I tried manually with Chrome, I was able to s
lpromero
2017/05/04 11:24:54
To be clear, I am fine as is, I was just wondering
| |
| 376 [[EarlGrey selectElementWithMatcher:grey_accessibilityLabel(snackbarLabel)] | 379 [[EarlGrey selectElementWithMatcher:grey_accessibilityLabel(snackbarLabel)] |
| 377 assertWithMatcher:grey_notNil()]; | 380 performAction:grey_tap()]; |
| 381 [[GREYUIThreadExecutor sharedInstance] drainUntilIdle]; | |
| 378 | 382 |
| 379 // Check the snackbar in case of failed reauthentication. | 383 // Check the snackbar in case of failed reauthentication. |
| 380 mock_reauthentication_module.shouldSucceed = NO; | 384 mock_reauthentication_module.shouldSucceed = NO; |
| 381 [[EarlGrey selectElementWithMatcher:CopyPasswordButton()] | 385 [[EarlGrey selectElementWithMatcher:CopyPasswordButton()] |
| 382 performAction:grey_tap()]; | 386 performAction:grey_tap()]; |
| 383 [[GREYUIThreadExecutor sharedInstance] drainUntilIdle]; | 387 [[GREYUIThreadExecutor sharedInstance] drainUntilIdle]; |
| 384 snackbarLabel = | 388 snackbarLabel = |
| 385 l10n_util::GetNSString(IDS_IOS_SETTINGS_PASSWORD_WAS_NOT_COPIED_MESSAGE); | 389 l10n_util::GetNSString(IDS_IOS_SETTINGS_PASSWORD_WAS_NOT_COPIED_MESSAGE); |
| 390 // The tap checks the existence of the snackbar and also closes it. | |
| 386 [[EarlGrey selectElementWithMatcher:grey_accessibilityLabel(snackbarLabel)] | 391 [[EarlGrey selectElementWithMatcher:grey_accessibilityLabel(snackbarLabel)] |
| 387 assertWithMatcher:grey_notNil()]; | 392 performAction:grey_tap()]; |
| 393 // Wait until the fade-out animation completes. | |
| 394 [[GREYUIThreadExecutor sharedInstance] drainUntilIdle]; | |
| 388 | 395 |
| 389 [self tapBackArrow]; | 396 [self tapBackArrow]; |
| 390 [self tapBackArrow]; | 397 [self tapBackArrow]; |
| 391 [self tapDone]; | 398 [self tapDone]; |
| 392 [self clearPasswordStore]; | 399 [self clearPasswordStore]; |
| 393 } | 400 } |
| 394 | 401 |
| 395 // Checks that attempts to copy a username provide appropriate feedback. | 402 // Checks that attempts to copy a username provide appropriate feedback. |
| 396 - (void)testCopyUsernameToast { | 403 - (void)testCopyUsernameToast { |
| 397 [self scopedEnablePasswordManagementAndViewingUI]; | 404 [self scopedEnablePasswordManagementAndViewingUI]; |
| 398 | 405 |
| 399 // Saving a form is needed for using the "password details" view. | 406 // Saving a form is needed for using the "password details" view. |
| 400 [self saveExamplePasswordForm]; | 407 [self saveExamplePasswordForm]; |
| 401 | 408 |
| 402 [self openPasswordSettings]; | 409 [self openPasswordSettings]; |
| 403 | 410 |
| 404 [[EarlGrey selectElementWithMatcher:Entry(@"https://example.com, user")] | 411 [[EarlGrey selectElementWithMatcher:Entry(@"https://example.com, user")] |
| 405 performAction:grey_tap()]; | 412 performAction:grey_tap()]; |
| 406 | 413 |
| 407 // Check the snackbar. | 414 // Check the snackbar. |
| 408 [[EarlGrey selectElementWithMatcher:CopyUsernameButton()] | 415 [[EarlGrey selectElementWithMatcher:CopyUsernameButton()] |
| 409 performAction:grey_tap()]; | 416 performAction:grey_tap()]; |
| 410 [[GREYUIThreadExecutor sharedInstance] drainUntilIdle]; | 417 [[GREYUIThreadExecutor sharedInstance] drainUntilIdle]; |
| 411 NSString* snackbarLabel = | 418 NSString* snackbarLabel = |
| 412 l10n_util::GetNSString(IDS_IOS_SETTINGS_USERNAME_WAS_COPIED_MESSAGE); | 419 l10n_util::GetNSString(IDS_IOS_SETTINGS_USERNAME_WAS_COPIED_MESSAGE); |
| 420 // The tap checks the existence of the snackbar and also closes it. | |
| 413 [[EarlGrey selectElementWithMatcher:grey_accessibilityLabel(snackbarLabel)] | 421 [[EarlGrey selectElementWithMatcher:grey_accessibilityLabel(snackbarLabel)] |
| 414 assertWithMatcher:grey_notNil()]; | 422 performAction:grey_tap()]; |
| 423 // Wait until the fade-out animation completes. | |
| 424 [[GREYUIThreadExecutor sharedInstance] drainUntilIdle]; | |
| 415 | 425 |
| 416 [self tapBackArrow]; | 426 [self tapBackArrow]; |
| 417 [self tapBackArrow]; | 427 [self tapBackArrow]; |
| 418 [self tapDone]; | 428 [self tapDone]; |
| 419 [self clearPasswordStore]; | 429 [self clearPasswordStore]; |
| 420 } | 430 } |
| 421 | 431 |
| 422 // Checks that attempts to copy a site URL provide appropriate feedback. | 432 // Checks that attempts to copy a site URL provide appropriate feedback. |
| 423 - (void)testCopySiteToast { | 433 - (void)testCopySiteToast { |
| 424 [self scopedEnablePasswordManagementAndViewingUI]; | 434 [self scopedEnablePasswordManagementAndViewingUI]; |
| 425 | 435 |
| 426 // Saving a form is needed for using the "password details" view. | 436 // Saving a form is needed for using the "password details" view. |
| 427 [self saveExamplePasswordForm]; | 437 [self saveExamplePasswordForm]; |
| 428 | 438 |
| 429 [self openPasswordSettings]; | 439 [self openPasswordSettings]; |
| 430 | 440 |
| 431 [[EarlGrey selectElementWithMatcher:Entry(@"https://example.com, user")] | 441 [[EarlGrey selectElementWithMatcher:Entry(@"https://example.com, user")] |
| 432 performAction:grey_tap()]; | 442 performAction:grey_tap()]; |
| 433 | 443 |
| 434 // Check the snackbar. | 444 // Check the snackbar. |
| 435 [[EarlGrey selectElementWithMatcher:CopySiteButton()] | 445 [[EarlGrey selectElementWithMatcher:CopySiteButton()] |
| 436 performAction:grey_tap()]; | 446 performAction:grey_tap()]; |
| 437 [[GREYUIThreadExecutor sharedInstance] drainUntilIdle]; | 447 [[GREYUIThreadExecutor sharedInstance] drainUntilIdle]; |
| 438 NSString* snackbarLabel = | 448 NSString* snackbarLabel = |
| 439 l10n_util::GetNSString(IDS_IOS_SETTINGS_SITE_WAS_COPIED_MESSAGE); | 449 l10n_util::GetNSString(IDS_IOS_SETTINGS_SITE_WAS_COPIED_MESSAGE); |
| 450 // The tap checks the existence of the snackbar and also closes it. | |
| 440 [[EarlGrey selectElementWithMatcher:grey_accessibilityLabel(snackbarLabel)] | 451 [[EarlGrey selectElementWithMatcher:grey_accessibilityLabel(snackbarLabel)] |
| 441 assertWithMatcher:grey_notNil()]; | 452 performAction:grey_tap()]; |
| 453 // Wait until the fade-out animation completes. | |
| 454 [[GREYUIThreadExecutor sharedInstance] drainUntilIdle]; | |
| 442 | 455 |
| 443 [self tapBackArrow]; | 456 [self tapBackArrow]; |
| 444 [self tapBackArrow]; | 457 [self tapBackArrow]; |
| 445 [self tapDone]; | 458 [self tapDone]; |
| 446 [self clearPasswordStore]; | 459 [self clearPasswordStore]; |
| 447 } | 460 } |
| 448 | 461 |
| 449 @end | 462 @end |
| OLD | NEW |