| Index: third_party/WebKit/Source/modules/payments/PaymentRequestTest.cpp
|
| diff --git a/third_party/WebKit/Source/modules/payments/PaymentRequestTest.cpp b/third_party/WebKit/Source/modules/payments/PaymentRequestTest.cpp
|
| index 0d16400a70e297bece500960824ba5b91c26f34b..dbc425cb61b39523b10741142808797849e7999d 100644
|
| --- a/third_party/WebKit/Source/modules/payments/PaymentRequestTest.cpp
|
| +++ b/third_party/WebKit/Source/modules/payments/PaymentRequestTest.cpp
|
| @@ -5,17 +5,13 @@
|
| #include "modules/payments/PaymentRequest.h"
|
|
|
| #include "bindings/core/v8/JSONValuesForV8.h"
|
| -#include "bindings/core/v8/ScriptFunction.h"
|
| #include "bindings/core/v8/V8BindingForTesting.h"
|
| -#include "bindings/modules/v8/V8PaymentResponse.h"
|
| #include "core/dom/Document.h"
|
| #include "core/dom/ExceptionCode.h"
|
| #include "modules/payments/PaymentAddress.h"
|
| -#include "modules/payments/PaymentResponse.h"
|
| #include "modules/payments/PaymentTestHelper.h"
|
| #include "platform/heap/HeapAllocator.h"
|
| #include "testing/gtest/include/gtest/gtest.h"
|
| -#include <utility>
|
|
|
| namespace blink {
|
| namespace {
|
| @@ -202,131 +198,6 @@ TEST(PaymentRequestTest, RejectShowPromiseOnInvalidShippingAddress)
|
| static_cast<mojom::blink::PaymentRequestClient*>(request)->OnShippingAddressChange(mojom::blink::PaymentAddress::New());
|
| }
|
|
|
| -TEST(PaymentRequestTest, RejectShowPromiseWithRequestShippingTrueAndEmptyShippingAddressInResponse)
|
| -{
|
| - 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());
|
| - EXPECT_FALSE(scope.getExceptionState().hadException());
|
| - mojom::blink::PaymentResponsePtr response = buildPaymentResponseForTest();
|
| -
|
| - request->show(scope.getScriptState()).then(funcs.expectNoCall(), funcs.expectCall());
|
| -
|
| - static_cast<mojom::blink::PaymentRequestClient*>(request)->OnPaymentResponse(std::move(response));
|
| -}
|
| -
|
| -TEST(PaymentRequestTest, RejectShowPromiseWithRequestShippingTrueAndInvalidShippingAddressInResponse)
|
| -{
|
| - 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());
|
| - EXPECT_FALSE(scope.getExceptionState().hadException());
|
| - mojom::blink::PaymentResponsePtr response = buildPaymentResponseForTest();
|
| - 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));
|
| -}
|
| -
|
| -TEST(PaymentRequestTest, RejectShowPromiseWithRequestShippingFalseAndShippingAddressExistsInResponse)
|
| -{
|
| - 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());
|
| - EXPECT_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));
|
| -}
|
| -
|
| -class PaymentResponseFunction : public ScriptFunction {
|
| -public:
|
| - static v8::Local<v8::Function> create(ScriptState* scriptState, ScriptValue* outValue)
|
| - {
|
| - PaymentResponseFunction* self = new PaymentResponseFunction(scriptState, outValue);
|
| - return self->bindToV8Function();
|
| - }
|
| -
|
| - ScriptValue call(ScriptValue value) override
|
| - {
|
| - DCHECK(!value.isEmpty());
|
| - *m_value = value;
|
| - return value;
|
| - }
|
| -
|
| -private:
|
| - PaymentResponseFunction(ScriptState* scriptState, ScriptValue* outValue)
|
| - : ScriptFunction(scriptState)
|
| - , m_value(outValue)
|
| - {
|
| - DCHECK(m_value);
|
| - }
|
| -
|
| - ScriptValue* m_value;
|
| -};
|
| -
|
| -TEST(PaymentRequestTest, ResolveShowPromiseWithRequestShippingTrueAndValidShippingAddressInResponse)
|
| -{
|
| - 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());
|
| - EXPECT_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";
|
| -
|
| - 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("US", pr->shippingAddress()->country());
|
| - EXPECT_EQ("en-Latn", pr->shippingAddress()->languageCode());
|
| -}
|
| -
|
| -TEST(PaymentRequestTest, ResolveShowPromiseWithRequestShippingFalseAndEmptyShippingAddressInResponse)
|
| -{
|
| - 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());
|
| - EXPECT_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* pr = V8PaymentResponse::toImplWithTypeCheck(scope.isolate(), outValue.v8Value());
|
| -
|
| - EXPECT_EQ(nullptr, pr->shippingAddress());
|
| -}
|
| -
|
| TEST(PaymentRequestTest, OnShippingOptionChange)
|
| {
|
| V8TestingScope scope;
|
| @@ -543,205 +414,5 @@ TEST(PaymentRequestTest, UseTheSelectedShippingOptionFromPaymentDetailsUpdate)
|
| EXPECT_EQ("fast", request->shippingOption());
|
| }
|
|
|
| -TEST(PaymentRequestTest, ResolveShowPromiseWithRequestPayerEmailTrueAndValidPayerEmailInResponse)
|
| -{
|
| - 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());
|
| -}
|
| -
|
| -TEST(PaymentRequestTest, RejectShowPromiseWithRequestPayerEmailTrueAndEmptyPayerEmailInResponse)
|
| -{
|
| - 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));
|
| -}
|
| -
|
| -TEST(PaymentRequestTest, RejectShowPromiseWithRequestPayerEmailTrueAndNullPayerEmailInResponse)
|
| -{
|
| - 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 = String();
|
| -
|
| - request->show(scope.getScriptState()).then(funcs.expectNoCall(), funcs.expectCall());
|
| -
|
| - static_cast<mojom::blink::PaymentRequestClient*>(request)->OnPaymentResponse(std::move(response));
|
| -}
|
| -
|
| -TEST(PaymentRequestTest, RejectShowPromiseWithRequestPayerEmailFalseAndNonNullPayerEmailInResponse)
|
| -{
|
| - 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));
|
| -}
|
| -
|
| -TEST(PaymentRequestTest, ResolveShowPromiseWithRequestPayerEmailFalseAndNullPayerEmailInResponse)
|
| -{
|
| - 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());
|
| -}
|
| -
|
| -TEST(PaymentRequestTest, ResolveShowPromiseWithRequestPayerPhoneTrueAndValidPayerPhoneInResponse)
|
| -{
|
| - 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());
|
| -}
|
| -
|
| -TEST(PaymentRequestTest, RejectShowPromiseWithRequestPayerPhoneTrueAndEmptyPayerPhoneInResponse)
|
| -{
|
| - 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));
|
| -}
|
| -
|
| -TEST(PaymentRequestTest, RejectShowPromiseWithRequestPayerPhoneTrueAndNullPayerPhoneInResponse)
|
| -{
|
| - 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 = String();
|
| -
|
| - request->show(scope.getScriptState()).then(funcs.expectNoCall(), funcs.expectCall());
|
| -
|
| - static_cast<mojom::blink::PaymentRequestClient*>(request)->OnPaymentResponse(std::move(response));
|
| -}
|
| -
|
| -TEST(PaymentRequestTest, RejectShowPromiseWithRequestPayerPhoneFalseAndNonNulPayerPhoneInResponse)
|
| -{
|
| - 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));
|
| -}
|
| -
|
| -TEST(PaymentRequestTest, ResolveShowPromiseWithRequestPayerPhoneFalseAndNullPayerPhoneInResponse)
|
| -{
|
| - 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());
|
| -}
|
| -
|
| } // namespace
|
| } // namespace blink
|
|
|