createcredential-large-blob-not-supported.https.html (2796B)
1 <!DOCTYPE html> 2 <meta charset="utf-8"> 3 <title>navigator.credentials.create() 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(function() { 13 "use strict"; 14 15 new CreateCredentialsTest("options.publicKey.extensions", { 16 largeBlob: { 17 write: new ArrayBuffer(), 18 }, 19 }).runTest("navigator.credentials.create() with largeBlob.write set", "NotSupportedError"); 20 21 new CreateCredentialsTest("options.publicKey.extensions", { 22 largeBlob: { 23 read: true, 24 }, 25 }).runTest("navigator.credentials.create() with largeBlob.read set", "NotSupportedError"); 26 27 promise_test(async t => { 28 const credential = await createCredential({ 29 options: { 30 publicKey: { 31 authenticatorSelection: { 32 requireResidentKey: true, 33 }, 34 extensions: { 35 largeBlob: { 36 support: "preferred", 37 }, 38 }, 39 }, 40 }, 41 }); 42 assert_own_property(credential.getClientExtensionResults(), "largeBlob"); 43 assert_false(credential.getClientExtensionResults().largeBlob.supported); 44 assert_not_own_property(credential.getClientExtensionResults().largeBlob, "blob"); 45 assert_not_own_property(credential.getClientExtensionResults().largeBlob, "written"); 46 }, "navigator.credentials.create() with largeBlob.support set to preferred and not supported by authenticator"); 47 48 promise_test(async t => { 49 const credential = await createCredential({ 50 options: { 51 publicKey: { 52 authenticatorSelection: { 53 requireResidentKey: true, 54 }, 55 extensions: { 56 largeBlob: {}, 57 }, 58 }, 59 }, 60 }); 61 assert_own_property(credential.getClientExtensionResults(), "largeBlob"); 62 assert_false(credential.getClientExtensionResults().largeBlob.supported); 63 assert_not_own_property(credential.getClientExtensionResults().largeBlob, "blob"); 64 assert_not_own_property(credential.getClientExtensionResults().largeBlob, "written"); 65 }, "navigator.credentials.create() with largeBlob.support not set and not supported by authenticator"); 66 67 new CreateCredentialsTest("options.publicKey.extensions", { 68 largeBlob: { 69 support: "required" 70 }, 71 }).runTest("navigator.credentials.create() with largeBlob.support set to required and not supported by authenticator", "NotAllowedError"); 72 }, { 73 protocol: "ctap2_1", 74 hasResidentKey: true, 75 hasUserVerification: true, 76 isUserVerified: true, 77 }); 78 </script>