File: enrollment.https.html

package info (click to toggle)
thunderbird 1%3A140.4.0esr-1
  • links: PTS, VCS
  • area: main
  • in suites: forky
  • size: 4,609,432 kB
  • sloc: cpp: 7,672,442; javascript: 5,901,613; ansic: 3,898,954; python: 1,413,343; xml: 653,997; asm: 462,286; java: 180,927; sh: 113,489; makefile: 20,460; perl: 14,288; objc: 13,059; yacc: 4,583; pascal: 3,352; lex: 1,720; ruby: 1,222; exp: 762; sql: 715; awk: 580; php: 436; lisp: 430; sed: 70; csh: 10
file content (64 lines) | stat: -rw-r--r-- 2,821 bytes parent folder | download | duplicates (17)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
<!DOCTYPE html>
<meta charset="utf-8">
<meta name="timeout" content="long">
<title>Test for registering a PublicKeyCredential with "payment" extension</title>
<link rel="help" href="https://w3c.github.io/secure-payment-confirmation/#client-extension-processing-registration">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/resources/testdriver.js"></script>
<script src="/resources/testdriver-vendor.js"></script>
<script src=../webauthn/helpers.js></script>
<body></body>
<script>
class CreatePaymentCredentialsTest extends CreateCredentialsTest {
  constructor(authenticatorSelection) {
    super('options.publicKey.extensions', {
      payment: { isPayment: true },
    });
    this.testObject.options.publicKey.authenticatorSelection = {
      userVerification: 'required',
      residentKey: 'required',
      authenticatorAttachment: 'platform',
    };
    authenticatorSelection ||= {};
    // Override specific fields.
    extendObject(this.testObject.options.publicKey.authenticatorSelection, authenticatorSelection);
  }
}

standardSetup(function() {
  // good creates
  new CreatePaymentCredentialsTest().runTest('Payment credential is created successfully.');
  new CreatePaymentCredentialsTest({residentKey: 'preferred'})
      .runTest('Payment credential allows residentKey to be "preferred".');

  // bad creates
  new CreatePaymentCredentialsTest({userVerification: 'preferred'})
      .runTest('Payment credential requires userVerification to be "required", not "preferred".', "NotSupportedError");
  new CreatePaymentCredentialsTest({userVerification: 'discouraged'})
      .runTest('Payment credential requires userVerification to be "required", not "discouraged".', "NotSupportedError");
  new CreatePaymentCredentialsTest({residentKey: 'discouraged'})
      .runTest('Payment credential does not allow residentKey to be "discouraged".', "NotSupportedError");
  new CreatePaymentCredentialsTest({authenticatorAttachment: 'cross-platform'})
      .runTest('Payment credential requires authenticatorAttachment to be "platform", not "cross-platform".', "NotSupportedError");

  // abort creates
  let abortController = new AbortController();
  abortController.abort();
  new CreatePaymentCredentialsTest()
      .modify("options.signal", abortController.signal)
      .runTest("Payment credential abort without reason", "AbortError");

  abortController = new AbortController();
  abortController.abort(new Error('error'));
  new CreatePaymentCredentialsTest()
      .modify("options.signal", abortController.signal)
      .runTest("Payment credential abort reason with Error", Error);
}, {
  protocol: 'ctap2_1',
  transport: 'internal',
  hasResidentKey: true,
  hasUserVerification: true,
  isUserVerified: true,
});
</script>