// 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 bool contains(Node other)
/// Returns true if this node contains the specified node.
/// @description Checks that node does not contain previous children after
/// setting of innerHtml.

import "dart:html";
import "../../../Utils/expect.dart";

main() {
  var x =
      new Element.html('<div><pre><button></button></pre><span></span></div>');

  var pre = x.querySelector('pre');
  var button = x.querySelector('button');
  var span = x.querySelector('span');

  x.innerHtml = 'override';

  Expect.isFalse(x.contains(pre), 'pre');
  Expect.isFalse(x.contains(button), 'button');
  Expect.isFalse(x.contains(span), 'span');
}
