summaryrefslogtreecommitdiff
path: root/addons/web/static/src/js/test_support.js
diff options
context:
space:
mode:
authorXavier Morel <xmo@openerp.com>2012-02-23 13:34:16 +0100
committerXavier Morel <xmo@openerp.com>2012-02-23 13:34:16 +0100
commit0ff97e49295c9836bebc730049bafd23b9936978 (patch)
tree40969cec10ed124821e08e0809a12cb7c3be3345 /addons/web/static/src/js/test_support.js
parent5ac6e532bdfeef0f3bf8ad45ba8bc17183ff423c (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.js64
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);
+ })
+ }
+};