Nonliteral domains, name_search w/ nonliteral domains
authorXavier Morel <xmo@openerp.com>
Mon, 27 Feb 2012 10:26:05 +0000 (11:26 +0100)
committerXavier Morel <xmo@openerp.com>
Mon, 27 Feb 2012 10:26:05 +0000 (11:26 +0100)
bzr revid: xmo@openerp.com-20120227102605-wvn1osn1wxgbdiio

addons/web/static/test/fulltest/dataset.js

index 14556e9..4924e3b 100644 (file)
@@ -189,7 +189,10 @@ $(document).ready(function () {
     });
 
     t.module('Nonliterals', 'data', {
-        domains: ['mary had a little lamb', 'bob the builder'],
+        domains: [
+            "[('model_id', '=', parent.model)]",
+            "[('product_id','=',product_id)]"
+        ],
         contexts: ['{a: b > c}']
     });
     t.test('Dataset', function (openerp) {
@@ -212,6 +215,32 @@ $(document).ready(function () {
             ok(_.isEmpty(r.kwargs));
         });
     });
+    t.test('name_search', function (openerp) {
+        var eval_context = {
+            active_id: 42,
+            active_ids: [42],
+            active_model: 'mod',
+            parent: {model: 'qux'}
+        };
+        var ds = new openerp.web.DataSet(
+            {session: openerp.connection}, 'mod',
+             new openerp.web.CompoundContext({})
+                 .set_eval_context(eval_context));
+        var domain = new openerp.web.CompoundDomain(openerp.domains[0])
+                .set_eval_context(eval_context);
+        t.expect(ds.name_search('foo', domain, 'ilike', 0), function (r) {
+            strictEqual(r.method, 'name_search');
+
+            strictEqual(r.args.length, 5);
+            strictEqual(r.args[0], 'foo');
+            deepEqual(r.args[1], [['model_id', '=', 'qux']]);
+            strictEqual(r.args[2], 'ilike');
+            deepEqual(r.args[3], context_());
+            strictEqual(r.args[4], 0);
+
+            ok(_.isEmpty(r.kwargs));
+        });
+    });
     // TODO: non-literal domains and contexts basics
     // TODO: call_and_eval
     // TODO: name_search, non-literal domains