| 
									
										
										
										
											2015-04-28 23:07:55 -07:00
										 |  |  | import { | 
					
						
							|  |  |  |   AsyncTestCompleter, | 
					
						
							| 
									
										
										
										
											2015-06-19 12:14:12 -07:00
										 |  |  |   afterEach, | 
					
						
							| 
									
										
										
										
											2015-04-28 23:07:55 -07:00
										 |  |  |   beforeEach, | 
					
						
							|  |  |  |   ddescribe, | 
					
						
							|  |  |  |   describe, | 
					
						
							|  |  |  |   expect, | 
					
						
							|  |  |  |   iit, | 
					
						
							|  |  |  |   inject, | 
					
						
							|  |  |  |   it, | 
					
						
							|  |  |  |   xit, | 
					
						
							|  |  |  |   SpyObject | 
					
						
							|  |  |  | } from 'angular2/test_lib'; | 
					
						
							| 
									
										
										
										
											2015-09-03 22:01:36 -07:00
										 |  |  | import {Injector, bind} from 'angular2/core'; | 
					
						
							| 
									
										
										
										
											2015-08-20 14:28:25 -07:00
										 |  |  | import {MockBackend, MockConnection} from 'angular2/src/http/backends/mock_backend'; | 
					
						
							|  |  |  | import {EventEmitter, ObservableWrapper} from 'angular2/src/core/facade/async'; | 
					
						
							| 
									
										
										
										
											2015-07-28 13:10:25 -07:00
										 |  |  | import { | 
					
						
							|  |  |  |   BaseRequestOptions, | 
					
						
							|  |  |  |   ConnectionBackend, | 
					
						
							|  |  |  |   Request, | 
					
						
							|  |  |  |   RequestMethods, | 
					
						
							|  |  |  |   RequestOptions, | 
					
						
							|  |  |  |   Response, | 
					
						
							|  |  |  |   ResponseOptions, | 
					
						
							| 
									
										
										
										
											2015-07-30 16:29:16 +02:00
										 |  |  |   URLSearchParams, | 
					
						
							|  |  |  |   JSONP_BINDINGS, | 
					
						
							|  |  |  |   HTTP_BINDINGS, | 
					
						
							|  |  |  |   XHRBackend, | 
					
						
							|  |  |  |   JSONPBackend, | 
					
						
							|  |  |  |   Http, | 
					
						
							|  |  |  |   Jsonp | 
					
						
							| 
									
										
										
										
											2015-08-20 14:28:25 -07:00
										 |  |  | } from 'angular2/http'; | 
					
						
							| 
									
										
										
										
											2015-04-28 23:07:55 -07:00
										 |  |  | 
 | 
					
						
							|  |  |  | class SpyObserver extends SpyObject { | 
					
						
							|  |  |  |   onNext: Function; | 
					
						
							|  |  |  |   onError: Function; | 
					
						
							|  |  |  |   onCompleted: Function; | 
					
						
							|  |  |  |   constructor() { | 
					
						
							|  |  |  |     super(); | 
					
						
							|  |  |  |     this.onNext = this.spy('onNext'); | 
					
						
							|  |  |  |     this.onError = this.spy('onError'); | 
					
						
							|  |  |  |     this.onCompleted = this.spy('onCompleted'); | 
					
						
							|  |  |  |   } | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | export function main() { | 
					
						
							| 
									
										
										
										
											2015-07-30 16:29:16 +02:00
										 |  |  |   describe('injectables', () => { | 
					
						
							|  |  |  |     var url = 'http://foo.bar'; | 
					
						
							|  |  |  |     var http: Http; | 
					
						
							|  |  |  |     var parentInjector: Injector; | 
					
						
							|  |  |  |     var childInjector: Injector; | 
					
						
							|  |  |  |     var jsonpBackend: MockBackend; | 
					
						
							|  |  |  |     var xhrBackend: MockBackend; | 
					
						
							|  |  |  |     var jsonp: Jsonp; | 
					
						
							|  |  |  |     var http: Http; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     it('should allow using jsonpInjectables and httpInjectables in same injector', | 
					
						
							|  |  |  |        inject([AsyncTestCompleter], (async) => { | 
					
						
							|  |  |  |          parentInjector = Injector.resolveAndCreate( | 
					
						
							|  |  |  |              [bind(XHRBackend).toClass(MockBackend), bind(JSONPBackend).toClass(MockBackend)]); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |          childInjector = parentInjector.resolveAndCreateChild([ | 
					
						
							|  |  |  |            HTTP_BINDINGS, | 
					
						
							|  |  |  |            JSONP_BINDINGS, | 
					
						
							|  |  |  |            bind(XHRBackend).toClass(MockBackend), | 
					
						
							|  |  |  |            bind(JSONPBackend).toClass(MockBackend) | 
					
						
							|  |  |  |          ]); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |          http = childInjector.get(Http); | 
					
						
							|  |  |  |          jsonp = childInjector.get(Jsonp); | 
					
						
							|  |  |  |          jsonpBackend = childInjector.get(JSONPBackend); | 
					
						
							|  |  |  |          xhrBackend = childInjector.get(XHRBackend); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |          var xhrCreatedConnections = 0; | 
					
						
							|  |  |  |          var jsonpCreatedConnections = 0; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |          ObservableWrapper.subscribe(xhrBackend.connections, () => { | 
					
						
							|  |  |  |            xhrCreatedConnections++; | 
					
						
							|  |  |  |            expect(xhrCreatedConnections).toEqual(1); | 
					
						
							|  |  |  |            if (jsonpCreatedConnections) { | 
					
						
							|  |  |  |              async.done(); | 
					
						
							|  |  |  |            } | 
					
						
							|  |  |  |          }); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |          ObservableWrapper.subscribe(http.get(url), () => {}); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |          ObservableWrapper.subscribe(jsonpBackend.connections, () => { | 
					
						
							|  |  |  |            jsonpCreatedConnections++; | 
					
						
							|  |  |  |            expect(jsonpCreatedConnections).toEqual(1); | 
					
						
							|  |  |  |            if (xhrCreatedConnections) { | 
					
						
							|  |  |  |              async.done(); | 
					
						
							|  |  |  |            } | 
					
						
							|  |  |  |          }); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |          ObservableWrapper.subscribe(jsonp.request(url), () => {}); | 
					
						
							|  |  |  |        })); | 
					
						
							|  |  |  |   }); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-04-28 23:07:55 -07:00
										 |  |  |   describe('http', () => { | 
					
						
							|  |  |  |     var url = 'http://foo.bar'; | 
					
						
							| 
									
										
										
										
											2015-06-19 12:14:12 -07:00
										 |  |  |     var http: Http; | 
					
						
							|  |  |  |     var injector: Injector; | 
					
						
							| 
									
										
										
										
											2015-04-28 23:07:55 -07:00
										 |  |  |     var backend: MockBackend; | 
					
						
							|  |  |  |     var baseResponse; | 
					
						
							| 
									
										
										
										
											2015-09-18 13:30:05 -07:00
										 |  |  |     var jsonp: Jsonp; | 
					
						
							| 
									
										
										
										
											2015-04-28 23:07:55 -07:00
										 |  |  |     beforeEach(() => { | 
					
						
							| 
									
										
										
										
											2015-06-13 15:49:05 -07:00
										 |  |  |       injector = Injector.resolveAndCreate([ | 
					
						
							|  |  |  |         BaseRequestOptions, | 
					
						
							|  |  |  |         MockBackend, | 
					
						
							|  |  |  |         bind(Http).toFactory( | 
					
						
							| 
									
										
										
										
											2015-06-19 12:14:12 -07:00
										 |  |  |             function(backend: ConnectionBackend, defaultOptions: BaseRequestOptions) { | 
					
						
							| 
									
										
										
										
											2015-06-13 15:49:05 -07:00
										 |  |  |               return new Http(backend, defaultOptions); | 
					
						
							|  |  |  |             }, | 
					
						
							| 
									
										
										
										
											2015-09-18 13:30:05 -07:00
										 |  |  |             [MockBackend, BaseRequestOptions]), | 
					
						
							|  |  |  |         bind(Jsonp).toFactory( | 
					
						
							|  |  |  |             function(backend: ConnectionBackend, defaultOptions: BaseRequestOptions) { | 
					
						
							|  |  |  |               return new Jsonp(backend, defaultOptions); | 
					
						
							|  |  |  |             }, | 
					
						
							| 
									
										
										
										
											2015-06-13 15:49:05 -07:00
										 |  |  |             [MockBackend, BaseRequestOptions]) | 
					
						
							|  |  |  |       ]); | 
					
						
							| 
									
										
										
										
											2015-04-28 23:07:55 -07:00
										 |  |  |       http = injector.get(Http); | 
					
						
							| 
									
										
										
										
											2015-09-18 13:30:05 -07:00
										 |  |  |       jsonp = injector.get(Jsonp); | 
					
						
							| 
									
										
										
										
											2015-04-28 23:07:55 -07:00
										 |  |  |       backend = injector.get(MockBackend); | 
					
						
							| 
									
										
										
										
											2015-06-24 00:27:07 -07:00
										 |  |  |       baseResponse = new Response(new ResponseOptions({body: 'base response'})); | 
					
						
							| 
									
										
										
										
											2015-04-28 23:07:55 -07:00
										 |  |  |     }); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-06-13 15:49:05 -07:00
										 |  |  |     afterEach(() => backend.verifyNoPendingRequests()); | 
					
						
							| 
									
										
										
										
											2015-04-28 23:07:55 -07:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-06-13 15:49:05 -07:00
										 |  |  |     describe('Http', () => { | 
					
						
							| 
									
										
										
										
											2015-06-13 16:44:32 -07:00
										 |  |  |       describe('.request()', () => { | 
					
						
							| 
									
										
										
										
											2015-06-09 15:18:57 -07:00
										 |  |  |         it('should return an Observable', | 
					
						
							| 
									
										
										
										
											2015-06-19 12:14:12 -07:00
										 |  |  |            () => { expect(ObservableWrapper.isObservable(http.request(url))).toBe(true); }); | 
					
						
							| 
									
										
										
										
											2015-06-13 16:44:32 -07:00
										 |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-06-19 12:14:12 -07:00
										 |  |  |         it('should accept a fully-qualified request as its only parameter', | 
					
						
							|  |  |  |            inject([AsyncTestCompleter], (async) => { | 
					
						
							| 
									
										
										
										
											2015-07-07 20:03:00 -07:00
										 |  |  |              ObservableWrapper.subscribe<MockConnection>(backend.connections, c => { | 
					
						
							| 
									
										
										
										
											2015-06-19 12:14:12 -07:00
										 |  |  |                expect(c.request.url).toBe('https://google.com'); | 
					
						
							| 
									
										
										
										
											2015-06-24 00:27:07 -07:00
										 |  |  |                c.mockRespond(new Response(new ResponseOptions({body: 'Thank you'}))); | 
					
						
							| 
									
										
										
										
											2015-06-19 12:14:12 -07:00
										 |  |  |                async.done(); | 
					
						
							|  |  |  |              }); | 
					
						
							|  |  |  |              ObservableWrapper.subscribe( | 
					
						
							|  |  |  |                  http.request(new Request(new RequestOptions({url: 'https://google.com'}))), | 
					
						
							|  |  |  |                  (res) => {}); | 
					
						
							|  |  |  |            })); | 
					
						
							| 
									
										
										
										
											2015-06-13 15:49:05 -07:00
										 |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-06-19 12:14:12 -07:00
										 |  |  |         it('should perform a get request for given url if only passed a string', | 
					
						
							|  |  |  |            inject([AsyncTestCompleter], (async) => { | 
					
						
							| 
									
										
										
										
											2015-07-07 20:03:00 -07:00
										 |  |  |              ObservableWrapper.subscribe<MockConnection>(backend.connections, | 
					
						
							|  |  |  |                                                          c => c.mockRespond(baseResponse)); | 
					
						
							|  |  |  |              ObservableWrapper.subscribe<Response>(http.request('http://basic.connection'), res => { | 
					
						
							| 
									
										
										
										
											2015-06-19 12:14:12 -07:00
										 |  |  |                expect(res.text()).toBe('base response'); | 
					
						
							|  |  |  |                async.done(); | 
					
						
							|  |  |  |              }); | 
					
						
							|  |  |  |            })); | 
					
						
							| 
									
										
										
										
											2015-06-13 15:49:05 -07:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-06-19 12:14:12 -07:00
										 |  |  |         // TODO: make dart not complain about "argument type 'Map' cannot be assigned to the
 | 
					
						
							|  |  |  |         // parameter type 'IRequestOptions'"
 | 
					
						
							|  |  |  |         // xit('should perform a get request for given url if passed a dictionary',
 | 
					
						
							|  |  |  |         //     inject([AsyncTestCompleter], async => {
 | 
					
						
							|  |  |  |         //       ObservableWrapper.subscribe(backend.connections, c => c.mockRespond(baseResponse));
 | 
					
						
							|  |  |  |         //       ObservableWrapper.subscribe(http.request(url, {method: RequestMethods.GET}), res =>
 | 
					
						
							|  |  |  |         //       {
 | 
					
						
							|  |  |  |         //         expect(res.text()).toBe('base response');
 | 
					
						
							|  |  |  |         //         async.done();
 | 
					
						
							|  |  |  |         //       });
 | 
					
						
							|  |  |  |         //     }));
 | 
					
						
							| 
									
										
										
										
											2015-09-18 13:30:05 -07:00
										 |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         it('should throw if url is not a string or Request', () => { | 
					
						
							|  |  |  |           var req = <Request>{}; | 
					
						
							|  |  |  |           expect(() => http.request(req)) | 
					
						
							|  |  |  |               .toThrowError('First argument must be a url string or Request instance.'); | 
					
						
							|  |  |  |         }); | 
					
						
							| 
									
										
										
										
											2015-06-19 12:14:12 -07:00
										 |  |  |       }); | 
					
						
							| 
									
										
										
										
											2015-06-13 15:49:05 -07:00
										 |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |       describe('.get()', () => { | 
					
						
							|  |  |  |         it('should perform a get request for given url', inject([AsyncTestCompleter], async => { | 
					
						
							| 
									
										
										
										
											2015-07-07 20:03:00 -07:00
										 |  |  |              ObservableWrapper.subscribe<MockConnection>(backend.connections, c => { | 
					
						
							| 
									
										
										
										
											2015-08-26 13:40:12 -07:00
										 |  |  |                expect(c.request.method).toBe(RequestMethods.Get); | 
					
						
							| 
									
										
										
										
											2015-06-13 15:49:05 -07:00
										 |  |  |                backend.resolveAllConnections(); | 
					
						
							|  |  |  |                async.done(); | 
					
						
							|  |  |  |              }); | 
					
						
							| 
									
										
										
										
											2015-06-19 12:14:12 -07:00
										 |  |  |              ObservableWrapper.subscribe(http.get(url), res => {}); | 
					
						
							| 
									
										
										
										
											2015-06-13 15:49:05 -07:00
										 |  |  |            })); | 
					
						
							|  |  |  |       }); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |       describe('.post()', () => { | 
					
						
							|  |  |  |         it('should perform a post request for given url', inject([AsyncTestCompleter], async => { | 
					
						
							| 
									
										
										
										
											2015-07-07 20:03:00 -07:00
										 |  |  |              ObservableWrapper.subscribe<MockConnection>(backend.connections, c => { | 
					
						
							| 
									
										
										
										
											2015-08-26 13:40:12 -07:00
										 |  |  |                expect(c.request.method).toBe(RequestMethods.Post); | 
					
						
							| 
									
										
										
										
											2015-06-13 15:49:05 -07:00
										 |  |  |                backend.resolveAllConnections(); | 
					
						
							|  |  |  |                async.done(); | 
					
						
							|  |  |  |              }); | 
					
						
							| 
									
										
										
										
											2015-06-19 12:14:12 -07:00
										 |  |  |              ObservableWrapper.subscribe(http.post(url, 'post me'), res => {}); | 
					
						
							| 
									
										
										
										
											2015-06-13 15:49:05 -07:00
										 |  |  |            })); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         it('should attach the provided body to the request', inject([AsyncTestCompleter], async => { | 
					
						
							| 
									
										
										
										
											2015-06-19 12:14:12 -07:00
										 |  |  |              var body = 'this is my post body'; | 
					
						
							| 
									
										
										
										
											2015-07-07 20:03:00 -07:00
										 |  |  |              ObservableWrapper.subscribe<MockConnection>(backend.connections, c => { | 
					
						
							| 
									
										
										
										
											2015-06-13 15:49:05 -07:00
										 |  |  |                expect(c.request.text()).toBe(body); | 
					
						
							|  |  |  |                backend.resolveAllConnections(); | 
					
						
							|  |  |  |                async.done(); | 
					
						
							|  |  |  |              }); | 
					
						
							| 
									
										
										
										
											2015-06-19 12:14:12 -07:00
										 |  |  |              ObservableWrapper.subscribe(http.post(url, body), res => {}); | 
					
						
							| 
									
										
										
										
											2015-06-13 15:49:05 -07:00
										 |  |  |            })); | 
					
						
							|  |  |  |       }); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |       describe('.put()', () => { | 
					
						
							|  |  |  |         it('should perform a put request for given url', inject([AsyncTestCompleter], async => { | 
					
						
							| 
									
										
										
										
											2015-07-07 20:03:00 -07:00
										 |  |  |              ObservableWrapper.subscribe<MockConnection>(backend.connections, c => { | 
					
						
							| 
									
										
										
										
											2015-08-26 13:40:12 -07:00
										 |  |  |                expect(c.request.method).toBe(RequestMethods.Put); | 
					
						
							| 
									
										
										
										
											2015-06-13 15:49:05 -07:00
										 |  |  |                backend.resolveAllConnections(); | 
					
						
							|  |  |  |                async.done(); | 
					
						
							|  |  |  |              }); | 
					
						
							| 
									
										
										
										
											2015-06-19 12:14:12 -07:00
										 |  |  |              ObservableWrapper.subscribe(http.put(url, 'put me'), res => {}); | 
					
						
							| 
									
										
										
										
											2015-06-13 15:49:05 -07:00
										 |  |  |            })); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         it('should attach the provided body to the request', inject([AsyncTestCompleter], async => { | 
					
						
							|  |  |  |              var body = 'this is my put body'; | 
					
						
							| 
									
										
										
										
											2015-07-07 20:03:00 -07:00
										 |  |  |              ObservableWrapper.subscribe<MockConnection>(backend.connections, c => { | 
					
						
							| 
									
										
										
										
											2015-06-13 15:49:05 -07:00
										 |  |  |                expect(c.request.text()).toBe(body); | 
					
						
							|  |  |  |                backend.resolveAllConnections(); | 
					
						
							|  |  |  |                async.done(); | 
					
						
							|  |  |  |              }); | 
					
						
							| 
									
										
										
										
											2015-06-19 12:14:12 -07:00
										 |  |  |              ObservableWrapper.subscribe(http.put(url, body), res => {}); | 
					
						
							| 
									
										
										
										
											2015-06-13 15:49:05 -07:00
										 |  |  |            })); | 
					
						
							|  |  |  |       }); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |       describe('.delete()', () => { | 
					
						
							|  |  |  |         it('should perform a delete request for given url', inject([AsyncTestCompleter], async => { | 
					
						
							| 
									
										
										
										
											2015-07-07 20:03:00 -07:00
										 |  |  |              ObservableWrapper.subscribe<MockConnection>(backend.connections, c => { | 
					
						
							| 
									
										
										
										
											2015-08-26 13:40:12 -07:00
										 |  |  |                expect(c.request.method).toBe(RequestMethods.Delete); | 
					
						
							| 
									
										
										
										
											2015-06-13 15:49:05 -07:00
										 |  |  |                backend.resolveAllConnections(); | 
					
						
							|  |  |  |                async.done(); | 
					
						
							|  |  |  |              }); | 
					
						
							| 
									
										
										
										
											2015-06-19 12:14:12 -07:00
										 |  |  |              ObservableWrapper.subscribe(http.delete(url), res => {}); | 
					
						
							| 
									
										
										
										
											2015-06-13 15:49:05 -07:00
										 |  |  |            })); | 
					
						
							|  |  |  |       }); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |       describe('.patch()', () => { | 
					
						
							|  |  |  |         it('should perform a patch request for given url', inject([AsyncTestCompleter], async => { | 
					
						
							| 
									
										
										
										
											2015-07-07 20:03:00 -07:00
										 |  |  |              ObservableWrapper.subscribe<MockConnection>(backend.connections, c => { | 
					
						
							| 
									
										
										
										
											2015-08-26 13:40:12 -07:00
										 |  |  |                expect(c.request.method).toBe(RequestMethods.Patch); | 
					
						
							| 
									
										
										
										
											2015-06-13 15:49:05 -07:00
										 |  |  |                backend.resolveAllConnections(); | 
					
						
							| 
									
										
										
										
											2015-04-28 23:07:55 -07:00
										 |  |  |                async.done(); | 
					
						
							|  |  |  |              }); | 
					
						
							| 
									
										
										
										
											2015-06-19 12:14:12 -07:00
										 |  |  |              ObservableWrapper.subscribe(http.patch(url, 'this is my patch body'), res => {}); | 
					
						
							| 
									
										
										
										
											2015-06-13 15:49:05 -07:00
										 |  |  |            })); | 
					
						
							| 
									
										
										
										
											2015-04-28 23:07:55 -07:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-06-13 15:49:05 -07:00
										 |  |  |         it('should attach the provided body to the request', inject([AsyncTestCompleter], async => { | 
					
						
							| 
									
										
										
										
											2015-06-19 12:14:12 -07:00
										 |  |  |              var body = 'this is my patch body'; | 
					
						
							| 
									
										
										
										
											2015-07-07 20:03:00 -07:00
										 |  |  |              ObservableWrapper.subscribe<MockConnection>(backend.connections, c => { | 
					
						
							| 
									
										
										
										
											2015-06-13 15:49:05 -07:00
										 |  |  |                expect(c.request.text()).toBe(body); | 
					
						
							|  |  |  |                backend.resolveAllConnections(); | 
					
						
							|  |  |  |                async.done(); | 
					
						
							|  |  |  |              }); | 
					
						
							| 
									
										
										
										
											2015-06-19 12:14:12 -07:00
										 |  |  |              ObservableWrapper.subscribe(http.patch(url, body), res => {}); | 
					
						
							| 
									
										
										
										
											2015-06-13 15:49:05 -07:00
										 |  |  |            })); | 
					
						
							|  |  |  |       }); | 
					
						
							| 
									
										
										
										
											2015-04-28 23:07:55 -07:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-06-13 15:49:05 -07:00
										 |  |  | 
 | 
					
						
							|  |  |  |       describe('.head()', () => { | 
					
						
							|  |  |  |         it('should perform a head request for given url', inject([AsyncTestCompleter], async => { | 
					
						
							| 
									
										
										
										
											2015-07-07 20:03:00 -07:00
										 |  |  |              ObservableWrapper.subscribe<MockConnection>(backend.connections, c => { | 
					
						
							| 
									
										
										
										
											2015-08-26 13:40:12 -07:00
										 |  |  |                expect(c.request.method).toBe(RequestMethods.Head); | 
					
						
							| 
									
										
										
										
											2015-06-13 15:49:05 -07:00
										 |  |  |                backend.resolveAllConnections(); | 
					
						
							| 
									
										
										
										
											2015-04-28 23:07:55 -07:00
										 |  |  |                async.done(); | 
					
						
							|  |  |  |              }); | 
					
						
							| 
									
										
										
										
											2015-06-19 12:14:12 -07:00
										 |  |  |              ObservableWrapper.subscribe(http.head(url), res => {}); | 
					
						
							| 
									
										
										
										
											2015-06-13 15:49:05 -07:00
										 |  |  |            })); | 
					
						
							|  |  |  |       }); | 
					
						
							| 
									
										
										
										
											2015-07-13 14:47:10 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |       describe('searchParams', () => { | 
					
						
							|  |  |  |         it('should append search params to url', inject([AsyncTestCompleter], async => { | 
					
						
							|  |  |  |              var params = new URLSearchParams(); | 
					
						
							|  |  |  |              params.append('q', 'puppies'); | 
					
						
							|  |  |  |              ObservableWrapper.subscribe<MockConnection>(backend.connections, c => { | 
					
						
							|  |  |  |                expect(c.request.url).toEqual('https://www.google.com?q=puppies'); | 
					
						
							|  |  |  |                backend.resolveAllConnections(); | 
					
						
							|  |  |  |                async.done(); | 
					
						
							|  |  |  |              }); | 
					
						
							|  |  |  |              ObservableWrapper.subscribe( | 
					
						
							|  |  |  |                  http.get('https://www.google.com', new RequestOptions({search: params})), | 
					
						
							|  |  |  |                  res => {}); | 
					
						
							|  |  |  |            })); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         it('should append string search params to url', inject([AsyncTestCompleter], async => { | 
					
						
							|  |  |  |              ObservableWrapper.subscribe<MockConnection>(backend.connections, c => { | 
					
						
							|  |  |  |                expect(c.request.url).toEqual('https://www.google.com?q=piggies'); | 
					
						
							|  |  |  |                backend.resolveAllConnections(); | 
					
						
							|  |  |  |                async.done(); | 
					
						
							|  |  |  |              }); | 
					
						
							|  |  |  |              ObservableWrapper.subscribe( | 
					
						
							|  |  |  |                  http.get('https://www.google.com', new RequestOptions({search: 'q=piggies'})), | 
					
						
							|  |  |  |                  res => {}); | 
					
						
							|  |  |  |            })); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         it('should produce valid url when url already contains a query', | 
					
						
							|  |  |  |            inject([AsyncTestCompleter], async => { | 
					
						
							|  |  |  |              ObservableWrapper.subscribe<MockConnection>(backend.connections, c => { | 
					
						
							|  |  |  |                expect(c.request.url).toEqual('https://www.google.com?q=angular&as_eq=1.x'); | 
					
						
							|  |  |  |                backend.resolveAllConnections(); | 
					
						
							|  |  |  |                async.done(); | 
					
						
							|  |  |  |              }); | 
					
						
							|  |  |  |              ObservableWrapper.subscribe(http.get('https://www.google.com?q=angular', | 
					
						
							|  |  |  |                                                   new RequestOptions({search: 'as_eq=1.x'})), | 
					
						
							|  |  |  |                                          res => {}); | 
					
						
							|  |  |  |            })); | 
					
						
							|  |  |  |       }); | 
					
						
							| 
									
										
										
										
											2015-06-13 15:49:05 -07:00
										 |  |  |     }); | 
					
						
							| 
									
										
										
										
											2015-09-18 13:30:05 -07:00
										 |  |  | 
 | 
					
						
							|  |  |  |     describe('Jsonp', () => { | 
					
						
							|  |  |  |       describe('.request()', () => { | 
					
						
							|  |  |  |         it('should throw if url is not a string or Request', () => { | 
					
						
							|  |  |  |           var req = <Request>{}; | 
					
						
							|  |  |  |           expect(() => jsonp.request(req)) | 
					
						
							|  |  |  |               .toThrowError('First argument must be a url string or Request instance.'); | 
					
						
							|  |  |  |         }); | 
					
						
							|  |  |  |       }); | 
					
						
							|  |  |  |     }); | 
					
						
							| 
									
										
										
										
											2015-04-28 23:07:55 -07:00
										 |  |  |   }); | 
					
						
							|  |  |  | } |