angularjs-rails 1.0.6.2 → 1.0.7
Sign up to get free protection for your applications and to get access to all the features.
- data/lib/angularjs-rails/version.rb +1 -1
- data/vendor/assets/javascripts/angular-bootstrap-prettify.js +1 -1
- data/vendor/assets/javascripts/angular-bootstrap.js +9 -1
- data/vendor/assets/javascripts/angular-cookies.js +3 -2
- data/vendor/assets/javascripts/angular-loader.js +1 -1
- data/vendor/assets/javascripts/angular-mocks.js +33 -13
- data/vendor/assets/javascripts/angular-resource.js +1 -1
- data/vendor/assets/javascripts/angular-sanitize.js +1 -1
- data/vendor/assets/javascripts/angular-scenario.js +276 -189
- data/vendor/assets/javascripts/angular.js +276 -189
- data/vendor/assets/javascripts/unstable/angular-cookies.js +3 -2
- data/vendor/assets/javascripts/unstable/angular-loader.js +1 -1
- data/vendor/assets/javascripts/unstable/angular-mobile.js +207 -14
- data/vendor/assets/javascripts/unstable/angular-mocks.js +61 -21
- data/vendor/assets/javascripts/unstable/angular-resource.js +25 -9
- data/vendor/assets/javascripts/unstable/angular-sanitize.js +1 -1
- data/vendor/assets/javascripts/unstable/angular-scenario.js +1374 -773
- data/vendor/assets/javascripts/unstable/angular.js +1229 -667
- metadata +2 -6
- data/vendor/assets/javascripts/jstd-scenario-adapter-config.js +0 -6
- data/vendor/assets/javascripts/jstd-scenario-adapter.js +0 -185
- data/vendor/assets/javascripts/unstable/angular-bootstrap-prettify.js +0 -1838
- data/vendor/assets/javascripts/unstable/angular-bootstrap.js +0 -167
@@ -1,5 +1,5 @@
|
|
1
1
|
/**
|
2
|
-
* @license AngularJS v1.1.
|
2
|
+
* @license AngularJS v1.1.5
|
3
3
|
* (c) 2010-2012 Google, Inc. http://angularjs.org
|
4
4
|
* License: MIT
|
5
5
|
*/
|
@@ -145,7 +145,8 @@ angular.module('ngCookies', ['ng']).
|
|
145
145
|
* @returns {Object} Deserialized cookie value.
|
146
146
|
*/
|
147
147
|
get: function(key) {
|
148
|
-
|
148
|
+
var value = $cookies[key];
|
149
|
+
return value ? angular.fromJson(value) : value;
|
149
150
|
},
|
150
151
|
|
151
152
|
/**
|
@@ -1,5 +1,5 @@
|
|
1
1
|
/**
|
2
|
-
* @license AngularJS v1.1.
|
2
|
+
* @license AngularJS v1.1.5
|
3
3
|
* (c) 2010-2012 Google, Inc. http://angularjs.org
|
4
4
|
* License: MIT
|
5
5
|
*/
|
@@ -10,23 +10,28 @@
|
|
10
10
|
* @ngdoc overview
|
11
11
|
* @name ngMobile
|
12
12
|
* @description
|
13
|
-
|
14
|
-
|
15
|
-
/*
|
16
|
-
* Touch events and other mobile helpers by Braden Shepherdson (braden.shepherdson@gmail.com)
|
13
|
+
* Touch events and other mobile helpers.
|
17
14
|
* Based on jQuery Mobile touch event handling (jquerymobile.com)
|
18
15
|
*/
|
19
16
|
|
20
|
-
// define
|
17
|
+
// define ngMobile module
|
21
18
|
var ngMobile = angular.module('ngMobile', []);
|
22
19
|
|
23
20
|
/**
|
24
21
|
* @ngdoc directive
|
25
|
-
* @name ngMobile.directive:
|
22
|
+
* @name ngMobile.directive:ngClick
|
26
23
|
*
|
27
24
|
* @description
|
28
|
-
*
|
29
|
-
*
|
25
|
+
* A more powerful replacement for the default ngClick designed to be used on touchscreen
|
26
|
+
* devices. Most mobile browsers wait about 300ms after a tap-and-release before sending
|
27
|
+
* the click event. This version handles them immediately, and then prevents the
|
28
|
+
* following click event from propagating.
|
29
|
+
*
|
30
|
+
* This directive can fall back to using an ordinary click event, and so works on desktop
|
31
|
+
* browsers as well as mobile.
|
32
|
+
*
|
33
|
+
* This directive also sets the CSS class `ng-click-active` while the element is being held
|
34
|
+
* down (by a mouse click or touch) so you can restyle the depressed element if you wish.
|
30
35
|
*
|
31
36
|
* @element ANY
|
32
37
|
* @param {expression} ngClick {@link guide/expression Expression} to evaluate
|
@@ -35,7 +40,7 @@ var ngMobile = angular.module('ngMobile', []);
|
|
35
40
|
* @example
|
36
41
|
<doc:example>
|
37
42
|
<doc:source>
|
38
|
-
<button ng-
|
43
|
+
<button ng-click="count = count + 1" ng-init="count=0">
|
39
44
|
Increment
|
40
45
|
</button>
|
41
46
|
count: {{ count }}
|
@@ -57,6 +62,8 @@ ngMobile.directive('ngClick', ['$parse', '$timeout', '$rootElement',
|
|
57
62
|
var MOVE_TOLERANCE = 12; // 12px seems to work in most mobile browsers.
|
58
63
|
var PREVENT_DURATION = 2500; // 2.5 seconds maximum from preventGhostClick call to click
|
59
64
|
var CLICKBUSTER_THRESHOLD = 25; // 25 pixels in any dimension is the limit for busting clicks.
|
65
|
+
|
66
|
+
var ACTIVE_CLASS_NAME = 'ng-click-active';
|
60
67
|
var lastPreventedTime;
|
61
68
|
var touchCoordinates;
|
62
69
|
|
@@ -183,7 +190,7 @@ ngMobile.directive('ngClick', ['$parse', '$timeout', '$rootElement',
|
|
183
190
|
|
184
191
|
// Actual linking function.
|
185
192
|
return function(scope, element, attr) {
|
186
|
-
var
|
193
|
+
var clickHandler = $parse(attr.ngClick),
|
187
194
|
tapping = false,
|
188
195
|
tapElement, // Used to blur the element after a tap.
|
189
196
|
startTime, // Used to check if the tap was held too long.
|
@@ -192,6 +199,7 @@ ngMobile.directive('ngClick', ['$parse', '$timeout', '$rootElement',
|
|
192
199
|
|
193
200
|
function resetState() {
|
194
201
|
tapping = false;
|
202
|
+
element.removeClass(ACTIVE_CLASS_NAME);
|
195
203
|
}
|
196
204
|
|
197
205
|
element.bind('touchstart', function(event) {
|
@@ -202,6 +210,8 @@ ngMobile.directive('ngClick', ['$parse', '$timeout', '$rootElement',
|
|
202
210
|
tapElement = tapElement.parentNode;
|
203
211
|
}
|
204
212
|
|
213
|
+
element.addClass(ACTIVE_CLASS_NAME);
|
214
|
+
|
205
215
|
startTime = Date.now();
|
206
216
|
|
207
217
|
var touches = event.touches && event.touches.length ? event.touches : [event];
|
@@ -241,10 +251,11 @@ ngMobile.directive('ngClick', ['$parse', '$timeout', '$rootElement',
|
|
241
251
|
|
242
252
|
scope.$apply(function() {
|
243
253
|
// TODO(braden): This is sending the touchend, not a tap or click. Is that kosher?
|
244
|
-
|
254
|
+
clickHandler(scope, {$event: event});
|
245
255
|
});
|
246
256
|
}
|
247
|
-
|
257
|
+
|
258
|
+
resetState();
|
248
259
|
});
|
249
260
|
|
250
261
|
// Hack for iOS Safari's benefit. It goes searching for onclick handlers and is liable to click
|
@@ -256,12 +267,194 @@ ngMobile.directive('ngClick', ['$parse', '$timeout', '$rootElement',
|
|
256
267
|
// desktop as well, to allow more portable sites.
|
257
268
|
element.bind('click', function(event) {
|
258
269
|
scope.$apply(function() {
|
259
|
-
|
270
|
+
clickHandler(scope, {$event: event});
|
260
271
|
});
|
261
272
|
});
|
273
|
+
|
274
|
+
element.bind('mousedown', function(event) {
|
275
|
+
element.addClass(ACTIVE_CLASS_NAME);
|
276
|
+
});
|
277
|
+
|
278
|
+
element.bind('mousemove mouseup', function(event) {
|
279
|
+
element.removeClass(ACTIVE_CLASS_NAME);
|
280
|
+
});
|
281
|
+
|
262
282
|
};
|
263
283
|
}]);
|
264
284
|
|
285
|
+
/**
|
286
|
+
* @ngdoc directive
|
287
|
+
* @name ngMobile.directive:ngSwipeLeft
|
288
|
+
*
|
289
|
+
* @description
|
290
|
+
* Specify custom behavior when an element is swiped to the left on a touchscreen device.
|
291
|
+
* A leftward swipe is a quick, right-to-left slide of the finger.
|
292
|
+
* Though ngSwipeLeft is designed for touch-based devices, it will work with a mouse click and drag too.
|
293
|
+
*
|
294
|
+
* @element ANY
|
295
|
+
* @param {expression} ngSwipeLeft {@link guide/expression Expression} to evaluate
|
296
|
+
* upon left swipe. (Event object is available as `$event`)
|
297
|
+
*
|
298
|
+
* @example
|
299
|
+
<doc:example>
|
300
|
+
<doc:source>
|
301
|
+
<div ng-show="!showActions" ng-swipe-left="showActions = true">
|
302
|
+
Some list content, like an email in the inbox
|
303
|
+
</div>
|
304
|
+
<div ng-show="showActions" ng-swipe-right="showActions = false">
|
305
|
+
<button ng-click="reply()">Reply</button>
|
306
|
+
<button ng-click="delete()">Delete</button>
|
307
|
+
</div>
|
308
|
+
</doc:source>
|
309
|
+
</doc:example>
|
310
|
+
*/
|
311
|
+
|
312
|
+
/**
|
313
|
+
* @ngdoc directive
|
314
|
+
* @name ngMobile.directive:ngSwipeRight
|
315
|
+
*
|
316
|
+
* @description
|
317
|
+
* Specify custom behavior when an element is swiped to the right on a touchscreen device.
|
318
|
+
* A rightward swipe is a quick, left-to-right slide of the finger.
|
319
|
+
* Though ngSwipeRight is designed for touch-based devices, it will work with a mouse click and drag too.
|
320
|
+
*
|
321
|
+
* @element ANY
|
322
|
+
* @param {expression} ngSwipeRight {@link guide/expression Expression} to evaluate
|
323
|
+
* upon right swipe. (Event object is available as `$event`)
|
324
|
+
*
|
325
|
+
* @example
|
326
|
+
<doc:example>
|
327
|
+
<doc:source>
|
328
|
+
<div ng-show="!showActions" ng-swipe-left="showActions = true">
|
329
|
+
Some list content, like an email in the inbox
|
330
|
+
</div>
|
331
|
+
<div ng-show="showActions" ng-swipe-right="showActions = false">
|
332
|
+
<button ng-click="reply()">Reply</button>
|
333
|
+
<button ng-click="delete()">Delete</button>
|
334
|
+
</div>
|
335
|
+
</doc:source>
|
336
|
+
</doc:example>
|
337
|
+
*/
|
338
|
+
|
339
|
+
function makeSwipeDirective(directiveName, direction) {
|
340
|
+
ngMobile.directive(directiveName, ['$parse', function($parse) {
|
341
|
+
// The maximum vertical delta for a swipe should be less than 75px.
|
342
|
+
var MAX_VERTICAL_DISTANCE = 75;
|
343
|
+
// Vertical distance should not be more than a fraction of the horizontal distance.
|
344
|
+
var MAX_VERTICAL_RATIO = 0.3;
|
345
|
+
// At least a 30px lateral motion is necessary for a swipe.
|
346
|
+
var MIN_HORIZONTAL_DISTANCE = 30;
|
347
|
+
// The total distance in any direction before we make the call on swipe vs. scroll.
|
348
|
+
var MOVE_BUFFER_RADIUS = 10;
|
349
|
+
|
350
|
+
function getCoordinates(event) {
|
351
|
+
var touches = event.touches && event.touches.length ? event.touches : [event];
|
352
|
+
var e = (event.changedTouches && event.changedTouches[0]) ||
|
353
|
+
(event.originalEvent && event.originalEvent.changedTouches &&
|
354
|
+
event.originalEvent.changedTouches[0]) ||
|
355
|
+
touches[0].originalEvent || touches[0];
|
356
|
+
|
357
|
+
return {
|
358
|
+
x: e.clientX,
|
359
|
+
y: e.clientY
|
360
|
+
};
|
361
|
+
}
|
362
|
+
|
363
|
+
return function(scope, element, attr) {
|
364
|
+
var swipeHandler = $parse(attr[directiveName]);
|
365
|
+
var startCoords, valid;
|
366
|
+
var totalX, totalY;
|
367
|
+
var lastX, lastY;
|
368
|
+
|
369
|
+
function validSwipe(event) {
|
370
|
+
// Check that it's within the coordinates.
|
371
|
+
// Absolute vertical distance must be within tolerances.
|
372
|
+
// Horizontal distance, we take the current X - the starting X.
|
373
|
+
// This is negative for leftward swipes and positive for rightward swipes.
|
374
|
+
// After multiplying by the direction (-1 for left, +1 for right), legal swipes
|
375
|
+
// (ie. same direction as the directive wants) will have a positive delta and
|
376
|
+
// illegal ones a negative delta.
|
377
|
+
// Therefore this delta must be positive, and larger than the minimum.
|
378
|
+
if (!startCoords) return false;
|
379
|
+
var coords = getCoordinates(event);
|
380
|
+
var deltaY = Math.abs(coords.y - startCoords.y);
|
381
|
+
var deltaX = (coords.x - startCoords.x) * direction;
|
382
|
+
return valid && // Short circuit for already-invalidated swipes.
|
383
|
+
deltaY < MAX_VERTICAL_DISTANCE &&
|
384
|
+
deltaX > 0 &&
|
385
|
+
deltaX > MIN_HORIZONTAL_DISTANCE &&
|
386
|
+
deltaY / deltaX < MAX_VERTICAL_RATIO;
|
387
|
+
}
|
388
|
+
|
389
|
+
element.bind('touchstart mousedown', function(event) {
|
390
|
+
startCoords = getCoordinates(event);
|
391
|
+
valid = true;
|
392
|
+
totalX = 0;
|
393
|
+
totalY = 0;
|
394
|
+
lastX = startCoords.x;
|
395
|
+
lastY = startCoords.y;
|
396
|
+
});
|
397
|
+
|
398
|
+
element.bind('touchcancel', function(event) {
|
399
|
+
valid = false;
|
400
|
+
});
|
401
|
+
|
402
|
+
element.bind('touchmove mousemove', function(event) {
|
403
|
+
if (!valid) return;
|
404
|
+
|
405
|
+
// Android will send a touchcancel if it thinks we're starting to scroll.
|
406
|
+
// So when the total distance (+ or - or both) exceeds 10px in either direction,
|
407
|
+
// we either:
|
408
|
+
// - On totalX > totalY, we send preventDefault() and treat this as a swipe.
|
409
|
+
// - On totalY > totalX, we let the browser handle it as a scroll.
|
410
|
+
|
411
|
+
// Invalidate a touch while it's in progress if it strays too far away vertically.
|
412
|
+
// We don't want a scroll down and back up while drifting sideways to be a swipe just
|
413
|
+
// because you happened to end up vertically close in the end.
|
414
|
+
if (!startCoords) return;
|
415
|
+
var coords = getCoordinates(event);
|
416
|
+
|
417
|
+
if (Math.abs(coords.y - startCoords.y) > MAX_VERTICAL_DISTANCE) {
|
418
|
+
valid = false;
|
419
|
+
return;
|
420
|
+
}
|
421
|
+
|
422
|
+
totalX += Math.abs(coords.x - lastX);
|
423
|
+
totalY += Math.abs(coords.y - lastY);
|
424
|
+
|
425
|
+
lastX = coords.x;
|
426
|
+
lastY = coords.y;
|
427
|
+
|
428
|
+
if (totalX < MOVE_BUFFER_RADIUS && totalY < MOVE_BUFFER_RADIUS) {
|
429
|
+
return;
|
430
|
+
}
|
431
|
+
|
432
|
+
// One of totalX or totalY has exceeded the buffer, so decide on swipe vs. scroll.
|
433
|
+
if (totalY > totalX) {
|
434
|
+
valid = false;
|
435
|
+
return;
|
436
|
+
} else {
|
437
|
+
event.preventDefault();
|
438
|
+
}
|
439
|
+
});
|
440
|
+
|
441
|
+
element.bind('touchend mouseup', function(event) {
|
442
|
+
if (validSwipe(event)) {
|
443
|
+
// Prevent this swipe from bubbling up to any other elements with ngSwipes.
|
444
|
+
event.stopPropagation();
|
445
|
+
scope.$apply(function() {
|
446
|
+
swipeHandler(scope, {$event:event});
|
447
|
+
});
|
448
|
+
}
|
449
|
+
});
|
450
|
+
};
|
451
|
+
}]);
|
452
|
+
}
|
453
|
+
|
454
|
+
// Left is negative X-coordinate, right is positive.
|
455
|
+
makeSwipeDirective('ngSwipeLeft', -1);
|
456
|
+
makeSwipeDirective('ngSwipeRight', 1);
|
457
|
+
|
265
458
|
|
266
459
|
|
267
460
|
})(window, window.angular);
|
@@ -1,5 +1,5 @@
|
|
1
1
|
/**
|
2
|
-
* @license AngularJS v1.1.
|
2
|
+
* @license AngularJS v1.1.5
|
3
3
|
* (c) 2010-2012 Google, Inc. http://angularjs.org
|
4
4
|
* License: MIT
|
5
5
|
*
|
@@ -241,7 +241,7 @@ angular.mock.$ExceptionHandlerProvider = function() {
|
|
241
241
|
*
|
242
242
|
* @param {string} mode Mode of operation, defaults to `rethrow`.
|
243
243
|
*
|
244
|
-
* - `rethrow`: If any errors are
|
244
|
+
* - `rethrow`: If any errors are passed into the handler in tests, it typically
|
245
245
|
* means that there is a bug in the application or test, so this mock will
|
246
246
|
* make these tests fail.
|
247
247
|
* - `log`: Sometimes it is desirable to test that an error is thrown, for this case the `log` mode stores an
|
@@ -322,7 +322,13 @@ angular.mock.$LogProvider = function() {
|
|
322
322
|
* @propertyOf ngMock.$log
|
323
323
|
*
|
324
324
|
* @description
|
325
|
-
* Array of logged
|
325
|
+
* Array of messages logged using {@link ngMock.$log#log}.
|
326
|
+
*
|
327
|
+
* @example
|
328
|
+
* <pre>
|
329
|
+
* $log.log('Some Log');
|
330
|
+
* var first = $log.log.logs.unshift();
|
331
|
+
* </pre>
|
326
332
|
*/
|
327
333
|
$log.log.logs = [];
|
328
334
|
/**
|
@@ -331,7 +337,13 @@ angular.mock.$LogProvider = function() {
|
|
331
337
|
* @propertyOf ngMock.$log
|
332
338
|
*
|
333
339
|
* @description
|
334
|
-
* Array of logged
|
340
|
+
* Array of messages logged using {@link ngMock.$log#warn}.
|
341
|
+
*
|
342
|
+
* @example
|
343
|
+
* <pre>
|
344
|
+
* $log.warn('Some Warning');
|
345
|
+
* var first = $log.warn.logs.unshift();
|
346
|
+
* </pre>
|
335
347
|
*/
|
336
348
|
$log.warn.logs = [];
|
337
349
|
/**
|
@@ -340,7 +352,13 @@ angular.mock.$LogProvider = function() {
|
|
340
352
|
* @propertyOf ngMock.$log
|
341
353
|
*
|
342
354
|
* @description
|
343
|
-
* Array of logged
|
355
|
+
* Array of messages logged using {@link ngMock.$log#info}.
|
356
|
+
*
|
357
|
+
* @example
|
358
|
+
* <pre>
|
359
|
+
* $log.info('Some Info');
|
360
|
+
* var first = $log.info.logs.unshift();
|
361
|
+
* </pre>
|
344
362
|
*/
|
345
363
|
$log.info.logs = [];
|
346
364
|
/**
|
@@ -349,7 +367,13 @@ angular.mock.$LogProvider = function() {
|
|
349
367
|
* @propertyOf ngMock.$log
|
350
368
|
*
|
351
369
|
* @description
|
352
|
-
* Array of logged
|
370
|
+
* Array of messages logged using {@link ngMock.$log#error}.
|
371
|
+
*
|
372
|
+
* @example
|
373
|
+
* <pre>
|
374
|
+
* $log.log('Some Error');
|
375
|
+
* var first = $log.error.logs.unshift();
|
376
|
+
* </pre>
|
353
377
|
*/
|
354
378
|
$log.error.logs = [];
|
355
379
|
};
|
@@ -628,7 +652,9 @@ angular.mock.createMockWindow = function() {
|
|
628
652
|
if (setTimeoutQueue.length > 0) {
|
629
653
|
return {
|
630
654
|
process: function() {
|
631
|
-
setTimeoutQueue.shift()
|
655
|
+
var tick = setTimeoutQueue.shift();
|
656
|
+
expect(tick.delay).toEqual(delay);
|
657
|
+
tick.fn();
|
632
658
|
}
|
633
659
|
};
|
634
660
|
} else {
|
@@ -709,10 +735,10 @@ angular.mock.dump = function(object) {
|
|
709
735
|
* @ngdoc object
|
710
736
|
* @name ngMock.$httpBackend
|
711
737
|
* @description
|
712
|
-
* Fake HTTP backend implementation suitable for unit testing
|
738
|
+
* Fake HTTP backend implementation suitable for unit testing applications that use the
|
713
739
|
* {@link ng.$http $http service}.
|
714
740
|
*
|
715
|
-
* *Note*: For fake
|
741
|
+
* *Note*: For fake HTTP backend implementation suitable for end-to-end testing or backend-less
|
716
742
|
* development please see {@link ngMockE2E.$httpBackend e2e $httpBackend mock}.
|
717
743
|
*
|
718
744
|
* During unit testing, we want our unit tests to run quickly and have no external dependencies so
|
@@ -911,7 +937,7 @@ function createHttpBackendMock($rootScope, $delegate, $browser) {
|
|
911
937
|
}
|
912
938
|
|
913
939
|
// TODO(vojta): change params to: method, url, data, headers, callback
|
914
|
-
function $httpBackend(method, url, data, callback, headers) {
|
940
|
+
function $httpBackend(method, url, data, callback, headers, timeout) {
|
915
941
|
var xhr = new MockXhr(),
|
916
942
|
expectation = expectations[0],
|
917
943
|
wasExpected = false;
|
@@ -922,6 +948,28 @@ function createHttpBackendMock($rootScope, $delegate, $browser) {
|
|
922
948
|
: angular.toJson(data);
|
923
949
|
}
|
924
950
|
|
951
|
+
function wrapResponse(wrapped) {
|
952
|
+
if (!$browser && timeout && timeout.then) timeout.then(handleTimeout);
|
953
|
+
|
954
|
+
return handleResponse;
|
955
|
+
|
956
|
+
function handleResponse() {
|
957
|
+
var response = wrapped.response(method, url, data, headers);
|
958
|
+
xhr.$$respHeaders = response[2];
|
959
|
+
callback(response[0], response[1], xhr.getAllResponseHeaders());
|
960
|
+
}
|
961
|
+
|
962
|
+
function handleTimeout() {
|
963
|
+
for (var i = 0, ii = responses.length; i < ii; i++) {
|
964
|
+
if (responses[i] === handleResponse) {
|
965
|
+
responses.splice(i, 1);
|
966
|
+
callback(-1, undefined, '');
|
967
|
+
break;
|
968
|
+
}
|
969
|
+
}
|
970
|
+
}
|
971
|
+
}
|
972
|
+
|
925
973
|
if (expectation && expectation.match(method, url)) {
|
926
974
|
if (!expectation.matchData(data))
|
927
975
|
throw Error('Expected ' + expectation + ' with different data\n' +
|
@@ -935,11 +983,7 @@ function createHttpBackendMock($rootScope, $delegate, $browser) {
|
|
935
983
|
expectations.shift();
|
936
984
|
|
937
985
|
if (expectation.response) {
|
938
|
-
responses.push(
|
939
|
-
var response = expectation.response(method, url, data, headers);
|
940
|
-
xhr.$$respHeaders = response[2];
|
941
|
-
callback(response[0], response[1], xhr.getAllResponseHeaders());
|
942
|
-
});
|
986
|
+
responses.push(wrapResponse(expectation));
|
943
987
|
return;
|
944
988
|
}
|
945
989
|
wasExpected = true;
|
@@ -950,13 +994,9 @@ function createHttpBackendMock($rootScope, $delegate, $browser) {
|
|
950
994
|
if (definition.match(method, url, data, headers || {})) {
|
951
995
|
if (definition.response) {
|
952
996
|
// if $browser specified, we do auto flush all requests
|
953
|
-
($browser ? $browser.defer : responsesPush)(
|
954
|
-
var response = definition.response(method, url, data, headers);
|
955
|
-
xhr.$$respHeaders = response[2];
|
956
|
-
callback(response[0], response[1], xhr.getAllResponseHeaders());
|
957
|
-
});
|
997
|
+
($browser ? $browser.defer : responsesPush)(wrapResponse(definition));
|
958
998
|
} else if (definition.passThrough) {
|
959
|
-
$delegate(method, url, data, callback, headers);
|
999
|
+
$delegate(method, url, data, callback, headers, timeout);
|
960
1000
|
} else throw Error('No response defined !');
|
961
1001
|
return;
|
962
1002
|
}
|