tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

complex.https.html (2976B)


      1 <!DOCTYPE html>
      2 <title>FedCM Flexible Token Formats - Complex Types</title>
      3 <meta name="timeout" content="long">
      4 <link rel="help" href="https://fedidcg.github.io/FedCM">
      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 
     10 <script type="module">
     11 import {fedcm_test,
     12        fedcm_get_flexible_tokens_credential} from '../support/fedcm-helper.sub.js';
     13 
     14 fedcm_test(async t => {
     15  const credential = await fedcm_get_flexible_tokens_credential(t, 'array');
     16  assert_true(credential instanceof IdentityCredential);
     17  assert_true(Array.isArray(credential.token));
     18  assert_array_equals(credential.token, ['token1', 'token2', 'token3']);
     19 }, 'FedCM should accept array tokens');
     20 
     21 fedcm_test(async t => {
     22  const credential = await fedcm_get_flexible_tokens_credential(t, 'empty-array');
     23  assert_true(credential instanceof IdentityCredential);
     24  assert_true(Array.isArray(credential.token));
     25  assert_equals(credential.token.length, 0);
     26 }, 'FedCM should accept empty array tokens');
     27 
     28 fedcm_test(async t => {
     29  const credential = await fedcm_get_flexible_tokens_credential(t, 'mixed-array');
     30  assert_true(credential instanceof IdentityCredential);
     31  assert_true(Array.isArray(credential.token));
     32  assert_equals(credential.token.length, 5);
     33  assert_equals(credential.token[0], 'string');
     34  assert_equals(credential.token[1], 123);
     35  assert_equals(credential.token[2], true);
     36  assert_equals(credential.token[3], null);
     37  assert_equals(typeof credential.token[4], 'object');
     38 }, 'FedCM should accept mixed-type array tokens');
     39 
     40 fedcm_test(async t => {
     41  const credential = await fedcm_get_flexible_tokens_credential(t, 'object');
     42  assert_true(credential instanceof IdentityCredential);
     43  assert_equals(typeof credential.token, 'object');
     44  assert_not_equals(credential.token, null);
     45  assert_equals(credential.token.access_token, 'abc123');
     46  assert_equals(credential.token.token_type, 'Bearer');
     47  assert_equals(credential.token.expires_in, 3600);
     48 }, 'FedCM should accept object tokens');
     49 
     50 fedcm_test(async t => {
     51  const credential = await fedcm_get_flexible_tokens_credential(t, 'empty-object');
     52  assert_true(credential instanceof IdentityCredential);
     53  assert_equals(typeof credential.token, 'object');
     54  assert_not_equals(credential.token, null);
     55  assert_array_equals(Object.keys(credential.token), []);
     56 }, 'FedCM should accept empty object tokens');
     57 
     58 fedcm_test(async t => {
     59  const credential = await fedcm_get_flexible_tokens_credential(t, 'nested-object');
     60  assert_true(credential instanceof IdentityCredential);
     61  assert_equals(typeof credential.token, 'object');
     62  assert_equals(credential.token.user.id, '123');
     63  assert_equals(credential.token.user.profile.name, 'Test User');
     64  assert_equals(credential.token.user.profile.preferences.theme, 'dark');
     65 }, 'FedCM should accept nested object tokens');
     66 
     67 </script>