| /* |
| * Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file |
| * for details. All rights reserved. Use of this source code is governed by a |
| * BSD-style license that can be found in the LICENSE file. |
| */ |
| /** |
| * @assertion |
| * @description |
| */ |
| import "dart:html"; |
| import "../../testharness.dart"; |
| |
| const String htmlEL2 = r''' |
| <div class="parentSibling"></div> |
| <div class="parent"> |
| <div id="sibling" class="sibling"></div> |
| <div id="rootNode" class="rootNode"> |
| <div></div> |
| <div></div> |
| <div></div> |
| <div></div> |
| <div></div> |
| <div></div> |
| </div> |
| </div> |
| '''; |
| |
| void main() { |
| description('Test for crbug.com/304069: querySelectorAll regression.'); |
| document.body.id='body'; |
| document.body.classes.add('body'); |
| document.body.appendHtml(htmlEL2, treeSanitizer: new NullTreeSanitizer()); |
| |
| var rootNode = document.getElementById('rootNode'); |
| |
| shouldBe(rootNode.querySelectorAll('#body div').length, 6); |
| shouldBe(rootNode.querySelectorAll('#body').length, 0); |
| shouldBe(rootNode.querySelectorAll('div + #rootNode div').length, 6); |
| |
| shouldBe(rootNode.querySelectorAll('.sibling + .rootNode div').length, 6); |
| shouldBe(rootNode.querySelectorAll('.sibling ~ .rootNode div').length, 6); |
| shouldBe(rootNode.querySelectorAll('.sibling .rootNode div').length, 0); |
| shouldBe(rootNode.querySelectorAll('.sibling div').length, 0); |
| shouldBe(rootNode.querySelectorAll('.body .rootNode div').length, 6); |
| shouldBe(rootNode.querySelectorAll('.body .sibling + .rootNode div').length, 6); |
| shouldBe(rootNode.querySelectorAll('.body .parentSibling + .parent div').length, 6); |
| shouldBe(rootNode.querySelectorAll('.body .parentSibling ~ .parent div').length, 6); |
| shouldBe(rootNode.querySelectorAll('.body div').length, 6); |
| shouldBe(rootNode.querySelectorAll('.body').length, 0); |
| |
| shouldBe(rootNode.querySelectorAll('body div').length, 6); |
| shouldBe(rootNode.querySelectorAll('body').length, 0); |
| |
| shouldBe(rootNode.querySelector('#body'), null); |
| shouldBe(rootNode.querySelector('.body'), null); |
| shouldBe(rootNode.querySelector('body'), null); |
| |
| checkTestFailures(); |
| } |