
PASS navigator.credentials.create() with no argument.
PASS navigator.credentials.create() with empty argument.
FAIL navigator.credentials.create() with valid PasswordCredentialData promise_test: Unhandled rejection with value: object "NotSupportedError: Only PublicKeyCredential is supported."
FAIL navigator.credentials.create() with valid HTMLFormElement promise_test: Unhandled rejection with value: object "NotSupportedError: Only PublicKeyCredential is supported."
FAIL navigator.credentials.create() with bogus password data promise_rejects_js: function "function () { throw e }" threw object "NotSupportedError: Only PublicKeyCredential is supported." ("NotSupportedError") expected instance of function "function TypeError() {
    [native code]
}" ("TypeError")
FAIL navigator.credentials.create() with valid FederatedCredentialData promise_test: Unhandled rejection with value: object "NotSupportedError: Only PublicKeyCredential is supported."
FAIL navigator.credentials.create() with bogus federated data promise_rejects_js: function "function () { throw e }" threw object "NotSupportedError: Only PublicKeyCredential is supported." ("NotSupportedError") expected instance of function "function TypeError() {
    [native code]
}" ("TypeError")
PASS navigator.credentials.create() with bogus publicKey data
PASS navigator.credentials.create() with both PasswordCredentialData and FederatedCredentialData
FAIL navigator.credentials.create() with bogus password and federated data promise_rejects_js: function "function () { throw e }" threw object "NotSupportedError: Only PublicKeyCredential is supported." ("NotSupportedError") expected instance of function "function TypeError() {
    [native code]
}" ("TypeError")
PASS navigator.credentials.create() with bogus federated and publicKey data
PASS navigator.credentials.create() with bogus password and publicKey data
PASS navigator.credentials.create() with bogus password, federated, and publicKey data
PASS navigator.credentials.create() with bogus data

