mirror of
https://repo.dactyloidae.xyz/Dactyloidae/UXP.git
synced 2026-09-05 15:28:39 +09:00
import FIREFOX_52_6_0esr_RELEASE from mozilla-esr52 hg repo
This commit is contained in:
commit
dcd9973243
150858 changed files with 23884658 additions and 0 deletions
275
dom/html/test/forms/test_input_attributes_reflection.html
Normal file
275
dom/html/test/forms/test_input_attributes_reflection.html
Normal file
|
|
@ -0,0 +1,275 @@
|
|||
<!DOCTYPE HTML>
|
||||
<html>
|
||||
<head>
|
||||
<title>Test for HTMLInputElement attributes reflection</title>
|
||||
<script type="application/javascript" src="/tests/SimpleTest/SimpleTest.js"></script>
|
||||
<script type="application/javascript" src="../reflect.js"></script>
|
||||
<link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css"/>
|
||||
</head>
|
||||
<body>
|
||||
<p id="display"></p>
|
||||
<div id="content">
|
||||
</div>
|
||||
<pre id="test">
|
||||
<script type="application/javascript">
|
||||
|
||||
/** Test for HTMLInputElement attributes reflection **/
|
||||
|
||||
// TODO: maybe make those reflections be tested against all input types.
|
||||
|
||||
function testWidthHeight(attr) {
|
||||
var element = document.createElement('input');
|
||||
is(element[attr], 0, attr + ' always returns 0 if not type=image');
|
||||
element.setAttribute(attr, '42');
|
||||
is(element[attr], 0, attr + ' always returns 0 if not type=image');
|
||||
is(element.getAttribute(attr), '42');
|
||||
element[attr] = 0;
|
||||
is(element.getAttribute(attr), '0', 'setting ' + attr + ' changes the content attribute');
|
||||
element[attr] = 12;
|
||||
is(element.getAttribute(attr), '12', 'setting ' + attr + ' changes the content attribute');
|
||||
|
||||
element.removeAttribute(attr);
|
||||
is(element.getAttribute(attr), null);
|
||||
|
||||
element = document.createElement('input');
|
||||
element.type = 'image';
|
||||
document.getElementById('content').appendChild(element);
|
||||
isnot(element[attr], 0, attr + ' represents the dimension of the element if type=image');
|
||||
|
||||
element.setAttribute(attr, '42');
|
||||
isnot(element[attr], 0, attr + ' represents the dimension of the element if type=image');
|
||||
isnot(element[attr], 42, attr + ' represents the dimension of the element if type=image');
|
||||
is(element.getAttribute(attr), '42');
|
||||
element[attr] = 0;
|
||||
is(element.getAttribute(attr), '0', 'setting ' + attr + ' changes the content attribute');
|
||||
element[attr] = 12;
|
||||
is(element.getAttribute(attr), '12', 'setting ' + attr + ' changes the content attribute');
|
||||
|
||||
element.removeAttribute(attr);
|
||||
is(element.getAttribute(attr), null);
|
||||
}
|
||||
|
||||
// .accept
|
||||
reflectString({
|
||||
element: document.createElement("input"),
|
||||
attribute: "accept",
|
||||
otherValues: [ "audio/*", "video/*", "image/*", "image/png",
|
||||
"application/msword", "appplication/pdf" ],
|
||||
});
|
||||
|
||||
// .alt
|
||||
reflectString({
|
||||
element: document.createElement("input"),
|
||||
attribute: "alt",
|
||||
});
|
||||
|
||||
// .autocomplete
|
||||
reflectLimitedEnumerated({
|
||||
element: document.createElement("input"),
|
||||
attribute: "autocomplete",
|
||||
validValues: [ "on", "off" ],
|
||||
invalidValues: [ "", "default", "foo", "tulip" ],
|
||||
});
|
||||
|
||||
// .autofocus
|
||||
reflectBoolean({
|
||||
element: document.createElement("input"),
|
||||
attribute: "autofocus",
|
||||
});
|
||||
|
||||
// .defaultChecked
|
||||
reflectBoolean({
|
||||
element: document.createElement("input"),
|
||||
attribute: { idl: "defaultChecked", content: "checked" },
|
||||
});
|
||||
|
||||
// .checked doesn't reflect a content attribute.
|
||||
|
||||
// .dirName
|
||||
todo("dirName" in document.createElement("input"),
|
||||
"dirName isn't implemented yet");
|
||||
|
||||
// .disabled
|
||||
reflectBoolean({
|
||||
element: document.createElement("input"),
|
||||
attribute: "disabled",
|
||||
});
|
||||
|
||||
// TODO: form (HTMLFormElement)
|
||||
// TODO: files (FileList)
|
||||
// TODO: formAction (URL). But note that we currently reflect it weirdly; see
|
||||
// dom/html/test/test_bug607145.html
|
||||
|
||||
// .formEnctype
|
||||
reflectLimitedEnumerated({
|
||||
element: document.createElement("input"),
|
||||
attribute: "formEnctype",
|
||||
validValues: [ "application/x-www-form-urlencoded", "multipart/form-data",
|
||||
"text/plain" ],
|
||||
invalidValues: [ "", "foo", "tulip", "multipart/foo" ],
|
||||
defaultValue: { invalid: "application/x-www-form-urlencoded", missing: "" }
|
||||
});
|
||||
|
||||
// .formMethod
|
||||
reflectLimitedEnumerated({
|
||||
element: document.createElement("input"),
|
||||
attribute: "formMethod",
|
||||
validValues: [ "get", "post" ],
|
||||
invalidValues: [ "", "foo", "tulip" ],
|
||||
defaultValue: { invalid: "get", missing: "" }
|
||||
});
|
||||
|
||||
// .formNoValidate
|
||||
reflectBoolean({
|
||||
element: document.createElement("input"),
|
||||
attribute: "formNoValidate",
|
||||
});
|
||||
|
||||
// .formTarget
|
||||
reflectString({
|
||||
element: document.createElement("input"),
|
||||
attribute: "formTarget",
|
||||
otherValues: [ "_blank", "_self", "_parent", "_top" ],
|
||||
});
|
||||
|
||||
// .height
|
||||
testWidthHeight('height');
|
||||
|
||||
// .indeterminate doesn't reflect a content attribute.
|
||||
|
||||
// .inputmode
|
||||
if (SpecialPowers.getBoolPref("dom.forms.inputmode")) {
|
||||
reflectLimitedEnumerated({
|
||||
element: document.createElement("input"),
|
||||
attribute: "inputMode",
|
||||
validValues: [ "numeric", "digit", "uppercase", "lowercase", "titlecase", "autocapitalized", "auto" ],
|
||||
invalidValues: [ "", "foo", "tulip" ],
|
||||
defaultValue: "auto"
|
||||
});
|
||||
}
|
||||
|
||||
// TODO: list (HTMLElement)
|
||||
|
||||
// .max
|
||||
reflectString({
|
||||
element: document.createElement('input'),
|
||||
attribute: 'max',
|
||||
});
|
||||
|
||||
// .maxLength
|
||||
reflectInt({
|
||||
element: document.createElement("input"),
|
||||
attribute: "maxLength",
|
||||
nonNegative: true,
|
||||
});
|
||||
|
||||
// .min
|
||||
reflectString({
|
||||
element: document.createElement('input'),
|
||||
attribute: 'min',
|
||||
});
|
||||
|
||||
// .multiple
|
||||
reflectBoolean({
|
||||
element: document.createElement("input"),
|
||||
attribute: "multiple",
|
||||
});
|
||||
|
||||
// .name
|
||||
reflectString({
|
||||
element: document.createElement("input"),
|
||||
attribute: "name",
|
||||
otherValues: [ "isindex", "_charset_" ],
|
||||
});
|
||||
|
||||
// .pattern
|
||||
reflectString({
|
||||
element: document.createElement("input"),
|
||||
attribute: "pattern",
|
||||
otherValues: [ "[0-9][A-Z]{3}" ],
|
||||
});
|
||||
|
||||
// .placeholder
|
||||
reflectString({
|
||||
element: document.createElement("input"),
|
||||
attribute: "placeholder",
|
||||
otherValues: [ "foo\nbar", "foo\rbar", "foo\r\nbar" ],
|
||||
});
|
||||
|
||||
// .readOnly
|
||||
reflectBoolean({
|
||||
element: document.createElement("input"),
|
||||
attribute: "readOnly",
|
||||
});
|
||||
|
||||
// .required
|
||||
reflectBoolean({
|
||||
element: document.createElement("input"),
|
||||
attribute: "required",
|
||||
});
|
||||
|
||||
// .size
|
||||
reflectUnsignedInt({
|
||||
element: document.createElement("input"),
|
||||
attribute: "size",
|
||||
nonZero: true,
|
||||
defaultValue: 20,
|
||||
});
|
||||
|
||||
// .src (URL)
|
||||
reflectURL({
|
||||
element: document.createElement('input'),
|
||||
attribute: 'src',
|
||||
});
|
||||
|
||||
// .step
|
||||
reflectString({
|
||||
element: document.createElement('input'),
|
||||
attribute: 'step',
|
||||
});
|
||||
|
||||
// .type
|
||||
reflectLimitedEnumerated({
|
||||
element: document.createElement("input"),
|
||||
attribute: "type",
|
||||
validValues: [ "hidden", "text", "search", "tel", "url", "email", "password",
|
||||
"checkbox", "radio", "file", "submit", "image", "reset",
|
||||
"button", "date", "time", "number", "range", "color", "month",
|
||||
"week", "datetime-local" ],
|
||||
invalidValues: [ "this-is-probably-a-wrong-type", "", "tulip" ],
|
||||
defaultValue: "text"
|
||||
});
|
||||
|
||||
// .defaultValue
|
||||
reflectString({
|
||||
element: document.createElement("input"),
|
||||
attribute: { idl: "defaultValue", content: "value" },
|
||||
otherValues: [ "foo\nbar", "foo\rbar", "foo\r\nbar" ],
|
||||
});
|
||||
|
||||
// .value doesn't reflect a content attribute.
|
||||
|
||||
// .valueAsDate
|
||||
is("valueAsDate" in document.createElement("input"), true,
|
||||
"valueAsDate should be available");
|
||||
|
||||
// Deeper check will be done with bug 763305.
|
||||
is('valueAsNumber' in document.createElement("input"), true,
|
||||
"valueAsNumber should be available");
|
||||
|
||||
// .selectedOption
|
||||
todo("selectedOption" in document.createElement("input"),
|
||||
"selectedOption isn't implemented yet");
|
||||
|
||||
// .width
|
||||
testWidthHeight('width');
|
||||
|
||||
// .willValidate doesn't reflect a content attribute.
|
||||
// .validity doesn't reflect a content attribute.
|
||||
// .validationMessage doesn't reflect a content attribute.
|
||||
// .labels doesn't reflect a content attribute.
|
||||
|
||||
</script>
|
||||
</pre>
|
||||
</body>
|
||||
</html>
|
||||
Loading…
Add table
Add a link
Reference in a new issue