diff options
Diffstat (limited to '')
-rw-r--r-- | editor/libeditor/tests/test_password_paste.html | 65 |
1 files changed, 65 insertions, 0 deletions
diff --git a/editor/libeditor/tests/test_password_paste.html b/editor/libeditor/tests/test_password_paste.html new file mode 100644 index 0000000000..817de9b277 --- /dev/null +++ b/editor/libeditor/tests/test_password_paste.html @@ -0,0 +1,65 @@ +<!DOCTYPE HTML> +<html> +<head> + <title>Test for masking password</title> + <script src="/tests/SimpleTest/SimpleTest.js"></script> + <script src="/tests/SimpleTest/WindowSnapshot.js"></script> + <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css"/> +</head> +<body> +<p id="display"></p> +<div id="content" style="display: none;"> + +</div> + +<input type="password" id="input1" value="abcdef"> + +<pre id="test"> +<script class="testbody" type="application/javascript"> +function getEditor() { + return SpecialPowers.wrap(document.getElementById("input1")).editor; +} + +function getLoadContext() { + return SpecialPowers.wrap(window).docShell.QueryInterface( + SpecialPowers.Ci.nsILoadContext); +} + +function pasteText(str) { + const Cc = SpecialPowers.Cc; + const Ci = SpecialPowers.Ci; + let trans = Cc["@mozilla.org/widget/transferable;1"]. + createInstance(Ci.nsITransferable); + trans.init(getLoadContext()); + let s = Cc["@mozilla.org/supports-string;1"]. + createInstance(Ci.nsISupportsString); + s.data = str; + trans.setTransferData("text/plain", s); + let inputEvent = null; + window.addEventListener("input", aEvent => { inputEvent = aEvent; }, {once: true}); + getEditor().pasteTransferable(trans); + is(inputEvent.type, "input", "input event should be fired"); + is(inputEvent.inputType, "insertFromPaste", "inputType should be insertFromPaste"); + is(inputEvent.data, str, `data should be "${str}"`); + is(inputEvent.dataTransfer, null, "dataTransfer should be null on password field"); +} + +SimpleTest.waitForFocus(async () => { + let input1 = document.getElementById("input1"); + input1.focus(); + let reference = snapshotWindow(window, false); + + // Bug 1501376 - Password should be masked immediately when pasting text + input1.value = ""; + pasteText("abcdef"); + assertSnapshots(reference, snapshotWindow(window), true, null, + "Password should be masked immediately when pasting text", + "reference is masked"); + SimpleTest.finish(); +}); + +SimpleTest.waitForExplicitFinish(); +</script> +</pre> +</body> +</html> |