Merge Chromium + Blink git repositories
[chromium-blink-merge.git] / third_party / WebKit / LayoutTests / fast / forms / select-set-length-with-mutation-remove.html
blob3357ebbaa7a8f89e8ff39f2dd82241e452d84c13
1 <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
2 <html>
3 <head>
4 <script src="../../resources/js-test.js"></script>
5 </head>
6 <body>
7 <p id="description"></p>
8 <div id="console"></div>
9 <script>
10 description('Tests that setting .length on an HTMLSelectElement works in the presence of mutation listeners that remove option elements.');
12 function onRemove(e) {
13 if (e.target.nextSibling != null) {
14 // remove listener temporarily to avoid lots of nesting
15 sel.removeEventListener('DOMNodeRemoved', onRemove, false);
16 e.target.nextSibling.parentNode.removeChild(e.target.nextSibling);
17 sel.addEventListener('DOMNodeRemoved', onRemove, false);
19 GCController.collect(); // Use a single GC here to avoid test TIMEOUTs.
22 var sel = document.createElement('select');
23 document.body.appendChild(sel);
25 sel.addEventListener('DOMNodeRemoved', onRemove, false);
26 sel.addEventListener('DOMNodeInserted', function() {}, false);
28 sel.length = 200;
29 shouldBe('sel.length', '200');
31 sel.length = 100;
32 shouldBe('sel.length', '100');
34 sel.length = 180;
35 shouldBe('sel.length', '180');
36 </script>
37 </body>
38 </html>