@@ -40,6 +40,7 @@ class MockBrowserXHR extends BrowserXhr {
4040 setRequestHeader : any ;
4141 callbacks = new Map < string , Function > ( ) ;
4242 status : number ;
43+ responseHeaders : string ;
4344 constructor ( ) {
4445 super ( ) ;
4546 var spy = new SpyObject ( ) ;
@@ -55,6 +56,10 @@ class MockBrowserXHR extends BrowserXhr {
5556
5657 setResponseText ( value ) { this . responseText = value ; }
5758
59+ setResponseHeaders ( value ) { this . responseHeaders = value ; }
60+
61+ getAllResponseHeaders ( ) { return this . responseHeaders || '' ; }
62+
5863 addEventListener ( type : string , cb : Function ) { this . callbacks . set ( type , cb ) ; }
5964
6065 removeEventListener ( type : string , cb : Function ) { this . callbacks . delete ( type ) ; }
@@ -256,6 +261,30 @@ export function main() {
256261 existingXHRs [ 0 ] . dispatchEvent ( 'load' ) ;
257262 } ) ) ;
258263
264+ it ( 'should parse response headers and add them to the response' ,
265+ inject ( [ AsyncTestCompleter ] , async => {
266+ var statusCode = 200 ;
267+ var connection = new XHRConnection ( sampleRequest , new MockBrowserXHR ( ) ,
268+ new ResponseOptions ( { status : statusCode } ) ) ;
269+
270+ let responseHeaderString =
271+ `Date: Fri, 20 Nov 2015 01:45:26 GMT
272+ Content-Type: application/json; charset=utf-8
273+ Transfer-Encoding: chunked
274+ Connection: keep-alive`
275+
276+ connection . response . subscribe ( res => {
277+ expect ( res . headers . get ( 'Date' ) ) . toEqual ( 'Fri, 20 Nov 2015 01:45:26 GMT' ) ;
278+ expect ( res . headers . get ( 'Content-Type' ) ) . toEqual ( 'application/json; charset=utf-8' ) ;
279+ expect ( res . headers . get ( 'Transfer-Encoding' ) ) . toEqual ( 'chunked' ) ;
280+ expect ( res . headers . get ( 'Connection' ) ) . toEqual ( 'keep-alive' ) ;
281+ async . done ( ) ;
282+ } ) ;
283+
284+ existingXHRs [ 0 ] . setResponseHeaders ( responseHeaderString ) ;
285+ existingXHRs [ 0 ] . setStatusCode ( statusCode ) ;
286+ existingXHRs [ 0 ] . dispatchEvent ( 'load' ) ;
287+ } ) ) ;
259288 } ) ;
260289 } ) ;
261290}
0 commit comments