OLD | NEW |
1 <!DOCTYPE html> | 1 <!DOCTYPE html> |
2 <html> | 2 <html> |
3 <head> | 3 <head> |
4 <link rel="stylesheet" href="../../fast/js/resources/js-test-style.css"> | 4 <link rel="stylesheet" href="../../fast/js/resources/js-test-style.css"> |
5 <script src="../../fast/js/resources/js-test-pre.js"></script> | 5 <script src="../../fast/js/resources/js-test-pre.js"></script> |
6 <script src="../editing.js"></script> | 6 <script src="../editing.js"></script> |
| 7 <script src="resources/util.js"></script> |
7 <style> | 8 <style> |
8 .editing { | 9 .editing { |
9 border: 2px solid red; | 10 border: 2px solid red; |
10 padding: 6px; | 11 padding: 6px; |
11 font-size: 18px; | 12 font-size: 18px; |
12 } | 13 } |
13 </style> | 14 </style> |
14 </head> | 15 </head> |
15 <body> | 16 <body> |
16 <pre id="description"></pre> | 17 <pre id="description"></pre> |
(...skipping 156 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
173 | 174 |
174 if (verifyExistenceOfMarkers(destination, tweakKind)) { | 175 if (verifyExistenceOfMarkers(destination, tweakKind)) { |
175 testPassed('Request has been processed.'); | 176 testPassed('Request has been processed.'); |
176 } else { | 177 } else { |
177 testFailed('Request has been processed but we detected unexpected marker
location.'); | 178 testFailed('Request has been processed but we detected unexpected marker
location.'); |
178 } | 179 } |
179 | 180 |
180 setTimeout(doTestIfAny, 0); | 181 setTimeout(doTestIfAny, 0); |
181 } | 182 } |
182 | 183 |
183 function findFirstTextNode(node) | |
184 { | |
185 function iterToFindFirstTextNode(node) | |
186 { | |
187 if (node instanceof Text) | |
188 return node; | |
189 | |
190 var childNodes = node.childNodes; | |
191 for (var i = 0; i < childNodes.length; ++i) { | |
192 var n = iterToFindFirstTextNode(childNodes[i]); | |
193 if (n) | |
194 return n; | |
195 } | |
196 | |
197 return null; | |
198 } | |
199 | |
200 if (node instanceof HTMLInputElement || node instanceof HTMLTextAreaElement) | |
201 return iterToFindFirstTextNode(internals.shadowRoot(node)); | |
202 else | |
203 return iterToFindFirstTextNode(node); | |
204 } | |
205 | |
206 function verifyExistenceOfMarkers(elem, tweakKind) { | 184 function verifyExistenceOfMarkers(elem, tweakKind) { |
207 if (!window.internals) | 185 if (!window.internals) |
208 return true; | 186 return true; |
209 | 187 |
210 switch (tweakKind) { | 188 switch (tweakKind) { |
211 case 'delete': | 189 case 'delete': |
212 return true; | 190 return true; |
213 case 'move': | 191 case 'move': |
214 // In move, marker should be there. | 192 // In move, marker should be there. However since markers are removed wh
en unfocusing |
| 193 // an input if it's the input what's moved and it's not focused return t
rue right away. |
| 194 if (elem instanceof HTMLInputElement && elem != document.activeElement) |
| 195 return true; |
215 var markerNum = internals.markerCountForNode(findFirstTextNode(elem), "s
pelling"); | 196 var markerNum = internals.markerCountForNode(findFirstTextNode(elem), "s
pelling"); |
216 if (markerNum != 3) | 197 if (markerNum != 3) |
217 return false; | 198 return false; |
218 for (var i = 0; i < 3; ++i) { | 199 for (var i = 0; i < 3; ++i) { |
219 var range = internals.markerRangeForNode(findFirstTextNode(elem), "s
pelling", i); | 200 var range = internals.markerRangeForNode(findFirstTextNode(elem), "s
pelling", i); |
220 if (range.toString() != "zz") | 201 if (range.toString() != "zz") |
221 return false; | 202 return false; |
222 } | 203 } |
223 return true; | 204 return true; |
224 case 'mutate': | 205 case 'mutate': |
225 // In mutation, there aren't markers. | 206 // In mutation, there aren't markers. |
226 return internals.markerCountForNode(findFirstTextNode(elem), "spelling")
== 0; | 207 return internals.markerCountForNode(findFirstTextNode(elem), "spelling")
== 0; |
227 default: | 208 default: |
228 testFailed('Unknown kind of tweak'); | 209 testFailed('Unknown kind of tweak'); |
229 return true; | 210 return true; |
230 } | 211 } |
231 } | 212 } |
232 | 213 |
233 doTestIfAny(); | 214 doTestIfAny(); |
234 | 215 |
235 var successfullyParsed = true; | 216 var successfullyParsed = true; |
236 </script> | 217 </script> |
237 <script src="../../fast/js/resources/js-test-post.js"></script> | 218 <script src="../../fast/js/resources/js-test-post.js"></script> |
238 </body> | 219 </body> |
239 </html> | 220 </html> |
OLD | NEW |