| Index: chrome/browser/ui/views/payments/shipping_address_editor_view_controller_browsertest.cc
|
| diff --git a/chrome/browser/ui/views/payments/shipping_address_editor_view_controller_browsertest.cc b/chrome/browser/ui/views/payments/shipping_address_editor_view_controller_browsertest.cc
|
| index de291bece590e64a56d80b9212a9ad8cf4634474..0cfd88ba7b6e571728f8b3a189cb812821bd2eeb 100644
|
| --- a/chrome/browser/ui/views/payments/shipping_address_editor_view_controller_browsertest.cc
|
| +++ b/chrome/browser/ui/views/payments/shipping_address_editor_view_controller_browsertest.cc
|
| @@ -492,12 +492,14 @@ IN_PROC_BROWSER_TEST_F(PaymentRequestShippingAddressEditorTest,
|
| AddAutofillProfile(profile);
|
|
|
| InvokePaymentRequestUI();
|
| + SetRegionDataLoader(&test_region_data_loader_);
|
|
|
| // One shipping address is available, but it's not selected.
|
| PaymentRequest* request = GetPaymentRequests(GetActiveWebContents()).front();
|
| EXPECT_EQ(1U, request->state()->shipping_profiles().size());
|
| EXPECT_EQ(nullptr, request->state()->selected_shipping_profile());
|
|
|
| + test_region_data_loader_.set_synchronous_callback(true);
|
| OpenShippingAddressSectionScreen();
|
|
|
| ResetEventObserver(DialogEvent::SHIPPING_ADDRESS_EDITOR_OPENED);
|
| @@ -547,4 +549,50 @@ IN_PROC_BROWSER_TEST_F(PaymentRequestShippingAddressEditorTest,
|
| request->state()->selected_shipping_profile());
|
| }
|
|
|
| +IN_PROC_BROWSER_TEST_F(PaymentRequestShippingAddressEditorTest,
|
| + FocusFirstInvalidField_Name) {
|
| + InvokePaymentRequestUI();
|
| + SetRegionDataLoader(&test_region_data_loader_);
|
| +
|
| + test_region_data_loader_.set_synchronous_callback(true);
|
| + OpenShippingAddressEditorScreen();
|
| +
|
| + // We know that the name field is always the first one in a shipping address.
|
| + views::Textfield* textfield = static_cast<views::Textfield*>(
|
| + dialog_view()->GetViewByID(static_cast<int>(autofill::NAME_FULL)));
|
| + DCHECK(textfield);
|
| + EXPECT_TRUE(textfield->text().empty());
|
| + EXPECT_TRUE(textfield->invalid());
|
| + EXPECT_TRUE(textfield->HasFocus());
|
| +}
|
| +
|
| +IN_PROC_BROWSER_TEST_F(PaymentRequestShippingAddressEditorTest,
|
| + FocusFirstInvalidField_NotName) {
|
| + // Add address with the name set, so that another view takes focus.
|
| + autofill::AutofillProfile profile;
|
| + profile.SetInfo(autofill::AutofillType(autofill::NAME_FULL),
|
| + base::ASCIIToUTF16(kNameFull), "fr_CA");
|
| + AddAutofillProfile(profile);
|
| +
|
| + InvokePaymentRequestUI();
|
| + SetRegionDataLoader(&test_region_data_loader_);
|
| + test_region_data_loader_.set_synchronous_callback(true);
|
| + OpenShippingAddressSectionScreen();
|
| + ResetEventObserver(DialogEvent::SHIPPING_ADDRESS_EDITOR_OPENED);
|
| + ClickOnChildInListViewAndWait(/*child_index=*/0, /*num_children=*/1,
|
| + DialogViewID::SHIPPING_ADDRESS_SHEET_LIST_VIEW);
|
| +
|
| + views::Textfield* textfield = static_cast<views::Textfield*>(
|
| + dialog_view()->GetViewByID(static_cast<int>(autofill::NAME_FULL)));
|
| + DCHECK(textfield);
|
| + EXPECT_FALSE(textfield->text().empty());
|
| + EXPECT_FALSE(textfield->invalid());
|
| + EXPECT_FALSE(textfield->HasFocus());
|
| +
|
| + // Since we can't easily tell which field is after name, let's just make sure
|
| + // that a view has focus. Unfortunately, we can't cast it to a specific type
|
| + // that we could query for validity (it could be either text or combobox).
|
| + EXPECT_NE(textfield->GetFocusManager()->GetFocusedView(), nullptr);
|
| +}
|
| +
|
| } // namespace payments
|
|
|