7fd6e0a3dc
http://dom.spec.whatwg.org/#dom-document-importnode These seem more relevant in a <template>/ShadowRoot world. In particular I wanted to port an MDV test that uses adoptNode. R=blois@google.com Review URL: https://codereview.chromium.org//17681003 git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@24423 260f80e4-7a28-3924-810f-c04153c831b5
85 lines
2.7 KiB
Dart
85 lines
2.7 KiB
Dart
library DocumentTest;
|
|
import '../../pkg/unittest/lib/unittest.dart';
|
|
import '../../pkg/unittest/lib/html_individual_config.dart';
|
|
import 'dart:html';
|
|
|
|
main() {
|
|
useHtmlIndividualConfiguration();
|
|
|
|
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');
|
|
|
|
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('supports_cssCanvasContext', () {
|
|
test('supports_cssCanvasContext', () {
|
|
expect(HtmlDocument.supportsCssCanvasContext, true);
|
|
});
|
|
});
|
|
|
|
group('getCssCanvasContext', () {
|
|
test('getCssCanvasContext 2d', () {
|
|
var expectation = HtmlDocument.supportsCssCanvasContext ?
|
|
returnsNormally : throws;
|
|
|
|
expect(() {
|
|
var context = document.getCssCanvasContext('2d', 'testContext', 10, 20);
|
|
expect(context is CanvasRenderingContext2D, true);
|
|
expect(context.canvas.width, 10);
|
|
expect(context.canvas.height, 20);
|
|
}, expectation);
|
|
});
|
|
});
|
|
|
|
group('document', () {
|
|
test('Document.query', () {
|
|
Document doc = new DomParser().parseFromString(
|
|
'''<ResultSet>
|
|
<Row>A</Row>
|
|
<Row>B</Row>
|
|
<Row>C</Row>
|
|
</ResultSet>''','text/xml');
|
|
|
|
var rs = doc.query('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('<div><div id="foo">bar</div></div>');
|
|
var doc = document.implementation.createHtmlDocument('');
|
|
expect(doc.adoptNode(div), div);
|
|
expect(div.document, doc);
|
|
doc.body.nodes.add(div);
|
|
expect(doc.query('#foo').text, 'bar');
|
|
});
|
|
|
|
test('importNode', () {
|
|
var div = new Element.html('<div><div id="foo">bar</div></div>');
|
|
var doc = document.implementation.createHtmlDocument('');
|
|
var div2 = doc.importNode(div, true);
|
|
expect(div2, isNot(equals(div)));
|
|
expect(div2.document, doc);
|
|
doc.body.nodes.add(div2);
|
|
expect(doc.query('#foo').text, 'bar');
|
|
});
|
|
});
|
|
}
|