library InstanceOfTest; import '../../pkg/unittest/lib/unittest.dart'; import '../../pkg/unittest/lib/html_config.dart'; import 'dart:html'; main() { CanvasElement canvas; canvas = new Element.tag('canvas'); canvas.attributes['width'] = '100'; canvas.attributes['height'] = '100'; document.body.append(canvas); var isCanvasRenderingContext = predicate((x) => x is CanvasRenderingContext, 'is a CanvasRenderingContext'); var isCanvasRenderingContext2D = predicate((x) => x is CanvasRenderingContext2D, 'is a CanvasRenderingContext2D'); var isElement = predicate((x) => x is Element, 'is an Element'); var isCanvasElement = predicate((x) => x is CanvasElement, 'is a CanvasElement'); var isImageData = predicate((x) => x is ImageData, 'is an ImageData'); //var isUint8ClampedArray = // predicate((x) => x is Uint8ClampedArray, 'is a Uint8ClampedArray'); var isIntList = predicate((x) => x is List, 'is a List'); useHtmlConfiguration(); test('Instanceof', () { expect(canvas, isNot(isCanvasRenderingContext)); expect(canvas, isNot(isCanvasRenderingContext2D)); expect(canvas, isElement); expect(canvas, isCanvasElement); expect(canvas, isNot(isImageData)); // expect(canvas, isNot(isCanvasPixelArray)); CanvasRenderingContext2D context = canvas.getContext('2d'); expect(context, isCanvasRenderingContext); expect(context, isCanvasRenderingContext2D); expect(context, isNot(isElement)); expect(context, isNot(isCanvasElement)); expect(context, isNot(isImageData)); // expect(context, isNot(isCanvasPixelArray)); // FIXME(b/5286633): Interface injection type check workaround. var image = context.createImageData(canvas.width as dynamic, canvas.height as dynamic); expect(image, isNot(isCanvasRenderingContext)); expect(image, isNot(isCanvasRenderingContext2D)); expect(image, isNot(isElement)); expect(image, isNot(isCanvasElement)); expect(image, isImageData); // expect(image, isNot(isCanvasPixelArray)); // Include CanvasPixelArray since constructor and prototype are not // available until one is created. var bytes = image.data; expect(bytes, isNot(isCanvasRenderingContext)); expect(bytes, isNot(isCanvasRenderingContext2D)); expect(bytes, isNot(isElement)); expect(bytes, isNot(isCanvasElement)); expect(bytes, isNot(isImageData)); expect(bytes, isIntList); // FIXME: Ensure this is an SpanElement when we next update // WebKit IDL. var span = new Element.tag('span'); expect(span, isElement); }); }