forked from mirrors/gecko-dev
		
	 ce4c75065c
			
		
	
	
		ce4c75065c
		
	
	
	
	
		
			
			Differential Revision: https://phabricator.services.mozilla.com/D6378 --HG-- extra : moz-landing-system : lando
		
			
				
	
	
		
			85 lines
		
	
	
	
		
			2.4 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
			
		
		
	
	
			85 lines
		
	
	
	
		
			2.4 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
| <!doctype html>
 | |
| <!--
 | |
| https://bugzilla.mozilla.org/show_bug.cgi?id=1489968
 | |
| -->
 | |
| <meta charset="utf-8">
 | |
| <title>Test for Bug 1489968</title>
 | |
| <link rel="stylesheet" href="/tests/SimpleTest/test.css"/>
 | |
| <script src="/tests/SimpleTest/SimpleTest.js"></script>
 | |
| <script src="./DefaultData.js"></script>
 | |
| <script>
 | |
| SimpleTest.waitForExplicitFinish();
 | |
| 
 | |
| const gUrl = SimpleTest.getTestFileURL("BasicCardErrorsChromeScript.js");
 | |
| const gScript = SpecialPowers.loadChromeScript(gUrl);
 | |
| 
 | |
| function sendOnce(message) {
 | |
|   return data => {
 | |
|     return new Promise(resolve => {
 | |
|       const doneMsg = `${message}-complete`;
 | |
|       gScript.addMessageListener(doneMsg, function listener() {
 | |
|         gScript.removeMessageListener(doneMsg, listener);
 | |
|         resolve();
 | |
|       });
 | |
|       gScript.sendAsyncMessage(message, data);
 | |
|     });
 | |
|   };
 | |
| }
 | |
| const sendTearDown = sendOnce("teardown");
 | |
| 
 | |
| async function teardown() {
 | |
|   await sendTearDown();
 | |
|   gScript.destroy();
 | |
|   SimpleTest.finish();
 | |
| }
 | |
| 
 | |
| async function testBasicCardErrors() {
 | |
|   const handler = SpecialPowers.getDOMWindowUtils(window).setHandlingUserInput(
 | |
|     true
 | |
|   );
 | |
|   const request = new PaymentRequest(
 | |
|     [{ supportedMethods: "basic-card" }],
 | |
|     defaultDetails
 | |
|   );
 | |
|   const response = await request.show();
 | |
|   // Smoke test the initial state
 | |
|   is(response.details.cardNumber, "4111111111111111", "Expected cardNumber to initially be 4111111111111111");
 | |
|   // We send these up and have the chrome script echo them back to us.
 | |
|   const expected = {
 | |
|     cardholderName: "PASS",
 | |
|     cardNumber: "3566002020360505",
 | |
|     cardSecurityCode: "666",
 | |
|     expiryMonth: "02",
 | |
|     expiryYear: "2020",
 | |
|   };
 | |
|   await response.retry({ paymentMethod: expected });
 | |
|   // the values of the response would have been updated with the expected
 | |
|   for (const [member, expectedValue] of Object.entries(expected)) {
 | |
|     const actual = response.details[member];
 | |
|     is(
 | |
|       actual,
 | |
|       expectedValue,
 | |
|       `Expected member ${member} to be "${expectedValue}, but got "${actual}"`
 | |
|     );
 | |
|   }
 | |
|   await response.complete("success");
 | |
|   handler.destruct();
 | |
| }
 | |
| 
 | |
| async function runTests() {
 | |
|   try {
 | |
|     await testBasicCardErrors();
 | |
|   } catch (err) {
 | |
|     ok(false, `Unexpected error: ${err} ${err.stack}.`);
 | |
|   } finally {
 | |
|     await teardown();
 | |
|   }
 | |
| }
 | |
| 
 | |
| window.addEventListener("load", () => {
 | |
|   const prefs = [["dom.payments.request.enabled", true]];
 | |
|   SpecialPowers.pushPrefEnv({ set: prefs }, runTests);
 | |
| });
 | |
| </script>
 | |
| 
 | |
| <a target="_blank" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1489968">Mozilla Bug 1489968</a>
 |