| Index: test/codegen/lib/html/canvas_test.dart | 
| diff --git a/test/codegen/lib/html/canvas_test.dart b/test/codegen/lib/html/canvas_test.dart | 
| new file mode 100644 | 
| index 0000000000000000000000000000000000000000..d83c1d963065533393f45a8ef4bf5efabb79a11d | 
| --- /dev/null | 
| +++ b/test/codegen/lib/html/canvas_test.dart | 
| @@ -0,0 +1,56 @@ | 
| +library CanvasTest; | 
| +import 'package:unittest/unittest.dart'; | 
| +import 'package:unittest/html_config.dart'; | 
| +import 'dart:html'; | 
| + | 
| +main() { | 
| +  CanvasElement canvas; | 
| +  CanvasRenderingContext2D context; | 
| +  int width = 100; | 
| +  int height = 100; | 
| + | 
| +  canvas = new CanvasElement(width:width, height:height); | 
| +  document.body.append(canvas); | 
| + | 
| +  context = canvas.context2D; | 
| + | 
| +  useHtmlConfiguration(); | 
| +  test('CreateImageData', () { | 
| +    ImageData image = context.createImageData(canvas.width, | 
| +                                              canvas.height); | 
| +    List<int> data = image.data; | 
| + | 
| +    expect(data, hasLength(40000)); | 
| +    checkPixel(data, 0, [0, 0, 0, 0]); | 
| +    checkPixel(data, width * height - 1, [0, 0, 0, 0]); | 
| + | 
| +    data[100] = 200; | 
| +    expect(data[100], equals(200)); | 
| +  }); | 
| + | 
| +  test('toDataUrl', () { | 
| +    var canvas = new CanvasElement(width: 100, height: 100); | 
| +    var context = canvas.context2D; | 
| +    context.fillStyle = 'red'; | 
| +    context.fill(); | 
| + | 
| +    var url = canvas.toDataUrl(); | 
| + | 
| +    var img = new ImageElement(); | 
| +    img.onLoad.listen(expectAsync((_) { | 
| +      expect(img.complete, true); | 
| +    })); | 
| +    img.onError.listen((_) { | 
| +      fail('URL failed to load.'); | 
| +    }); | 
| +    img.src = url; | 
| +  }); | 
| +} | 
| + | 
| +void checkPixel(List<int> data, int offset, List<int> rgba) | 
| +{ | 
| +  offset *= 4; | 
| +  for (var i = 0; i < 4; ++i) { | 
| +    expect(data[offset + i], equals(rgba[i])); | 
| +  } | 
| +} | 
|  |