Skip to content
This repository was archived by the owner on Apr 12, 2024. It is now read-only.

Commit 7146f70

Browse files
IgorMinarvojtajina
authored andcommitted
fix($httpBackend): fix for jsonp requests
1 parent 11cb942 commit 7146f70

File tree

5 files changed

+14
-13
lines changed

5 files changed

+14
-13
lines changed

src/angular-mocks.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -147,8 +147,8 @@ angular.module.ngMock.$Browser = function() {
147147
};
148148

149149
self.$$scripts = [];
150-
self.addJs = function(url, domId, done) {
151-
var script = {url: url, id: domId, done: done};
150+
self.addJs = function(url, done) {
151+
var script = {url: url, done: done};
152152
self.$$scripts.push(script);
153153
return script;
154154
};

src/service/httpBackend.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,8 @@ function createHttpBackend($browser, XHR, $browserDefer, callbacks, body, locati
3838
callbacks[callbackId].data = data;
3939
};
4040

41-
var script = $browser.addJs(url.replace('JSON_CALLBACK', callbackId), null, function() {
41+
var script = $browser.addJs(url.replace('JSON_CALLBACK', 'angular.callbacks.' + callbackId),
42+
function() {
4243
if (callbacks[callbackId].data) {
4344
completeRequest(callback, 200, callbacks[callbackId].data);
4445
} else {

test/angular-mocksSpec.js

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,16 +6,14 @@ describe('mocks', function() {
66

77
describe('addJs', function() {
88

9-
it('should store url, id, done', inject(function($browser) {
9+
it('should store url, done', inject(function($browser) {
1010
var url = 'some.js',
11-
id = 'js-id',
1211
done = noop;
1312

14-
$browser.addJs(url, id, done);
13+
$browser.addJs(url, done);
1514

1615
var script = $browser.$$scripts.shift();
1716
expect(script.url).toBe(url);
18-
expect(script.id).toBe(id);
1917
expect(script.done).toBe(done);
2018
}));
2119

test/service/httpBackendSpec.js

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ describe('$httpBackend', function() {
1919

2020

2121
beforeEach(inject(function($injector) {
22-
callbacks = {};
22+
callbacks = {counter: 0};
2323
$browser = $injector.get('$browser');
2424
fakeBody = {removeChild: jasmine.createSpy('body.removeChild')};
2525
$backend = createHttpBackend($browser, MockXhr, fakeTimeout, callbacks, fakeBody);
@@ -115,6 +115,9 @@ describe('$httpBackend', function() {
115115

116116
describe('JSONP', function() {
117117

118+
var SCRIPT_URL = /([^\?]*)\?cb=angular\.callbacks\.(.*)/;
119+
120+
118121
it('should add script tag for JSONP request', function() {
119122
callback.andCallFake(function(status, response) {
120123
expect(status).toBe(200);
@@ -125,10 +128,10 @@ describe('$httpBackend', function() {
125128
expect($browser.$$scripts.length).toBe(1);
126129

127130
var script = $browser.$$scripts.shift(),
128-
url = script.url.split('?cb=');
131+
url = script.url.match(SCRIPT_URL);
129132

130-
expect(url[0]).toBe('http://example.org/path');
131-
callbacks[url[1]]('some-data');
133+
expect(url[1]).toBe('http://example.org/path');
134+
callbacks[url[2]]('some-data');
132135
script.done();
133136

134137
expect(callback).toHaveBeenCalledOnce();
@@ -140,7 +143,7 @@ describe('$httpBackend', function() {
140143
expect($browser.$$scripts.length).toBe(1);
141144

142145
var script = $browser.$$scripts.shift(),
143-
callbackId = script.url.split('?cb=')[1];
146+
callbackId = script.url.match(SCRIPT_URL)[2];
144147

145148
callbacks[callbackId]('some-data');
146149
script.done();

test/widgetsSpec.js

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -244,7 +244,6 @@ describe('widget', function() {
244244
$rootScope.tpl = template;
245245
$rootScope.value = value;
246246
});
247-
$browser.defer.flush();
248247
};
249248
}
250249

0 commit comments

Comments
 (0)