// Copyright (c) 2020, 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. import 'dart:html'; import 'package:expect/legacy/minitest.dart'; // ignore: deprecated_member_use_from_same_package main() { var isElement = predicate((x) => x is Element, 'is an Element'); var isDivElement = predicate((x) => x is DivElement, 'is a DivElement'); var isAnchorElement = predicate( (x) => x is AnchorElement, 'is an AnchorElement', ); var isUnknownElement = predicate( (x) => x is UnknownElement, 'is UnknownElement', ); var inscrutable; test('CreateElement', () { // FIXME: nifty way crashes, do it boring way. expect(new Element.tag('span'), isElement); expect(new Element.tag('div'), isDivElement); expect(new Element.tag('a'), isAnchorElement); expect(new Element.tag('bad_name'), isUnknownElement); }); group('document', () { inscrutable = (x) => x; test('Document.query', () { Document doc = new DomParser().parseFromString(''' A B C ''', 'text/xml'); var rs = doc.querySelector('ResultSet'); expect(rs, isNotNull); }); test('CreateElement', () { // FIXME: nifty way crashes, do it boring way. expect(new Element.tag('span'), isElement); expect(new Element.tag('div'), isDivElement); expect(new Element.tag('a'), isAnchorElement); expect(new Element.tag('bad_name'), isUnknownElement); }); test('adoptNode', () { var div = new Element.html('
bar
'); var doc = document.implementation!.createHtmlDocument(''); expect(doc.adoptNode(div), div); expect(div.ownerDocument, doc); doc.body!.nodes.add(div); expect(doc.querySelector('#foo')!.text, 'bar'); }); test('importNode', () { var div = new Element.html('
bar
'); var doc = document.implementation!.createHtmlDocument(''); var div2 = doc.importNode(div, true); expect(div2, notEquals(div)); expect(div2.ownerDocument, doc); doc.body!.nodes.add(div2); expect(doc.querySelector('#foo')!.text, 'bar'); }); test('typeTest1', () { inscrutable = inscrutable(inscrutable); var doc1 = document; expect(doc1 is HtmlDocument, true); expect(inscrutable(doc1) is HtmlDocument, true); var doc2 = document.implementation!.createHtmlDocument(''); expect(doc2 is HtmlDocument, true); expect(inscrutable(doc2) is HtmlDocument, true); }); test('typeTest2', () { inscrutable = inscrutable(inscrutable); // XML document. var doc3 = document.implementation!.createDocument(null, 'report', null); expect(doc3 is HtmlDocument, false); expect(inscrutable(doc3) is HtmlDocument, false); }); }); }