[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:
@@ -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];
|
||||
|
||||
@@ -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));
|
||||
});
|
||||
});
|
||||
@@ -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>
|
||||
|
||||
Reference in New Issue
Block a user