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

Unified Diff: third_party/WebKit/Source/modules/payments/OnPaymentResponseTest.cpp

Issue 2073603002: Add shippingOption to PaymentResponse (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebase #2 Created 4 years, 6 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: third_party/WebKit/Source/modules/payments/OnPaymentResponseTest.cpp
diff --git a/third_party/WebKit/Source/modules/payments/OnPaymentResponseTest.cpp b/third_party/WebKit/Source/modules/payments/OnPaymentResponseTest.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..6f004f122f6dd030c15db02b953809923f6cb9c7
--- /dev/null
+++ b/third_party/WebKit/Source/modules/payments/OnPaymentResponseTest.cpp
@@ -0,0 +1,458 @@
+// Copyright 2016 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Tests for PaymentRequest::OnPaymentResponse().
+
+#include "bindings/core/v8/ScriptFunction.h"
+#include "bindings/core/v8/V8BindingForTesting.h"
+#include "bindings/modules/v8/V8PaymentResponse.h"
+#include "modules/payments/PaymentAddress.h"
+#include "modules/payments/PaymentRequest.h"
+#include "modules/payments/PaymentTestHelper.h"
+#include "testing/gtest/include/gtest/gtest.h"
+#include <utility>
+
+namespace blink {
+namespace {
+
+// If the merchant requests shipping information, but the browser does not
+// provide the shipping option, reject the show() promise.
+TEST(OnPaymentResponseTest, RejectMissingShippingOption)
+{
+ V8TestingScope scope;
+ PaymentRequestMockFunctionScope funcs(scope.getScriptState());
+ makePaymentRequestOriginSecure(scope.document());
+ PaymentOptions options;
+ options.setRequestShipping(true);
+ PaymentRequest* request = PaymentRequest::create(scope.getScriptState(), buildPaymentMethodDataForTest(), buildPaymentDetailsForTest(), options, scope.getExceptionState());
+ ASSERT_FALSE(scope.getExceptionState().hadException());
+ mojom::blink::PaymentResponsePtr response = buildPaymentResponseForTest();
+ response->shipping_address = mojom::blink::PaymentAddress::New();
+ response->shipping_address->country = "US";
+ response->shipping_address->language_code = "en";
+ response->shipping_address->script_code = "Latn";
+
+ request->show(scope.getScriptState()).then(funcs.expectNoCall(), funcs.expectCall());
+
+ static_cast<mojom::blink::PaymentRequestClient*>(request)->OnPaymentResponse(std::move(response));
+}
+
+// If the merchant requests shipping information, but the browser does not
+// provide a shipping address, reject the show() promise.
+TEST(OnPaymentResponseTest, RejectMissingAddress)
+{
+ V8TestingScope scope;
+ PaymentRequestMockFunctionScope funcs(scope.getScriptState());
+ makePaymentRequestOriginSecure(scope.document());
+ PaymentOptions options;
+ options.setRequestShipping(true);
+ PaymentRequest* request = PaymentRequest::create(scope.getScriptState(), buildPaymentMethodDataForTest(), buildPaymentDetailsForTest(), options, scope.getExceptionState());
+ ASSERT_FALSE(scope.getExceptionState().hadException());
+ mojom::blink::PaymentResponsePtr response = buildPaymentResponseForTest();
+ response->shipping_option = "standardShipping";
+
+ request->show(scope.getScriptState()).then(funcs.expectNoCall(), funcs.expectCall());
+
+ static_cast<mojom::blink::PaymentRequestClient*>(request)->OnPaymentResponse(std::move(response));
+}
+
+// If the merchant requests an email address, but the browser does not provide
+// it, reject the show() promise.
+TEST(PaymentRequestTest, RejectMissingEmail)
+{
+ V8TestingScope scope;
+ PaymentRequestMockFunctionScope funcs(scope.getScriptState());
+ makePaymentRequestOriginSecure(scope.document());
+ PaymentOptions options;
+ options.setRequestPayerEmail(true);
+ PaymentRequest* request = PaymentRequest::create(scope.getScriptState(), buildPaymentMethodDataForTest(), buildPaymentDetailsForTest(), options, scope.getExceptionState());
+ EXPECT_FALSE(scope.getExceptionState().hadException());
+ mojom::blink::PaymentResponsePtr response = mojom::blink::PaymentResponse::New();
+ response->total_amount = mojom::blink::PaymentCurrencyAmount::New();
+
+ request->show(scope.getScriptState()).then(funcs.expectNoCall(), funcs.expectCall());
+
+ static_cast<mojom::blink::PaymentRequestClient*>(request)->OnPaymentResponse(std::move(response));
+}
+
+// If the merchant requests a phone number, but the browser does not provide it,
+// reject the show() promise.
+TEST(PaymentRequestTest, RejectMissingPhone)
+{
+ V8TestingScope scope;
+ PaymentRequestMockFunctionScope funcs(scope.getScriptState());
+ makePaymentRequestOriginSecure(scope.document());
+ PaymentOptions options;
+ options.setRequestPayerPhone(true);
+ PaymentRequest* request = PaymentRequest::create(scope.getScriptState(), buildPaymentMethodDataForTest(), buildPaymentDetailsForTest(), options, scope.getExceptionState());
+ EXPECT_FALSE(scope.getExceptionState().hadException());
+ mojom::blink::PaymentResponsePtr response = mojom::blink::PaymentResponse::New();
+ response->total_amount = mojom::blink::PaymentCurrencyAmount::New();
+
+ request->show(scope.getScriptState()).then(funcs.expectNoCall(), funcs.expectCall());
+
+ static_cast<mojom::blink::PaymentRequestClient*>(request)->OnPaymentResponse(std::move(response));
+}
+
+// If the merchant requests shipping information, but the browser provides an
+// empty string for shipping option, reject the show() promise.
+TEST(OnPaymentResponseTest, RejectEmptyShippingOption)
+{
+ V8TestingScope scope;
+ PaymentRequestMockFunctionScope funcs(scope.getScriptState());
+ makePaymentRequestOriginSecure(scope.document());
+ PaymentOptions options;
+ options.setRequestShipping(true);
+ PaymentRequest* request = PaymentRequest::create(scope.getScriptState(), buildPaymentMethodDataForTest(), buildPaymentDetailsForTest(), options, scope.getExceptionState());
+ ASSERT_FALSE(scope.getExceptionState().hadException());
+ mojom::blink::PaymentResponsePtr response = buildPaymentResponseForTest();
+ response->shipping_option = "";
+ response->shipping_address = mojom::blink::PaymentAddress::New();
+ response->shipping_address->country = "US";
+ response->shipping_address->language_code = "en";
+ response->shipping_address->script_code = "Latn";
+
+ request->show(scope.getScriptState()).then(funcs.expectNoCall(), funcs.expectCall());
+
+ static_cast<mojom::blink::PaymentRequestClient*>(request)->OnPaymentResponse(std::move(response));
+}
+
+// If the merchant requests shipping information, but the browser provides an
+// empty shipping address, reject the show() promise.
+TEST(OnPaymentResponseTest, RejectEmptyAddress)
+{
+ V8TestingScope scope;
+ PaymentRequestMockFunctionScope funcs(scope.getScriptState());
+ makePaymentRequestOriginSecure(scope.document());
+ PaymentOptions options;
+ options.setRequestShipping(true);
+ PaymentRequest* request = PaymentRequest::create(scope.getScriptState(), buildPaymentMethodDataForTest(), buildPaymentDetailsForTest(), options, scope.getExceptionState());
+ ASSERT_FALSE(scope.getExceptionState().hadException());
+ mojom::blink::PaymentResponsePtr response = buildPaymentResponseForTest();
+ response->shipping_option = "standardShipping";
+ response->shipping_address = mojom::blink::PaymentAddress::New();
+
+ request->show(scope.getScriptState()).then(funcs.expectNoCall(), funcs.expectCall());
+
+ static_cast<mojom::blink::PaymentRequestClient*>(request)->OnPaymentResponse(std::move(response));
+}
+
+// If the merchant requests an email, but the browser provides an empty string
+// for email, reject the show() promise.
+TEST(PaymentRequestTest, RejectEmptyEmail)
+{
+ V8TestingScope scope;
+ PaymentRequestMockFunctionScope funcs(scope.getScriptState());
+ makePaymentRequestOriginSecure(scope.document());
+ PaymentOptions options;
+ options.setRequestPayerEmail(true);
+ PaymentRequest* request = PaymentRequest::create(scope.getScriptState(), buildPaymentMethodDataForTest(), buildPaymentDetailsForTest(), options, scope.getExceptionState());
+ EXPECT_FALSE(scope.getExceptionState().hadException());
+ mojom::blink::PaymentResponsePtr response = mojom::blink::PaymentResponse::New();
+ response->total_amount = mojom::blink::PaymentCurrencyAmount::New();
+ response->payer_email = "";
+
+ request->show(scope.getScriptState()).then(funcs.expectNoCall(), funcs.expectCall());
+
+ static_cast<mojom::blink::PaymentRequestClient*>(request)->OnPaymentResponse(std::move(response));
+}
+
+// If the merchant requests a phone number, but the browser provides an empty
+// string for the phone number, reject the show() promise.
+TEST(PaymentRequestTest, RejectEmptyPhone)
+{
+ V8TestingScope scope;
+ PaymentRequestMockFunctionScope funcs(scope.getScriptState());
+ makePaymentRequestOriginSecure(scope.document());
+ PaymentOptions options;
+ options.setRequestPayerPhone(true);
+ PaymentRequest* request = PaymentRequest::create(scope.getScriptState(), buildPaymentMethodDataForTest(), buildPaymentDetailsForTest(), options, scope.getExceptionState());
+ EXPECT_FALSE(scope.getExceptionState().hadException());
+ mojom::blink::PaymentResponsePtr response = mojom::blink::PaymentResponse::New();
+ response->total_amount = mojom::blink::PaymentCurrencyAmount::New();
+ response->payer_phone = "";
+
+ request->show(scope.getScriptState()).then(funcs.expectNoCall(), funcs.expectCall());
+
+ static_cast<mojom::blink::PaymentRequestClient*>(request)->OnPaymentResponse(std::move(response));
+}
+
+// If the merchant does not request shipping information, but the browser
+// provides a shipping address, reject the show() promise.
+TEST(OnPaymentResponseTest, RejectNotRequestedAddress)
+{
+ V8TestingScope scope;
+ PaymentRequestMockFunctionScope funcs(scope.getScriptState());
+ makePaymentRequestOriginSecure(scope.document());
+ PaymentOptions options;
+ options.setRequestShipping(false);
+ PaymentRequest* request = PaymentRequest::create(scope.getScriptState(), buildPaymentMethodDataForTest(), buildPaymentDetailsForTest(), options, scope.getExceptionState());
+ ASSERT_FALSE(scope.getExceptionState().hadException());
+ mojom::blink::PaymentResponsePtr response = mojom::blink::PaymentResponse::New();
+ response->shipping_address = mojom::blink::PaymentAddress::New();
+ response->shipping_address->country = "US";
+ response->shipping_address->language_code = "en";
+ response->shipping_address->script_code = "Latn";
+
+ request->show(scope.getScriptState()).then(funcs.expectNoCall(), funcs.expectCall());
+
+ static_cast<mojom::blink::PaymentRequestClient*>(request)->OnPaymentResponse(std::move(response));
+}
+
+// If the merchant does not request shipping information, but the browser
+// provides a shipping option, reject the show() promise.
+TEST(OnPaymentResponseTest, RejectNotRequestedShippingOption)
+{
+ V8TestingScope scope;
+ PaymentRequestMockFunctionScope funcs(scope.getScriptState());
+ makePaymentRequestOriginSecure(scope.document());
+ PaymentOptions options;
+ options.setRequestShipping(false);
+ PaymentRequest* request = PaymentRequest::create(scope.getScriptState(), buildPaymentMethodDataForTest(), buildPaymentDetailsForTest(), options, scope.getExceptionState());
+ ASSERT_FALSE(scope.getExceptionState().hadException());
+ mojom::blink::PaymentResponsePtr response = mojom::blink::PaymentResponse::New();
+ response->shipping_option = "";
+
+ request->show(scope.getScriptState()).then(funcs.expectNoCall(), funcs.expectCall());
+
+ static_cast<mojom::blink::PaymentRequestClient*>(request)->OnPaymentResponse(std::move(response));
+}
+
+// If the merchant does not request an email, but the browser provides it,
+// reject the show() promise.
+TEST(PaymentRequestTest, RejectNotRequestedEmail)
+{
+ V8TestingScope scope;
+ PaymentRequestMockFunctionScope funcs(scope.getScriptState());
+ makePaymentRequestOriginSecure(scope.document());
+ PaymentOptions options;
+ options.setRequestPayerEmail(false);
+ PaymentRequest* request = PaymentRequest::create(scope.getScriptState(), buildPaymentMethodDataForTest(), buildPaymentDetailsForTest(), options, scope.getExceptionState());
+ EXPECT_FALSE(scope.getExceptionState().hadException());
+ mojom::blink::PaymentResponsePtr response = mojom::blink::PaymentResponse::New();
+ response->total_amount = mojom::blink::PaymentCurrencyAmount::New();
+ response->payer_email = "";
+
+ request->show(scope.getScriptState()).then(funcs.expectNoCall(), funcs.expectCall());
+
+ static_cast<mojom::blink::PaymentRequestClient*>(request)->OnPaymentResponse(std::move(response));
+}
+
+// If the merchant does not request a phone number, but the browser provides it,
+// reject the show() promise.
+TEST(PaymentRequestTest, RejectNotRequestedPhone)
+{
+ V8TestingScope scope;
+ PaymentRequestMockFunctionScope funcs(scope.getScriptState());
+ makePaymentRequestOriginSecure(scope.document());
+ PaymentOptions options;
+ options.setRequestPayerPhone(false);
+ PaymentRequest* request = PaymentRequest::create(scope.getScriptState(), buildPaymentMethodDataForTest(), buildPaymentDetailsForTest(), options, scope.getExceptionState());
+ EXPECT_FALSE(scope.getExceptionState().hadException());
+ mojom::blink::PaymentResponsePtr response = mojom::blink::PaymentResponse::New();
+ response->total_amount = mojom::blink::PaymentCurrencyAmount::New();
+ response->payer_phone = "";
+
+ request->show(scope.getScriptState()).then(funcs.expectNoCall(), funcs.expectCall());
+
+ static_cast<mojom::blink::PaymentRequestClient*>(request)->OnPaymentResponse(std::move(response));
+}
+
+// If the merchant requests shipping information, but the browser provides an
+// invalid shipping address, reject the show() promise.
+TEST(OnPaymentResponseTest, RejectInvalidAddress)
+{
+ V8TestingScope scope;
+ PaymentRequestMockFunctionScope funcs(scope.getScriptState());
+ makePaymentRequestOriginSecure(scope.document());
+ PaymentOptions options;
+ options.setRequestShipping(true);
+ PaymentRequest* request = PaymentRequest::create(scope.getScriptState(), buildPaymentMethodDataForTest(), buildPaymentDetailsForTest(), options, scope.getExceptionState());
+ ASSERT_FALSE(scope.getExceptionState().hadException());
+ mojom::blink::PaymentResponsePtr response = buildPaymentResponseForTest();
+ response->shipping_option = "standardShipping";
+ response->shipping_address = mojom::blink::PaymentAddress::New();
+ response->shipping_address->country = "Atlantis";
+
+ request->show(scope.getScriptState()).then(funcs.expectNoCall(), funcs.expectCall());
+
+ static_cast<mojom::blink::PaymentRequestClient*>(request)->OnPaymentResponse(std::move(response));
+}
+
+class PaymentResponseFunction : public ScriptFunction {
+public:
+ static v8::Local<v8::Function> create(ScriptState* scriptState, ScriptValue* outValue)
+ {
+ PaymentResponseFunction* self = new PaymentResponseFunction(scriptState, outValue);
+ return self->bindToV8Function();
+ }
+
+private:
+ PaymentResponseFunction(ScriptState* scriptState, ScriptValue* outValue)
+ : ScriptFunction(scriptState)
+ , m_value(outValue)
+ {
+ DCHECK(m_value);
+ }
+
+ ScriptValue call(ScriptValue value) override
+ {
+ DCHECK(!value.isEmpty());
+ *m_value = value;
+ return value;
+ }
+
+ ScriptValue* const m_value;
+};
+
+// If the merchant requests shipping information, the resolved show() promise
+// should contain a shipping option and an address.
+TEST(OnPaymentResponseTest, CanRequestShippingInformation)
+{
+ V8TestingScope scope;
+ PaymentRequestMockFunctionScope funcs(scope.getScriptState());
+ makePaymentRequestOriginSecure(scope.document());
+ PaymentOptions options;
+ options.setRequestShipping(true);
+ PaymentRequest* request = PaymentRequest::create(scope.getScriptState(), buildPaymentMethodDataForTest(), buildPaymentDetailsForTest(), options, scope.getExceptionState());
+ ASSERT_FALSE(scope.getExceptionState().hadException());
+ mojom::blink::PaymentResponsePtr response = buildPaymentResponseForTest();
+ response->shipping_option = "standardShipping";
+ response->shipping_address = mojom::blink::PaymentAddress::New();
+ response->shipping_address->country = "US";
+ response->shipping_address->language_code = "en";
+ response->shipping_address->script_code = "Latn";
+ ScriptValue outValue;
+ request->show(scope.getScriptState()).then(PaymentResponseFunction::create(scope.getScriptState(), &outValue), funcs.expectNoCall());
+
+ static_cast<mojom::blink::PaymentRequestClient*>(request)->OnPaymentResponse(std::move(response));
+
+ v8::MicrotasksScope::PerformCheckpoint(scope.isolate());
+ PaymentResponse* resp = V8PaymentResponse::toImplWithTypeCheck(scope.isolate(), outValue.v8Value());
+ EXPECT_EQ("standardShipping", resp->shippingOption());
+ EXPECT_EQ("US", resp->shippingAddress()->country());
+ EXPECT_EQ("en-Latn", resp->shippingAddress()->languageCode());
+}
+
+// If the merchant requests an email address, the resolved show() promise should
+// contain an email address.
+TEST(PaymentRequestTest, CanRequestEmail)
+{
+ V8TestingScope scope;
+ PaymentRequestMockFunctionScope funcs(scope.getScriptState());
+ makePaymentRequestOriginSecure(scope.document());
+ PaymentOptions options;
+ options.setRequestPayerEmail(true);
+ PaymentRequest* request = PaymentRequest::create(scope.getScriptState(), buildPaymentMethodDataForTest(), buildPaymentDetailsForTest(), options, scope.getExceptionState());
+ EXPECT_FALSE(scope.getExceptionState().hadException());
+ mojom::blink::PaymentResponsePtr response = mojom::blink::PaymentResponse::New();
+ response->total_amount = mojom::blink::PaymentCurrencyAmount::New();
+ response->payer_email = "abc@gmail.com";
+ ScriptValue outValue;
+ request->show(scope.getScriptState()).then(PaymentResponseFunction::create(scope.getScriptState(), &outValue), funcs.expectNoCall());
+
+ static_cast<mojom::blink::PaymentRequestClient*>(request)->OnPaymentResponse(std::move(response));
+
+ v8::MicrotasksScope::PerformCheckpoint(scope.isolate());
+ PaymentResponse* pr = V8PaymentResponse::toImplWithTypeCheck(scope.isolate(), outValue.v8Value());
+ EXPECT_EQ("abc@gmail.com", pr->payerEmail());
+}
+
+// If the merchant requests a phone number, the resolved show() promise should
+// contain a phone number.
+TEST(PaymentRequestTest, CanRequestPhone)
+{
+ V8TestingScope scope;
+ PaymentRequestMockFunctionScope funcs(scope.getScriptState());
+ makePaymentRequestOriginSecure(scope.document());
+ PaymentOptions options;
+ options.setRequestPayerPhone(true);
+ PaymentRequest* request = PaymentRequest::create(scope.getScriptState(), buildPaymentMethodDataForTest(), buildPaymentDetailsForTest(), options, scope.getExceptionState());
+ EXPECT_FALSE(scope.getExceptionState().hadException());
+ mojom::blink::PaymentResponsePtr response = mojom::blink::PaymentResponse::New();
+ response->total_amount = mojom::blink::PaymentCurrencyAmount::New();
+ response->payer_phone = "0123";
+
+ ScriptValue outValue;
+ request->show(scope.getScriptState()).then(PaymentResponseFunction::create(scope.getScriptState(), &outValue), funcs.expectNoCall());
+
+ static_cast<mojom::blink::PaymentRequestClient*>(request)->OnPaymentResponse(std::move(response));
+ v8::MicrotasksScope::PerformCheckpoint(scope.isolate());
+ PaymentResponse* pr = V8PaymentResponse::toImplWithTypeCheck(scope.isolate(), outValue.v8Value());
+
+ EXPECT_EQ("0123", pr->payerPhone());
+}
+
+// If the merchant does not request shipping information, the resolved show()
+// promise should contain null shipping option and address.
+TEST(OnPaymentResponseTest, ShippingInformationNotRequired)
+{
+ V8TestingScope scope;
+ PaymentRequestMockFunctionScope funcs(scope.getScriptState());
+ makePaymentRequestOriginSecure(scope.document());
+ PaymentOptions options;
+ options.setRequestShipping(false);
+ PaymentRequest* request = PaymentRequest::create(scope.getScriptState(), buildPaymentMethodDataForTest(), buildPaymentDetailsForTest(), options, scope.getExceptionState());
+ ASSERT_FALSE(scope.getExceptionState().hadException());
+ ScriptValue outValue;
+ request->show(scope.getScriptState()).then(PaymentResponseFunction::create(scope.getScriptState(), &outValue), funcs.expectNoCall());
+
+ static_cast<mojom::blink::PaymentRequestClient*>(request)->OnPaymentResponse(buildPaymentResponseForTest());
+
+ v8::MicrotasksScope::PerformCheckpoint(scope.isolate());
+ PaymentResponse* resp = V8PaymentResponse::toImplWithTypeCheck(scope.isolate(), outValue.v8Value());
+ EXPECT_TRUE(resp->shippingOption().isNull());
+ EXPECT_EQ(nullptr, resp->shippingAddress());
+}
+
+// If the merchant does not request a phone number, the resolved show() promise
+// should contain null phone number.
+TEST(PaymentRequestTest, PhoneNotRequred)
+{
+ V8TestingScope scope;
+ PaymentRequestMockFunctionScope funcs(scope.getScriptState());
+ makePaymentRequestOriginSecure(scope.document());
+ PaymentOptions options;
+ options.setRequestPayerPhone(false);
+ PaymentRequest* request = PaymentRequest::create(scope.getScriptState(), buildPaymentMethodDataForTest(), buildPaymentDetailsForTest(), options, scope.getExceptionState());
+ EXPECT_FALSE(scope.getExceptionState().hadException());
+ mojom::blink::PaymentResponsePtr response = mojom::blink::PaymentResponse::New();
+ response->total_amount = mojom::blink::PaymentCurrencyAmount::New();
+ response->payer_phone = String();
+ ScriptValue outValue;
+ request->show(scope.getScriptState()).then(PaymentResponseFunction::create(scope.getScriptState(), &outValue), funcs.expectNoCall());
+
+ static_cast<mojom::blink::PaymentRequestClient*>(request)->OnPaymentResponse(std::move(response));
+
+ v8::MicrotasksScope::PerformCheckpoint(scope.isolate());
+ PaymentResponse* pr = V8PaymentResponse::toImplWithTypeCheck(scope.isolate(), outValue.v8Value());
+ EXPECT_TRUE(pr->payerPhone().isNull());
+}
+
+// If the merchant does not request an email address, the resolved show()
+// promise should contain null email address.
+TEST(PaymentRequestTest, EmailNotRequired)
+{
+ V8TestingScope scope;
+ PaymentRequestMockFunctionScope funcs(scope.getScriptState());
+ makePaymentRequestOriginSecure(scope.document());
+ PaymentOptions options;
+ options.setRequestPayerEmail(false);
+ PaymentRequest* request = PaymentRequest::create(scope.getScriptState(), buildPaymentMethodDataForTest(), buildPaymentDetailsForTest(), options, scope.getExceptionState());
+ EXPECT_FALSE(scope.getExceptionState().hadException());
+ mojom::blink::PaymentResponsePtr response = mojom::blink::PaymentResponse::New();
+ response->total_amount = mojom::blink::PaymentCurrencyAmount::New();
+ response->payer_email = String();
+ ScriptValue outValue;
+ request->show(scope.getScriptState()).then(PaymentResponseFunction::create(scope.getScriptState(), &outValue), funcs.expectNoCall());
+
+ static_cast<mojom::blink::PaymentRequestClient*>(request)->OnPaymentResponse(std::move(response));
+
+ v8::MicrotasksScope::PerformCheckpoint(scope.isolate());
+ PaymentResponse* pr = V8PaymentResponse::toImplWithTypeCheck(scope.isolate(), outValue.v8Value());
+ EXPECT_TRUE(pr->payerEmail().isNull());
+}
+
+} // namespace
+} // namespace blink
« no previous file with comments | « third_party/WebKit/Source/modules/modules.gypi ('k') | third_party/WebKit/Source/modules/payments/PaymentRequest.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698