Index: chrome/test/data/webui/settings/certificate_manager_page_test.js |
diff --git a/chrome/test/data/webui/settings/certificate_manager_page_test.js b/chrome/test/data/webui/settings/certificate_manager_page_test.js |
index ce2bd7ce0f66b48f4ed8ac52425b50f73cf046c4..0bd95bf435bd311a99f47d95e5f3a64a237273cb 100644 |
--- a/chrome/test/data/webui/settings/certificate_manager_page_test.js |
+++ b/chrome/test/data/webui/settings/certificate_manager_page_test.js |
@@ -244,7 +244,7 @@ cr.define('certificate_manager_page', function() { |
assertEquals(caTrustInfo.email, !args.email); |
assertEquals(caTrustInfo.objSign, !args.objSign); |
// Check that the dialog is closed. |
- assertFalse(dialog.$.dialog.opened); |
+ assertFalse(dialog.$.dialog.open); |
}); |
}); |
@@ -313,7 +313,7 @@ cr.define('certificate_manager_page', function() { |
teardown(function() { dialog.remove(); }); |
test('DeleteSuccess', function() { |
- assertTrue(dialog.$.dialog.opened); |
+ assertTrue(dialog.$.dialog.open); |
// Check that the dialog title includes the certificate name. |
var titleEl = Polymer.dom(dialog.$.dialog).querySelector('.title'); |
assertTrue(titleEl.textContent.includes(model.name)); |
@@ -325,7 +325,7 @@ cr.define('certificate_manager_page', function() { |
function(id) { |
assertEquals(model.id, id); |
// Check that the dialog is closed. |
- assertFalse(dialog.$.dialog.opened); |
+ assertFalse(dialog.$.dialog.open); |
}); |
}); |
@@ -376,7 +376,7 @@ cr.define('certificate_manager_page', function() { |
var passwordInputElement = passwordInputElements[0]; |
var confirmPasswordInputElement = passwordInputElements[1]; |
- assertTrue(dialog.$.dialog.opened); |
+ assertTrue(dialog.$.dialog.open); |
assertTrue(dialog.$.ok.disabled); |
// Test that the 'OK' button is disabled when the password fields are |
@@ -399,7 +399,7 @@ cr.define('certificate_manager_page', function() { |
return browserProxy.whenCalled(methodName).then(function(password) { |
assertEquals(passwordInputElement.value, password); |
// Check that the dialog is closed. |
- assertFalse(dialog.$.dialog.opened); |
+ assertFalse(dialog.$.dialog.open); |
}); |
}); |
@@ -448,7 +448,7 @@ cr.define('certificate_manager_page', function() { |
test('DecryptSuccess', function() { |
var passwordInputElement = |
Polymer.dom(dialog.$.dialog).querySelector('paper-input'); |
- assertTrue(dialog.$.dialog.opened); |
+ assertTrue(dialog.$.dialog.open); |
assertTrue(dialog.$.ok.disabled); |
// Test that the 'OK' button is disabled when the password field is |
@@ -465,7 +465,7 @@ cr.define('certificate_manager_page', function() { |
return browserProxy.whenCalled(methodName).then(function(password) { |
assertEquals(passwordInputElement.value, password); |
// Check that the dialog is closed. |
- assertFalse(dialog.$.dialog.opened); |
+ assertFalse(dialog.$.dialog.open); |
}); |
}); |
@@ -500,7 +500,7 @@ cr.define('certificate_manager_page', function() { |
return eventToPromise(settings.CertificateActionEvent, subentry); |
}; |
- suite('CertificateManagerPageTests', function() { |
+ suite('CertificateSubentryTests', function() { |
setup(function() { |
browserProxy = new TestCertificatesBrowserProxy(); |
settings.CertificatesBrowserProxyImpl.instance_ = browserProxy; |
@@ -713,16 +713,37 @@ cr.define('certificate_manager_page', function() { |
* settings.CertificateActionEvent. |
* @param {string} dialogTagName The type of dialog to test. |
* @param {CertificateActionEventDetail} eventDetail |
+ * @return {!Promise} |
*/ |
function testDialogOpensOnAction(dialogTagName, eventDetail) { |
assertFalse(!!page.shadowRoot.querySelector(dialogTagName)); |
page.fire(settings.CertificateActionEvent, eventDetail); |
Polymer.dom.flush(); |
- assertTrue(!!page.shadowRoot.querySelector(dialogTagName)); |
+ var dialog = page.shadowRoot.querySelector(dialogTagName); |
+ assertTrue(!!dialog); |
+ |
+ if (dialog.$.dialog.open) |
+ return Promise.resolve(); |
+ |
+ // Some dialogs are opened after some async operation to fetch initial |
+ // data. Ensure that the underlying cr-dialog is actually opened by |
+ // listening for changes for the 'open' attribute. |
+ return new Promise(function(resolve, reject) { |
+ var observer = new MutationObserver(function(mutations) { |
Dan Beam
2016/07/28 19:09:35
mind == blown
dpapad
2016/07/28 19:29:31
Ack!
|
+ assertEquals(1, mutations.length); |
+ assertEquals('attributes', mutations[0].type); |
+ assertEquals('open', mutations[0].attributeName); |
+ observer.disconnect(); |
+ resolve(); |
+ }); |
+ observer.observe( |
+ dialog.$.dialog, |
+ {attributes: true, childList: false, characterData: false}); |
+ }); |
} |
test('OpensDialog_DeleteConfirmation', function() { |
- testDialogOpensOnAction( |
+ return testDialogOpensOnAction( |
'settings-certificate-delete-confirmation-dialog', |
/** @type {!CertificateActionEventDetail} */ ({ |
action: CertificateAction.DELETE, |
@@ -732,7 +753,7 @@ cr.define('certificate_manager_page', function() { |
}); |
test('OpensDialog_PasswordEncryption', function() { |
- testDialogOpensOnAction( |
+ return testDialogOpensOnAction( |
'settings-certificate-password-encryption-dialog', |
/** @type {!CertificateActionEventDetail} */ ({ |
action: CertificateAction.EXPORT_PERSONAL, |
@@ -742,7 +763,7 @@ cr.define('certificate_manager_page', function() { |
}); |
test('OpensDialog_PasswordDecryption', function() { |
- testDialogOpensOnAction( |
+ return testDialogOpensOnAction( |
'settings-certificate-password-decryption-dialog', |
/** @type {!CertificateActionEventDetail} */ ({ |
action: CertificateAction.IMPORT, |
@@ -752,7 +773,7 @@ cr.define('certificate_manager_page', function() { |
}); |
test('OpensDialog_CaTrustEdit', function() { |
- testDialogOpensOnAction( |
+ return testDialogOpensOnAction( |
'settings-ca-trust-edit-dialog', |
/** @type {!CertificateActionEventDetail} */ ({ |
action: CertificateAction.EDIT, |
@@ -762,7 +783,7 @@ cr.define('certificate_manager_page', function() { |
}); |
test('OpensDialog_CaTrustImport', function() { |
- testDialogOpensOnAction( |
+ return testDialogOpensOnAction( |
'settings-ca-trust-edit-dialog', |
/** @type {!CertificateActionEventDetail} */ ({ |
action: CertificateAction.IMPORT, |