83eb7bae2d320a823dbf50fb321e8f4e40a7d1a3
[WebKit-https.git] / LayoutTests / fast / mutation / observe-attributes-expected.txt
1 Test WebKitMutationObserver.observe on attributes
2
3 On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
4
5
6 Testing basic aspects of attribute observation.
7 ...can attribute changes be observed at all
8 PASS mutations.length is 2
9 PASS mutations[0].type is "attributes"
10 PASS mutations[0].attributeName is "foo"
11 PASS mutations[0].attributeNamespace is null
12 PASS mutations[1].type is "attributes"
13 PASS mutations[1].attributeName is "bar"
14 PASS mutations[1].attributeNamespace is null
15 ...observer.disconnect() should prevent further delivery of mutations.
16 PASS mutations is null
17 ...re-observing after disconnect works with the same observer.
18 PASS mutations.length is 2
19 PASS mutations[0].type is "attributes"
20 PASS mutations[0].attributeName is "foo"
21 PASS mutations[0].attributeNamespace is null
22 PASS mutations[1].type is "attributes"
23 PASS mutations[1].attributeName is "bar"
24 PASS mutations[1].attributeNamespace is null
25
26 Testing that observing without specifying "attributes" does not result in hearing about attribute changes.
27 PASS mutations is null
28
29 Testing that re-observing the same node with the same observer has the effect of resetting the options.
30 PASS calls is 1
31 PASS mutations.length is 1
32 PASS mutations[0].type is "attributes"
33 PASS mutations[0].attributeName is "foo"
34 PASS mutations is null
35
36 Testing that multiple observers can be registered to a given node and both receive mutations.
37 PASS mutations.length is 1
38 PASS mutations[0].type is "attributes"
39 PASS mutations[0].attributeName is "foo"
40 PASS mutations2.length is 1
41 PASS mutations2[0].type is "attributes"
42 PASS mutations2[0].attributeName is "foo"
43
44 Testing that "attributeNamespace" value is delivered properly.
45 PASS mutations.length is 1
46 PASS mutations[0].type is "attributes"
47 PASS mutations[0].attributeName is "foo"
48 PASS mutations[0].attributeNamespace is "http://www.foo.com/bar"
49
50 Testing that modifications to node properties which delegate to attribute storage deliver mutations.
51 PASS mutations.length is 2
52 PASS mutations[0].type is "attributes"
53 PASS mutations[0].attributeName is "src"
54 PASS mutations[1].type is "attributes"
55 PASS mutations[1].attributeName is "href"
56
57 Testing mutation records are enqueued for attributes before DOMSubtreeModified is dispatched.
58 PASS mutations.length is 2
59 PASS mutations[0].type is "attributes"
60 PASS mutations[0].attributeName is "foo"
61 PASS mutations[1].type is "attributes"
62 PASS mutations[1].attributeName is "baz"
63
64 Testing basic oldValue delivery.
65 PASS mutations.length is 3
66 PASS mutations[0].type is "attributes"
67 PASS mutations[0].attributeName is "foo"
68 PASS mutations[0].oldValue is null
69 PASS mutations[1].type is "attributes"
70 PASS mutations[1].attributeName is "foo"
71 PASS mutations[1].oldValue is "bar"
72 PASS mutations[2].type is "attributes"
73 PASS mutations[2].attributeName is "bar"
74 PASS mutations[2].oldValue is "boo"
75
76 Testing that oldValue is delivered as requested (or not).
77 PASS mutationsWithOldValue.length is 1
78 PASS mutationsWithOldValue[0].type is "attributes"
79 PASS mutationsWithOldValue[0].attributeName is "foo"
80 PASS mutationsWithOldValue[0].oldValue is "bar"
81 PASS mutations.length is 1
82 PASS mutations[0].type is "attributes"
83 PASS mutations[0].attributeName is "foo"
84 PASS mutations[0].oldValue is null
85
86 An observer with multiple observations will get attributeOldValue if any entries request it.
87 PASS mutations.length is 1
88 PASS mutations[0].type is "attributes"
89 PASS mutations[0].attributeName is "foo"
90 PASS mutations[0].oldValue is "bar"
91
92 Testing setting an attribute via reflected IDL attribute.
93 PASS mutations.length is 3
94 PASS mutations[0].type is "attributes"
95 PASS mutations[0].attributeName is "id"
96 PASS mutations[0].oldValue is null
97 PASS mutations[1].type is "attributes"
98 PASS mutations[1].attributeName is "id"
99 PASS mutations[1].oldValue is "foo"
100 PASS mutations[2].type is "attributes"
101 PASS mutations[2].attributeName is "id"
102 PASS mutations[2].oldValue is "bar"
103
104 Testing that attributeFilter works as expected and ignores case with HTML elements.
105 ...only foo, bar & boom should be received.
106 PASS mutations.length is 3
107 PASS mutations[0].type is "attributes"
108 PASS mutations[0].attributeName is "foo"
109 PASS mutations[0].attributeNamespace is null
110 PASS mutations[1].type is "attributes"
111 PASS mutations[1].attributeName is "bar"
112 PASS mutations[1].attributeNamespace is null
113 PASS mutations[2].type is "attributes"
114 PASS mutations[2].attributeName is "boom"
115 PASS mutations[2].attributeNamespace is null
116
117 Testing the behavior of attributeFilter when the same observer observes at multiple nodes in a subtree with different filter options.
118 ...only foo, bar & bat should be received.
119 PASS mutations.length is 3
120 PASS mutations[0].type is "attributes"
121 PASS mutations[0].attributeName is "foo"
122 PASS mutations[0].attributeNamespace is null
123 PASS mutations[1].type is "attributes"
124 PASS mutations[1].attributeName is "bar"
125 PASS mutations[1].attributeNamespace is null
126 PASS mutations[2].type is "attributes"
127 PASS mutations[2].attributeName is "bat"
128 PASS mutations[2].attributeNamespace is null
129 ...bar, bat & baz should all be received.
130 PASS mutations.length is 3
131 PASS mutations[0].type is "attributes"
132 PASS mutations[0].attributeName is "bar"
133 PASS mutations[0].attributeNamespace is null
134 PASS mutations[1].type is "attributes"
135 PASS mutations[1].attributeName is "bat"
136 PASS mutations[1].attributeNamespace is null
137 PASS mutations[2].type is "attributes"
138 PASS mutations[2].attributeName is "baz"
139 PASS mutations[2].attributeNamespace is null
140
141 Testing that attributeFilter respects case with non-HTML elements.
142 ...pathLength should be received.
143 PASS mutations.length is 1
144 PASS mutations[0].type is "attributes"
145 PASS mutations[0].attributeName is "pathLength"
146 PASS mutations[0].attributeNamespace is "http://www.w3.org/2000/svg"
147
148 Testing that attributeFilter respects case with non-HTML elements.
149 ...only ID, id, booM, pathLength should be received.
150 PASS mutations.length is 4
151 PASS mutations[0].type is "attributes"
152 PASS mutations[0].attributeName is "ID"
153 PASS mutations[0].attributeNamespace is null
154 PASS mutations[1].type is "attributes"
155 PASS mutations[1].attributeName is "id"
156 PASS mutations[1].attributeNamespace is null
157 PASS mutations[2].type is "attributes"
158 PASS mutations[2].attributeName is "booM"
159 PASS mutations[2].attributeNamespace is null
160 PASS mutations[3].type is "attributes"
161 PASS mutations[3].attributeName is "pathLength"
162 PASS mutations[3].attributeNamespace is "http://www.w3.org/2000/svg"
163
164 Testing that modifying an elements style property dispatches Mutation Records.
165 PASS mutations.length is 3
166 PASS mutations[0].type is "attributes"
167 PASS mutations[0].attributeName is "style"
168 PASS mutations[0].oldValue is null
169 PASS mutations[1].type is "attributes"
170 PASS mutations[1].attributeName is "style"
171 PASS mutations[1].oldValue is null
172 PASS mutations[2].type is "attributes"
173 PASS mutations[2].attributeName is "style"
174 PASS mutations[2].oldValue is null
175 ...mutation record created.
176 PASS mutations is null
177
178 Testing that modifying an elements style property dispatches Mutation Records with correct oldValues.
179 PASS mutations.length is 3
180 PASS mutations[0].type is "attributes"
181 PASS mutations[0].attributeName is "style"
182 PASS mutations[0].oldValue is "color: yellow; width: 100px; "
183 PASS mutations[1].type is "attributes"
184 PASS mutations[1].attributeName is "style"
185 PASS mutations[1].oldValue is "width: 100px; color: red; "
186 PASS mutations[2].type is "attributes"
187 PASS mutations[2].attributeName is "style"
188 PASS mutations[2].oldValue is "color: red; width: 200px; "
189 ...mutation record created.
190 PASS mutations is null
191
192 Testing that a no-op style property mutation does not create Mutation Records.
193 PASS mutations is null
194
195 Test that mutating an attribute through an attr node delivers mutation records
196 PASS mutations.length is 1
197 PASS mutations[0].target is div
198 PASS mutations[0].type is "attributes"
199 PASS mutations[0].attributeName is "data-test"
200 PASS mutations[0].oldValue is "foo"
201
202 Test that mutating an attribute by attaching a child to an attr node delivers mutation records
203 PASS mutations.length is 1
204 PASS mutations[0].target is div
205 PASS mutations[0].type is "attributes"
206 PASS mutations[0].attributeName is "data-test"
207 PASS mutations[0].oldValue is "foo"
208
209 Test that mutating via setAttributeNode delivers mutation records
210 PASS mutations.length is 3
211 PASS mutations[0].target is div
212 PASS mutations[0].type is "attributes"
213 PASS mutations[0].attributeName is "data-test"
214 PASS mutations[0].oldValue is "foo"
215 PASS mutations[1].target is div
216 PASS mutations[1].type is "attributes"
217 PASS mutations[1].attributeName is "data-other"
218 PASS mutations[1].oldValue is null
219 PASS mutations[2].target is div
220 PASS mutations[2].type is "attributes"
221 PASS mutations[2].attributeName is "id"
222 PASS mutations[2].oldValue is "myId"
223
224 Test that setAttribute on an attribute with an existing Attr delivers mutation records
225 PASS mutations.length is 1
226 PASS mutations[0].target is div
227 PASS mutations[0].type is "attributes"
228 PASS mutations[0].attributeName is "data-test"
229 PASS mutations[0].oldValue is "foo"
230
231 Test that setNamedItem and removeNamedItem deliver mutation records
232 PASS mutations.length is 2
233 PASS mutations[0].target is div
234 PASS mutations[0].type is "attributes"
235 PASS mutations[0].attributeName is "data-test"
236 PASS mutations[0].oldValue is "foo"
237 PASS mutations[1].target is div
238 PASS mutations[1].type is "attributes"
239 PASS mutations[1].attributeName is "data-test"
240 PASS mutations[1].oldValue is "bar"
241
242 PASS successfullyParsed is true
243
244 TEST COMPLETE
245