| // 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 DocumentFragment createFragment(String html, |
| /// {NodeValidator validator, NodeTreeSanitizer treeSanitizer}) |
| /// Create a DocumentFragment from the HTML fragment and ensure that it |
| /// follows the sanitization rules specified by the validator or treeSanitizer. |
| /// The returned tree is guaranteed to only contain nodes and attributes which |
| /// are allowed by the provided validator. |
| /// @description Checks that if provided validator allows non standard elements |
| /// and attributes, they are included in created fragment. |
| |
| import "dart:html"; |
| import "../../../Utils/expect.dart"; |
| |
| main() { |
| var x = document.body; |
| if (x != null) { |
| var f = x.createFragment('<div foo="foo"><bar id="bar"></bar></div>', |
| validator: new NodeValidatorBuilder() |
| //..allowHtml5() |
| ..allowElement('bar', attributes: ["id"])..allowElement( |
| 'div', attributes: ["foo"])); |
| DivElement div = f.firstChild as DivElement; |
| |
| Expect.mapEquals({'foo': 'foo'}, div.attributes); |
| |
| var bar = f.querySelector('#bar'); |
| Expect.equals('BAR', bar?.tagName); |
| } else { |
| Expect.fail("Body is null"); |
| } |
| } |