diff options
| author | Ken Chen | 2013-08-06 16:53:46 +0100 | 
|---|---|---|
| committer | Pete Bacon Darwin | 2013-08-06 16:54:50 +0100 | 
| commit | 08daa7797bce5207916251d4a0ab3d5c93e5529a (patch) | |
| tree | 243682b2a0ae72f4aa6d378174752f021ca0b695 /src/ngMock/angular-mocks.js | |
| parent | ac5105b198282139f184eb30a9850e9e212e0acf (diff) | |
| download | angular.js-08daa7797bce5207916251d4a0ab3d5c93e5529a.tar.bz2 | |
feat(ngMock/$httpBackend):  support a matching function for data param
Add support for passing function as validating data:
 - To avoid hacking test method of RegExp
 - Optionally overwrite `toString` method of fn to show validation tips
 - change docs: param description for `when`, `whenPost`, `whenPut`,
   `expect`, `expectPost`, `expectPut`, `expectPATCH`
Closes: #2981
Diffstat (limited to 'src/ngMock/angular-mocks.js')
| -rw-r--r-- | src/ngMock/angular-mocks.js | 22 | 
1 files changed, 15 insertions, 7 deletions
| diff --git a/src/ngMock/angular-mocks.js b/src/ngMock/angular-mocks.js index f0580903..36bf982f 100644 --- a/src/ngMock/angular-mocks.js +++ b/src/ngMock/angular-mocks.js @@ -1123,7 +1123,8 @@ function createHttpBackendMock($rootScope, $delegate, $browser) {     *     * @param {string} method HTTP method.     * @param {string|RegExp} url HTTP url. -   * @param {(string|RegExp)=} data HTTP request body. +   * @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 control how a matched @@ -1199,7 +1200,8 @@ function createHttpBackendMock($rootScope, $delegate, $browser) {     * Creates a new backend definition for POST requests. For more info see `when()`.     *     * @param {string|RegExp} url HTTP url. -   * @param {(string|RegExp)=} data HTTP request body. +   * @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. @@ -1213,7 +1215,8 @@ function createHttpBackendMock($rootScope, $delegate, $browser) {     * Creates a new backend definition for PUT requests.  For more info see `when()`.     *     * @param {string|RegExp} url HTTP url. -   * @param {(string|RegExp)=} data HTTP request body. +   * @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. @@ -1242,7 +1245,8 @@ function createHttpBackendMock($rootScope, $delegate, $browser) {     *     * @param {string} method HTTP method.     * @param {string|RegExp} url HTTP url. -   * @param {(string|RegExp)=} data HTTP request body. +   * @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 expectation.     * @returns {requestHandler} Returns an object with `respond` method that control how a matched @@ -1311,7 +1315,8 @@ function createHttpBackendMock($rootScope, $delegate, $browser) {     * Creates a new request expectation for POST requests. For more info see `expect()`.     *     * @param {string|RegExp} url HTTP url. -   * @param {(string|RegExp)=} data HTTP request body. +   * @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=} headers HTTP headers.     * @returns {requestHandler} Returns an object with `respond` method that control how a matched     *   request is handled. @@ -1325,7 +1330,8 @@ function createHttpBackendMock($rootScope, $delegate, $browser) {     * Creates a new request expectation for PUT requests. For more info see `expect()`.     *     * @param {string|RegExp} url HTTP url. -   * @param {(string|RegExp)=} data HTTP request body. +   * @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=} headers HTTP headers.     * @returns {requestHandler} Returns an object with `respond` method that control how a matched     *   request is handled. @@ -1339,7 +1345,8 @@ function createHttpBackendMock($rootScope, $delegate, $browser) {     * Creates a new request expectation for PATCH requests. For more info see `expect()`.     *     * @param {string|RegExp} url HTTP url. -   * @param {(string|RegExp)=} data HTTP request body. +   * @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=} headers HTTP headers.     * @returns {requestHandler} Returns an object with `respond` method that control how a matched     *   request is handled. @@ -1492,6 +1499,7 @@ function MockHttpExpectation(method, url, data, headers) {    this.matchData = function(d) {      if (angular.isUndefined(data)) return true;      if (data && angular.isFunction(data.test)) return data.test(d); +    if (data && angular.isFunction(data)) return data(d);      if (data && !angular.isString(data)) return angular.toJson(data) == d;      return data == d;    }; | 
