[TEST] add tests for openerp.base.form.Widget.eval_attrs (also rename to compute_domain)

bzr revid: xmo@openerp.com-20110411173146-mg8yjlgsakei34u0
This commit is contained in:
Xavier Morel
2011-04-11 19:31:46 +02:00
parent 83bd3c8348
commit 25bbc891cf
3 changed files with 58 additions and 2 deletions
+2 -2
View File
@@ -283,10 +283,10 @@ openerp.base.form.Widget = openerp.base.Controller.extend({
},
process_attrs: function() {
for (var a in this.attrs) {
this[a] = this.eval_attrs(this.attrs[a]);
this[a] = this.compute_domain(this.attrs[a]);
}
},
eval_attrs: function(expr) {
compute_domain: function(expr) {
var stack = [];
for (var i = 0; i < expr.length; i++) {
var ex = expr[i];
+54
View File
@@ -0,0 +1,54 @@
$(document).ready(function () {
var widget;
module("form.widget", {
setup: function () {
var openerp = window.openerp.init(true);
window.openerp.base.chrome(openerp);
// views loader stuff
window.openerp.base.data(openerp);
window.openerp.base.views(openerp);
window.openerp.base.form(openerp);
widget = new openerp.base.form.Widget({
'widgets': {},
'fields': {}
}, {
'attrs': {}
});
}
});
test("compute_domain", function () {
widget.view.fields = {
'a': {value: 3},
'group_method': {value: 'line'},
'select1': {value: 'day'},
'rrule_type': {value: 'monthly'}
};
ok(widget.compute_domain([['a', '=', 3]]));
ok(widget.compute_domain([['group_method','!=','count']]));
ok(widget.compute_domain([['select1','=','day'],
['rrule_type','=','monthly']]));
});
test("compute_domain or", function () {
var base = {
'section_id': {value: null},
'user_id': {value: null},
'member_ids': {value: null}
};
var domain = ['|', ['section_id', '=', 42],
'|', ['user_id','=',3],
['member_ids', 'in', [3]]];
widget.view.fields = _.extend(
{}, base, {'section_id': {value: 42}});
ok(widget.compute_domain(domain));
widget.view.fields = _.extend(
{}, base, {'user_id': {value: 3}});
ok(widget.compute_domain(domain));
widget.view.fields = _.extend(
{}, base, {'member_ids': {value: 3}});
ok(widget.compute_domain(domain));
});
});
+2
View File
@@ -21,6 +21,7 @@
<script src="/base/static/src/js/data.js"></script>
<script src="/base/static/src/js/views.js"></script>
<script src="/base/static/src/js/search.js"></script>
<script src="/base/static/src/js/form.js"></script>
<script src="/base/static/src/js/list.js"></script>
<script type="text/javascript">
QWeb.add_template('/base/static/src/xml/base.xml');
@@ -36,5 +37,6 @@
</body>
<script type="text/javascript" src="/base/static/test/registry.js"></script>
<script type="text/javascript" src="/base/static/test/search-date.js"></script>
<script type="text/javascript" src="/base/static/test/form.js"></script>
<script type="text/javascript" src="/base/static/test/list.js"></script>
</html>