11/*jshint laxbreak:true */
22
33var assert = require ( 'assert' ) ;
4+ var crypto = require ( 'crypto' ) ;
5+ var fs = require ( 'fs' ) ;
46var resize = require ( './index' ) ;
57
68describe ( 'resize.path()' , function ( ) {
@@ -143,6 +145,7 @@ describe('resize.cmd()', function() {
143145 assert . equal ( cmd , [
144146 // original image
145147 'convert ./assets/horizontal.jpg' ,
148+ '-auto-orient' ,
146149 '-strip' ,
147150 '-write mpr:./assets/horizontal.jpg +delete' ,
148151
@@ -275,23 +278,26 @@ describe('resize()', function() {
275278 height : 2623
276279 } ;
277280
278- var paths = [
279- 'assets/horizontal-full.jpg' ,
280- 'assets/horizontal-1200.jpg' ,
281- 'assets/horizontal-800.jpg' ,
282- 'assets/horizontal-500.jpg' ,
283- 'assets/horizontal-260.jpg' ,
284- 'assets/horizontal-150.jpg' ,
285- 'assets/horizontal-square-200.jpg' ,
286- 'assets/horizontal-square-50.jpg'
287- ] ;
281+ var checksum = {
282+ 'assets/horizontal-full.jpg' : '1a97483f4dfc21ea77217731a0f1908f8edeec22' ,
283+ 'assets/horizontal-1200.jpg' : '54f1be17d4ffac0cb23802f1c04e783594662a8a' ,
284+ 'assets/horizontal-800.jpg' : '9ebf00a2d96361720dcbcb66af14689d3d51269f' ,
285+ 'assets/horizontal-500.jpg' : '58b09dc1f4ecf22427cc73ffd7b8ef2194fff4bb' ,
286+ 'assets/horizontal-260.jpg' : '33437a2300f7d991c439d532075e211aad962a78' ,
287+ 'assets/horizontal-150.jpg' : 'ad5957669f0774cd66be76414dcbe6b0d789367d' ,
288+ 'assets/horizontal-square-200.jpg' : '576b72b83f486cfc684f459670e912310427a6a5' ,
289+ 'assets/horizontal-square-50.jpg' : 'cc0291eb853ceba62b009626ae7a0e68562e93de'
290+ } ;
288291
289292 resize ( image , output , function ( err , versions ) {
290293 assert . ifError ( err ) ;
291294 assert ( versions instanceof Array ) ;
292295
293296 for ( var i = 0 ; i < versions . length ; i ++ ) {
294- assert . equal ( versions [ i ] . path , paths [ i ] ) ;
297+ var file = fs . readFileSync ( versions [ i ] . path ) ;
298+ var sha = crypto . createHash ( 'sha1' ) . update ( file ) . digest ( 'hex' ) ;
299+
300+ assert . equal ( sha , checksum [ versions [ i ] . path ] ) ;
295301 }
296302
297303 done ( ) ;
@@ -307,23 +313,28 @@ describe('resize()', function() {
307313 height : 3456
308314 } ;
309315
310- var paths = [
311- 'assets/vertical-full.jpg' ,
312- 'assets/vertical-1200.jpg' ,
313- 'assets/vertical-800.jpg' ,
314- 'assets/vertical-500.jpg' ,
315- 'assets/vertical-260.jpg' ,
316- 'assets/vertical-150.jpg' ,
317- 'assets/vertical-square-200.jpg' ,
318- 'assets/vertical-square-50.jpg'
319- ] ;
316+ var checksum = {
317+ 'assets/vertical-full.jpg' : '709746db3a56f66066f846e273db78dee60d0311' ,
318+ 'assets/vertical-1200.jpg' : '6f1f88a98e43377728864a42ad1123126b66c1f7' ,
319+ 'assets/vertical-800.jpg' : '95fbe34e98dd7839b1bde9400f4c7a6784e408b3' ,
320+ 'assets/vertical-500.jpg' : '474242606e782deafe7af976f23513697b622cf4' ,
321+ 'assets/vertical-260.jpg' : '4e49f570413c9f15156b1cf99febe9054e2f294f' ,
322+ 'assets/vertical-150.jpg' : '9d8ec5975d548ee0b2f6f83c5f896c0fcd5d3a88' ,
323+ 'assets/vertical-square-200.jpg' : '1d2a9b581b7f989e44384f4eabde1fc5085d20ad' ,
324+ 'assets/vertical-square-50.jpg' : '33e038f5fbcbc92991d68e343733bb0735286243'
325+ } ;
320326
321327 resize ( image , output , function ( err , versions ) {
322328 assert . ifError ( err ) ;
329+
323330 assert ( versions instanceof Array ) ;
331+ assert . equal ( versions . length , output . versions . length ) ;
324332
325333 for ( var i = 0 ; i < versions . length ; i ++ ) {
326- assert . equal ( versions [ i ] . path , paths [ i ] ) ;
334+ var file = fs . readFileSync ( versions [ i ] . path ) ;
335+ var sha = crypto . createHash ( 'sha1' ) . update ( file ) . digest ( 'hex' ) ;
336+
337+ assert . equal ( sha , checksum [ versions [ i ] . path ] ) ;
327338 }
328339
329340 done ( ) ;
@@ -345,23 +356,65 @@ describe('resize()', function() {
345356 output . versions [ i ] . format = 'jpg' ;
346357 }
347358
348- var paths = [
349- 'assets/transparent-full.jpg' ,
350- 'assets/transparent-1200.jpg' ,
351- 'assets/transparent-800.jpg' ,
352- 'assets/transparent-500.jpg' ,
353- 'assets/transparent-260.jpg' ,
354- 'assets/transparent-150.jpg' ,
355- 'assets/transparent-square-200.jpg' ,
356- 'assets/transparent-square-50.jpg'
357- ] ;
359+ var checksum = {
360+ 'assets/transparent-full.jpg' : '78e3647bc9f86f3e0a8a0a25dcc60fba519c29b9' ,
361+ 'assets/transparent-1200.jpg' : '35069de49846815381830b4c46ab90f75eba43aa' ,
362+ 'assets/transparent-800.jpg' : '017ec8afb9a81eae00132105da9cd6ea4083011c' ,
363+ 'assets/transparent-500.jpg' : 'c0705376d473724384e6ed30a1305683023780e9' ,
364+ 'assets/transparent-260.jpg' : '1ccf58141dfa60fe2cc74f024a9df82172e235d4' ,
365+ 'assets/transparent-150.jpg' : 'f46d2e15c618b65d9e082f605e894d5ebd6a5450' ,
366+ 'assets/transparent-square-200.jpg' : '012230141cb127947cfe958c452560b7a50d2425' ,
367+ 'assets/transparent-square-50.jpg' : 'ea8a03a6f9acfd1c5170c4b5d382c84aa3b304dc'
368+ } ;
369+
370+ resize ( image , output , function ( err , versions ) {
371+ assert . ifError ( err ) ;
372+
373+ assert ( versions instanceof Array ) ;
374+ assert . equal ( versions . length , output . versions . length ) ;
375+
376+ for ( var i = 0 ; i < versions . length ; i ++ ) {
377+ var file = fs . readFileSync ( versions [ i ] . path ) ;
378+ var sha = crypto . createHash ( 'sha1' ) . update ( file ) . digest ( 'hex' ) ;
379+
380+ assert . equal ( sha , checksum [ versions [ i ] . path ] ) ;
381+ }
382+
383+ done ( ) ;
384+ } ) ;
385+ } ) ;
386+
387+ it ( 'auto-rotates rotated image' , function ( done ) {
388+ this . timeout ( 10000 ) ;
389+
390+ var image = {
391+ path : './assets/autorotate.jpg' ,
392+ width : 3264 ,
393+ height : 2448
394+ } ;
395+
396+ var checksum = {
397+ 'assets/autorotate-full.jpg' : 'efe10ac17cae71bd28c316728d6d29eeacc11fd8' ,
398+ 'assets/autorotate-1200.jpg' : 'e8f5b75aa6c9859426c1d652d57a053444f897ff' ,
399+ 'assets/autorotate-800.jpg' : '081df1cc1a3d7d76a0762f0d586dbecff221a25c' ,
400+ 'assets/autorotate-500.jpg' : 'c5437d9b2dbbf791931ca9089020c78ac8fd02a3' ,
401+ 'assets/autorotate-260.jpg' : 'a9b811a19fb078264e655c0c3c01acffda8d192e' ,
402+ 'assets/autorotate-150.jpg' : 'd837d5fb4239f9fe1e3566df34906e3f8d654275' ,
403+ 'assets/autorotate-square-200.jpg' : '24efb279a78b0c33a8715215d6f976c1f086573a' ,
404+ 'assets/autorotate-square-50.jpg' : 'f716e975f6269c3b9649a04d4144c5481265169c'
405+ } ;
358406
359407 resize ( image , output , function ( err , versions ) {
360408 assert . ifError ( err ) ;
409+
361410 assert ( versions instanceof Array ) ;
411+ assert . equal ( versions . length , output . versions . length ) ;
362412
363413 for ( var i = 0 ; i < versions . length ; i ++ ) {
364- assert . equal ( versions [ i ] . path , paths [ i ] ) ;
414+ var file = fs . readFileSync ( versions [ i ] . path ) ;
415+ var sha = crypto . createHash ( 'sha1' ) . update ( file ) . digest ( 'hex' ) ;
416+
417+ assert . equal ( sha , checksum [ versions [ i ] . path ] ) ;
365418 }
366419
367420 done ( ) ;
0 commit comments