diff options
author | Matt A. Tobin <mattatobin@localhost.localdomain> | 2018-02-02 04:16:08 -0500 |
---|---|---|
committer | Matt A. Tobin <mattatobin@localhost.localdomain> | 2018-02-02 04:16:08 -0500 |
commit | 5f8de423f190bbb79a62f804151bc24824fa32d8 (patch) | |
tree | 10027f336435511475e392454359edea8e25895d /toolkit/components/tooltiptext/tests/browser_bug581947.js | |
parent | 49ee0794b5d912db1f95dce6eb52d781dc210db5 (diff) | |
download | UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar.gz UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar.lz UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar.xz UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.zip |
Add m-esr52 at 52.6.0
Diffstat (limited to 'toolkit/components/tooltiptext/tests/browser_bug581947.js')
-rw-r--r-- | toolkit/components/tooltiptext/tests/browser_bug581947.js | 87 |
1 files changed, 87 insertions, 0 deletions
diff --git a/toolkit/components/tooltiptext/tests/browser_bug581947.js b/toolkit/components/tooltiptext/tests/browser_bug581947.js new file mode 100644 index 000000000..034e0a4d1 --- /dev/null +++ b/toolkit/components/tooltiptext/tests/browser_bug581947.js @@ -0,0 +1,87 @@ +function check(aBrowser, aElementName, aBarred, aType) { + return ContentTask.spawn(aBrowser, [aElementName, aBarred, aType], function*([aElementName, aBarred, aType]) { + let e = content.document.createElement(aElementName); + let contentElement = content.document.getElementById('content'); + contentElement.appendChild(e); + + if (aType) { + e.type = aType; + } + + let tttp = Cc["@mozilla.org/embedcomp/default-tooltiptextprovider;1"] + .getService(Ci.nsITooltipTextProvider); + ok(!tttp.getNodeText(e, {}, {}), + "No tooltip should be shown when the element is valid"); + + e.setCustomValidity('foo'); + if (aBarred) { + ok(!tttp.getNodeText(e, {}, {}), + "No tooltip should be shown when the element is barred from constraint validation"); + } else { + ok(tttp.getNodeText(e, {}, {}), + e.tagName + " " +"A tooltip should be shown when the element isn't valid"); + } + + e.setAttribute('title', ''); + ok (!tttp.getNodeText(e, {}, {}), + "No tooltip should be shown if the title attribute is set"); + + e.removeAttribute('title'); + contentElement.setAttribute('novalidate', ''); + ok (!tttp.getNodeText(e, {}, {}), + "No tooltip should be shown if the novalidate attribute is set on the form owner"); + contentElement.removeAttribute('novalidate'); + + e.remove(); + }); +} + +function todo_check(aBrowser, aElementName, aBarred) { + return ContentTask.spawn(aBrowser, [aElementName, aBarred], function*([aElementName, aBarred]) { + let e = content.document.createElement(aElementName); + let contentElement = content.document.getElementById('content'); + contentElement.appendChild(e); + + let caught = false; + try { + e.setCustomValidity('foo'); + } catch (e) { + caught = true; + } + + todo(!caught, "setCustomValidity should exist for " + aElementName); + + e.remove(); + }); +} + +add_task(function*() { + yield BrowserTestUtils.withNewTab({ + gBrowser, + url: "data:text/html,<!DOCTYPE html><html><body><form id='content'></form></body></html>", + }, function*(browser) { + let testData = [ + /* element name, barred */ + [ 'input', false, null], + [ 'textarea', false, null], + [ 'button', true, 'button'], + [ 'button', false, 'submit'], + [ 'select', false, null], + [ 'output', true, null], + [ 'fieldset', true, null], + [ 'object', true, null], + ]; + + for (let data of testData) { + yield check(browser, data[0], data[1], data[2]); + } + + let todo_testData = [ + [ 'keygen', 'false' ], + ]; + + for (let data of todo_testData) { + yield todo_check(browser, data[0], data[1]); + } + }); +}); |