diff options
| author | Igor Minar | 2012-01-09 10:36:51 -0800 |
|---|---|---|
| committer | Vojta Jina | 2012-01-09 14:38:32 -0800 |
| commit | 7146f7063602b82383211533d98e78f7eb2c03db (patch) | |
| tree | d222b0dcd6f0a34fc51195b358da5f97190797ac | |
| parent | 11cb9423a7a68ea65fee09241179fa04a5cb2eec (diff) | |
| download | angular.js-7146f7063602b82383211533d98e78f7eb2c03db.tar.bz2 | |
fix($httpBackend): fix for jsonp requests
| -rw-r--r-- | src/angular-mocks.js | 4 | ||||
| -rw-r--r-- | src/service/httpBackend.js | 3 | ||||
| -rw-r--r-- | test/angular-mocksSpec.js | 6 | ||||
| -rw-r--r-- | test/service/httpBackendSpec.js | 13 | ||||
| -rw-r--r-- | test/widgetsSpec.js | 1 |
5 files changed, 14 insertions, 13 deletions
diff --git a/src/angular-mocks.js b/src/angular-mocks.js index 4b462a87..cc7f63a8 100644 --- a/src/angular-mocks.js +++ b/src/angular-mocks.js @@ -147,8 +147,8 @@ angular.module.ngMock.$Browser = function() { }; self.$$scripts = []; - self.addJs = function(url, domId, done) { - var script = {url: url, id: domId, done: done}; + self.addJs = function(url, done) { + var script = {url: url, done: done}; self.$$scripts.push(script); return script; }; diff --git a/src/service/httpBackend.js b/src/service/httpBackend.js index 6da32600..f18808c6 100644 --- a/src/service/httpBackend.js +++ b/src/service/httpBackend.js @@ -38,7 +38,8 @@ function createHttpBackend($browser, XHR, $browserDefer, callbacks, body, locati callbacks[callbackId].data = data; }; - var script = $browser.addJs(url.replace('JSON_CALLBACK', callbackId), null, function() { + var script = $browser.addJs(url.replace('JSON_CALLBACK', 'angular.callbacks.' + callbackId), + function() { if (callbacks[callbackId].data) { completeRequest(callback, 200, callbacks[callbackId].data); } else { diff --git a/test/angular-mocksSpec.js b/test/angular-mocksSpec.js index 9c0bd681..054cabae 100644 --- a/test/angular-mocksSpec.js +++ b/test/angular-mocksSpec.js @@ -6,16 +6,14 @@ describe('mocks', function() { describe('addJs', function() { - it('should store url, id, done', inject(function($browser) { + it('should store url, done', inject(function($browser) { var url = 'some.js', - id = 'js-id', done = noop; - $browser.addJs(url, id, done); + $browser.addJs(url, done); var script = $browser.$$scripts.shift(); expect(script.url).toBe(url); - expect(script.id).toBe(id); expect(script.done).toBe(done); })); diff --git a/test/service/httpBackendSpec.js b/test/service/httpBackendSpec.js index 1c6d3a51..55d1a48a 100644 --- a/test/service/httpBackendSpec.js +++ b/test/service/httpBackendSpec.js @@ -19,7 +19,7 @@ describe('$httpBackend', function() { beforeEach(inject(function($injector) { - callbacks = {}; + callbacks = {counter: 0}; $browser = $injector.get('$browser'); fakeBody = {removeChild: jasmine.createSpy('body.removeChild')}; $backend = createHttpBackend($browser, MockXhr, fakeTimeout, callbacks, fakeBody); @@ -115,6 +115,9 @@ describe('$httpBackend', function() { describe('JSONP', function() { + var SCRIPT_URL = /([^\?]*)\?cb=angular\.callbacks\.(.*)/; + + it('should add script tag for JSONP request', function() { callback.andCallFake(function(status, response) { expect(status).toBe(200); @@ -125,10 +128,10 @@ describe('$httpBackend', function() { expect($browser.$$scripts.length).toBe(1); var script = $browser.$$scripts.shift(), - url = script.url.split('?cb='); + url = script.url.match(SCRIPT_URL); - expect(url[0]).toBe('http://example.org/path'); - callbacks[url[1]]('some-data'); + expect(url[1]).toBe('http://example.org/path'); + callbacks[url[2]]('some-data'); script.done(); expect(callback).toHaveBeenCalledOnce(); @@ -140,7 +143,7 @@ describe('$httpBackend', function() { expect($browser.$$scripts.length).toBe(1); var script = $browser.$$scripts.shift(), - callbackId = script.url.split('?cb=')[1]; + callbackId = script.url.match(SCRIPT_URL)[2]; callbacks[callbackId]('some-data'); script.done(); diff --git a/test/widgetsSpec.js b/test/widgetsSpec.js index 09d807b5..632724ce 100644 --- a/test/widgetsSpec.js +++ b/test/widgetsSpec.js @@ -244,7 +244,6 @@ describe('widget', function() { $rootScope.tpl = template; $rootScope.value = value; }); - $browser.defer.flush(); }; } |
