supports-shipping-contact-delegation-manual.https.html (2323B)
1 <!DOCTYPE html> 2 <meta charset="utf-8" /> 3 <title>Tests for Delegation of shipping and contact collection to PH</title> 4 <script src="/resources/testharness.js"></script> 5 <script src="/resources/testharnessreport.js"></script> 6 <script src="/resources/testdriver.js"></script> 7 <script src="/resources/testdriver-vendor.js"></script> 8 <p>If the payment sheet is shown, please authorize the mock payment.</p> 9 <script> 10 const methodName = window.location.origin + '/payment-handler/' 11 + 'supports-shipping-contact-delegation-manual-manifest.json'; 12 promise_test(async (t) => { 13 const request = new PaymentRequest([{supportedMethods: methodName}], { 14 total: {label: 'Total', amount: {currency: 'USD', value: '0.01'}}, 15 shippingOptions: [{ 16 id: 'freeShippingOption', 17 label: 'Free global shipping', 18 amount: { 19 currency: 'USD', 20 value: '0', 21 }, 22 selected: true, 23 }], 24 }, {requestShipping: true}); 25 26 const response = await test_driver.bless('showing a payment sheet', () => 27 request.show() 28 ); 29 const complete_promise = response.complete('success'); 30 31 // Validate response 32 assert_equals('freeShippingOption', response.shippingOption); 33 assert_equals('Reston', response.shippingAddress.city); 34 assert_equals('US', response.shippingAddress.country); 35 assert_equals('20190', response.shippingAddress.postalCode); 36 assert_equals('VA', response.shippingAddress.region); 37 38 return complete_promise; 39 }, 'Payment handler response should include shipping address and selected shipping option id.'); 40 41 promise_test(async (t) => { 42 const request = new PaymentRequest([{ 43 supportedMethods: methodName 44 }], { 45 total: { 46 label: 'Total', 47 amount: { 48 currency: 'USD', 49 value: '0.01' 50 } 51 } 52 }, { 53 requestPayerName: true, 54 requestPayerEmail: true, 55 requestPayerPhone: true 56 }); 57 58 const response = await test_driver.bless('showing a payment sheet', () => 59 request.show() 60 ); 61 const complete_promise = response.complete('success'); 62 63 // Validate response. 64 assert_equals('John Smith', response.payerName); 65 assert_equals('smith@gmail.com', response.payerEmail); 66 assert_equals('+15555555555', response.payerPhone); 67 68 return complete_promise; 69 }, 'Payment handler response should include payer\'s contact information.'); 70 </script>