blob: 22504a98e23d341dd2995d68f283425471522e20 [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.
*/
/**
* @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.toString(), n2.toString());
var ch1 = n1.childNodes;
var ch2 = n2.childNodes;
Expect.equals(ch1.toString(), ch2.toString());
for (int k = 0; k < ch1.length; k++) {
check(ch1[k], ch2[k]);
}
}
main() {
Document cd = document.clone(true) as Document;
Expect.isNotNull(cd, "document.clone(true) == null");
check(document, cd);
}