@@ -93,7 +93,7 @@ describe('HTTP Gateway', function () {
9393 ( cb ) => {
9494 const expectedMultihash = 'QmT78zSuBmuS4z925WZfrqQ1qHaJ56DQaTfyMUF7F8ff5o'
9595
96- http . api . node . files . add ( Buffer . from ( 'hello world' + '\n' ) , ( err , res ) => {
96+ http . api . node . files . add ( Buffer . from ( 'hello world' + '\n' ) , { cidVersion : 0 } , ( err , res ) => {
9797 expect ( err ) . to . not . exist ( )
9898 const file = res [ 0 ]
9999 expect ( file . path ) . to . equal ( expectedMultihash )
@@ -144,6 +144,10 @@ describe('HTTP Gateway', function () {
144144 } , ( res ) => {
145145 expect ( res . statusCode ) . to . equal ( 400 )
146146 expect ( res . result . Message ) . to . be . a ( 'string' )
147+ expect ( res . headers [ 'cache-control' ] ) . to . equal ( 'no-cache' )
148+ expect ( res . headers [ 'etag' ] ) . to . equal ( undefined )
149+ expect ( res . headers [ 'x-ipfs-path' ] ) . to . equal ( undefined )
150+ expect ( res . headers [ 'suborigin' ] ) . to . equal ( undefined )
147151 done ( )
148152 } )
149153 } )
@@ -155,21 +159,49 @@ describe('HTTP Gateway', function () {
155159 } , ( res ) => {
156160 expect ( res . statusCode ) . to . equal ( 400 )
157161 expect ( res . result . Message ) . to . be . a ( 'string' )
162+ expect ( res . headers [ 'cache-control' ] ) . to . equal ( 'no-cache' )
163+ expect ( res . headers [ 'etag' ] ) . to . equal ( undefined )
164+ expect ( res . headers [ 'x-ipfs-path' ] ) . to . equal ( undefined )
165+ expect ( res . headers [ 'suborigin' ] ) . to . equal ( undefined )
158166 done ( )
159167 } )
160168 } )
161169
162- it ( 'valid hash ' , ( done ) => {
170+ it ( 'valid CIDv0 ' , ( done ) => {
163171 gateway . inject ( {
164172 method : 'GET' ,
165173 url : '/ipfs/QmT78zSuBmuS4z925WZfrqQ1qHaJ56DQaTfyMUF7F8ff5o'
166174 } , ( res ) => {
167175 expect ( res . statusCode ) . to . equal ( 200 )
168176 expect ( res . rawPayload ) . to . eql ( Buffer . from ( 'hello world' + '\n' ) )
169177 expect ( res . payload ) . to . equal ( 'hello world' + '\n' )
178+ expect ( res . headers [ 'cache-control' ] ) . to . equal ( 'public, max-age=29030400, immutable' )
179+ expect ( res . headers [ 'etag' ] ) . to . equal ( '"QmT78zSuBmuS4z925WZfrqQ1qHaJ56DQaTfyMUF7F8ff5o"' )
180+ expect ( res . headers [ 'x-ipfs-path' ] ) . to . equal ( '/ipfs/QmT78zSuBmuS4z925WZfrqQ1qHaJ56DQaTfyMUF7F8ff5o' )
181+ expect ( res . headers [ 'suborigin' ] ) . to . equal ( 'ipfs000bafybeicg2rebjoofv4kbyovkw7af3rpiitvnl6i7ckcywaq6xjcxnc2mby' )
182+
183+ done ( )
184+ } )
185+ } )
186+
187+ /* TODO when support for CIDv1 lands
188+ it('valid CIDv1', (done) => {
189+ gateway.inject({
190+ method: 'GET',
191+ url: '/ipfs/TO-DO'
192+ }, (res) => {
193+ expect(res.statusCode).to.equal(200)
194+ expect(res.rawPayload).to.eql(Buffer.from('hello world' + '\n'))
195+ expect(res.payload).to.equal('hello world' + '\n')
196+ expect(res.headers['etag']).to.equal(TO-DO)
197+ expect(res.headers['x-ipfs-path']).to.equal(TO-DO)
198+ expect(res.headers['suborigin']).to.equal(TO-DO)
199+ expect(res.headers['cache-control']).to.equal('public, max-age=29030400, immutable')
200+
170201 done()
171202 })
172203 })
204+ */
173205
174206 it ( 'stream a large file' , ( done ) => {
175207 let bigFileHash = 'Qme79tX2bViL26vNjPsF3DP1R9rMKMvnPYJiKTTKPrXJjq'
@@ -193,6 +225,10 @@ describe('HTTP Gateway', function () {
193225 } , ( res ) => {
194226 expect ( res . statusCode ) . to . equal ( 200 )
195227 expect ( res . headers [ 'content-type' ] ) . to . equal ( 'image/jpeg' )
228+ expect ( res . headers [ 'x-ipfs-path' ] ) . to . equal ( '/ipfs/' + kitty )
229+ expect ( res . headers [ 'cache-control' ] ) . to . equal ( 'public, max-age=29030400, immutable' )
230+ expect ( res . headers [ 'etag' ] ) . to . equal ( '"Qmd286K6pohQcTKYqnS1YhWrCiS4gz7Xi34sdwMe9USZ7u"' )
231+ expect ( res . headers [ 'suborigin' ] ) . to . equal ( 'ipfs000bafybeidsg6t7ici2osxjkukisd5inixiunqdpq2q5jy4a2ruzdf6ewsqk4' )
196232
197233 let fileSignature = fileType ( res . rawPayload )
198234 expect ( fileSignature . mime ) . to . equal ( 'image/jpeg' )
@@ -239,6 +275,10 @@ describe('HTTP Gateway', function () {
239275 } , ( res ) => {
240276 expect ( res . statusCode ) . to . equal ( 200 )
241277 expect ( res . headers [ 'content-type' ] ) . to . equal ( 'text/html; charset=utf-8' )
278+ expect ( res . headers [ 'x-ipfs-path' ] ) . to . equal ( '/ipfs/' + dir )
279+ expect ( res . headers [ 'cache-control' ] ) . to . equal ( 'no-cache' )
280+ expect ( res . headers [ 'etag' ] ) . to . equal ( undefined )
281+ expect ( res . headers [ 'suborigin' ] ) . to . equal ( 'ipfs000bafybeidsg6t7ici2osxjkukisd5inixiunqdpq2q5jy4a2ruzdf6ewsqk4' )
242282
243283 // check if the cat picture is in the payload as a way to check
244284 // if this is an index of this directory
@@ -256,6 +296,11 @@ describe('HTTP Gateway', function () {
256296 url : '/ipfs/' + dir
257297 } , ( res ) => {
258298 expect ( res . statusCode ) . to . equal ( 200 )
299+ expect ( res . headers [ 'content-type' ] ) . to . equal ( 'text/html; charset=utf-8' )
300+ expect ( res . headers [ 'x-ipfs-path' ] ) . to . equal ( '/ipfs/' + dir )
301+ expect ( res . headers [ 'cache-control' ] ) . to . equal ( 'public, max-age=29030400, immutable' )
302+ expect ( res . headers [ 'etag' ] ) . to . equal ( '"Qma6665X5k3zti8nKy7gmXK2BndNDSkgmANpV6k3FUjUeg"' )
303+ expect ( res . headers [ 'suborigin' ] ) . to . equal ( 'ipfs000bafybeigccfheqv7upr4k64bkg5b5wiwelunyn2l2rbirmm43m34lcpuqqe' )
259304 expect ( res . rawPayload ) . to . deep . equal ( directoryContent [ 'index.html' ] )
260305 done ( )
261306 } )
@@ -269,6 +314,11 @@ describe('HTTP Gateway', function () {
269314 url : '/ipfs/' + dir
270315 } , ( res ) => {
271316 expect ( res . statusCode ) . to . equal ( 200 )
317+ expect ( res . headers [ 'content-type' ] ) . to . equal ( 'text/html; charset=utf-8' )
318+ expect ( res . headers [ 'x-ipfs-path' ] ) . to . equal ( '/ipfs/' + dir )
319+ expect ( res . headers [ 'cache-control' ] ) . to . equal ( 'public, max-age=29030400, immutable' )
320+ expect ( res . headers [ 'etag' ] ) . to . equal ( '"QmUBKGqJWiJYMrNed4bKsbo1nGYGmY418WCc2HgcwRvmHc"' )
321+ expect ( res . headers [ 'suborigin' ] ) . to . equal ( 'ipfs000bafybeigccfheqv7upr4k64bkg5b5wiwelunyn2l2rbirmm43m34lcpuqqe' )
272322 expect ( res . rawPayload ) . to . deep . equal ( directoryContent [ 'nested-folder/nested.html' ] )
273323 done ( )
274324 } )
@@ -283,6 +333,7 @@ describe('HTTP Gateway', function () {
283333 } , ( res ) => {
284334 expect ( res . statusCode ) . to . equal ( 301 )
285335 expect ( res . headers [ 'location' ] ) . to . equal ( '/ipfs/QmW2WQi7j6c7UgJTarActp7tDNikE4B2qXtFCfLPdsgaTQ/' )
336+ expect ( res . headers [ 'x-ipfs-path' ] ) . to . equal ( undefined )
286337 done ( )
287338 } )
288339 } )
@@ -296,6 +347,7 @@ describe('HTTP Gateway', function () {
296347 } , ( res ) => {
297348 expect ( res . statusCode ) . to . equal ( 302 )
298349 expect ( res . headers [ 'location' ] ) . to . equal ( '/ipfs/QmbQD7EMEL1zeebwBsWEfA3ndgSS6F7S6iTuwuqasPgVRi/index.html' )
350+ expect ( res . headers [ 'x-ipfs-path' ] ) . to . equal ( undefined )
299351 done ( )
300352 } )
301353 } )
0 commit comments