summaryrefslogtreecommitdiff
path: root/addons/web/static/test/jsonrpc.js
diff options
context:
space:
mode:
authorniv-openerp <nicolas.vanhoren@openerp.com>2013-08-06 14:07:24 +0200
committerniv-openerp <nicolas.vanhoren@openerp.com>2013-08-06 14:07:24 +0200
commit392e9d260bb692e4fa404848e70c6dc7ea61c36a (patch)
treed3d65a03e90c29deb73cf72a7a5b758d303dd647 /addons/web/static/test/jsonrpc.js
parent122f0aa9b39f0ed26dc26d09e4afffd949730cd1 (diff)
parentcb55e11c700efa298a74da781a108185682325da (diff)
[IMP] Mostly improvements of openerpframework.js . Moved a lot of necessary features to it (jsonrpc, models, translations,...). Added tests. Also some other style improvements.
bzr revid: nicolas.vanhoren@openerp.com-20130806120724-55nsh8ay9qiac72r
Diffstat (limited to 'addons/web/static/test/jsonrpc.js')
-rw-r--r--addons/web/static/test/jsonrpc.js181
1 files changed, 181 insertions, 0 deletions
diff --git a/addons/web/static/test/jsonrpc.js b/addons/web/static/test/jsonrpc.js
new file mode 100644
index 00000000000..a8b901d3b1c
--- /dev/null
+++ b/addons/web/static/test/jsonrpc.js
@@ -0,0 +1,181 @@
+(function() {
+
+var ropenerp = window.openerp;
+
+var openerp = ropenerp.declare($, _, QWeb2);
+
+ropenerp.testing.section('jsonrpc', {},
+function (test) {
+ test('basic-jsonrpc', {asserts: 1}, function () {
+ var session = new openerp.Session();
+ return session.rpc("/gen_session_id", {}).then(function(result) {
+ ok(result.length > 0, "Result returned by /gen_session_id");
+ });
+ });
+ test('basic-jsonprpc', {asserts: 1}, function () {
+ var session = new openerp.Session();
+ session.origin_server = false;
+ return session.rpc("/gen_session_id", {}).then(function(result) {
+ ok(result.length > 0, "Result returned by /gen_session_id");
+ });
+ });
+ // desactivated because the phantomjs runner crash
+ /*test('basic-jsonprpc2', {asserts: 1}, function () {
+ var session = new openerp.Session();
+ session.origin_server = false;
+ return session.rpc("/gen_session_id", {}, {force2step: true}).then(function(result) {
+ ok(result.length > 0, "Result returned by /gen_session_id");
+ });
+ });*/
+ test('session-jsonrpc', {asserts: 2}, function () {
+ var session = new openerp.Session();
+ var tmp = _.uniqueId("something");
+ return session.rpc("/web/tests/set_session_value", {value: tmp}).then(function() {
+ ok(true, "set_session returned");
+ return session.rpc("/web/tests/get_session_value", {});
+ }).then(function(result) {
+ equal(result, tmp, "Got the same value from the session");
+ });
+ });
+ test('session-jsonprpc', {asserts: 2}, function () {
+ var session = new openerp.Session();
+ session.origin_server = false;
+ var tmp = _.uniqueId("something");
+ return session.rpc("/web/tests/set_session_value", {value: tmp}).then(function() {
+ ok(true, "set_session returned");
+ return session.rpc("/web/tests/get_session_value", {});
+ }).then(function(result) {
+ equal(result, tmp, "Got the same value from the session");
+ });
+ });
+ // desactivated because the phantomjs runner crash
+ /*test('session-jsonprpc2', {asserts: 2}, function () {
+ var session = new openerp.Session();
+ session.origin_server = false;
+ var tmp = _.uniqueId("something");
+ return session.rpc("/web/tests/set_session_value", {value: tmp}, {force2step: true}).then(function() {
+ ok(true, "set_session returned");
+ return session.rpc("/web/tests/get_session_value", {}, {force2step: true});
+ }).then(function(result) {
+ equal(result, tmp, "Got the same value from the session");
+ });
+ });*/
+ test('overridesession-jsonrpc', {asserts: 4}, function () {
+ var origin_session = new openerp.Session();
+ var origin_tmp = _.uniqueId("something");
+ var session = new openerp.Session(null, null, {override_session: true});
+ var tmp = _.uniqueId("something_else");
+ return session.rpc("/web/tests/set_session_value", {value: tmp}).then(function() {
+ ok(true, "set_session returned");
+ return origin_session.rpc("/web/tests/set_session_value", {value: origin_tmp});
+ }).then(function(result) {
+ ok(true, "set_session on origin returned");
+ return session.rpc("/web/tests/get_session_value", {});
+ }).then(function(result) {
+ equal(result, tmp, "Got the same value from the session");
+ notEqual(result, origin_tmp, "Values in the different sessions should be different");
+ });
+ });
+ test('overridesession-jsonprpc', {asserts: 4}, function () {
+ var origin_session = new openerp.Session();
+ var origin_tmp = _.uniqueId("something");
+ var session = new openerp.Session(null, null, {override_session: true});
+ var tmp = _.uniqueId("something_else");
+ session.origin_server = false;
+ return session.rpc("/web/tests/set_session_value", {value: tmp}).then(function() {
+ ok(true, "set_session returned");
+ return origin_session.rpc("/web/tests/set_session_value", {value: origin_tmp});
+ }).then(function(result) {
+ ok(true, "set_session on origin returned");
+ return session.rpc("/web/tests/get_session_value", {});
+ }).then(function(result) {
+ equal(result, tmp, "Got the same value from the session");
+ notEqual(result, origin_tmp, "Values in the different sessions should be different");
+ });
+ });
+ // desactivated because the phantomjs runner crash
+ /*test('overridesession-jsonprpc2', {asserts: 4}, function () {
+ var origin_session = new openerp.Session();
+ var origin_tmp = _.uniqueId("something");
+ var session = new openerp.Session(null, null, {override_session: true});
+ var tmp = _.uniqueId("something_else");
+ session.origin_server = false;
+ return session.rpc("/web/tests/set_session_value", {value: tmp}, {force2step: true}).then(function() {
+ ok(true, "set_session returned");
+ return origin_session.rpc("/web/tests/set_session_value", {value: origin_tmp});
+ }).then(function(result) {
+ ok(true, "set_session on origin returned");
+ return session.rpc("/web/tests/get_session_value", {}, {force2step: true});
+ }).then(function(result) {
+ equal(result, tmp, "Got the same value from the session");
+ notEqual(result, origin_tmp, "Values in the different sessions should be different");
+ });
+ });*/
+});
+
+
+// desactivated because I can't manage to make these work in the runbot
+/*
+var login = "admin";
+var password = "admin";
+var db = null;
+
+ropenerp.testing.section('jsonrpc-auth', {
+ setup: function() {
+ var session = new openerp.Session();
+ return session.session_reload().then(function() {
+ db = session.db;
+ ok(db, "db must be valid");
+ });
+ },
+},
+function (test) {
+ test('basic-auth', {asserts: 4}, function () {
+ var session = new openerp.Session();
+ equal(session.uid, undefined, "uid is expected to be undefined");
+ return session.session_authenticate(db, login, password).then(function() {
+ equal(session.uid, 1, "Admin's uid must be 1");
+ return session.rpc("/web/dataset/call_kw", {
+ model: "res.users",
+ method: "read",
+ args: [1, ["login"]],
+ kwargs: {},
+ }).then(function(result) {
+ equal(result.login, "admin", "Admin's name must be 'admin'");
+ });
+ });
+ });
+ test('share-sessions', {asserts: 7}, function () {
+ var session = new openerp.Session();
+ var session2;
+ return session.session_authenticate(db, login, password).then(function() {
+ equal(session.uid, 1, "Admin's uid must be 1");
+ session2 = new openerp.Session(null, null, {session_id: session.session_id});
+ equal(session2.uid, undefined, "uid should be undefined");
+ equal(session2.override_session, true, "overwrite_session should be true");
+ return session2.session_reload();
+ }).then(function() {
+ equal(session2.uid, session.uid);
+ equal(session2.uid, 1);
+ return session2.rpc("/web/dataset/call_kw", {
+ model: "res.users",
+ method: "read",
+ args: [1, ["login"]],
+ kwargs: {},
+ }).then(function(result) {
+ equal(result.login, "admin", "Admin's name must be 'admin'");
+ });
+ });
+ });
+ test('models', {asserts: 3}, function () {
+ var session = new openerp.Session();
+ return session.session_authenticate(db, login, password).then(function() {
+ return session.model("res.users").call("search_read", {fields: ["login"], domain: [["id", "=", 1]]});
+ }).then(function(result) {
+ equal(result.length, 1, "Must have one result");
+ equal(result[0].login, "admin", "Must have admin's login");
+ });
+ });
+});*/
+
+})();