PASS new ApplePayError('addressUnserviceable') did not throw exception.
SETUP:
-PASS new ApplePayError('unknown', []) threw exception TypeError: Argument 2 ('contactField') to the ApplePayError constructor must be one of: "phoneNumber", "emailAddress", "name", "phoneticName", "postalAddress", "addressLines", "subLocality", "locality", "postalCode", "subAdministrativeArea", "administrativeArea", "country", "countryCode".
+PASS new ApplePayError('unknown', []) threw exception TypeError: Argument 2 ('contactField') to the ApplePayError constructor must be one of: "phoneNumber", "emailAddress", "name", "phoneticName", "postalAddress", "addressLines", "locality", "postalCode", "administrativeArea", "country", "countryCode".
SETUP:
-PASS new ApplePayError('unknown', '') threw exception TypeError: Argument 2 ('contactField') to the ApplePayError constructor must be one of: "phoneNumber", "emailAddress", "name", "phoneticName", "postalAddress", "addressLines", "subLocality", "locality", "postalCode", "subAdministrativeArea", "administrativeArea", "country", "countryCode".
+PASS new ApplePayError('unknown', '') threw exception TypeError: Argument 2 ('contactField') to the ApplePayError constructor must be one of: "phoneNumber", "emailAddress", "name", "phoneticName", "postalAddress", "addressLines", "locality", "postalCode", "administrativeArea", "country", "countryCode".
SETUP:
PASS new ApplePayError('unknown', 'phoneNumber') did not throw exception.
SETUP: request = validRequest(); request.billingContact = { };
PASS new ApplePaySession(2, request) did not throw exception.
-SETUP: request = validRequest(); request.billingContact = { subLocality: '', subAdministrativeArea: '' };
-PASS new ApplePaySession(2, request) did not throw exception.
-
Testing PaymentRequest.requiredShippingContactFields
SETUP: request = validRequest(); request.requiredShippingContactFields = undefined;
SETUP: request = validRequest(); request.shippingContact = { };
PASS new ApplePaySession(2, request) did not throw exception.
-SETUP: request = validRequest(); request.shippingContact = { subLocality: '', subAdministrativeArea: '' };
-PASS new ApplePaySession(2, request) did not throw exception.
-
Testing PaymentRequest.shippingType
SETUP: request = validRequest(); request.shippingType = undefined;
logAndShouldNotThrow("request = validRequest(); request.billingContact = null;", "new ApplePaySession(2, request)")
logAndShouldNotThrow("request = validRequest(); request.billingContact = undefined;", "new ApplePaySession(2, request)")
logAndShouldNotThrow("request = validRequest(); request.billingContact = { };", "new ApplePaySession(2, request)")
- logAndShouldNotThrow("request = validRequest(); request.billingContact = { subLocality: '', subAdministrativeArea: '' };", "new ApplePaySession(2, request)")
debug("Testing PaymentRequest.requiredShippingContactFields")
debug("");
logAndShouldNotThrow("request = validRequest(); request.shippingContact = null;", "new ApplePaySession(2, request)")
logAndShouldNotThrow("request = validRequest(); request.shippingContact = undefined;", "new ApplePaySession(2, request)")
logAndShouldNotThrow("request = validRequest(); request.shippingContact = { };", "new ApplePaySession(2, request)")
- logAndShouldNotThrow("request = validRequest(); request.shippingContact = { subLocality: '', subAdministrativeArea: '' };", "new ApplePaySession(2, request)")
debug("Testing PaymentRequest.shippingType")
debug("");
"phoneticName",
"postalAddress",
"addressLines",
- "subLocality",
"locality",
"postalCode",
- "subAdministrativeArea",
"administrativeArea",
"country",
"countryCode"
String phoneticGivenName;
String phoneticFamilyName;
std::optional<Vector<String>> addressLines;
- String subLocality;
String locality;
String postalCode;
- String subAdministrativeArea;
String administrativeArea;
String country;
String countryCode;
[Conditional=APPLE_PAY_SESSION_V3] DOMString phoneticGivenName;
[Conditional=APPLE_PAY_SESSION_V3] DOMString phoneticFamilyName;
sequence<DOMString> addressLines;
- DOMString subLocality;
DOMString locality;
DOMString postalCode;
- DOMString subAdministrativeArea;
DOMString administrativeArea;
DOMString country;
DOMString countryCode;
PhoneticName,
PostalAddress,
AddressLines,
- SubLocality,
Locality,
PostalCode,
- SubAdministrativeArea,
AdministrativeArea,
Country,
CountryCode,
SOFT_LINK_CLASS(PassKit, PKContact)
-#if PLATFORM(MAC) && __MAC_OS_X_VERSION_MIN_REQUIRED < 101300
-@interface CNPostalAddress ()
-@property (readonly, copy, NS_NONATOMIC_IOSONLY) NSString *subLocality;
-@property (readonly, copy, NS_NONATOMIC_IOSONLY) NSString *subAdministrativeArea;
-@end
-
-@interface CNMutablePostalAddress ()
-@property (copy, NS_NONATOMIC_IOSONLY) NSString *subLocality;
-@property (copy, NS_NONATOMIC_IOSONLY) NSString *subAdministrativeArea;
-@end
-#endif
-
namespace WebCore {
-static NSString *subLocality(CNPostalAddress *address)
-{
-#if PLATFORM(MAC) && __MAC_OS_X_VERSION_MIN_REQUIRED < 101300
- if (![address respondsToSelector:@selector(subLocality)])
- return nil;
-#endif
- return address.subLocality;
-}
-
-static void setSubLocality(CNMutablePostalAddress *address, NSString *subLocality)
-{
-#if PLATFORM(MAC) && __MAC_OS_X_VERSION_MIN_REQUIRED < 101300
- if (![address respondsToSelector:@selector(setSubLocality:)])
- return;
-#endif
- address.subLocality = subLocality;
-}
-
-static NSString *subAdministrativeArea(CNPostalAddress *address)
-{
-#if PLATFORM(MAC) && __MAC_OS_X_VERSION_MIN_REQUIRED < 101300
- if (![address respondsToSelector:@selector(subAdministrativeArea)])
- return nil;
-#endif
- return address.subAdministrativeArea;
-}
-
-static void setSubAdministrativeArea(CNMutablePostalAddress *address, NSString *subAdministrativeArea)
-{
-#if PLATFORM(MAC) && __MAC_OS_X_VERSION_MIN_REQUIRED < 101300
- if (![address respondsToSelector:@selector(setSubAdministrativeArea:)])
- return;
-#endif
- address.subAdministrativeArea = subAdministrativeArea;
-}
-
static RetainPtr<PKContact> convert(unsigned version, const ApplePayPaymentContact& contact)
{
auto result = adoptNS([allocPKContactInstance() init]);
// FIXME: StringBuilder should hava a toNSString() function to avoid the extra String allocation.
[address setStreet:builder.toString()];
- if (!contact.subLocality.isEmpty())
- setSubLocality(address.get(), contact.subLocality);
if (!contact.locality.isEmpty())
[address setCity:contact.locality];
if (!contact.postalCode.isEmpty())
[address setPostalCode:contact.postalCode];
- if (!contact.subAdministrativeArea.isEmpty())
- setSubAdministrativeArea(address.get(), contact.subAdministrativeArea);
if (!contact.administrativeArea.isEmpty())
[address setState:contact.administrativeArea];
if (!contact.country.isEmpty())
String(postalAddress.street).split("\n", addressLines);
result.addressLines = WTFMove(addressLines);
}
- result.subLocality = subLocality(postalAddress);
result.locality = postalAddress.city;
result.postalCode = postalAddress.postalCode;
- result.subAdministrativeArea = subAdministrativeArea(postalAddress);
result.administrativeArea = postalAddress.state;
result.country = postalAddress.country;
result.countryCode = postalAddress.ISOCountryCode;
#if (PLATFORM(MAC) && __MAC_OS_X_VERSION_MIN_REQUIRED >= 101300) || (PLATFORM(IOS) && __IPHONE_OS_VERSION_MIN_REQUIRED >= 110000)
SOFT_LINK_FRAMEWORK(Contacts)
SOFT_LINK_CONSTANT(Contacts, CNPostalAddressStreetKey, NSString *);
-SOFT_LINK_CONSTANT(Contacts, CNPostalAddressSubLocalityKey, NSString *);
SOFT_LINK_CONSTANT(Contacts, CNPostalAddressCityKey, NSString *);
-SOFT_LINK_CONSTANT(Contacts, CNPostalAddressSubAdministrativeAreaKey, NSString *);
SOFT_LINK_CONSTANT(Contacts, CNPostalAddressStateKey, NSString *);
SOFT_LINK_CONSTANT(Contacts, CNPostalAddressPostalCodeKey, NSString *);
SOFT_LINK_CONSTANT(Contacts, CNPostalAddressCountryKey, NSString *);
postalAddressKey = getCNPostalAddressStreetKey();
break;
- case WebCore::PaymentError::ContactField::SubLocality:
- pkContactField = getPKContactFieldPostalAddress();
- postalAddressKey = getCNPostalAddressSubLocalityKey();
- break;
-
case WebCore::PaymentError::ContactField::Locality:
pkContactField = getPKContactFieldPostalAddress();
postalAddressKey = getCNPostalAddressCityKey();
postalAddressKey = getCNPostalAddressPostalCodeKey();
break;
- case WebCore::PaymentError::ContactField::SubAdministrativeArea:
- pkContactField = getPKContactFieldPostalAddress();
- postalAddressKey = getCNPostalAddressSubAdministrativeAreaKey();
- break;
-
case WebCore::PaymentError::ContactField::AdministrativeArea:
pkContactField = getPKContactFieldPostalAddress();
postalAddressKey = getCNPostalAddressStateKey();