| <!DOCTYPE html> | |
| <title>Credential Management API: create() basics.</title> | |
| <script src="/resources/testharness.js"></script> | |
| <script src="/resources/testharnessreport.js"></script> | |
| <script> | |
| promise_test(function(t) { | |
| return promise_rejects_dom(t, "NotSupportedError", | |
| navigator.credentials.create()); | |
| }, "navigator.credentials.create() with no argument."); | |
| promise_test(function(t) { | |
| return promise_rejects_dom(t, "NotSupportedError", | |
| navigator.credentials.create({})); | |
| }, "navigator.credentials.create() with empty argument."); | |
| promise_test(function(t) { | |
| var credential_data = { | |
| id: 'id', | |
| password: 'pencil', | |
| }; | |
| return navigator.credentials.create({password: credential_data}) | |
| .then(function(credential) { | |
| assert_equals(credential.id, 'id'); | |
| assert_equals(credential.name, ''); | |
| assert_equals(credential.iconURL, ''); | |
| assert_equals(credential.type, 'password'); | |
| assert_equals(credential.password, 'pencil'); | |
| }); | |
| }, "navigator.credentials.create() with valid PasswordCredentialData"); | |
| promise_test(function(t) { | |
| var f = document.createElement('form'); | |
| f.innerHTML = "<input type='text' name='theId' value='musterman' autocomplete='username'>" | |
| + "<input type='text' name='thePassword' value='sekrit' autocomplete='current-password'>" | |
| + "<input type='text' name='theIcon' value='https://example.com/photo' autocomplete='photo'>" | |
| + "<input type='text' name='theExtraField' value='extra'>" | |
| + "<input type='text' name='theName' value='friendly name' autocomplete='name'>"; | |
| return navigator.credentials.create({password: f}) | |
| .then(function(credential) { | |
| assert_equals(credential.id, 'musterman'); | |
| assert_equals(credential.name, 'friendly name'); | |
| assert_equals(credential.iconURL, 'https://example.com/photo'); | |
| assert_equals(credential.type, 'password'); | |
| assert_equals(credential.password, 'sekrit'); | |
| }); | |
| }, "navigator.credentials.create() with valid HTMLFormElement"); | |
| promise_test(function(t) { | |
| return promise_rejects_js(t, TypeError, | |
| navigator.credentials.create({password: "bogus password data"})); | |
| }, "navigator.credentials.create() with bogus password data"); | |
| promise_test(function(t) { | |
| var federated_data = { | |
| id: 'id', | |
| provider: 'https://example.com/', | |
| }; | |
| return navigator.credentials.create({federated: federated_data}) | |
| .then(function(credential) { | |
| assert_equals(credential.id, 'id'); | |
| assert_equals(credential.name, ''); | |
| assert_equals(credential.iconURL, ''); | |
| assert_equals(credential.type, 'federated'); | |
| }); | |
| }, "navigator.credentials.create() with valid FederatedCredentialData"); | |
| promise_test(function(t) { | |
| return promise_rejects_js(t, TypeError, | |
| navigator.credentials.create({federated: "bogus federated data"})); | |
| }, "navigator.credentials.create() with bogus federated data"); | |
| promise_test(function(t) { | |
| return promise_rejects_js(t, TypeError, | |
| navigator.credentials.create({publicKey: "bogus publicKey data"})); | |
| }, "navigator.credentials.create() with bogus publicKey data"); | |
| promise_test(function(t) { | |
| var credential_data = { | |
| id: 'id', | |
| password: 'pencil', | |
| }; | |
| var federated_data = { | |
| id: 'id', | |
| provider: 'https://example.com/', | |
| }; | |
| return promise_rejects_dom(t, "NotSupportedError", | |
| navigator.credentials.create({ | |
| password: credential_data, | |
| federated: federated_data, | |
| })); | |
| }, "navigator.credentials.create() with both PasswordCredentialData and FederatedCredentialData"); | |
| promise_test(function(t) { | |
| return promise_rejects_js(t, TypeError, | |
| navigator.credentials.create({ | |
| password: "bogus password data", | |
| federated: "bogus federated data", | |
| })); | |
| }, "navigator.credentials.create() with bogus password and federated data"); | |
| promise_test(function(t) { | |
| return promise_rejects_js(t, TypeError, | |
| navigator.credentials.create({ | |
| federated: "bogus federated data", | |
| publicKey: "bogus publicKey data", | |
| })); | |
| }, "navigator.credentials.create() with bogus federated and publicKey data"); | |
| promise_test(function(t) { | |
| return promise_rejects_js(t, TypeError, | |
| navigator.credentials.create({ | |
| password: "bogus password data", | |
| publicKey: "bogus publicKey data", | |
| })); | |
| }, "navigator.credentials.create() with bogus password and publicKey data"); | |
| promise_test(function(t) { | |
| return promise_rejects_js(t, TypeError, | |
| navigator.credentials.create({ | |
| password: "bogus password data", | |
| federated: "bogus federated data", | |
| publicKey: "bogus publicKey data", | |
| })); | |
| }, "navigator.credentials.create() with bogus password, federated, and publicKey data"); | |
| promise_test(function(t) { | |
| return promise_rejects_dom(t, "NotSupportedError", | |
| navigator.credentials.create({bogus_key: "bogus data"})); | |
| }, "navigator.credentials.create() with bogus data"); | |
| </script> |