Index: client/tests/client/dom/InstanceOfTest.dart |
diff --git a/client/tests/client/dom/InstanceOfTest.dart b/client/tests/client/dom/InstanceOfTest.dart |
new file mode 100644 |
index 0000000000000000000000000000000000000000..ca8edcd1c55ce6abcc07472320a5dbacc017fe9f |
--- /dev/null |
+++ b/client/tests/client/dom/InstanceOfTest.dart |
@@ -0,0 +1,57 @@ |
+#library('InstanceOfTest'); |
+#import('../../../testing/unittest/unittest.dart'); |
+#import('dart:dom'); |
+ |
+main() { |
+ HTMLCanvasElement canvas; |
+ |
+ // FIXME: remove when main is ran on content loaded. |
+ window.setTimeout(() { |
+ canvas = document.createElement('canvas'); |
+ canvas.setAttribute('width', '100'); |
+ canvas.setAttribute('height', '100'); |
+ document.body.appendChild(canvas); |
+ }, 0); |
+ |
+ forLayoutTests(); |
+ test('Instanceof', () { |
+ Expect.isFalse(canvas is CanvasRenderingContext); |
+ Expect.isFalse(canvas is CanvasRenderingContext2D); |
+ Expect.isTrue(canvas is HTMLElement); |
+ Expect.isTrue(canvas is HTMLCanvasElement); |
+ Expect.isFalse(canvas is ImageData); |
+ Expect.isFalse(canvas is CanvasPixelArray); |
+ |
+ CanvasRenderingContext2D context = canvas.getContext('2d'); |
+ Expect.isTrue(context is CanvasRenderingContext); |
+ Expect.isTrue(context is CanvasRenderingContext2D); |
+ Expect.isFalse(context is HTMLElement); |
+ Expect.isFalse(context is HTMLCanvasElement); |
+ Expect.isFalse(context is ImageData); |
+ Expect.isFalse(context is CanvasPixelArray); |
+ |
+ // FIXME(b/5286633): Interface injection type check workaround. |
+ var image = context.createImageData(canvas.width.dynamic, canvas.height.dynamic); |
+ Expect.isFalse(image is CanvasRenderingContext); |
+ Expect.isFalse(image is CanvasRenderingContext2D); |
+ Expect.isFalse(image is HTMLElement); |
+ Expect.isFalse(image is HTMLCanvasElement); |
+ Expect.isTrue(image is ImageData); |
+ Expect.isFalse(image is CanvasPixelArray); |
+ |
+ // Include CanvasPixelArray since constructor and prototype are not |
+ // available until one is created. |
+ var bytes = image.data; |
+ Expect.isFalse(bytes is CanvasRenderingContext); |
+ Expect.isFalse(bytes is CanvasRenderingContext2D); |
+ Expect.isFalse(bytes is HTMLElement); |
+ Expect.isFalse(bytes is HTMLCanvasElement); |
+ Expect.isFalse(bytes is ImageData); |
+ Expect.isTrue(bytes is CanvasPixelArray); |
+ |
+ // FIXME: Ensure this is an HTMLSpanElement when we next update |
+ // WebKit IDL. |
+ var span = document.createElement('span'); |
+ Expect.isTrue(span is HTMLElement); |
+ }); |
+} |