createcredential-abort.https.html (3165B)
1 <!DOCTYPE html> 2 <meta charset="utf-8"> 3 <title>WebAuthn navigator.credentials.create() abort Tests</title> 4 <meta name="timeout" content="long"> 5 <script src="/resources/testharness.js"></script> 6 <script src="/resources/testharnessreport.js"></script> 7 <script src="/resources/testdriver.js"></script> 8 <script src="/resources/testdriver-vendor.js"></script> 9 <script src=helpers.js></script> 10 <body></body> 11 <script> 12 "use strict"; 13 14 virtualAuthenticatorPromiseTest(async t => { 15 const abortController = new AbortController(); 16 const signal = abortController.signal; 17 abortController.abort(); 18 const promise = createCredential({ 19 options: { 20 signal: signal, 21 } 22 }); 23 return promise_rejects_dom(t, "AbortError", promise); 24 }, { 25 protocol: "ctap1/u2f", 26 transport: "usb", 27 isUserConsenting: false, 28 }, "navigator.credentials.create() after abort without reason"); 29 30 virtualAuthenticatorPromiseTest(async t => { 31 const abortController = new AbortController(); 32 const signal = abortController.signal; 33 const promise = createCredential({ 34 options: { 35 signal: signal, 36 } 37 }); 38 abortController.abort(); 39 return promise_rejects_dom(t, "AbortError", promise); 40 }, { 41 protocol: "ctap1/u2f", 42 transport: "usb", 43 isUserConsenting: false, 44 }, "navigator.credentials.create() before abort without reason"); 45 46 virtualAuthenticatorPromiseTest(async t => { 47 const abortController = new AbortController(); 48 const signal = abortController.signal; 49 abortController.abort("CustomError"); 50 const promise = createCredential({ 51 options: { 52 signal: signal, 53 } 54 }); 55 return promise_rejects_exactly(t, "CustomError", promise); 56 }, { 57 protocol: "ctap1/u2f", 58 transport: "usb", 59 isUserConsenting: false, 60 }, "navigator.credentials.create() after abort reason"); 61 62 virtualAuthenticatorPromiseTest(async t => { 63 const abortController = new AbortController(); 64 const signal = abortController.signal; 65 const promise = createCredential({ 66 options: { 67 signal: signal, 68 } 69 }); 70 abortController.abort("CustomError"); 71 return promise_rejects_exactly(t, "CustomError", promise); 72 }, { 73 protocol: "ctap1/u2f", 74 transport: "usb", 75 isUserConsenting: false, 76 }, "navigator.credentials.create() before abort reason"); 77 78 virtualAuthenticatorPromiseTest(async t => { 79 const abortController = new AbortController(); 80 const signal = abortController.signal; 81 abortController.abort(new Error('error')); 82 const promise = createCredential({ 83 options: { 84 signal: signal, 85 } 86 }); 87 return promise_rejects_js(t, Error, promise); 88 }, { 89 protocol: "ctap1/u2f", 90 transport: "usb", 91 isUserConsenting: false, 92 }, "navigator.credentials.create() after abort reason with Error"); 93 94 virtualAuthenticatorPromiseTest(async t => { 95 const abortController = new AbortController(); 96 const signal = abortController.signal; 97 const promise = createCredential({ 98 options: { 99 signal: signal, 100 } 101 }); 102 abortController.abort(new Error('error')); 103 return promise_rejects_js(t, Error, promise); 104 }, { 105 protocol: "ctap1/u2f", 106 transport: "usb", 107 isUserConsenting: false, 108 }, "navigator.credentials.create() before abort reason with Error"); 109 </script>