Index: chrome/browser/ui/views/payments/payment_request_browsertest.cc |
diff --git a/chrome/browser/ui/views/payments/payment_request_browsertest.cc b/chrome/browser/ui/views/payments/payment_request_browsertest.cc |
index 20fc7912b99a8a20fb743b5c01845b137e25f09b..8275252f80548f12ce507dce27e785ef9eeb0577 100644 |
--- a/chrome/browser/ui/views/payments/payment_request_browsertest.cc |
+++ b/chrome/browser/ui/views/payments/payment_request_browsertest.cc |
@@ -7,6 +7,7 @@ |
#include "base/macros.h" |
#include "base/strings/utf_string_conversions.h" |
#include "chrome/browser/ui/browser_commands.h" |
+#include "chrome/browser/ui/test/test_browser_dialog.h" |
#include "chrome/browser/ui/views/payments/payment_request_browsertest_base.h" |
#include "chrome/browser/ui/views/payments/payment_request_dialog_view_ids.h" |
#include "chrome/test/base/ui_test_utils.h" |
@@ -343,4 +344,30 @@ IN_PROC_BROWSER_TEST_F(PaymentRequestBasicCardTest, |
EXPECT_EQ("jcb", supported_card_networks[2]); |
} |
+// Test harness integrating with DialogBrowserTest to present the dialog in an |
+// interactive manner for visual testing. |
+class PaymentsRequestVisualTest |
+ : public SupportsTestDialog<PaymentRequestNoShippingTest> { |
+ protected: |
+ PaymentsRequestVisualTest() {} |
+ |
+ // TestBrowserDialog: |
+ void ShowDialog(const std::string& name) override { |
+ InvokePaymentRequestUI(); |
+ } |
+ |
+ bool AlwaysCloseAsynchronously() override { |
+ // Bypassing Widget::CanClose() causes payments::JourneyLogger to see the |
+ // show, but not the close, resulting in a DCHECK in its destructor. |
+ return true; |
+ } |
+ |
+ private: |
+ DISALLOW_COPY_AND_ASSIGN(PaymentsRequestVisualTest); |
+}; |
+ |
+IN_PROC_BROWSER_TEST_F(PaymentsRequestVisualTest, InvokeDialog_NoShipping) { |
+ RunDialog(); |
+} |
+ |
} // namespace payments |