summaryrefslogtreecommitdiffstats
path: root/editor/libeditor
diff options
context:
space:
mode:
authorNew Tobin Paradigm <email@mattatobin.com>2018-04-14 18:10:57 -0400
committerGitHub <noreply@github.com>2018-04-14 18:10:57 -0400
commit8b779470cd4f0ccc3d8f3050bddc025101837f77 (patch)
tree0ea47c06c204215aa707548c983faee6f24bbd53 /editor/libeditor
parentda3451bb3d3ff98c0c4781757aa010daf0513ab7 (diff)
parent64875ed348082e1ebef107a23c07799b973764c1 (diff)
downloadUXP-8b779470cd4f0ccc3d8f3050bddc025101837f77.tar
UXP-8b779470cd4f0ccc3d8f3050bddc025101837f77.tar.gz
UXP-8b779470cd4f0ccc3d8f3050bddc025101837f77.tar.lz
UXP-8b779470cd4f0ccc3d8f3050bddc025101837f77.tar.xz
UXP-8b779470cd4f0ccc3d8f3050bddc025101837f77.zip
Merge pull request #166 from janekptacijarabaci/html_input_maxlength_1
moebius#53: HTML - input - support for dynamic maxlength
Diffstat (limited to 'editor/libeditor')
-rw-r--r--editor/libeditor/tests/mochitest.ini1
-rw-r--r--editor/libeditor/tests/test_bug1352799.html98
2 files changed, 99 insertions, 0 deletions
diff --git a/editor/libeditor/tests/mochitest.ini b/editor/libeditor/tests/mochitest.ini
index 447fb8b65..9aafa0ac2 100644
--- a/editor/libeditor/tests/mochitest.ini
+++ b/editor/libeditor/tests/mochitest.ini
@@ -224,6 +224,7 @@ skip-if = toolkit == 'android' # bug 1315898
[test_bug1328023.html]
[test_bug1330796.html]
[test_bug1332876.html]
+[test_bug1352799.html]
[test_CF_HTML_clipboard.html]
subsuite = clipboard
diff --git a/editor/libeditor/tests/test_bug1352799.html b/editor/libeditor/tests/test_bug1352799.html
new file mode 100644
index 000000000..daedc40fc
--- /dev/null
+++ b/editor/libeditor/tests/test_bug1352799.html
@@ -0,0 +1,98 @@
+<!DOCTYPE HTML>
+<html>
+<!--
+https://bugzilla.mozilla.org/show_bug.cgi?id=1352799
+-->
+<head>
+ <title>Test for Bug 1352799</title>
+ <script type="application/javascript" src="/tests/SimpleTest/SimpleTest.js"></script>
+ <script type="application/javascript" src="/tests/SimpleTest/EventUtils.js"></script>
+ <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css"/>
+</head>
+<body>
+<a target="_blank" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1352799">Mozilla Bug 1352799</a>
+<p id="display"></p>
+<div id="content">
+<div id="input-container" style="display: none;">
+<input id="input" maxlength="1">
+</div>
+</div>
+<pre id="test">
+<script type="application/javascript">
+
+/** Test for Bug 1352799 **/
+SimpleTest.waitForExplicitFinish();
+SimpleTest.waitForFocus(() => {
+ var input = document.getElementById("input");
+
+ var inputcontainer = document.getElementById('input-container');
+ input.setAttribute('maxlength', 2);
+ inputcontainer.style.display = 'block';
+
+ input.focus();
+
+ synthesizeKey('1', {});
+ synthesizeKey('2', {});
+ synthesizeKey('3', {});
+
+ is(input.value, '12', 'value should be 12 with maxlength = 2');
+
+ input.value = '';
+ inputcontainer.style.display = 'none';
+
+ window.setTimeout(() => {
+ input.setAttribute('maxlength', 4);
+ inputcontainer.style.display = 'block';
+
+ input.focus();
+
+ synthesizeKey('4', {});
+ synthesizeKey('5', {});
+ synthesizeKey('6', {});
+ synthesizeKey('7', {});
+ synthesizeKey('8', {});
+
+ is(input.value, '4567', 'value should be 4567 with maxlength = 4');
+
+ inputcontainer.style.display = 'none';
+
+ window.setTimeout(() => {
+ input.setAttribute('maxlength', 2);
+ inputcontainer.style.display = 'block';
+
+ input.focus();
+
+ synthesizeKey('1', {});
+ synthesizeKey('2', {});
+
+ todo_is(input.value, '45', 'value should be 45 with maxlength = 2');
+
+ input.value = '';
+ inputcontainer.style.display = 'none';
+
+ window.setTimeout(() => {
+ input.removeAttribute('maxlength');
+ inputcontainer.style.display = 'block';
+
+ input.focus();
+
+ synthesizeKey('1', {});
+ synthesizeKey('2', {});
+ synthesizeKey('3', {});
+ synthesizeKey('4', {});
+ synthesizeKey('5', {});
+ synthesizeKey('6', {});
+ synthesizeKey('7', {});
+ synthesizeKey('8', {});
+
+ is(input.value, '12345678', 'value should be 12345678 without maxlength');
+
+ SimpleTest.finish();
+ }, 0);
+ }, 0);
+ }, 0);
+});
+</script>
+</pre>
+</body>
+</html>