getcredential-large-blob-not-supported.https.html (3012B)
1 <!DOCTYPE html> 2 <meta charset="utf-8"> 3 <title>navigator.credentials.get() largeBlob extension tests with no authenticator support</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 standardSetup(async function() { 13 "use strict"; 14 15 const credential = createCredential(); 16 17 promise_test(async t => { 18 return promise_rejects_dom(t, "NotSupportedError", 19 navigator.credentials.get({publicKey: { 20 challenge: new Uint8Array(), 21 allowCredentials: [{ 22 id: (await credential).rawId, 23 type: "public-key", 24 }], 25 extensions: { 26 largeBlob: { 27 support: "preferred", 28 }, 29 }, 30 }})); 31 }, "navigator.credentials.get() with largeBlob.support set"); 32 33 promise_test(async t => { 34 return promise_rejects_dom(t, "NotSupportedError", 35 navigator.credentials.get({publicKey: { 36 challenge: new Uint8Array(), 37 allowCredentials: [{ 38 id: (await credential).rawId, 39 type: "public-key", 40 }], 41 extensions: { 42 largeBlob: { 43 read: true, 44 write: new ArrayBuffer(), 45 }, 46 }, 47 }})); 48 }, "navigator.credentials.get() with largeBlob.read and largeBlob.write set"); 49 50 promise_test(async t => { 51 const assertion = await navigator.credentials.get({publicKey: { 52 challenge: new Uint8Array(), 53 allowCredentials: [{ 54 id: (await credential).rawId, 55 type: "public-key", 56 }], 57 extensions: { 58 largeBlob: { 59 read: true, 60 }, 61 }, 62 }}); 63 assert_not_own_property(assertion.getClientExtensionResults().largeBlob, "supported"); 64 assert_not_own_property(assertion.getClientExtensionResults().largeBlob, "blob"); 65 assert_not_own_property(assertion.getClientExtensionResults().largeBlob, "written"); 66 }, "navigator.credentials.get() with largeBlob.read set without authenticator support"); 67 68 promise_test(async t => { 69 const assertion = await navigator.credentials.get({publicKey: { 70 challenge: new Uint8Array(), 71 allowCredentials: [{ 72 id: (await credential).rawId, 73 type: "public-key", 74 }], 75 extensions: { 76 largeBlob: { 77 write: new TextEncoder().encode("Don't call me Shirley"), 78 }, 79 }, 80 }}); 81 assert_not_own_property(assertion.getClientExtensionResults().largeBlob, "supported"); 82 assert_not_own_property(assertion.getClientExtensionResults().largeBlob, "blob"); 83 assert_false(assertion.getClientExtensionResults().largeBlob.written); 84 }, "navigator.credentials.get() with largeBlob.write set without authenticator support"); 85 }, { 86 protocol: "ctap2_1", 87 hasResidentKey: true, 88 hasUserVerification: true, 89 isUserVerified: true, 90 }); 91 </script>