| Index: chrome/test/data/webui/mock_controller.js
|
| diff --git a/chrome/test/data/webui/mock_controller.js b/chrome/test/data/webui/mock_controller.js
|
| index 378fdc353967085027d07a0cb999b4ff059158af..62587184f3eb488e94952e9917d8c2b6188c321a 100644
|
| --- a/chrome/test/data/webui/mock_controller.js
|
| +++ b/chrome/test/data/webui/mock_controller.js
|
| @@ -10,8 +10,20 @@
|
| function MockMethod() {
|
| var fn = function() {
|
| var args = Array.prototype.slice.call(arguments);
|
| + var callbacks =
|
| + args.filter(function(arg) { return (typeof arg == 'function'); });
|
| +
|
| + if (callbacks.length > 1) {
|
| + console.error('Only support mocking function with at most one callback.');
|
| + return;
|
| + }
|
| +
|
| fn.recordCall(args);
|
| - return this.returnValue;
|
| + if (callbacks.length == 1) {
|
| + callbacks[0].apply(undefined, fn.callbackData);
|
| + return;
|
| + }
|
| + return fn.returnValue;
|
| };
|
|
|
| /**
|
| @@ -34,6 +46,12 @@ function MockMethod() {
|
| */
|
| fn.returnValue = undefined;
|
|
|
| + /**
|
| + * List of arguments for callback function.
|
| + * @type {!Array.<!Array>}
|
| + */
|
| + fn.callbackData = [];
|
| +
|
| fn.__proto__ = MockMethod.prototype;
|
| return fn;
|
| }
|
| @@ -45,7 +63,7 @@ MockMethod.prototype = {
|
| */
|
| addExpectation: function() {
|
| var args = Array.prototype.slice.call(arguments);
|
| - this.expectations_.push(args);
|
| + this.expectations_.push(args.filter(this.notFunction_));
|
| },
|
|
|
| /**
|
| @@ -53,7 +71,7 @@ MockMethod.prototype = {
|
| * @param {!Array} args.
|
| */
|
| recordCall: function(args) {
|
| - this.calls_.push(args);
|
| + this.calls_.push(args.filter(this.notFunction_));
|
| },
|
|
|
| /**
|
| @@ -84,6 +102,15 @@ MockMethod.prototype = {
|
| validateCall: function(index, expected, observed) {
|
| assertDeepEquals(expected, observed);
|
| },
|
| +
|
| + /**
|
| + * Test if arg is a function.
|
| + * @param {*} arg The argument to test.
|
| + * @return True if arg is not function type.
|
| + */
|
| + notFunction_: function(arg) {
|
| + return typeof arg != 'function';
|
| + }
|
| };
|
|
|
| /**
|
|
|