mirror of
https://github.com/grafana/grafana.git
synced 2025-02-25 18:55:37 -06:00
Updated AngularJS from 1.3-beta-17 to 1.3-RC3
This commit is contained in:
parent
77f380c94b
commit
5530915b49
@ -81,12 +81,8 @@ function (angular, config, _, $, store) {
|
||||
$scope.initProfiling = function() {
|
||||
var count = 0;
|
||||
|
||||
$scope.$watch(function digestCounter() {
|
||||
count++;
|
||||
}, function() {
|
||||
});
|
||||
|
||||
$scope.onAppEvent('setup-dashboard', function() {
|
||||
$scope.$watch(function digestCounter() { count++; }, function() { });
|
||||
$scope.onAppEvent('dashboard-loaded', function() {
|
||||
count = 0;
|
||||
|
||||
setTimeout(function() {
|
||||
|
304
src/vendor/angular/angular-mocks.js
vendored
304
src/vendor/angular/angular-mocks.js
vendored
@ -1,5 +1,5 @@
|
||||
/**
|
||||
* @license AngularJS v1.2.21
|
||||
* @license AngularJS v1.3.0-rc.3
|
||||
* (c) 2010-2014 Google, Inc. http://angularjs.org
|
||||
* License: MIT
|
||||
*/
|
||||
@ -63,6 +63,8 @@ angular.mock.$Browser = function() {
|
||||
return listener;
|
||||
};
|
||||
|
||||
self.$$checkUrlChange = angular.noop;
|
||||
|
||||
self.cookieHash = {};
|
||||
self.lastCookieHash = {};
|
||||
self.deferredFns = [];
|
||||
@ -125,7 +127,7 @@ angular.mock.$Browser = function() {
|
||||
}
|
||||
};
|
||||
|
||||
self.$$baseHref = '';
|
||||
self.$$baseHref = '/';
|
||||
self.baseHref = function() {
|
||||
return this.$$baseHref;
|
||||
};
|
||||
@ -774,13 +776,22 @@ angular.mock.animate = angular.module('ngAnimateMock', ['ng'])
|
||||
};
|
||||
});
|
||||
|
||||
$provide.decorator('$animate', function($delegate, $$asyncCallback) {
|
||||
$provide.decorator('$animate', ['$delegate', '$$asyncCallback', '$timeout', '$browser',
|
||||
function($delegate, $$asyncCallback, $timeout, $browser) {
|
||||
var animate = {
|
||||
queue : [],
|
||||
cancel : $delegate.cancel,
|
||||
enabled : $delegate.enabled,
|
||||
triggerCallbacks : function() {
|
||||
triggerCallbackEvents : function() {
|
||||
$$asyncCallback.flush();
|
||||
},
|
||||
triggerCallbackPromise : function() {
|
||||
$timeout.flush(0);
|
||||
},
|
||||
triggerCallbacks : function() {
|
||||
this.triggerCallbackEvents();
|
||||
this.triggerCallbackPromise();
|
||||
},
|
||||
triggerReflow : function() {
|
||||
angular.forEach(reflowQueue, function(fn) {
|
||||
fn();
|
||||
@ -797,12 +808,12 @@ angular.mock.animate = angular.module('ngAnimateMock', ['ng'])
|
||||
element : arguments[0],
|
||||
args : arguments
|
||||
});
|
||||
$delegate[method].apply($delegate, arguments);
|
||||
return $delegate[method].apply($delegate, arguments);
|
||||
};
|
||||
});
|
||||
|
||||
return animate;
|
||||
});
|
||||
}]);
|
||||
|
||||
}]);
|
||||
|
||||
@ -888,7 +899,7 @@ angular.mock.dump = function(object) {
|
||||
* development please see {@link ngMockE2E.$httpBackend e2e $httpBackend mock}.
|
||||
*
|
||||
* During unit testing, we want our unit tests to run quickly and have no external dependencies so
|
||||
* we don’t want to send [XHR](https://developer.mozilla.org/en/xmlhttprequest) or
|
||||
* we don’t want to send [XHR](https://developer.mozilla.org/en/xmlhttprequest) or
|
||||
* [JSONP](http://en.wikipedia.org/wiki/JSONP) requests to a real server. All we really need is
|
||||
* to verify whether a certain request has been sent or not, or alternatively just let the
|
||||
* application make requests, respond with pre-trained responses and assert that the end result is
|
||||
@ -1007,13 +1018,14 @@ angular.mock.dump = function(object) {
|
||||
```js
|
||||
// testing controller
|
||||
describe('MyController', function() {
|
||||
var $httpBackend, $rootScope, createController;
|
||||
var $httpBackend, $rootScope, createController, authRequestHandler;
|
||||
|
||||
beforeEach(inject(function($injector) {
|
||||
// Set up the mock http service responses
|
||||
$httpBackend = $injector.get('$httpBackend');
|
||||
// backend definition common for all tests
|
||||
$httpBackend.when('GET', '/auth.py').respond({userId: 'userX'}, {'A-Token': 'xxx'});
|
||||
authRequestHandler = $httpBackend.when('GET', '/auth.py')
|
||||
.respond({userId: 'userX'}, {'A-Token': 'xxx'});
|
||||
|
||||
// Get hold of a scope (i.e. the root scope)
|
||||
$rootScope = $injector.get('$rootScope');
|
||||
@ -1039,11 +1051,23 @@ angular.mock.dump = function(object) {
|
||||
});
|
||||
|
||||
|
||||
it('should fail authentication', function() {
|
||||
|
||||
// Notice how you can change the response even after it was set
|
||||
authRequestHandler.respond(401, '');
|
||||
|
||||
$httpBackend.expectGET('/auth.py');
|
||||
var controller = createController();
|
||||
$httpBackend.flush();
|
||||
expect($rootScope.status).toBe('Failed...');
|
||||
});
|
||||
|
||||
|
||||
it('should send msg to server', function() {
|
||||
var controller = createController();
|
||||
$httpBackend.flush();
|
||||
|
||||
// now you don’t care about the authentication, but
|
||||
// now you don’t care about the authentication, but
|
||||
// the controller will still send the request and
|
||||
// $httpBackend will respond without you having to
|
||||
// specify the expectation and response for this request
|
||||
@ -1186,32 +1210,39 @@ function createHttpBackendMock($rootScope, $delegate, $browser) {
|
||||
* Creates a new backend definition.
|
||||
*
|
||||
* @param {string} method HTTP method.
|
||||
* @param {string|RegExp} url HTTP url.
|
||||
* @param {string|RegExp|function(string)} url HTTP url or function that receives the url
|
||||
* and returns true if the url match the current definition.
|
||||
* @param {(string|RegExp|function(string))=} data HTTP request body or function that receives
|
||||
* data string and returns true if the data is as expected.
|
||||
* @param {(Object|function(Object))=} headers HTTP headers or function that receives http header
|
||||
* object and returns true if the headers match the current definition.
|
||||
* @returns {requestHandler} Returns an object with `respond` method that controls how a matched
|
||||
* request is handled.
|
||||
* request is handled. You can save this object for later use and invoke `respond` again in
|
||||
* order to change how a matched request is handled.
|
||||
*
|
||||
* - respond –
|
||||
* - respond –
|
||||
* `{function([status,] data[, headers, statusText])
|
||||
* | function(function(method, url, data, headers)}`
|
||||
* – The respond method takes a set of static data to be returned or a function that can
|
||||
* – The respond method takes a set of static data to be returned or a function that can
|
||||
* return an array containing response status (number), response data (string), response
|
||||
* headers (Object), and the text for the status (string).
|
||||
* headers (Object), and the text for the status (string). The respond method returns the
|
||||
* `requestHandler` object for possible overrides.
|
||||
*/
|
||||
$httpBackend.when = function(method, url, data, headers) {
|
||||
var definition = new MockHttpExpectation(method, url, data, headers),
|
||||
chain = {
|
||||
respond: function(status, data, headers, statusText) {
|
||||
definition.passThrough = undefined;
|
||||
definition.response = createResponse(status, data, headers, statusText);
|
||||
return chain;
|
||||
}
|
||||
};
|
||||
|
||||
if ($browser) {
|
||||
chain.passThrough = function() {
|
||||
definition.response = undefined;
|
||||
definition.passThrough = true;
|
||||
return chain;
|
||||
};
|
||||
}
|
||||
|
||||
@ -1225,10 +1256,12 @@ function createHttpBackendMock($rootScope, $delegate, $browser) {
|
||||
* @description
|
||||
* Creates a new backend definition for GET requests. For more info see `when()`.
|
||||
*
|
||||
* @param {string|RegExp} url HTTP url.
|
||||
* @param {string|RegExp|function(string)} url HTTP url or function that receives the url
|
||||
* and returns true if the url match the current definition.
|
||||
* @param {(Object|function(Object))=} headers HTTP headers.
|
||||
* @returns {requestHandler} Returns an object with `respond` method that control how a matched
|
||||
* request is handled.
|
||||
* request is handled. You can save this object for later use and invoke `respond` again in
|
||||
* order to change how a matched request is handled.
|
||||
*/
|
||||
|
||||
/**
|
||||
@ -1237,10 +1270,12 @@ function createHttpBackendMock($rootScope, $delegate, $browser) {
|
||||
* @description
|
||||
* Creates a new backend definition for HEAD requests. For more info see `when()`.
|
||||
*
|
||||
* @param {string|RegExp} url HTTP url.
|
||||
* @param {string|RegExp|function(string)} url HTTP url or function that receives the url
|
||||
* and returns true if the url match the current definition.
|
||||
* @param {(Object|function(Object))=} headers HTTP headers.
|
||||
* @returns {requestHandler} Returns an object with `respond` method that control how a matched
|
||||
* request is handled.
|
||||
* request is handled. You can save this object for later use and invoke `respond` again in
|
||||
* order to change how a matched request is handled.
|
||||
*/
|
||||
|
||||
/**
|
||||
@ -1249,10 +1284,12 @@ function createHttpBackendMock($rootScope, $delegate, $browser) {
|
||||
* @description
|
||||
* Creates a new backend definition for DELETE requests. For more info see `when()`.
|
||||
*
|
||||
* @param {string|RegExp} url HTTP url.
|
||||
* @param {string|RegExp|function(string)} url HTTP url or function that receives the url
|
||||
* and returns true if the url match the current definition.
|
||||
* @param {(Object|function(Object))=} headers HTTP headers.
|
||||
* @returns {requestHandler} Returns an object with `respond` method that control how a matched
|
||||
* request is handled.
|
||||
* request is handled. You can save this object for later use and invoke `respond` again in
|
||||
* order to change how a matched request is handled.
|
||||
*/
|
||||
|
||||
/**
|
||||
@ -1261,12 +1298,14 @@ function createHttpBackendMock($rootScope, $delegate, $browser) {
|
||||
* @description
|
||||
* Creates a new backend definition for POST requests. For more info see `when()`.
|
||||
*
|
||||
* @param {string|RegExp} url HTTP url.
|
||||
* @param {string|RegExp|function(string)} url HTTP url or function that receives the url
|
||||
* and returns true if the url match the current definition.
|
||||
* @param {(string|RegExp|function(string))=} data HTTP request body or function that receives
|
||||
* data string and returns true if the data is as expected.
|
||||
* @param {(Object|function(Object))=} headers HTTP headers.
|
||||
* @returns {requestHandler} Returns an object with `respond` method that control how a matched
|
||||
* request is handled.
|
||||
* request is handled. You can save this object for later use and invoke `respond` again in
|
||||
* order to change how a matched request is handled.
|
||||
*/
|
||||
|
||||
/**
|
||||
@ -1275,12 +1314,14 @@ function createHttpBackendMock($rootScope, $delegate, $browser) {
|
||||
* @description
|
||||
* Creates a new backend definition for PUT requests. For more info see `when()`.
|
||||
*
|
||||
* @param {string|RegExp} url HTTP url.
|
||||
* @param {string|RegExp|function(string)} url HTTP url or function that receives the url
|
||||
* and returns true if the url match the current definition.
|
||||
* @param {(string|RegExp|function(string))=} data HTTP request body or function that receives
|
||||
* data string and returns true if the data is as expected.
|
||||
* @param {(Object|function(Object))=} headers HTTP headers.
|
||||
* @returns {requestHandler} Returns an object with `respond` method that control how a matched
|
||||
* request is handled.
|
||||
* request is handled. You can save this object for later use and invoke `respond` again in
|
||||
* order to change how a matched request is handled.
|
||||
*/
|
||||
|
||||
/**
|
||||
@ -1289,9 +1330,11 @@ function createHttpBackendMock($rootScope, $delegate, $browser) {
|
||||
* @description
|
||||
* Creates a new backend definition for JSONP requests. For more info see `when()`.
|
||||
*
|
||||
* @param {string|RegExp} url HTTP url.
|
||||
* @param {string|RegExp|function(string)} url HTTP url or function that receives the url
|
||||
* and returns true if the url match the current definition.
|
||||
* @returns {requestHandler} Returns an object with `respond` method that control how a matched
|
||||
* request is handled.
|
||||
* request is handled. You can save this object for later use and invoke `respond` again in
|
||||
* order to change how a matched request is handled.
|
||||
*/
|
||||
createShortMethods('when');
|
||||
|
||||
@ -1303,30 +1346,36 @@ function createHttpBackendMock($rootScope, $delegate, $browser) {
|
||||
* Creates a new request expectation.
|
||||
*
|
||||
* @param {string} method HTTP method.
|
||||
* @param {string|RegExp} url HTTP url.
|
||||
* @param {string|RegExp|function(string)} url HTTP url or function that receives the url
|
||||
* and returns true if the url match the current definition.
|
||||
* @param {(string|RegExp|function(string)|Object)=} data HTTP request body or function that
|
||||
* receives data string and returns true if the data is as expected, or Object if request body
|
||||
* is in JSON format.
|
||||
* @param {(Object|function(Object))=} headers HTTP headers or function that receives http header
|
||||
* object and returns true if the headers match the current expectation.
|
||||
* @returns {requestHandler} Returns an object with `respond` method that control how a matched
|
||||
* request is handled.
|
||||
* request is handled. You can save this object for later use and invoke `respond` again in
|
||||
* order to change how a matched request is handled.
|
||||
*
|
||||
* - respond –
|
||||
* - respond –
|
||||
* `{function([status,] data[, headers, statusText])
|
||||
* | function(function(method, url, data, headers)}`
|
||||
* – The respond method takes a set of static data to be returned or a function that can
|
||||
* – The respond method takes a set of static data to be returned or a function that can
|
||||
* return an array containing response status (number), response data (string), response
|
||||
* headers (Object), and the text for the status (string).
|
||||
* headers (Object), and the text for the status (string). The respond method returns the
|
||||
* `requestHandler` object for possible overrides.
|
||||
*/
|
||||
$httpBackend.expect = function(method, url, data, headers) {
|
||||
var expectation = new MockHttpExpectation(method, url, data, headers);
|
||||
var expectation = new MockHttpExpectation(method, url, data, headers),
|
||||
chain = {
|
||||
respond: function (status, data, headers, statusText) {
|
||||
expectation.response = createResponse(status, data, headers, statusText);
|
||||
return chain;
|
||||
}
|
||||
};
|
||||
|
||||
expectations.push(expectation);
|
||||
return {
|
||||
respond: function (status, data, headers, statusText) {
|
||||
expectation.response = createResponse(status, data, headers, statusText);
|
||||
}
|
||||
};
|
||||
return chain;
|
||||
};
|
||||
|
||||
|
||||
@ -1336,10 +1385,12 @@ function createHttpBackendMock($rootScope, $delegate, $browser) {
|
||||
* @description
|
||||
* Creates a new request expectation for GET requests. For more info see `expect()`.
|
||||
*
|
||||
* @param {string|RegExp} url HTTP url.
|
||||
* @param {string|RegExp|function(string)} url HTTP url or function that receives the url
|
||||
* and returns true if the url match the current definition.
|
||||
* @param {Object=} headers HTTP headers.
|
||||
* @returns {requestHandler} Returns an object with `respond` method that control how a matched
|
||||
* request is handled. See #expect for more info.
|
||||
* request is handled. You can save this object for later use and invoke `respond` again in
|
||||
* order to change how a matched request is handled. See #expect for more info.
|
||||
*/
|
||||
|
||||
/**
|
||||
@ -1348,10 +1399,12 @@ function createHttpBackendMock($rootScope, $delegate, $browser) {
|
||||
* @description
|
||||
* Creates a new request expectation for HEAD requests. For more info see `expect()`.
|
||||
*
|
||||
* @param {string|RegExp} url HTTP url.
|
||||
* @param {string|RegExp|function(string)} url HTTP url or function that receives the url
|
||||
* and returns true if the url match the current definition.
|
||||
* @param {Object=} headers HTTP headers.
|
||||
* @returns {requestHandler} Returns an object with `respond` method that control how a matched
|
||||
* request is handled.
|
||||
* request is handled. You can save this object for later use and invoke `respond` again in
|
||||
* order to change how a matched request is handled.
|
||||
*/
|
||||
|
||||
/**
|
||||
@ -1360,10 +1413,12 @@ function createHttpBackendMock($rootScope, $delegate, $browser) {
|
||||
* @description
|
||||
* Creates a new request expectation for DELETE requests. For more info see `expect()`.
|
||||
*
|
||||
* @param {string|RegExp} url HTTP url.
|
||||
* @param {string|RegExp|function(string)} url HTTP url or function that receives the url
|
||||
* and returns true if the url match the current definition.
|
||||
* @param {Object=} headers HTTP headers.
|
||||
* @returns {requestHandler} Returns an object with `respond` method that control how a matched
|
||||
* request is handled.
|
||||
* request is handled. You can save this object for later use and invoke `respond` again in
|
||||
* order to change how a matched request is handled.
|
||||
*/
|
||||
|
||||
/**
|
||||
@ -1372,13 +1427,15 @@ function createHttpBackendMock($rootScope, $delegate, $browser) {
|
||||
* @description
|
||||
* Creates a new request expectation for POST requests. For more info see `expect()`.
|
||||
*
|
||||
* @param {string|RegExp} url HTTP url.
|
||||
* @param {string|RegExp|function(string)} url HTTP url or function that receives the url
|
||||
* and returns true if the url match the current definition.
|
||||
* @param {(string|RegExp|function(string)|Object)=} data HTTP request body or function that
|
||||
* receives data string and returns true if the data is as expected, or Object if request body
|
||||
* is in JSON format.
|
||||
* @param {Object=} headers HTTP headers.
|
||||
* @returns {requestHandler} Returns an object with `respond` method that control how a matched
|
||||
* request is handled.
|
||||
* request is handled. You can save this object for later use and invoke `respond` again in
|
||||
* order to change how a matched request is handled.
|
||||
*/
|
||||
|
||||
/**
|
||||
@ -1387,13 +1444,15 @@ function createHttpBackendMock($rootScope, $delegate, $browser) {
|
||||
* @description
|
||||
* Creates a new request expectation for PUT requests. For more info see `expect()`.
|
||||
*
|
||||
* @param {string|RegExp} url HTTP url.
|
||||
* @param {string|RegExp|function(string)} url HTTP url or function that receives the url
|
||||
* and returns true if the url match the current definition.
|
||||
* @param {(string|RegExp|function(string)|Object)=} data HTTP request body or function that
|
||||
* receives data string and returns true if the data is as expected, or Object if request body
|
||||
* is in JSON format.
|
||||
* @param {Object=} headers HTTP headers.
|
||||
* @returns {requestHandler} Returns an object with `respond` method that control how a matched
|
||||
* request is handled.
|
||||
* request is handled. You can save this object for later use and invoke `respond` again in
|
||||
* order to change how a matched request is handled.
|
||||
*/
|
||||
|
||||
/**
|
||||
@ -1402,13 +1461,15 @@ function createHttpBackendMock($rootScope, $delegate, $browser) {
|
||||
* @description
|
||||
* Creates a new request expectation for PATCH requests. For more info see `expect()`.
|
||||
*
|
||||
* @param {string|RegExp} url HTTP url.
|
||||
* @param {string|RegExp|function(string)} url HTTP url or function that receives the url
|
||||
* and returns true if the url match the current definition.
|
||||
* @param {(string|RegExp|function(string)|Object)=} data HTTP request body or function that
|
||||
* receives data string and returns true if the data is as expected, or Object if request body
|
||||
* is in JSON format.
|
||||
* @param {Object=} headers HTTP headers.
|
||||
* @returns {requestHandler} Returns an object with `respond` method that control how a matched
|
||||
* request is handled.
|
||||
* request is handled. You can save this object for later use and invoke `respond` again in
|
||||
* order to change how a matched request is handled.
|
||||
*/
|
||||
|
||||
/**
|
||||
@ -1417,9 +1478,11 @@ function createHttpBackendMock($rootScope, $delegate, $browser) {
|
||||
* @description
|
||||
* Creates a new request expectation for JSONP requests. For more info see `expect()`.
|
||||
*
|
||||
* @param {string|RegExp} url HTTP url.
|
||||
* @param {string|RegExp|function(string)} url HTTP url or function that receives the url
|
||||
* and returns true if the url match the current definition.
|
||||
* @returns {requestHandler} Returns an object with `respond` method that control how a matched
|
||||
* request is handled.
|
||||
* request is handled. You can save this object for later use and invoke `respond` again in
|
||||
* order to change how a matched request is handled.
|
||||
*/
|
||||
createShortMethods('expect');
|
||||
|
||||
@ -1434,11 +1497,11 @@ function createHttpBackendMock($rootScope, $delegate, $browser) {
|
||||
* all pending requests will be flushed. If there are no pending requests when the flush method
|
||||
* is called an exception is thrown (as this typically a sign of programming error).
|
||||
*/
|
||||
$httpBackend.flush = function(count) {
|
||||
$rootScope.$digest();
|
||||
$httpBackend.flush = function(count, digest) {
|
||||
if (digest !== false) $rootScope.$digest();
|
||||
if (!responses.length) throw new Error('No pending request to flush !');
|
||||
|
||||
if (angular.isDefined(count)) {
|
||||
if (angular.isDefined(count) && count !== null) {
|
||||
while (count--) {
|
||||
if (!responses.length) throw new Error('No more pending request to flush !');
|
||||
responses.shift()();
|
||||
@ -1448,7 +1511,7 @@ function createHttpBackendMock($rootScope, $delegate, $browser) {
|
||||
responses.shift()();
|
||||
}
|
||||
}
|
||||
$httpBackend.verifyNoOutstandingExpectation();
|
||||
$httpBackend.verifyNoOutstandingExpectation(digest);
|
||||
};
|
||||
|
||||
|
||||
@ -1466,8 +1529,8 @@ function createHttpBackendMock($rootScope, $delegate, $browser) {
|
||||
* afterEach($httpBackend.verifyNoOutstandingExpectation);
|
||||
* ```
|
||||
*/
|
||||
$httpBackend.verifyNoOutstandingExpectation = function() {
|
||||
$rootScope.$digest();
|
||||
$httpBackend.verifyNoOutstandingExpectation = function(digest) {
|
||||
if (digest !== false) $rootScope.$digest();
|
||||
if (expectations.length) {
|
||||
throw new Error('Unsatisfied requests: ' + expectations.join(', '));
|
||||
}
|
||||
@ -1511,7 +1574,7 @@ function createHttpBackendMock($rootScope, $delegate, $browser) {
|
||||
|
||||
|
||||
function createShortMethods(prefix) {
|
||||
angular.forEach(['GET', 'DELETE', 'JSONP'], function(method) {
|
||||
angular.forEach(['GET', 'DELETE', 'JSONP', 'HEAD'], function(method) {
|
||||
$httpBackend[prefix + method] = function(url, headers) {
|
||||
return $httpBackend[prefix](method, url, undefined, headers);
|
||||
};
|
||||
@ -1541,6 +1604,7 @@ function MockHttpExpectation(method, url, data, headers) {
|
||||
this.matchUrl = function(u) {
|
||||
if (!url) return true;
|
||||
if (angular.isFunction(url.test)) return url.test(u);
|
||||
if (angular.isFunction(url)) return url(u);
|
||||
return url == u;
|
||||
};
|
||||
|
||||
@ -1627,7 +1691,7 @@ function MockXhr() {
|
||||
* that adds a "flush" and "verifyNoPendingTasks" methods.
|
||||
*/
|
||||
|
||||
angular.mock.$TimeoutDecorator = function($delegate, $browser) {
|
||||
angular.mock.$TimeoutDecorator = ['$delegate', '$browser', function ($delegate, $browser) {
|
||||
|
||||
/**
|
||||
* @ngdoc method
|
||||
@ -1666,9 +1730,9 @@ angular.mock.$TimeoutDecorator = function($delegate, $browser) {
|
||||
}
|
||||
|
||||
return $delegate;
|
||||
};
|
||||
}];
|
||||
|
||||
angular.mock.$RAFDecorator = function($delegate) {
|
||||
angular.mock.$RAFDecorator = ['$delegate', function($delegate) {
|
||||
var queue = [];
|
||||
var rafFn = function(fn) {
|
||||
var index = queue.length;
|
||||
@ -1694,9 +1758,9 @@ angular.mock.$RAFDecorator = function($delegate) {
|
||||
};
|
||||
|
||||
return rafFn;
|
||||
};
|
||||
}];
|
||||
|
||||
angular.mock.$AsyncCallbackDecorator = function($delegate) {
|
||||
angular.mock.$AsyncCallbackDecorator = ['$delegate', function($delegate) {
|
||||
var callbacks = [];
|
||||
var addFn = function(fn) {
|
||||
callbacks.push(fn);
|
||||
@ -1708,7 +1772,7 @@ angular.mock.$AsyncCallbackDecorator = function($delegate) {
|
||||
callbacks = [];
|
||||
};
|
||||
return addFn;
|
||||
};
|
||||
}];
|
||||
|
||||
/**
|
||||
*
|
||||
@ -1786,7 +1850,7 @@ angular.module('ngMockE2E', ['ng']).config(['$provide', function($provide) {
|
||||
* use the `passThrough` request handler of `when` instead of `respond`.
|
||||
*
|
||||
* Additionally, we don't want to manually have to flush mocked out requests like we do during unit
|
||||
* testing. For this reason the e2e $httpBackend automatically flushes mocked out requests
|
||||
* testing. For this reason the e2e $httpBackend flushes mocked out requests
|
||||
* automatically, closely simulating the behavior of the XMLHttpRequest object.
|
||||
*
|
||||
* To setup the application to run with this http backend, you have to create a module that depends
|
||||
@ -1822,22 +1886,25 @@ angular.module('ngMockE2E', ['ng']).config(['$provide', function($provide) {
|
||||
* Creates a new backend definition.
|
||||
*
|
||||
* @param {string} method HTTP method.
|
||||
* @param {string|RegExp} url HTTP url.
|
||||
* @param {string|RegExp|function(string)} url HTTP url or function that receives the url
|
||||
* and returns true if the url match the current definition.
|
||||
* @param {(string|RegExp)=} data HTTP request body.
|
||||
* @param {(Object|function(Object))=} headers HTTP headers or function that receives http header
|
||||
* object and returns true if the headers match the current definition.
|
||||
* @returns {requestHandler} Returns an object with `respond` and `passThrough` methods that
|
||||
* control how a matched request is handled.
|
||||
* control how a matched request is handled. You can save this object for later use and invoke
|
||||
* `respond` or `passThrough` again in order to change how a matched request is handled.
|
||||
*
|
||||
* - respond –
|
||||
* - respond –
|
||||
* `{function([status,] data[, headers, statusText])
|
||||
* | function(function(method, url, data, headers)}`
|
||||
* – The respond method takes a set of static data to be returned or a function that can return
|
||||
* – The respond method takes a set of static data to be returned or a function that can return
|
||||
* an array containing response status (number), response data (string), response headers
|
||||
* (Object), and the text for the status (string).
|
||||
* - passThrough – `{function()}` – Any request matching a backend definition with
|
||||
* - passThrough – `{function()}` – Any request matching a backend definition with
|
||||
* `passThrough` handler will be passed through to the real backend (an XHR request will be made
|
||||
* to the server.)
|
||||
* - Both methods return the `requestHandler` object for possible overrides.
|
||||
*/
|
||||
|
||||
/**
|
||||
@ -1847,10 +1914,12 @@ angular.module('ngMockE2E', ['ng']).config(['$provide', function($provide) {
|
||||
* @description
|
||||
* Creates a new backend definition for GET requests. For more info see `when()`.
|
||||
*
|
||||
* @param {string|RegExp} url HTTP url.
|
||||
* @param {string|RegExp|function(string)} url HTTP url or function that receives the url
|
||||
* and returns true if the url match the current definition.
|
||||
* @param {(Object|function(Object))=} headers HTTP headers.
|
||||
* @returns {requestHandler} Returns an object with `respond` and `passThrough` methods that
|
||||
* control how a matched request is handled.
|
||||
* control how a matched request is handled. You can save this object for later use and invoke
|
||||
* `respond` or `passThrough` again in order to change how a matched request is handled.
|
||||
*/
|
||||
|
||||
/**
|
||||
@ -1860,10 +1929,12 @@ angular.module('ngMockE2E', ['ng']).config(['$provide', function($provide) {
|
||||
* @description
|
||||
* Creates a new backend definition for HEAD requests. For more info see `when()`.
|
||||
*
|
||||
* @param {string|RegExp} url HTTP url.
|
||||
* @param {string|RegExp|function(string)} url HTTP url or function that receives the url
|
||||
* and returns true if the url match the current definition.
|
||||
* @param {(Object|function(Object))=} headers HTTP headers.
|
||||
* @returns {requestHandler} Returns an object with `respond` and `passThrough` methods that
|
||||
* control how a matched request is handled.
|
||||
* control how a matched request is handled. You can save this object for later use and invoke
|
||||
* `respond` or `passThrough` again in order to change how a matched request is handled.
|
||||
*/
|
||||
|
||||
/**
|
||||
@ -1873,10 +1944,12 @@ angular.module('ngMockE2E', ['ng']).config(['$provide', function($provide) {
|
||||
* @description
|
||||
* Creates a new backend definition for DELETE requests. For more info see `when()`.
|
||||
*
|
||||
* @param {string|RegExp} url HTTP url.
|
||||
* @param {string|RegExp|function(string)} url HTTP url or function that receives the url
|
||||
* and returns true if the url match the current definition.
|
||||
* @param {(Object|function(Object))=} headers HTTP headers.
|
||||
* @returns {requestHandler} Returns an object with `respond` and `passThrough` methods that
|
||||
* control how a matched request is handled.
|
||||
* control how a matched request is handled. You can save this object for later use and invoke
|
||||
* `respond` or `passThrough` again in order to change how a matched request is handled.
|
||||
*/
|
||||
|
||||
/**
|
||||
@ -1886,11 +1959,13 @@ angular.module('ngMockE2E', ['ng']).config(['$provide', function($provide) {
|
||||
* @description
|
||||
* Creates a new backend definition for POST requests. For more info see `when()`.
|
||||
*
|
||||
* @param {string|RegExp} url HTTP url.
|
||||
* @param {string|RegExp|function(string)} url HTTP url or function that receives the url
|
||||
* and returns true if the url match the current definition.
|
||||
* @param {(string|RegExp)=} data HTTP request body.
|
||||
* @param {(Object|function(Object))=} headers HTTP headers.
|
||||
* @returns {requestHandler} Returns an object with `respond` and `passThrough` methods that
|
||||
* control how a matched request is handled.
|
||||
* control how a matched request is handled. You can save this object for later use and invoke
|
||||
* `respond` or `passThrough` again in order to change how a matched request is handled.
|
||||
*/
|
||||
|
||||
/**
|
||||
@ -1900,11 +1975,13 @@ angular.module('ngMockE2E', ['ng']).config(['$provide', function($provide) {
|
||||
* @description
|
||||
* Creates a new backend definition for PUT requests. For more info see `when()`.
|
||||
*
|
||||
* @param {string|RegExp} url HTTP url.
|
||||
* @param {string|RegExp|function(string)} url HTTP url or function that receives the url
|
||||
* and returns true if the url match the current definition.
|
||||
* @param {(string|RegExp)=} data HTTP request body.
|
||||
* @param {(Object|function(Object))=} headers HTTP headers.
|
||||
* @returns {requestHandler} Returns an object with `respond` and `passThrough` methods that
|
||||
* control how a matched request is handled.
|
||||
* control how a matched request is handled. You can save this object for later use and invoke
|
||||
* `respond` or `passThrough` again in order to change how a matched request is handled.
|
||||
*/
|
||||
|
||||
/**
|
||||
@ -1914,11 +1991,13 @@ angular.module('ngMockE2E', ['ng']).config(['$provide', function($provide) {
|
||||
* @description
|
||||
* Creates a new backend definition for PATCH requests. For more info see `when()`.
|
||||
*
|
||||
* @param {string|RegExp} url HTTP url.
|
||||
* @param {string|RegExp|function(string)} url HTTP url or function that receives the url
|
||||
* and returns true if the url match the current definition.
|
||||
* @param {(string|RegExp)=} data HTTP request body.
|
||||
* @param {(Object|function(Object))=} headers HTTP headers.
|
||||
* @returns {requestHandler} Returns an object with `respond` and `passThrough` methods that
|
||||
* control how a matched request is handled.
|
||||
* control how a matched request is handled. You can save this object for later use and invoke
|
||||
* `respond` or `passThrough` again in order to change how a matched request is handled.
|
||||
*/
|
||||
|
||||
/**
|
||||
@ -1928,30 +2007,17 @@ angular.module('ngMockE2E', ['ng']).config(['$provide', function($provide) {
|
||||
* @description
|
||||
* Creates a new backend definition for JSONP requests. For more info see `when()`.
|
||||
*
|
||||
* @param {string|RegExp} url HTTP url.
|
||||
* @param {string|RegExp|function(string)} url HTTP url or function that receives the url
|
||||
* and returns true if the url match the current definition.
|
||||
* @returns {requestHandler} Returns an object with `respond` and `passThrough` methods that
|
||||
* control how a matched request is handled.
|
||||
* control how a matched request is handled. You can save this object for later use and invoke
|
||||
* `respond` or `passThrough` again in order to change how a matched request is handled.
|
||||
*/
|
||||
angular.mock.e2e = {};
|
||||
angular.mock.e2e.$httpBackendDecorator =
|
||||
['$rootScope', '$delegate', '$browser', createHttpBackendMock];
|
||||
|
||||
|
||||
angular.mock.clearDataCache = function() {
|
||||
var key,
|
||||
cache = angular.element.cache;
|
||||
|
||||
for(key in cache) {
|
||||
if (Object.prototype.hasOwnProperty.call(cache,key)) {
|
||||
var handle = cache[key].handle;
|
||||
|
||||
handle && angular.element(handle.elem).off();
|
||||
delete cache[key];
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
if(window.jasmine || window.mocha) {
|
||||
|
||||
var currentSpec = null,
|
||||
@ -1982,8 +2048,6 @@ if(window.jasmine || window.mocha) {
|
||||
injector.get('$browser').pollFns.length = 0;
|
||||
}
|
||||
|
||||
angular.mock.clearDataCache();
|
||||
|
||||
// clean up jquery's fragment cache
|
||||
angular.forEach(angular.element.fragments, function(val, key) {
|
||||
delete angular.element.fragments[key];
|
||||
@ -2003,6 +2067,7 @@ if(window.jasmine || window.mocha) {
|
||||
* @description
|
||||
*
|
||||
* *NOTE*: This function is also published on window for easy access.<br>
|
||||
* *NOTE*: This function is declared ONLY WHEN running tests with jasmine or mocha
|
||||
*
|
||||
* This function registers a module configuration code. It collects the configuration information
|
||||
* which will be used when the injector is created by {@link angular.mock.inject inject}.
|
||||
@ -2045,6 +2110,7 @@ if(window.jasmine || window.mocha) {
|
||||
* @description
|
||||
*
|
||||
* *NOTE*: This function is also published on window for easy access.<br>
|
||||
* *NOTE*: This function is declared ONLY WHEN running tests with jasmine or mocha
|
||||
*
|
||||
* The inject function wraps a function into an injectable function. The inject() creates new
|
||||
* instance of {@link auto.$injector $injector} per test, which is then used for
|
||||
@ -2144,14 +2210,28 @@ if(window.jasmine || window.mocha) {
|
||||
/////////////////////
|
||||
function workFn() {
|
||||
var modules = currentSpec.$modules || [];
|
||||
|
||||
var strictDi = !!currentSpec.$injectorStrict;
|
||||
modules.unshift('ngMock');
|
||||
modules.unshift('ng');
|
||||
var injector = currentSpec.$injector;
|
||||
if (!injector) {
|
||||
injector = currentSpec.$injector = angular.injector(modules);
|
||||
if (strictDi) {
|
||||
// If strictDi is enabled, annotate the providerInjector blocks
|
||||
angular.forEach(modules, function(moduleFn) {
|
||||
if (typeof moduleFn === "function") {
|
||||
angular.injector.$$annotate(moduleFn);
|
||||
}
|
||||
});
|
||||
}
|
||||
injector = currentSpec.$injector = angular.injector(modules, strictDi);
|
||||
currentSpec.$injectorStrict = strictDi;
|
||||
}
|
||||
for(var i = 0, ii = blockFns.length; i < ii; i++) {
|
||||
if (currentSpec.$injectorStrict) {
|
||||
// If the injector is strict / strictDi, and the spec wants to inject using automatic
|
||||
// annotation, then annotate the function here.
|
||||
injector.annotate(blockFns[i]);
|
||||
}
|
||||
try {
|
||||
/* jshint -W040 *//* Jasmine explicitly provides a `this` object when calling functions */
|
||||
injector.invoke(blockFns[i] || angular.noop, this);
|
||||
@ -2167,6 +2247,22 @@ if(window.jasmine || window.mocha) {
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
angular.mock.inject.strictDi = function(value) {
|
||||
value = arguments.length ? !!value : true;
|
||||
return isSpecRunning() ? workFn() : workFn;
|
||||
|
||||
function workFn() {
|
||||
if (value !== currentSpec.$injectorStrict) {
|
||||
if (currentSpec.$injector) {
|
||||
throw new Error('Injector already created, can not modify strict annotations');
|
||||
} else {
|
||||
currentSpec.$injectorStrict = value;
|
||||
}
|
||||
}
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
|
75
src/vendor/angular/angular-route.js
vendored
75
src/vendor/angular/angular-route.js
vendored
@ -1,5 +1,5 @@
|
||||
/**
|
||||
* @license AngularJS v1.2.21
|
||||
* @license AngularJS v1.3.0-rc.3
|
||||
* (c) 2010-2014 Google, Inc. http://angularjs.org
|
||||
* License: MIT
|
||||
*/
|
||||
@ -22,12 +22,12 @@
|
||||
*/
|
||||
/* global -ngRouteModule */
|
||||
var ngRouteModule = angular.module('ngRoute', ['ng']).
|
||||
provider('$route', $RouteProvider);
|
||||
provider('$route', $RouteProvider),
|
||||
$routeMinErr = angular.$$minErr('ngRoute');
|
||||
|
||||
/**
|
||||
* @ngdoc provider
|
||||
* @name $routeProvider
|
||||
* @kind function
|
||||
*
|
||||
* @description
|
||||
*
|
||||
@ -75,12 +75,12 @@ function $RouteProvider(){
|
||||
*
|
||||
* Object properties:
|
||||
*
|
||||
* - `controller` – `{(string|function()=}` – Controller fn that should be associated with
|
||||
* - `controller` – `{(string|function()=}` – Controller fn that should be associated with
|
||||
* newly created scope or the name of a {@link angular.Module#controller registered
|
||||
* controller} if passed as a string.
|
||||
* - `controllerAs` – `{string=}` – A controller alias name. If present the controller will be
|
||||
* - `controllerAs` – `{string=}` – A controller alias name. If present the controller will be
|
||||
* published to scope under the `controllerAs` name.
|
||||
* - `template` – `{string=|function()=}` – html template as a string or a function that
|
||||
* - `template` – `{string=|function()=}` – html template as a string or a function that
|
||||
* returns an html template as a string which should be used by {@link
|
||||
* ngRoute.directive:ngView ngView} or {@link ng.directive:ngInclude ngInclude} directives.
|
||||
* This property takes precedence over `templateUrl`.
|
||||
@ -90,7 +90,7 @@ function $RouteProvider(){
|
||||
* - `{Array.<Object>}` - route parameters extracted from the current
|
||||
* `$location.path()` by applying the current route
|
||||
*
|
||||
* - `templateUrl` – `{string=|function()=}` – path or function that returns a path to an html
|
||||
* - `templateUrl` – `{string=|function()=}` – path or function that returns a path to an html
|
||||
* template that should be used by {@link ngRoute.directive:ngView ngView}.
|
||||
*
|
||||
* If `templateUrl` is a function, it will be called with the following parameters:
|
||||
@ -108,7 +108,7 @@ function $RouteProvider(){
|
||||
* {@link ngRoute.$route#$routeChangeError $routeChangeError} event is fired. The map object
|
||||
* is:
|
||||
*
|
||||
* - `key` – `{string}`: a name of a dependency to be injected into the controller.
|
||||
* - `key` – `{string}`: a name of a dependency to be injected into the controller.
|
||||
* - `factory` - `{string|function}`: If `string` then it is an alias for a service.
|
||||
* Otherwise if function, then it is {@link auto.$injector#invoke injected}
|
||||
* and the return value is treated as the dependency. If the result is a promise, it is
|
||||
@ -116,7 +116,7 @@ function $RouteProvider(){
|
||||
* `ngRoute.$routeParams` will still refer to the previous route within these resolve
|
||||
* functions. Use `$route.current.params` to access the new route parameters, instead.
|
||||
*
|
||||
* - `redirectTo` – {(string|function())=} – value to update
|
||||
* - `redirectTo` – {(string|function())=} – value to update
|
||||
* {@link ng.$location $location} path with and trigger route redirection.
|
||||
*
|
||||
* If `redirectTo` is a function, it will be called with the following parameters:
|
||||
@ -216,10 +216,14 @@ function $RouteProvider(){
|
||||
* Sets route definition that will be used on route change when no other route definition
|
||||
* is matched.
|
||||
*
|
||||
* @param {Object} params Mapping information to be assigned to `$route.current`.
|
||||
* @param {Object|string} params Mapping information to be assigned to `$route.current`.
|
||||
* If called with a string, the value maps to `redirectTo`.
|
||||
* @returns {Object} self
|
||||
*/
|
||||
this.otherwise = function(params) {
|
||||
if (typeof params === 'string') {
|
||||
params = {redirectTo: params};
|
||||
}
|
||||
this.when(null, params);
|
||||
return this;
|
||||
};
|
||||
@ -230,10 +234,9 @@ function $RouteProvider(){
|
||||
'$routeParams',
|
||||
'$q',
|
||||
'$injector',
|
||||
'$http',
|
||||
'$templateCache',
|
||||
'$templateRequest',
|
||||
'$sce',
|
||||
function($rootScope, $location, $routeParams, $q, $injector, $http, $templateCache, $sce) {
|
||||
function($rootScope, $location, $routeParams, $q, $injector, $templateRequest, $sce) {
|
||||
|
||||
/**
|
||||
* @ngdoc service
|
||||
@ -270,9 +273,6 @@ function $RouteProvider(){
|
||||
* This example shows how changing the URL hash causes the `$route` to match a route against the
|
||||
* URL, and the `ngView` pulls in the partial.
|
||||
*
|
||||
* Note that this example is using {@link ng.directive:script inlined templates}
|
||||
* to get it working on jsfiddle as well.
|
||||
*
|
||||
* <example name="$route-service" module="ngRouteExample"
|
||||
* deps="angular-route.js" fixBase="true">
|
||||
* <file name="index.html">
|
||||
@ -441,6 +441,36 @@ function $RouteProvider(){
|
||||
reload: function() {
|
||||
forceReload = true;
|
||||
$rootScope.$evalAsync(updateRoute);
|
||||
},
|
||||
|
||||
/**
|
||||
* @ngdoc method
|
||||
* @name $route#updateParams
|
||||
*
|
||||
* @description
|
||||
* Causes `$route` service to update the current URL, replacing
|
||||
* current route parameters with those specified in `newParams`.
|
||||
* Provided property names that match the route's path segment
|
||||
* definitions will be interpolated into the location's path, while
|
||||
* remaining properties will be treated as query params.
|
||||
*
|
||||
* @param {Object} newParams mapping of URL parameter names to values
|
||||
*/
|
||||
updateParams: function(newParams) {
|
||||
if (this.current && this.current.$$route) {
|
||||
var searchParams = {}, self=this;
|
||||
|
||||
angular.forEach(Object.keys(newParams), function(key) {
|
||||
if (!self.current.pathParams[key]) searchParams[key] = newParams[key];
|
||||
});
|
||||
|
||||
newParams = angular.extend({}, this.current.params, newParams);
|
||||
$location.path(interpolate(this.current.$$route.originalPath, newParams));
|
||||
$location.search(angular.extend({}, $location.search(), searchParams));
|
||||
}
|
||||
else {
|
||||
throw $routeMinErr('norout', 'Tried updating route when with no current route');
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
@ -516,7 +546,7 @@ function $RouteProvider(){
|
||||
|
||||
angular.forEach(locals, function(value, key) {
|
||||
locals[key] = angular.isString(value) ?
|
||||
$injector.get(value) : $injector.invoke(value);
|
||||
$injector.get(value) : $injector.invoke(value, null, null, key);
|
||||
});
|
||||
|
||||
if (angular.isDefined(template = next.template)) {
|
||||
@ -530,8 +560,7 @@ function $RouteProvider(){
|
||||
templateUrl = $sce.getTrustedResourceUrl(templateUrl);
|
||||
if (angular.isDefined(templateUrl)) {
|
||||
next.loadedTemplateUrl = templateUrl;
|
||||
template = $http.get(templateUrl, {cache: $templateCache}).
|
||||
then(function(response) { return response.data; });
|
||||
template = $templateRequest(templateUrl);
|
||||
}
|
||||
}
|
||||
if (angular.isDefined(template)) {
|
||||
@ -693,7 +722,6 @@ ngRouteModule.directive('ngView', ngViewFillContentFactory);
|
||||
<pre>$location.path() = {{main.$location.path()}}</pre>
|
||||
<pre>$route.current.templateUrl = {{main.$route.current.templateUrl}}</pre>
|
||||
<pre>$route.current.params = {{main.$route.current.params}}</pre>
|
||||
<pre>$route.current.scope.name = {{main.$route.current.scope.name}}</pre>
|
||||
<pre>$routeParams = {{main.$routeParams}}</pre>
|
||||
</div>
|
||||
</file>
|
||||
@ -771,7 +799,6 @@ ngRouteModule.directive('ngView', ngViewFillContentFactory);
|
||||
controllerAs: 'chapter'
|
||||
});
|
||||
|
||||
// configure html5 to get links working on jsfiddle
|
||||
$locationProvider.html5Mode(true);
|
||||
}])
|
||||
.controller('MainCtrl', ['$route', '$routeParams', '$location',
|
||||
@ -844,7 +871,7 @@ function ngViewFactory( $route, $anchorScroll, $animate) {
|
||||
currentScope = null;
|
||||
}
|
||||
if(currentElement) {
|
||||
$animate.leave(currentElement, function() {
|
||||
$animate.leave(currentElement).then(function() {
|
||||
previousElement = null;
|
||||
});
|
||||
previousElement = currentElement;
|
||||
@ -867,7 +894,7 @@ function ngViewFactory( $route, $anchorScroll, $animate) {
|
||||
// function is called before linking the content, which would apply child
|
||||
// directives to non existing elements.
|
||||
var clone = $transclude(newScope, function(clone) {
|
||||
$animate.enter(clone, null, currentElement || $element, function onNgViewEnter () {
|
||||
$animate.enter(clone, null, currentElement || $element).then(function onNgViewEnter () {
|
||||
if (angular.isDefined(autoScrollExp)
|
||||
&& (!autoScrollExp || scope.$eval(autoScrollExp))) {
|
||||
$anchorScroll();
|
||||
@ -922,4 +949,4 @@ function ngViewFillContentFactory($compile, $controller, $route) {
|
||||
}
|
||||
|
||||
|
||||
})(window, window.angular);
|
||||
})(window, window.angular);
|
||||
|
5066
src/vendor/angular/angular.js
vendored
5066
src/vendor/angular/angular.js
vendored
File diff suppressed because it is too large
Load Diff
4
src/vendor/angular/bindonce.js
vendored
4
src/vendor/angular/bindonce.js
vendored
@ -214,7 +214,7 @@
|
||||
}
|
||||
};
|
||||
|
||||
return ctrl;
|
||||
angular.extend(this, ctrl);
|
||||
}],
|
||||
|
||||
link: function (scope, elm, attrs, bindonceController)
|
||||
@ -318,4 +318,4 @@
|
||||
return bindonceDirective;
|
||||
});
|
||||
})
|
||||
})();
|
||||
})();
|
||||
|
Loading…
Reference in New Issue
Block a user