getclientcapabilities.https.html (1848B)
1 <!DOCTYPE html> 2 <meta charset="utf-8"> 3 <title>getClientCapabilities tests</title> 4 <script src="/resources/testharness.js"></script> 5 <script src="/resources/testharnessreport.js"></script> 6 <script src="/resources/testdriver.js"></script> 7 <script src="/resources/testdriver-vendor.js"></script> 8 <script src=helpers.js></script> 9 <body></body> 10 <script> 11 "use strict"; 12 13 const KNOWN_CAPABILITIES_SET = new Set([ 14 "conditionalCreate", 15 "conditionalGet", 16 "hybridTransport", 17 "passkeyPlatformAuthenticator", 18 "relatedOrigins", 19 "signalAllAcceptedCredentials", 20 "signalCurrentUserDetails", 21 "signalUnknownCredential", 22 "userVerifyingPlatformAuthenticator", 23 24 // Extensions implemented by the client 25 "extension:appid", 26 "extension:appidExclude", 27 "extension:hmacCreateSecret", 28 "extension:credentialProtectionPolicy", 29 "extension:enforceCredentialProtectionPolicy", 30 "extension:minPinLength", 31 "extension:credProps", 32 "extension:largeBlob", 33 "extension:credBlob", 34 "extension:getCredBlob", 35 "extension:payment", 36 "extension:prf", 37 ]); 38 39 promise_test(async t => { 40 const capabilities = await PublicKeyCredential.getClientCapabilities(); 41 42 const keys = Object.keys(capabilities); 43 const sortedKeys = [...keys].sort(); 44 assert_array_equals(keys, sortedKeys, "Keys should be sorted lexicographically"); 45 46 for (const key of keys) { 47 assert_equals( 48 typeof capabilities[key], 49 "boolean", 50 `Value for "${key}" should be boolean` 51 ); 52 } 53 }, "Capabilities object has sorted keys and boolean values"); 54 55 promise_test(async t => { 56 const capabilities = await PublicKeyCredential.getClientCapabilities(); 57 58 for (const key of Object.keys(capabilities)) { 59 assert_true( 60 KNOWN_CAPABILITIES_SET.has(key), 61 `Capability "${key}" should be a known capability` 62 ); 63 } 64 }, "Capabilities keys are known"); 65 </script>