From cc04d9463e7a3e2a0412c86976a5c7592956e744 Mon Sep 17 00:00:00 2001 From: niv-openerp Date: Thu, 1 Aug 2013 18:42:07 +0200 Subject: [PATCH] Added more tests bzr revid: nicolas.vanhoren@openerp.com-20130801164207-wwv34s2fgtlxbzxz --- addons/web/static/src/js/openerpframework.js | 22 +++++++++++++------- addons/web/static/test/jsonrpc.js | 15 ++++++++++++- 2 files changed, 28 insertions(+), 9 deletions(-) diff --git a/addons/web/static/src/js/openerpframework.js b/addons/web/static/src/js/openerpframework.js index e84ad5f9061..d03c88e151a 100644 --- a/addons/web/static/src/js/openerpframework.js +++ b/addons/web/static/src/js/openerpframework.js @@ -827,11 +827,12 @@ openerp.web.JsonRPC = openerp.web.Class.extend(openerp.web.PropertiesMixin, { * @param {String} [server] JSON-RPC endpoint hostname * @param {String} [port] JSON-RPC endpoint port */ - init: function() { - openerp.web.PropertiesMixin.init.call(this); + init: function(parent, origin) { + openerp.web.PropertiesMixin.init.call(this, parent); this.server = null; this.override_session = false; this.session_id = undefined; + this.setup(origin); }, setup: function(origin) { // must be able to customize server @@ -840,7 +841,7 @@ openerp.web.JsonRPC = openerp.web.Class.extend(openerp.web.PropertiesMixin, { this.origin = origin ? origin.replace( /\/+$/, '') : window_origin; this.prefix = this.origin; this.server = this.origin; // keep chs happy - this.is_jsonp = this.origin !== window_origin; + this.origin_server = this.origin === window_origin; }, /** * Executes an RPC call, registering the provided callbacks. @@ -859,8 +860,8 @@ openerp.web.JsonRPC = openerp.web.Class.extend(openerp.web.PropertiesMixin, { rpc: function(url, params, options) { var self = this; options = options || {}; - //TODO: remove var jqOptions = {}; + // TODO: remove if (! _.isString(url)) { _.extend(jqOptions, url); url = url.url; @@ -870,12 +871,17 @@ openerp.web.JsonRPC = openerp.web.Class.extend(openerp.web.PropertiesMixin, { jqOptions.timeout = options.timeout; if (! options.shadow) this.trigger('request'); - var p; - if (! this.is_jsonp) { - p = openerp.web.jsonRpc(url, "call", params, jqOptions); + var fct; + if (this.force_method) { + fct = this.force_method; } else { - p = openerp.web.jsonpRpc(url, "call", params, jqOptions); + if (this.origin_server) { + fct = openerp.web.jsonRpc; + } else { + fct = openerp.web.jsonpRpc; + } } + var p = fct(url, "call", params, jqOptions); p = p.then(function (result) { if (! options.shadow) self.trigger('response'); diff --git a/addons/web/static/test/jsonrpc.js b/addons/web/static/test/jsonrpc.js index 02491f111e8..ca93dc130ab 100644 --- a/addons/web/static/test/jsonrpc.js +++ b/addons/web/static/test/jsonrpc.js @@ -2,7 +2,20 @@ openerp.testing.section('jsonrpc', {}, function (test) { test('basic', {asserts: 1}, function () { var session = new openerp.web.JsonRPC(); - session.setup(); + return session.rpc("/gen_session_id", {}).then(function(result) { + ok(result.length > 0, "Result returned by /gen_session_id"); + }); + }); + test('jsonrpc', {asserts: 1}, function () { + var session = new openerp.web.JsonRPC(); + session.force_method = openerp.web.jsonRpc; + return session.rpc("/gen_session_id", {}).then(function(result) { + ok(result.length > 0, "Result returned by /gen_session_id"); + }); + }); + test('jsonprpc', {asserts: 1}, function () { + var session = new openerp.web.JsonRPC(); + session.force_method = openerp.web.jsonpRpc; return session.rpc("/gen_session_id", {}).then(function(result) { ok(result.length > 0, "Result returned by /gen_session_id"); });