1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
|
<!DOCTYPE HTML>
<html>
<!--
https://bugzilla.mozilla.org/show_bug.cgi?id=879319
-->
<head>
<title>Test for Bug 879319</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>
<a target="_blank" href="https://bugzilla.mozilla.org/show_bug.cgi?id=879319">Mozilla Bug 879319</a>
<p id="msg"></p>
<form id="form">
<img id="img0" name="bar0" />
</form>
<input id="input0" name="foo0" form="form" />
<input id="input1" name="foo1" form="form" />
<input id="input2" name="foo2" form="form" />
<pre id="test">
<script type="application/javascript">
/** Test for Bug 879319 **/
var input0 = document.getElementById("input0");
ok(input0, "input0 exists");
var form = document.getElementById("form");
ok(form, "form exists");
is(form.foo0, input0, "Form.foo0 should exist");
ok("foo0" in form.elements, "foo0 in form.elements");
is(input0.form, form, "input0.form is form");
input0.setAttribute("name", "tmp0");
ok("tmp0" in form.elements, "tmp0 is in form.elements");
ok(!("foo0" in form.elements), "foo0 is not in form.elements");
is(form.tmp0, input0, "Form.tmp0 == input0");
is(form.foo0, input0, "Form.foo0 is still here");
input0.setAttribute("name", "tmp1");
ok("tmp1" in form.elements, "tmp1 is in form.elements");
ok(!("tmp0" in form.elements), "tmp0 is not in form.elements");
ok(!("foo0" in form.elements), "foo0 is not in form.elements");
is(form.tmp0, input0, "Form.tmp0 == input0");
is(form.tmp1, input0, "Form.tmp1 == input0");
is(form.foo0, input0, "Form.foo0 is still here");
input0.setAttribute("form", "");
ok(!("foo0" in form.elements), "foo0 is not in form.elements");
is(form.foo0, undefined, "Form.foo0 should not still be here");
is(form.tmp0, undefined, "Form.tmp0 should not still be here");
is(form.tmp1, undefined, "Form.tmp1 should not still be here");
var input1 = document.getElementById("input1");
ok(input1, "input1 exists");
is(form.foo1, input1, "Form.foo1 should exist");
ok("foo1" in form.elements, "foo1 in form.elements");
is(input1.form, form, "input1.form is form");
input1.setAttribute("name", "foo0");
ok("foo0" in form.elements, "foo0 is in form.elements");
is(form.foo0, input1, "Form.foo0 should be input1");
is(form.foo1, input1, "Form.foo1 should be input1");
var input2 = document.getElementById("input2");
ok(input2, "input2 exists");
is(form.foo2, input2, "Form.foo2 should exist");
input2.parentNode.removeChild(input2);
ok(!("foo2" in form.elements), "foo2 is not in form.elements");
is(form.foo2, undefined, "Form.foo2 should not longer be there");
var img0 = document.getElementById("img0");
ok(img0, "img0 exists");
is(form.bar0, img0, "Form.bar0 should exist");
img0.setAttribute("name", "old_bar0");
is(form.old_bar0, img0, "Form.bar0 is still here");
is(form.bar0, img0, "Form.bar0 is still here");
img0.parentNode.removeChild(img0);
is(form.bar0, undefined, "Form.bar0 should not be here");
</script>
</pre>
</body>
</html>
|