blob: daba05b2eed5f2632a242b0efda89279c59e99da [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 HtmlCollection getElementsByTagName(String localName)
/// Returns a list of elements with the given tag name.
/// @description Checks that a list of elements with the given tag name is returned.
/// @needsreview dart issue #18240 Document.getElementsByTagName returns NodeList, not HtmlCollection
import "dart:html";
import "../../../Utils/expect.dart";
const myTag = "div";
main() {
List<Node> lst = document.getElementsByTagName(myTag);
int l0 = lst.length;
var x1 = new Element.tag(myTag);
var y = new Element.tag(myTag);
y.append(x1);
document.body?.append(y);
lst = document.getElementsByTagName(myTag);
Expect.equals(l0 + 2, lst.length);
var x2 = new Element.tag(myTag);
document.body?.append(x2);
lst = document.getElementsByTagName(myTag);
Expect.equals(l0 + 3, lst.length);
// order is not guarateed, so cannot compare lists directly
Expect.isTrue(lst.contains(x1));
Expect.isTrue(lst.contains(y));
Expect.isTrue(lst.contains(x2));
// print("lst is ${lst.runtimeType}; ${lst is HtmlCollection}; ${lst is NodeList}; ${lst is List};");
Expect.isTrue(lst is HtmlCollection, "is HtmlCollection");
}