@@ -90,6 +90,99 @@ describe('Suite', function() {
9090 } ) ;
9191 } ) ;
9292
93+ describe ( '#request()' , function ( ) {
94+ var fp ;
95+ before ( function ( ) {
96+ fp = new FilePreviews ( { apiKey : 'key' , apiSecret : 'secret' } ) ;
97+ } ) ;
98+
99+ it ( 'should send auth information' , function ( ) {
100+ fp . _request = function ( request , callback ) {
101+ assert . equal ( request . auth . username , 'key' ) ;
102+ assert . equal ( request . auth . password , 'secret' ) ;
103+ } ;
104+
105+ fp . request ( 'http://example.com/' ) ;
106+ } ) ;
107+
108+ it ( 'should set GET as default method' , function ( ) {
109+ fp . _request = function ( request , callback ) {
110+ assert . equal ( request . method , 'GET' ) ;
111+ } ;
112+
113+ fp . request ( 'http://example.com/' ) ;
114+ } ) ;
115+
116+ it ( 'should accept method type in options' , function ( ) {
117+ fp . _request = function ( request , callback ) {
118+ assert . equal ( request . method , 'POST' ) ;
119+ } ;
120+
121+ fp . request ( 'http://example.com/' , { method : 'POST' } ) ;
122+ } ) ;
123+
124+ it ( 'should accept data String in options' , function ( ) {
125+ fp . _request = function ( request , callback ) {
126+ assert . equal ( request . body , 'my-data' ) ;
127+ } ;
128+
129+ fp . request ( 'http://example.com//' , { data : 'my-data' } ) ;
130+ } ) ;
131+
132+ it ( 'should accept data Object in options' , function ( ) {
133+ fp . _request = function ( request , callback ) {
134+ assert . equal ( request . body . foo , 'bar' ) ;
135+ } ;
136+
137+ fp . request ( 'http://example.com/' , { data : { foo : 'bar' } } ) ;
138+ } ) ;
139+
140+ it ( 'should format request correctly' , function ( ) {
141+ var url = 'http://example.com/one/two/three' ;
142+
143+ fp . _request = function ( request , callback ) {
144+ assert . equal ( request . auth . username , 'key' ) ;
145+ assert . equal ( request . auth . password , 'secret' ) ;
146+
147+ assert . equal ( request . method , 'POST' ) ;
148+ assert . equal ( request . json , true ) ;
149+
150+ assert . equal ( request . url , url ) ;
151+ assert . equal ( request . body . foo , 'bar' ) ;
152+ } ;
153+ fp . request ( url , {
154+ method : 'POST' ,
155+ data : { foo : 'bar' }
156+ } ) ;
157+ } ) ;
158+
159+ it ( 'should handle success' , function ( ) {
160+ fp . _request = function ( request , callback ) {
161+ var body = {
162+ foo : 'bar'
163+ } ;
164+
165+ callback ( null , { statusCode : 200 } , body ) ;
166+ } ;
167+
168+ fp . request ( 'http://example.com/' , { } , function ( err , response ) {
169+ assert . equal ( err , null ) ;
170+ assert . equal ( response . foo , 'bar' ) ;
171+ } ) ;
172+ } ) ;
173+
174+ it ( 'should handle error' , function ( ) {
175+ fp . _request = function ( request , callback ) {
176+ callback ( null , { statusCode : 500 } , 'Server Error' ) ;
177+ } ;
178+
179+ fp . request ( 'http://example.com/' , { } , function ( err , response ) {
180+ assert . equal ( err , 'Server Error' ) ;
181+ assert . equal ( response , null ) ;
182+ } ) ;
183+ } ) ;
184+ } ) ;
185+
93186 describe ( '#generate()' , function ( ) {
94187 var fp ;
95188 before ( function ( ) {
@@ -108,26 +201,42 @@ describe('Suite', function() {
108201
109202 assert . equal ( url [ 3 ] , 'v2' ) ;
110203 assert . equal ( url [ 4 ] , 'previews' ) ;
204+
205+ assert . equal ( request . body . url , 'http://example.com/my-file.doc' ) ;
111206 } ;
112- fp . generate ( 'my-preview-id ' ) ;
207+ fp . generate ( 'http://example.com/ my-file.doc ' ) ;
113208 } ) ;
114209
115210 it ( 'should handle success' , function ( ) {
211+ var url = 'http://example.com/my-file.doc' ;
116212 fp . _request = function ( request , callback ) {
117- callback ( null , { statusCode : 200 } , 'Yei!' ) ;
213+ var response = { statusCode : 200 } ;
214+ var body = {
215+ id : '1' ,
216+ status : 'pending' ,
217+ preview : null ,
218+ thumbnails : null ,
219+ original_file : null ,
220+ user_data : null ,
221+ url : url
222+ } ;
223+
224+ callback ( null , response , body ) ;
118225 } ;
119- fp . retrieve ( 'my-preview-id' , function ( err , result ) {
226+ fp . generate ( url , function ( err , result ) {
120227 assert . equal ( err , null ) ;
121- assert . equal ( result , 'Yei!' ) ;
228+ assert . equal ( result . id , '1' ) ;
229+ assert . equal ( result . status , 'pending' ) ;
230+ assert . equal ( result . url , url ) ;
122231 } ) ;
123232 } ) ;
124233
125234 it ( 'should handle error' , function ( ) {
126235 fp . _request = function ( request , callback ) {
127- callback ( 'error' , { statusCode : 400 } , 'Some Error' ) ;
236+ callback ( 'error' , { statusCode : 500 } , 'Server Error' ) ;
128237 } ;
129- fp . retrieve ( 'my-preview-id' , function ( err , result ) {
130- assert . equal ( err , 'Some Error' ) ;
238+ fp . generate ( 'my-preview-id' , function ( err , result ) {
239+ assert . equal ( err , 'Server Error' ) ;
131240 assert . equal ( result , null ) ;
132241 } ) ;
133242 } ) ;
@@ -158,20 +267,67 @@ describe('Suite', function() {
158267
159268 it ( 'should handle success' , function ( ) {
160269 fp . _request = function ( request , callback ) {
161- callback ( null , { statusCode : 200 } , 'Yei!' ) ;
270+ var request = { statusCode : 200 } ;
271+ var body = {
272+ status : 'success' ,
273+ thumbnails : [ {
274+ url : 'http://example.com/user_manual_original_1.png' ,
275+ requested_size : 'original' ,
276+ resized : false ,
277+ original_size : {
278+ width : '612' ,
279+ height : '792'
280+ } ,
281+ page : 1 ,
282+ size : {
283+ width : '612' ,
284+ height : '792'
285+ }
286+ } ] ,
287+ url : 'http://example.com/v2/previews/123/' ,
288+ id : '123' ,
289+ preview : {
290+ url : 'http://example.com/user_manual_original_1.png' ,
291+ requested_size : 'original' ,
292+ resized : false ,
293+ original_size : {
294+ width : '612' ,
295+ height : '792'
296+ } ,
297+ page : 1 ,
298+ size : {
299+ width : '612' ,
300+ height : '792'
301+ }
302+ } ,
303+ user_data : null ,
304+ original_file : {
305+ mimetype : 'application/pdf' ,
306+ name : 'user_manual' ,
307+ extension : 'pdf' ,
308+ encoding : 'binary' ,
309+ total_pages : 1 ,
310+ metadata : { } ,
311+ type : 'application' ,
312+ size : 416905
313+ }
314+ } ;
315+
316+ callback ( null , { statusCode : 200 } , body ) ;
162317 } ;
163318 fp . retrieve ( 'my-preview-id' , function ( err , result ) {
164319 assert . equal ( err , null ) ;
165- assert . equal ( result , 'Yei!' ) ;
320+ assert . equal ( result . status , 'success' ) ;
321+ assert . equal ( result . url , 'http://example.com/v2/previews/123/' ) ;
166322 } ) ;
167323 } ) ;
168324
169325 it ( 'should handle error' , function ( ) {
170326 fp . _request = function ( request , callback ) {
171- callback ( 'error' , { statusCode : 400 } , 'Some Error' ) ;
327+ callback ( 'error' , { statusCode : 500 } , 'Server Error' ) ;
172328 } ;
173329 fp . retrieve ( 'my-preview-id' , function ( err , result ) {
174- assert . equal ( err , 'Some Error' ) ;
330+ assert . equal ( err , 'Server Error' ) ;
175331 assert . equal ( result , null ) ;
176332 } ) ;
177333 } ) ;
0 commit comments