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