diff options
| author | Xavier Morel <xmo@openerp.com> | 2012-02-23 13:34:16 +0100 |
|---|---|---|
| committer | Xavier Morel <xmo@openerp.com> | 2012-02-23 13:34:16 +0100 |
| commit | 0ff97e49295c9836bebc730049bafd23b9936978 (patch) | |
| tree | 40969cec10ed124821e08e0809a12cb7c3be3345 /addons/web/static/src/js/test_support.js | |
| parent | 5ac6e532bdfeef0f3bf8ad45ba8bc17183ff423c (diff) | |
[ADD] testing scaffold which does not hit the OpenERP server
bzr revid: xmo@openerp.com-20120223123416-2zvxy6nqbe9gdhhw
Diffstat (limited to 'addons/web/static/src/js/test_support.js')
| -rw-r--r-- | addons/web/static/src/js/test_support.js | 64 |
1 files changed, 64 insertions, 0 deletions
diff --git a/addons/web/static/src/js/test_support.js b/addons/web/static/src/js/test_support.js new file mode 100644 index 00000000000..5fcfb94c6a2 --- /dev/null +++ b/addons/web/static/src/js/test_support.js @@ -0,0 +1,64 @@ +openerp.test_support = { + setup_connection: function (connection) { + var origin = location.protocol+"//"+location.host; + _.extend(connection, { + origin: origin, + prefix: origin, + server: origin, // keep chs happy + //openerp.web.qweb.default_dict['_s'] = this.origin; + rpc_function: connection.rpc_json, + session_id: false, + uid: false, + username: false, + user_context: {}, + db: false, + openerp_entreprise: false, +// this.module_list = openerp._modules.slice(); +// this.module_loaded = {}; +// _(this.module_list).each(function (mod) { +// self.module_loaded[mod] = true; +// }); + context: {}, + shortcuts: [], + active_id: null + }); + return connection.session_reload(); + }, + module: function (title, tested_core, fn) { + var conf = QUnit.config.openerp = {}; + QUnit.module(title, { + setup: function () { + QUnit.stop(); + var oe = conf.openerp = window.openerp.init(); + window.openerp.web[tested_core](oe); + openerp.test_support.setup_connection(oe.connection) + .always(QUnit.start) + .then(function () { + conf.openerp = oe; + }, function (e) { + QUnit.test(title, function () { + console.error(e); + QUnit.ok(false, 'Could not obtain a session:' + e.debug); + }); + }); + } + }); + }, + test: function (title, fn) { + var conf = QUnit.config.openerp; + QUnit.test(title, function () { + QUnit.stop(); + fn(conf.openerp); + }); + }, + expect: function (promise, fn) { + promise.always(QUnit.start) + .done(function () { QUnit.ok(false, 'RPC requests should not succeed'); }) + .fail(function (e) { + if (e.code !== 200) { + QUnit.equal(e.code, 200, 'Testing connector should raise RPC faults'); + } + fn(e.data.fault_code); + }) + } +}; |
