Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1)

Unified Diff: third_party/WebKit/LayoutTests/http/tests/credentialmanager/credentialscontainer-create-basics.html

Issue 2884703002: Implement CredentialsContainer::create (Closed)
Patch Set: Address comments Created 3 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: third_party/WebKit/LayoutTests/http/tests/credentialmanager/credentialscontainer-create-basics.html
diff --git a/third_party/WebKit/LayoutTests/http/tests/credentialmanager/credentialscontainer-create-basics.html b/third_party/WebKit/LayoutTests/http/tests/credentialmanager/credentialscontainer-create-basics.html
new file mode 100644
index 0000000000000000000000000000000000000000..d9bf371ab8cc9c290d1555ecb81f170bdf6e596c
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/http/tests/credentialmanager/credentialscontainer-create-basics.html
@@ -0,0 +1,117 @@
+<!DOCTYPE html>
+<title>Credential Manager: create() basics.</title>
+<script src="../resources/testharness.js"></script>
+<script src="../resources/testharnessreport.js"></script>
+<script src="/serviceworker/resources/interfaces.js"></script>
+<script>
+(function() {
Mike West 2017/05/17 06:57:57 You don't need this wrapper, here or elsewhere.
jdoerrie 2017/05/17 11:29:09 Done.
+ promise_test(function(t) {
+ return promise_rejects(t, "NotSupportedError",
+ navigator.credentials.create());
+ }, "navigator.credentials.create() with no argument.");
+}());
+
+(function() {
+ promise_test(function(t) {
+ return promise_rejects(t, "NotSupportedError",
+ navigator.credentials.create({}));
Mike West 2017/05/17 06:57:57 Please add a test for `{password: { /* invalid pas
jdoerrie 2017/05/17 11:29:09 Done.
+ }, "navigator.credentials.create() with empty argument.");
+}());
+
+(function() {
+ 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.idName, 'username');
+ assert_equals(credential.passwordName, 'password');
Mike West 2017/05/17 06:57:57 Since this test doesn't rely on the internal mocks
jdoerrie 2017/05/17 08:53:22 Sound good :) Just to make sure I understand you c
+ assert_equals(credential.additionalData, null);
+ });
+ }, "navigator.credentials.create() with valid PasswordCredentialData");
+}());
+
+(function() {
+ 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.idName, 'theId');
+ assert_equals(credential.passwordName, 'thePassword');
+ assert_equals(credential.type, 'password');
+
+ assert_equals(credential.additionalData.get('theId'), 'musterman');
+ assert_equals(credential.additionalData.get('thePassword'), 'sekrit');
+ assert_equals(credential.additionalData.get('theIcon'),
+ 'https://example.com/photo');
+ assert_equals(credential.additionalData.get('theName'), 'friendly name');
+ assert_equals(credential.additionalData.get('theExtraField'), 'extra');
+ });
+ }, "navigator.credentials.create() with valid HTMLFormElement");
+}());
+
+(function() {
+ promise_test(function(t) {
+ return promise_rejects(t, new TypeError(),
+ navigator.credentials.create({password: "bogus password data"}));
+ }, "navigator.credentials.create() with bogus password data");
+}());
+
+(function() {
+ 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");
+}());
+
+(function() {
+ promise_test(function(t) {
+ return promise_rejects(t, new TypeError(),
+ navigator.credentials.create({federated: "bogus federated data"}));
+ }, "navigator.credentials.create() with bogus federated data");
+}());
+
+(function() {
+ promise_test(function(t) {
+ var credential_data = {
+ id: 'id',
+ password: 'pencil',
+ };
+
+ var federated_data = {
+ id: 'id',
+ provider: 'https://example.com/',
+ };
+
+ return promise_rejects(t, "NotSupportedError",
+ navigator.credentials.create({password: credential_data,
+ federated: federated_data}));
+ }, "navigator.credentials.create() with both PasswordCredentialData and FederatedCredentialData");
+}());
+</script>

Powered by Google App Engine
This is Rietveld 408576698