// 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 Element createElement(String tagName, [String typeExtension])
/// Creates a new element with the given tag name.
/// @description Checks that newly created element belongs to this document.

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

main() {
  Element el = document.createElement("div");
  Expect.equals(document, el.ownerDocument);
  Expect.isTrue(el is DivElement);

  el = document.createElement("table");
  Expect.equals(document, el.ownerDocument);
  Expect.isTrue(el is TableElement);

  el = document.createElement("unknownTag");
  Expect.equals(document, el.ownerDocument);
  Expect.isTrue(el is UnknownElement);
}
