blob: d14f479cbdf0b1ffe9338a4aa16c76eb68b601b4 [file] [log] [blame]
// 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.
// @dart = 2.9
/// @assertion Node clone(bool deep)
/// Returns a copy of this node.
/// If deep is true, then all of this node's children and decendents are copied
/// as well.
/// If deep is false, then only this node is copied.
/// @description Checks that document is deeply cloned if deep==false.
/// @needsreview issue #16409
import "dart:html";
import "../../../Utils/expect.dart";
// checks than nodes are equal but not identical
void check(Node n1, Node n2) {
Expect.isNotNull(n1);
Expect.isNotNull(n2);
Expect.isFalse(identical(n1, n2));
Expect.equals(n1, n2);
var ch1 = n1.childNodes;
var ch2 = n2.childNodes;
Expect.listEquals(ch1, ch2);
for (int k = 0; k < ch1.length; k++) {
check(ch1[k], ch2[k]);
}
}
main() {
Document cd = document.clone(true);
Expect.isNotNull(cd, "document.clone(true)==null");
check(document, cd);
}