| // 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 Node clone(bool deep) |
| /// Returns a copy of this node. |
| /// MDN: Cloning a node copies all of its attributes and their values, |
| /// including intrinsic (in–line) listeners. |
| /// @description Checks that attributes are copied |
| |
| import "dart:html"; |
| import "../../../Utils/expect.dart"; |
| import "../testcommon.dart"; |
| |
| main() { |
| var x = new Element.html( |
| '<div id="id1" foo="foo1">' |
| '<pre id="id2" foo="foo2"></pre>text' |
| '</div>', |
| treeSanitizer: new NullTreeSanitizer()); |
| |
| Element y = x.clone(false) as Element; |
| Expect.mapEquals({'id': 'id1', 'foo': 'foo1'}, y.attributes, 'shallow copy'); |
| |
| y = x.clone(true) as Element; |
| Expect.mapEquals({'id': 'id1', 'foo': 'foo1'}, y.attributes, 'deep copy'); |
| |
| var pre = y.querySelector('pre'); |
| Expect.mapEquals( |
| {'id': 'id2', 'foo': 'foo2'}, pre?.attributes, 'deep copy, children'); |
| } |