Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1002)

Unified Diff: chrome/browser/ui/views/payments/payment_request_browsertest_base.cc

Issue 2789093002: [Payments] Desktop: implement shipping address/option change (Closed)
Patch Set: compile fix Created 3 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/browser/ui/views/payments/payment_request_browsertest_base.cc
diff --git a/chrome/browser/ui/views/payments/payment_request_browsertest_base.cc b/chrome/browser/ui/views/payments/payment_request_browsertest_base.cc
index a7f3200987babe22337c91f88636f2db6b86a7e0..82882af4b7b2428a1c09af378516681a2692ee77 100644
--- a/chrome/browser/ui/views/payments/payment_request_browsertest_base.cc
+++ b/chrome/browser/ui/views/payments/payment_request_browsertest_base.cc
@@ -146,6 +146,11 @@ void PaymentRequestBrowserTestBase::OnErrorMessageShown() {
event_observer_->Observe(DialogEvent::ERROR_MESSAGE_SHOWN);
}
+void PaymentRequestBrowserTestBase::OnSpecDoneUpdating() {
+ if (event_observer_)
+ event_observer_->Observe(DialogEvent::SPEC_DONE_UPDATING);
+}
+
void PaymentRequestBrowserTestBase::OnWidgetDestroyed(views::Widget* widget) {
if (event_observer_)
event_observer_->Observe(DialogEvent::DIALOG_CLOSED);
@@ -214,6 +219,12 @@ void PaymentRequestBrowserTestBase::OpenShippingAddressEditorScreen() {
ClickOnDialogViewAndWait(DialogViewID::PAYMENT_METHOD_ADD_SHIPPING_BUTTON);
}
+void PaymentRequestBrowserTestBase::ClickOnBackArrow() {
+ ResetEventObserver(DialogEvent::BACK_NAVIGATION);
+
+ ClickOnDialogViewAndWait(DialogViewID::BACK_BUTTON);
+}
+
content::WebContents* PaymentRequestBrowserTestBase::GetActiveWebContents() {
return browser()->tab_strip_model()->GetActiveWebContents();
}
@@ -313,6 +324,60 @@ void PaymentRequestBrowserTestBase::ClickOnDialogViewAndWait(
WaitForObservedEvent();
}
+void PaymentRequestBrowserTestBase::ClickOnChildInListViewAndWait(
+ int child_index,
+ int total_num_children,
+ DialogViewID list_view_id) {
+ views::View* list_view =
+ dialog_view()->GetViewByID(static_cast<int>(list_view_id));
+ EXPECT_TRUE(list_view);
+ EXPECT_EQ(total_num_children, list_view->child_count());
+ ClickOnDialogViewAndWait(list_view->child_at(child_index));
+}
+
+std::vector<base::string16>
+PaymentRequestBrowserTestBase::GetThreeLineLabelValues(
+ DialogViewID parent_view_id) {
+ std::vector<base::string16> line_labels;
+ views::View* parent_view =
+ dialog_view()->GetViewByID(static_cast<int>(parent_view_id));
+ EXPECT_TRUE(parent_view);
+
+ views::View* view = parent_view->GetViewByID(
+ static_cast<int>(DialogViewID::THREE_LINE_LABEL_LINE_1));
+ if (view)
+ line_labels.push_back(static_cast<views::Label*>(view)->text());
+ view = parent_view->GetViewByID(
+ static_cast<int>(DialogViewID::THREE_LINE_LABEL_LINE_2));
+ if (view)
+ line_labels.push_back(static_cast<views::Label*>(view)->text());
+ view = parent_view->GetViewByID(
+ static_cast<int>(DialogViewID::THREE_LINE_LABEL_LINE_3));
+ if (view)
+ line_labels.push_back(static_cast<views::Label*>(view)->text());
+
+ return line_labels;
+}
+
+std::vector<base::string16>
+PaymentRequestBrowserTestBase::GetShippingOptionLabelValues(
+ DialogViewID parent_view_id) {
+ std::vector<base::string16> labels;
+ views::View* parent_view =
+ dialog_view()->GetViewByID(static_cast<int>(parent_view_id));
+ EXPECT_TRUE(parent_view);
+
+ views::View* view = parent_view->GetViewByID(
+ static_cast<int>(DialogViewID::SHIPPING_OPTION_DESCRIPTION));
+ DCHECK(view);
+ labels.push_back(static_cast<views::Label*>(view)->text());
+ view = parent_view->GetViewByID(
+ static_cast<int>(DialogViewID::SHIPPING_OPTION_AMOUNT));
+ DCHECK(view);
+ labels.push_back(static_cast<views::Label*>(view)->text());
+ return labels;
+}
+
void PaymentRequestBrowserTestBase::SetEditorTextfieldValue(
const base::string16& value,
autofill::ServerFieldType type) {
@@ -392,12 +457,12 @@ const base::string16& PaymentRequestBrowserTestBase::GetErrorLabelForType(
}
PaymentRequestBrowserTestBase::DialogEventObserver::DialogEventObserver(
- PaymentRequestBrowserTestBase::DialogEvent event)
- : event_(event), seen_(false) {}
+ std::list<PaymentRequestBrowserTestBase::DialogEvent> event_sequence)
+ : events_(std::move(event_sequence)) {}
PaymentRequestBrowserTestBase::DialogEventObserver::~DialogEventObserver() {}
void PaymentRequestBrowserTestBase::DialogEventObserver::Wait() {
- if (seen_)
+ if (events_.empty())
return;
DCHECK(!run_loop_.running());
@@ -406,17 +471,25 @@ void PaymentRequestBrowserTestBase::DialogEventObserver::Wait() {
void PaymentRequestBrowserTestBase::DialogEventObserver::Observe(
PaymentRequestBrowserTestBase::DialogEvent event) {
- if (seen_)
+ if (events_.empty())
return;
- DCHECK_EQ(event_, event);
- seen_ = true;
- if (run_loop_.running())
+ DCHECK_EQ(events_.front(), event);
+ events_.pop_front();
+ // Only quit the loop if no other events are expected.
+ if (events_.empty() && run_loop_.running())
run_loop_.Quit();
}
void PaymentRequestBrowserTestBase::ResetEventObserver(DialogEvent event) {
- event_observer_ = base::MakeUnique<DialogEventObserver>(event);
+ event_observer_ =
+ base::MakeUnique<DialogEventObserver>(std::list<DialogEvent>{event});
+}
+
+void PaymentRequestBrowserTestBase::ResetEventObserverForSequence(
+ std::list<DialogEvent> event_sequence) {
+ event_observer_ =
+ base::MakeUnique<DialogEventObserver>(std::move(event_sequence));
}
void PaymentRequestBrowserTestBase::WaitForObservedEvent() {

Powered by Google App Engine
This is Rietveld 408576698