@@ -2,11 +2,12 @@ var common = require('../common');
22var assert = common . assert ;
33var FormData = require ( common . dir . lib + '/form_data' ) ;
44var fake = require ( 'fake' ) . create ( ) ;
5+ var fs = require ( 'fs' ) ;
56
67( function testEmptyForm ( ) {
78 var form = new FormData ( ) ;
89 var callback = fake . callback ( arguments . callee . name + '-getLength' ) ;
9- var calls = fake . expect ( callback , [ null , 0 ] ) . calls ;
10+ var calls = fake . expectAnytime ( callback , [ null , 0 ] ) . calls ;
1011
1112 form . getLength ( callback ) ;
1213
@@ -27,7 +28,7 @@ var fake = require('fake').create();
2728 Buffer . byteLength ( VALUE ) +
2829 form . _lastBoundary ( ) . length ;
2930
30- fake . expect ( callback , [ null , expectedLength ] ) ;
31+ fake . expectAnytime ( callback , [ null , expectedLength ] ) ;
3132 form . getLength ( callback ) ;
3233} ) ( ) ;
3334
@@ -44,7 +45,48 @@ var fake = require('fake').create();
4445 VALUE . length +
4546 form . _lastBoundary ( ) . length ;
4647
47- fake . expect ( callback , [ null , expectedLength ] ) ;
48+ fake . expectAnytime ( callback , [ null , expectedLength ] ) ;
49+ form . getLength ( callback ) ;
50+ } ) ( ) ;
51+
52+
53+ ( function testStringFileBufferFile ( ) {
54+ var fields = [
55+ {
56+ name : 'my_field' ,
57+ value : 'Test 123' ,
58+ } ,
59+ {
60+ name : 'my_image' ,
61+ value : fs . createReadStream ( common . dir . fixture + '/unicycle.jpg' ) ,
62+ } ,
63+ {
64+ name : 'my_buffer' ,
65+ value : new Buffer ( '123' ) ,
66+ } ,
67+ {
68+ name : 'my_txt' ,
69+ value : fs . createReadStream ( common . dir . fixture + '/bacon.txt' ) ,
70+ } ,
71+ ] ;
72+
73+ var form = new FormData ( ) ;
74+ var expectedLength = 0 ;
75+
76+ fields . forEach ( function ( field ) {
77+ form . append ( field . name , field . value ) ;
78+ if ( field . value . path ) {
79+ var stat = fs . statSync ( field . value . path ) ;
80+ expectedLength += stat . size ;
81+ } else {
82+ expectedLength += field . value . length ;
83+ }
84+ } ) ;
85+
86+ expectedLength += form . _overheadLength + form . _lastBoundary ( ) . length ;
87+
88+ var callback = fake . callback ( arguments . callee . name + '-getLength' ) ;
89+ fake . expectAnytime ( callback , [ null , expectedLength ] ) ;
4890 form . getLength ( callback ) ;
4991} ) ( ) ;
5092
0 commit comments