@@ -746,6 +746,44 @@ describe('Canvas', function () {
746746 assert . equal ( 255 , imageData . data [ i + 3 ] ) ;
747747 } ) ;
748748
749+ it ( 'Context2d#getImageData()' , function ( ) {
750+ var canvas = new Canvas ( 1 , 1 )
751+ , ctx = canvas . getContext ( '2d' ) ;
752+
753+ assert . throws ( function ( ) { ctx . getImageData ( 0 , 0 , 0 , 0 ) ; } , / I n d e x S i z e E r r o r / ) ;
754+
755+ ctx . fillStyle = '#f00' ;
756+ ctx . fillRect ( 0 , 0 , 1 , 1 ) ;
757+
758+ var pixel = ctx . getImageData ( 0 , 0 , 1 , 1 ) ;
759+
760+ assert . equal ( pixel . data [ 0 ] , 255 ) ;
761+ assert . equal ( pixel . data [ 1 ] , 0 ) ;
762+ assert . equal ( pixel . data [ 2 ] , 0 ) ;
763+ assert . equal ( pixel . data [ 3 ] , 255 ) ;
764+ } ) ;
765+
766+ it ( 'Context2d#putImageData()' , function ( ) {
767+ var canvas = new Canvas ( 2 , 1 )
768+ , ctx = canvas . getContext ( '2d' ) ;
769+
770+ assert . throws ( function ( ) { ctx . putImageData ( { } , 0 , 0 ) ; } , TypeError ) ;
771+ assert . throws ( function ( ) { ctx . putImageData ( undefined , 0 , 0 ) ; } , TypeError ) ;
772+
773+ ctx . fillStyle = '#f00' ;
774+ ctx . fillRect ( 0 , 0 , 1 , 1 ) ;
775+
776+ // Copy left pixel to the right pixel
777+ ctx . putImageData ( ctx . getImageData ( 0 , 0 , 1 , 1 ) , 1 , 0 ) ;
778+
779+ var pixel = ctx . getImageData ( 1 , 0 , 1 , 1 ) ;
780+
781+ assert . equal ( pixel . data [ 0 ] , 255 ) ;
782+ assert . equal ( pixel . data [ 1 ] , 0 ) ;
783+ assert . equal ( pixel . data [ 2 ] , 0 ) ;
784+ assert . equal ( pixel . data [ 3 ] , 255 ) ;
785+ } ) ;
786+
749787 it ( 'Canvas#createSyncPNGStream()' , function ( done ) {
750788 var canvas = new Canvas ( 20 , 20 ) ;
751789 var stream = canvas . createSyncPNGStream ( ) ;
0 commit comments