Chromium Code Reviews| Index: chrome/browser/ui/views/payments/payment_request_interactive_uitest_base.cc |
| diff --git a/chrome/browser/ui/views/payments/payment_request_interactive_uitest_base.cc b/chrome/browser/ui/views/payments/payment_request_interactive_uitest_base.cc |
| index c88f0a33c409e907977fcc50ef57031c70088eb2..53af0b1e3b2d94da15053da3f97880a9e7378b9b 100644 |
| --- a/chrome/browser/ui/views/payments/payment_request_interactive_uitest_base.cc |
| +++ b/chrome/browser/ui/views/payments/payment_request_interactive_uitest_base.cc |
| @@ -9,9 +9,12 @@ |
| #include "base/bind.h" |
| #include "base/bind_helpers.h" |
| #include "base/memory/ptr_util.h" |
| +#include "base/message_loop/message_loop.h" |
| +#include "base/strings/string16.h" |
| #include "chrome/browser/ui/browser.h" |
| #include "chrome/browser/ui/tabs/tab_strip_model.h" |
| -#include "chrome/browser/ui/views/payments/test_chrome_payment_request_delegate.h" |
| +#include "chrome/browser/ui/views/payments/payment_request_dialog_view_ids.h" |
| +#include "chrome/test/base/interactive_test_utils.h" |
| #include "chrome/test/base/ui_test_utils.h" |
| #include "components/payments/payment_request.h" |
| #include "components/payments/payment_request_web_contents_manager.h" |
| @@ -20,8 +23,11 @@ |
| #include "content/public/browser/web_contents.h" |
| #include "content/public/common/content_switches.h" |
| #include "content/public/test/browser_test_utils.h" |
| +#include "content/public/test/test_utils.h" |
| #include "services/service_manager/public/cpp/interface_registry.h" |
| #include "testing/gtest/include/gtest/gtest.h" |
| +#include "ui/base/test/ui_controls.h" |
| +#include "ui/views/controls/styled_label.h" |
| namespace payments { |
| @@ -63,6 +69,11 @@ void PaymentRequestInteractiveTestBase::OnDialogOpened() { |
| event_observer_->Observe(DialogEvent::DIALOG_OPENED); |
| } |
| +void PaymentRequestInteractiveTestBase::OnOrderSummaryOpened() { |
| + if (event_observer_) |
| + event_observer_->Observe(DialogEvent::ORDER_SUMMARY_OPENED); |
| +} |
| + |
| void PaymentRequestInteractiveTestBase::OnWidgetDestroyed( |
| views::Widget* widget) { |
| if (event_observer_) |
| @@ -85,6 +96,15 @@ void PaymentRequestInteractiveTestBase::InvokePaymentRequestUI() { |
| EXPECT_TRUE(web_contents_modal_dialog_manager->IsDialogActive()); |
| } |
| +void PaymentRequestInteractiveTestBase::OpenOrderSummaryScreen() { |
| + event_observer_.reset( |
| + new DialogEventObserver(DialogEvent::ORDER_SUMMARY_OPENED)); |
|
sky
2017/01/26 23:09:45
MakeUnique.
Mathieu
2017/01/27 00:36:50
Acknowledged.
|
| + |
| + ClickOnDialogView(DialogViewID::PAYMENT_SHEET_SUMMARY_SECTION); |
| + |
| + event_observer_->Wait(); |
| +} |
| + |
| content::WebContents* |
| PaymentRequestInteractiveTestBase::GetActiveWebContents() { |
| return browser()->tab_strip_model()->GetActiveWebContents(); |
| @@ -108,12 +128,31 @@ void PaymentRequestInteractiveTestBase::CreatePaymentRequestForTest( |
| content::WebContents* web_contents, |
| mojo::InterfaceRequest<payments::mojom::PaymentRequest> request) { |
| DCHECK(web_contents); |
| + std::unique_ptr<TestChromePaymentRequestDelegate> delegate( |
| + new TestChromePaymentRequestDelegate(web_contents, this /* observer */, |
|
sky
2017/01/26 23:09:45
MakeUnique.
Mathieu
2017/01/27 00:36:50
Acknowledged.
|
| + this /* widget_observer */)); |
| + delegate_ = delegate.get(); |
| PaymentRequestWebContentsManager::GetOrCreateForWebContents(web_contents) |
| - ->CreatePaymentRequest( |
| - web_contents, |
| - base::MakeUnique<TestChromePaymentRequestDelegate>( |
| - web_contents, this /* observer */, this /* widget_observer */), |
| - std::move(request)); |
| + ->CreatePaymentRequest(web_contents, std::move(delegate), |
| + std::move(request)); |
| +} |
| + |
| +void PaymentRequestInteractiveTestBase::ClickOnDialogView( |
| + DialogViewID view_id) { |
| + views::View* view = |
| + delegate_->dialog_view()->GetViewByID(static_cast<ViewID>(view_id)); |
|
sky
2017/01/26 23:09:45
ViewID->int
Mathieu
2017/01/27 00:36:50
Done.
|
| + DCHECK(view); |
| + ui_test_utils::MoveMouseToCenterAndPress( |
| + view, ui_controls::LEFT, ui_controls::DOWN | ui_controls::UP, |
| + base::MessageLoop::QuitWhenIdleClosure()); |
| + content::RunMessageLoop(); |
|
sky
2017/01/26 23:09:45
Is there a reason you're not using a RunLoop and s
Mathieu
2017/01/27 00:36:50
That works too!
|
| +} |
| + |
| +const base::string16& PaymentRequestInteractiveTestBase::GetStyledLabelText( |
| + DialogViewID view_id) { |
| + views::View* view = dialog_view()->GetViewByID(static_cast<ViewID>(view_id)); |
|
sky
2017/01/26 23:09:45
ViewID->int
Mathieu
2017/01/27 00:36:50
Done.
|
| + DCHECK(view); |
| + return static_cast<views::StyledLabel*>(view)->text(); |
| } |
| PaymentRequestInteractiveTestBase::DialogEventObserver::DialogEventObserver( |