// 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 final String nodeValue
/// The value of this node.
/// This varies by this type's nodeType:
/// Text -- content of the text node
/// @description Checks expected attribute values.

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

main() {
  Expect.equals('text', new Text('text').nodeValue, 'ctor');

  var x = document.body;
  x?.innerHtml = 'text';

  Expect.equals('text', x?.firstChild?.nodeValue, 'parsed');
}
