summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGéry Debongnie <ged@odoo.com>2017-07-02 09:32:30 +0200
committerGéry Debongnie <ged@odoo.com>2017-07-02 09:34:35 +0200
commit690446b5fd6da37f59fddcb98ddf3e7aefd61ea5 (patch)
tree55cd813bef2e1ef601c3b52d9d3667c8e4fb2702
parent07fdcad3439716f4fbe91cadf31ccfca3a49b05f (diff)
[FIX] web: protect logged object in mockserver
Before this commit, when whe loglevel was set to 2 in the mock server, we simply logged the parameters in the console, then give the same object to the _performRpc route. Most of the time, it is not an issue, but nothing prevents the _performRpc route to modify the args object. And this happens with the /create route, which is very confusing: when we have a breakpoint/debugger in the mock rpc function in a test, we see the correct arguments passed to the function. However, if we look at the arguments in the console, after the end of the test, we see other values (for all fields) in the args.args[0] object. The solution is to simply deep copying everything, so any modification in the mockserver will not affect the logged object.
-rw-r--r--addons/web/static/tests/helpers/mock_server.js1
1 files changed, 1 insertions, 0 deletions
diff --git a/addons/web/static/tests/helpers/mock_server.js b/addons/web/static/tests/helpers/mock_server.js
index 98e5289cf21..cab291ec012 100644
--- a/addons/web/static/tests/helpers/mock_server.js
+++ b/addons/web/static/tests/helpers/mock_server.js
@@ -94,6 +94,7 @@ var MockServer = Class.extend({
args = JSON.parse(JSON.stringify(args));
if (logLevel === 2) {
console.log('%c[rpc] request ' + route, 'color: blue; font-weight: bold;', args);
+ args = JSON.parse(JSON.stringify(args));
}
return this._performRpc(route, args).then(function (result) {
var resultString = JSON.stringify(result || false);