// 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 final Node parentNode
/// The parent node of this node.
/// @description Checks expected parentNode values

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

main() {
  var x = document.body;
  x.innerHtml = '<div><span><span></div>';

  var html = document.querySelector('html');
  var body = document.querySelector('body');
  var div = document.querySelector('div');
  var span = document.querySelector('span');

  Expect.equals(div, span.parentNode);
  Expect.equals(x, div.parentNode);
  Expect.equals(html, x.parentNode);
  Expect.equals(document, html.parentNode);
}
