@@ -263,6 +263,7 @@ describe('Bucket', function() {
263263 describe ( 'upload' , function ( ) {
264264 var basename = 'proto_query.json' ;
265265 var filepath = 'test/testdata/' + basename ;
266+ var textFilepath = 'test/testdata/textfile.txt' ;
266267 var metadata = { a : 'b' , c : 'd' } ;
267268
268269 beforeEach ( function ( ) {
@@ -334,6 +335,46 @@ describe('Bucket', function() {
334335 } ) ;
335336 } ) ;
336337
338+ it ( 'should guess at the content type' , function ( done ) {
339+ var fakeFile = new FakeFile ( bucket , 'file-name' ) ;
340+ fakeFile . createWriteStream = function ( metadata ) {
341+ var dup = duplexify ( ) ;
342+ setImmediate ( function ( ) {
343+ assert . equal ( metadata . contentType , 'application/json' ) ;
344+ done ( ) ;
345+ } ) ;
346+ return dup ;
347+ } ;
348+ bucket . upload ( filepath , fakeFile , assert . ifError ) ;
349+ } ) ;
350+
351+ it ( 'should guess at the charset' , function ( done ) {
352+ var fakeFile = new FakeFile ( bucket , 'file-name' ) ;
353+ fakeFile . createWriteStream = function ( metadata ) {
354+ var dup = duplexify ( ) ;
355+ setImmediate ( function ( ) {
356+ assert . equal ( metadata . contentType , 'text/plain; charset=UTF-8' ) ;
357+ done ( ) ;
358+ } ) ;
359+ return dup ;
360+ } ;
361+ bucket . upload ( textFilepath , fakeFile , assert . ifError ) ;
362+ } ) ;
363+
364+ it ( 'should allow overriding content type' , function ( done ) {
365+ var fakeFile = new FakeFile ( bucket , 'file-name' ) ;
366+ var metadata = { contentType : 'made-up-content-type' } ;
367+ fakeFile . createWriteStream = function ( meta ) {
368+ var dup = duplexify ( ) ;
369+ setImmediate ( function ( ) {
370+ assert . equal ( meta . contentType , metadata . contentType ) ;
371+ done ( ) ;
372+ } ) ;
373+ return dup ;
374+ } ;
375+ bucket . upload ( filepath , fakeFile , metadata , assert . ifError ) ;
376+ } ) ;
377+
337378 it ( 'should execute callback on error' , function ( done ) {
338379 var error = new Error ( 'Error.' ) ;
339380 var fakeFile = new FakeFile ( bucket , 'file-name' ) ;
0 commit comments