[MutationObservers] attributeFilter should be case sensitive at all times
[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 observes case with HTML elements.
105 ...only foo and bar should be received.
106 PASS mutations.length is 2
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
114 Testing the behavior of attributeFilter when the same observer observes at multiple nodes in a subtree with different filter options.
115 ...only foo, bar & bat should be received.
116 PASS mutations.length is 3
117 PASS mutations[0].type is "attributes"
118 PASS mutations[0].attributeName is "foo"
119 PASS mutations[0].attributeNamespace is null
120 PASS mutations[1].type is "attributes"
121 PASS mutations[1].attributeName is "bar"
122 PASS mutations[1].attributeNamespace is null
123 PASS mutations[2].type is "attributes"
124 PASS mutations[2].attributeName is "bat"
125 PASS mutations[2].attributeNamespace is null
126 ...bar, bat & baz should all be received.
127 PASS mutations.length is 3
128 PASS mutations[0].type is "attributes"
129 PASS mutations[0].attributeName is "bar"
130 PASS mutations[0].attributeNamespace is null
131 PASS mutations[1].type is "attributes"
132 PASS mutations[1].attributeName is "bat"
133 PASS mutations[1].attributeNamespace is null
134 PASS mutations[2].type is "attributes"
135 PASS mutations[2].attributeName is "baz"
136 PASS mutations[2].attributeNamespace is null
137
138 Testing that attributeFilter respects case with non-HTML elements.
139 ...pathLength should be received.
140 PASS mutations.length is 1
141 PASS mutations[0].type is "attributes"
142 PASS mutations[0].attributeName is "pathLength"
143 PASS mutations[0].attributeNamespace is "http://www.w3.org/2000/svg"
144
145 Testing that attributeFilter respects case with non-HTML elements.
146 ...only ID, id, booM, pathLength should be received.
147 PASS mutations.length is 4
148 PASS mutations[0].type is "attributes"
149 PASS mutations[0].attributeName is "ID"
150 PASS mutations[0].attributeNamespace is null
151 PASS mutations[1].type is "attributes"
152 PASS mutations[1].attributeName is "id"
153 PASS mutations[1].attributeNamespace is null
154 PASS mutations[2].type is "attributes"
155 PASS mutations[2].attributeName is "booM"
156 PASS mutations[2].attributeNamespace is null
157 PASS mutations[3].type is "attributes"
158 PASS mutations[3].attributeName is "pathLength"
159 PASS mutations[3].attributeNamespace is "http://www.w3.org/2000/svg"
160
161 Testing that modifying an elements style property dispatches Mutation Records.
162 PASS mutations.length is 3
163 PASS mutations[0].type is "attributes"
164 PASS mutations[0].attributeName is "style"
165 PASS mutations[0].oldValue is null
166 PASS mutations[1].type is "attributes"
167 PASS mutations[1].attributeName is "style"
168 PASS mutations[1].oldValue is null
169 PASS mutations[2].type is "attributes"
170 PASS mutations[2].attributeName is "style"
171 PASS mutations[2].oldValue is null
172 ...mutation record created.
173 PASS mutations is null
174
175 Testing that modifying an elements style property dispatches Mutation Records with correct oldValues.
176 PASS mutations.length is 3
177 PASS mutations[0].type is "attributes"
178 PASS mutations[0].attributeName is "style"
179 PASS mutations[0].oldValue is "color: yellow; width: 100px; "
180 PASS mutations[1].type is "attributes"
181 PASS mutations[1].attributeName is "style"
182 PASS mutations[1].oldValue is "width: 100px; color: red; "
183 PASS mutations[2].type is "attributes"
184 PASS mutations[2].attributeName is "style"
185 PASS mutations[2].oldValue is "color: red; width: 200px; "
186 ...mutation record created.
187 PASS mutations is null
188
189 Testing that a no-op style property mutation does not create Mutation Records.
190 PASS mutations is null
191
192 Test that mutating an attribute through an attr node delivers mutation records
193 PASS mutations.length is 1
194 PASS mutations[0].target is div
195 PASS mutations[0].type is "attributes"
196 PASS mutations[0].attributeName is "data-test"
197 PASS mutations[0].oldValue is "foo"
198
199 Test that mutating an attribute by attaching a child to an attr node delivers mutation records
200 PASS mutations.length is 1
201 PASS mutations[0].target is div
202 PASS mutations[0].type is "attributes"
203 PASS mutations[0].attributeName is "data-test"
204 PASS mutations[0].oldValue is "foo"
205
206 Test that mutating via setAttributeNode delivers mutation records
207 PASS mutations.length is 3
208 PASS mutations[0].target is div
209 PASS mutations[0].type is "attributes"
210 PASS mutations[0].attributeName is "data-test"
211 PASS mutations[0].oldValue is "foo"
212 PASS mutations[1].target is div
213 PASS mutations[1].type is "attributes"
214 PASS mutations[1].attributeName is "data-other"
215 PASS mutations[1].oldValue is null
216 PASS mutations[2].target is div
217 PASS mutations[2].type is "attributes"
218 PASS mutations[2].attributeName is "id"
219 PASS mutations[2].oldValue is "myId"
220
221 Test that setAttribute on an attribute with an existing Attr delivers mutation records
222 PASS mutations.length is 1
223 PASS mutations[0].target is div
224 PASS mutations[0].type is "attributes"
225 PASS mutations[0].attributeName is "data-test"
226 PASS mutations[0].oldValue is "foo"
227
228 Test that setNamedItem and removeNamedItem deliver mutation records
229 PASS mutations.length is 2
230 PASS mutations[0].target is div
231 PASS mutations[0].type is "attributes"
232 PASS mutations[0].attributeName is "data-test"
233 PASS mutations[0].oldValue is "foo"
234 PASS mutations[1].target is div
235 PASS mutations[1].type is "attributes"
236 PASS mutations[1].attributeName is "data-test"
237 PASS mutations[1].oldValue is "bar"
238
239 PASS successfullyParsed is true
240
241 TEST COMPLETE
242