products/Sources/formale Sprachen/C/Firefox/dom/html/test/test_formSubmission2.html
<!
DOCTYPE HTML >
<
html >
<!--
https://bugzilla.mozilla.org/show_bug.cgi?id=523771
-->
<
head >
<
title >Test for Bug 523771</
title >
<
script src=
"/tests/SimpleTest/SimpleTest.js" ></
script >
<
script 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=523771 " >Mozill
a Bug 523771</a>
<p id="display" ></p>
<iframe name="target_iframe" id="target_iframe" ></iframe >
<form action="form_submit_server.sjs" target="target_iframe" id="form"
method="POST" enctype="multipart/form-data" >
<table >
<tr >
<td >Control type</td >
<td >Name and value</td >
<td >Name, empty value</td >
<td >Name, no value</td >
<td >Empty name, with value</td >
<td >No name, with value</td >
<td >No name or value</td >
</tr >
<tr >
<td >Submit input </td >
<td ><input type=submit name="n1_1" value="v1_1" ></td >
<td ><input type=submit name="n1_2" value="" ></td >
<td ><input type=submit name="n1_3" ></td >
<td ><input type=submit name="" value="v1_4" ></td >
<td ><input type=submit value="v1_5" ></td >
<td ><input type=submit></td >
</tr >
<tr >
<td >Image input </td >
<td ><input type=image src="file_formSubmission_img.jpg" name="n2_1" value="v2_1" ></td >
<td ><input type=image src="file_formSubmission_img.jpg" name="n2_2" value="" ></td >
<td ><input type=image src="file_formSubmission_img.jpg" name="n2_3" ></td >
<td ><input type=image src="file_formSubmission_img.jpg" name="" value="v2_4" ></td >
<td ><input type=image src="file_formSubmission_img.jpg" value="v2_5" ></td >
<td ><input type=image src="file_formSubmission_img.jpg" ></td >
</tr >
<tr >
<td >Submit button </td >
<td ><button type=submit name="n3_1" value="v3_1" ></button ></td >
<td ><button type=submit name="n3_2" value="" ></button ></td >
<td ><button type=submit name="n3_3" ></button ></td >
<td ><button type=submit name="" value="v3_4" ></button ></td >
<td ><button type=submit value="v3_5" ></button ></td >
<td ><button type=submit ></button ></td >
</tr >
<tr >
<td >Submit button with text</td >
<td ><button type=submit name="n4_1" value="v4_1" >text here</button ></td >
<td ><button type=submit name="n4_2" value="" >text here</button ></td >
<td ><button type=submit name="n4_3" >text here</button ></td >
<td ><button type=submit name="" value="v4_4" >text here</button ></td >
<td ><button type=submit value="v4_5" >text here</button ></td >
<td ><button type=submit>text here</button ></td >
</tr >
</table >
</form >
<pre id="test" >
<script class="testbody" type="text/javascript" >
var gen = runTest();
SimpleTest.waitForExplicitFinish();
addLoadEvent(function() {
gen.next();
});
var expectedSub = [
// Submit input
[{ name: "n1_1" , value: "v1_1" }],
[{ name: "n1_2" , value: "" }],
[{ name: "n1_3" , value: "Submit Query" }],
[],
[],
[],
// Image input
[{ name: "n2_1.x" , value: "10" },
{ name: "n2_1.y" , value: "7" }],
[{ name: "n2_2.x" , value: "10" },
{ name: "n2_2.y" , value: "7" }],
[{ name: "n2_3.x" , value: "10" },
{ name: "n2_3.y" , value: "7" }],
[{ name: "x" , value: "10" },
{ name: "y" , value: "7" }],
[{ name: "x" , value: "10" },
{ name: "y" , value: "7" }],
[{ name: "x" , value: "10" },
{ name: "y" , value: "7" }],
// Submit button
[{ name: "n3_1" , value: "v3_1" }],
[{ name: "n3_2" , value: "" }],
[{ name: "n3_3" , value: "" }],
[],
[],
[],
// Submit button with text
[{ name: "n4_1" , value: "v4_1" }],
[{ name: "n4_2" , value: "" }],
[{ name: "n4_3" , value: "" }],
[],
[],
[],
];
function checkSubmission(sub , expected) {
function getPropCount(o) {
var x, l = 0;
for (x in o) ++l;
return l;
}
is(sub .length, expected.length,
"Correct number of items" );
var i;
for (i = 0; i < expected.length; ++i) {
if (!("fileName" in expected[i])) {
is(sub [i].headers["Content-Disposition" ],
"form-data; name=\" " + expected[i].name + " \"" ,
"Correct name" );
is (getPropCount(sub [i].headers), 1,
"Wrong number of headers" );
}
else {
is(sub [i].headers["Content-Disposition" ],
"form-data; name=\" " + expected[i].name + " \"; filename=\" " +
expected[i].fileName + "\" ",
"Correct name" );
is(sub [i].headers["Content-Type" ],
expected[i].contentType,
"Correct content type" );
is (getPropCount(sub [i].headers), 2,
"Wrong number of headers" );
}
is(sub [i].body ,
expected[i].value,
"Correct value" );
}
}
function clickImage(aTarget, aX, aY)
{
aTarget.style .position = "absolute" ;
aTarget.style .top = "0" ;
aTarget.style .left = "0" ;
aTarget.offsetTop;
var wu = SpecialPowers.getDOMWindowUtils(aTarget.ownerDocument.defaultView);
wu.sendMouseEvent('mousedown' , aX, aY, 0, 1, 0);
wu.sendMouseEvent('mouseup' , aX, aY, 0, 0, 0);
aTarget.style .position = "" ;
aTarget.style .top = "" ;
aTarget.style .left = "" ;
}
function* runTest() {
// Make normal submission
var form = $("form" );
var iframe = $("target_iframe" );
iframe .onload = function() { gen.next(); };
var elements = form .querySelectorAll("input, button" );
is(elements.length, expectedSub.length,
"tests vs. expected out of sync" );
var i;
for (i = 0; i < elements.length && i < expectedSub.length; ++i) {
elem = elements[i];
if (elem.localName != "input" || elem.type != "image" ) {
elem.click();
}
else {
clickImage(elem, 10, 7);
}
yield undefined;
var submission = JSON.parse(iframe .contentDocument.documentElement.textContent);
checkSubmission(submission, expectedSub[i]);
}
// Disabled controls
var i;
for (i = 0; i < elements.length && i < expectedSub.length; ++i) {
elem = elements[i];
form .onsubmit = function() {
elem.disabled = true;
}
if (elem.localName != "input" || elem.type != "image" ) {
elem.click();
}
else {
clickImage(elem, 10, 7);
}
yield undefined;
is(elem.disabled, true, "didn't disable" );
elem.disabled = false;
form .onsubmit = undefined;
var submission = JSON.parse(iframe .contentDocument.documentElement.textContent);
checkSubmission(submission, []);
}
SimpleTest.finish();
}
</script >
</pre >
</body >
</html >
Messung V0.5 C=98 H=99 G=98
¤ Dauer der Verarbeitung: 0.13 Sekunden
(vorverarbeitet)
¤
*© Formatika GbR, Deutschland