test_basiccarderrors.html (2507B)
1 <!doctype html> 2 <!-- 3 https://bugzilla.mozilla.org/show_bug.cgi?id=1489968 4 --> 5 <meta charset="utf-8"> 6 <title>Test for Bug 1489968</title> 7 <link rel="stylesheet" href="/tests/SimpleTest/test.css"/> 8 <script src="/tests/SimpleTest/SimpleTest.js"></script> 9 <script src="./DefaultData.js"></script> 10 <script> 11 SimpleTest.waitForExplicitFinish(); 12 13 const gUrl = SimpleTest.getTestFileURL("BasicCardErrorsChromeScript.js"); 14 const gScript = SpecialPowers.loadChromeScript(gUrl); 15 16 function sendOnce(message) { 17 return data => { 18 return new Promise(resolve => { 19 const doneMsg = `${message}-complete`; 20 gScript.addMessageListener(doneMsg, function listener() { 21 gScript.removeMessageListener(doneMsg, listener); 22 resolve(); 23 }); 24 gScript.sendAsyncMessage(message, data); 25 }); 26 }; 27 } 28 const sendTearDown = sendOnce("teardown"); 29 30 async function teardown() { 31 await sendTearDown(); 32 gScript.destroy(); 33 SimpleTest.finish(); 34 } 35 36 async function testBasicCardErrors() { 37 const handler = SpecialPowers.getDOMWindowUtils(window).setHandlingUserInput( 38 true 39 ); 40 const request = new PaymentRequest( 41 [{ supportedMethods: "basic-card" }], 42 defaultDetails 43 ); 44 const response = await request.show(); 45 // Smoke test the initial state 46 is(response.details.cardNumber, "4111111111111111", "Expected cardNumber to initially be 4111111111111111"); 47 // We send these up and have the chrome script echo them back to us. 48 const expected = { 49 cardholderName: "PASS", 50 cardNumber: "3566002020360505", 51 cardSecurityCode: "666", 52 expiryMonth: "02", 53 expiryYear: "2020", 54 }; 55 await response.retry({ paymentMethod: expected }); 56 // the values of the response would have been updated with the expected 57 for (const [member, expectedValue] of Object.entries(expected)) { 58 const actual = response.details[member]; 59 is( 60 actual, 61 expectedValue, 62 `Expected member ${member} to be "${expectedValue}, but got "${actual}"` 63 ); 64 } 65 await response.complete("success"); 66 handler.destruct(); 67 } 68 69 async function runTests() { 70 try { 71 await testBasicCardErrors(); 72 } catch (err) { 73 ok(false, `Unexpected error: ${err} ${err.stack}.`); 74 } finally { 75 await teardown(); 76 } 77 } 78 79 window.addEventListener("load", () => { 80 const prefs = [["dom.payments.request.enabled", true]]; 81 SpecialPowers.pushPrefEnv({ set: prefs }, runTests); 82 }); 83 </script> 84 85 <a target="_blank" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1489968">Mozilla Bug 1489968</a>