1 $(document).ready(function () {
3 * Tests a jQuery collection against a selector ("ands" the .is() of each
4 * member of the collection, instead of "or"-ing them)
6 * @param {jQuery} $c a jQuery collection object
7 * @param {String} selector the selector to test the collection against
9 var are = function ($c, selector) {
10 return ($c.filter(function () { return $(this).is(selector); }).length
14 var fvg = {fields_view: {
24 openerp = window.openerp.init(true);
25 window.openerp.base.chrome(openerp);
27 window.openerp.base.data(openerp);
28 window.openerp.base.views(openerp);
29 window.openerp.base.form(openerp);
30 window.openerp.base.list(openerp);
34 asyncTest('render selection checkboxes', 2, function () {
35 var listview = new openerp.base.ListView(
37 'qunit-fixture', {model: null, ids: [null, null, null], index: 0});
39 listview.on_loaded(fvg);
41 listview.do_fill_table({records: [
42 {data: {id: {value: null}}},
43 {data: {id: {value: null}}},
44 {data: {id: {value: null}}}
45 ]}).then(function () {
46 ok(are(listview.$element.find('tbody th'),
47 '.oe-record-selector'));
48 ok(are(listview.$element.find('tbody th input'),
49 ':checkbox:not([name])'));
53 asyncTest('render no checkbox if selectable=false', 1, function () {
54 var listview = new openerp.base.ListView(
56 'qunit-fixture', {model: null, ids: [null, null, null], index: 0}, false,
59 listview.on_loaded(fvg);
61 listview.do_fill_table({records: [
62 {data: {id: {value: null}}},
63 {data: {id: {value: null}}},
64 {data: {id: {value: null}}}
65 ]}).then(function () {
66 equal(listview.$element.find('tbody th').length, 0);
70 asyncTest('select a bunch of records', 2, function () {
71 var listview = new openerp.base.ListView(
72 {}, null, 'qunit-fixture', {model: null, ids: [1, 2, 3], index: 0});
73 listview.on_loaded(fvg);
75 listview.do_fill_table({records: [
76 {data: {id: {value: 1}}},
77 {data: {id: {value: 2}}},
78 {data: {id: {value: 3}}}
79 ]}).then(function () {
80 listview.$element.find('tbody th input:eq(2)')
81 .attr('checked', true);
82 deepEqual(listview.get_selection(), [3]);
83 listview.$element.find('tbody th input:eq(1)')
84 .attr('checked', true);
85 deepEqual(listview.get_selection(), [2, 3]);
89 asyncTest('render deletion button if list is deletable', 1, function () {
90 var listview = new openerp.base.ListView(
91 {}, null, 'qunit-fixture', {model: null, ids: [null, null, null], index: 0});
93 listview.on_loaded(fvg);
95 listview.do_fill_table({records: [
96 {data: {id: {value: null}}},
97 {data: {id: {value: null}}},
98 {data: {id: {value: null}}}
99 ]}).then(function () {
101 listview.$element.find('tbody tr td.oe-record-delete button').length,
106 asyncTest('deletion button should lead on deletion in the dataset',
109 var listview = new openerp.base.ListView(
110 {}, null, 'qunit-fixture', {model: null, unlink: function (ids) {
112 }, ids: [1, 2, 3], index: 0});
114 listview.on_loaded(fvg);
116 listview.do_fill_table({records: [
117 {data: {id: {value: 1}}},
118 {data: {id: {value: 2}}},
119 {data: {id: {value: 3}}}
120 ]}).then(function () {
121 listview.$element.find('tbody td.oe-record-delete:eq(2) button').click();
122 deepEqual(deleted, [3]);
123 listview.$element.find('tbody td.oe-record-delete:eq(0) button').click();
124 deepEqual(deleted, [1]);
128 asyncTest('multiple records deletion', 1, function () {
130 var listview = new openerp.base.ListView(
131 {}, null, 'qunit-fixture', {model: null, unlink: function (ids) {
133 }, ids: [1, 2, 3], index: 0});
135 listview.on_loaded(fvg);
137 listview.do_fill_table({records: [
138 {data: {id: {value: 1}}},
139 {data: {id: {value: 2}}},
140 {data: {id: {value: 3}}}
141 ]}).then(function () {
142 listview.$element.find('tbody th input:eq(2)')
143 .attr('checked', true);
144 listview.$element.find('tbody th input:eq(1)')
145 .attr('checked', true);
147 listview.$element.find('#oe-list-delete').click();
148 deepEqual(deleted, [2, 3]);