[FIX] update tests in search view

This commit is contained in:
Géry Debongnie
2014-10-21 09:33:51 +02:00
parent 748de602ef
commit d9f95e855e
+46 -53
View File
@@ -1134,7 +1134,7 @@ openerp.testing.section('search.groupby', {
templates: true,
}, function (test) {
test('basic', {
asserts: 7,
asserts: 12,
setup: function (instance, $s, mock) {
mock('dummy.model:fields_view_get', function () {
return {
@@ -1154,23 +1154,20 @@ openerp.testing.section('search.groupby', {
var view = makeSearchView(instance);
return view.appendTo($fix)
.done(function () {
// 3 filters, 1 filtergroup group, 1 custom filter, 1 advanced, 1 Filters
// and 1 SaveFilter widget
debugger;
equal(view.drawer.inputs.length, 8,
'should have 8 inputs total');
var group = _.find(view.drawer.inputs, function (f) {
return f instanceof instance.web.search.GroupbyGroup;
});
ok(group, "should have a GroupbyGroup input");
ok(group.getParent() === view.drawer,
"group's parent should be the drawer");
equal(view.search_fields.length, 0); // 0 fields
equal(view.filters.length, 0); // 0 filters (in filter menu)
equal(view.groupbys.length, 1); // 1 group of groupbys
var group = view.groupbys[0];
ok(group instanceof instance.web.search.GroupbyGroup,
'should have a GroupbyGroup input');
equal(group.filters.length, 3); // 3 group bys in group
ok(group.getParent() === view,
"group's parent should be the searchview");
group.toggle(group.filters[0]);
group.toggle(group.filters[2]);
var results = view.build_search_data();
deepEqual(results.errors, [], "should have no errors");
deepEqual(results.domains, [], "should have no domain");
deepEqual(results.contexts, [
new instance.web.CompoundContext(
@@ -1180,10 +1177,14 @@ openerp.testing.section('search.groupby', {
"{'group_by': 'foo'}",
"{'group_by': 'baz'}"
], "should have sequence of contexts");
ok(view.filter_menu instanceof instance.web.search.FilterMenu, 'should have a filter menu');
ok(view.groupby_menu instanceof instance.web.search.GroupByMenu, 'should have a group by menu');
ok(view.favorite_menu instanceof instance.web.search.FavoriteMenu, 'should have a favorite menu');
});
});
test('unified multiple groupby groups', {
asserts: 4,
asserts: 3,
setup: function (instance, $s, mock) {
mock('dummy.model:fields_view_get', function () {
return {
@@ -1205,14 +1206,7 @@ openerp.testing.section('search.groupby', {
var view = makeSearchView(instance);
return view.appendTo($fix)
.done(function () {
// 3 filters, 3 filtergroups, 1 custom filter, 1 advanced, 1 Filters,
// and 1 SaveFilter widget
equal(view.drawer.inputs.length, 10, "should have 10 inputs total");
var groups = _.filter(view.drawer.inputs, function (f) {
return f instanceof instance.web.search.GroupbyGroup;
});
var groups = view.groupbys;
equal(groups.length, 3, "should have 3 GroupbyGroups");
groups[0].toggle(groups[0].filters[0]);
@@ -1220,7 +1214,6 @@ openerp.testing.section('search.groupby', {
equal(view.query.length, 1,
"should have unified groupby groups in single facet");
deepEqual(view.build_search_data(), {
errors: [],
domains: [],
contexts: [new instance.web.CompoundContext(
"{'group_by': 'foo'}", "{'group_by': 'baz'}")],
@@ -1242,10 +1235,10 @@ openerp.testing.section('search.filters.saved', {
return view.appendTo($fix)
.done(function () {
var $span = $fix.find('.oe_searchview_custom_list span:first').click();
var $li = view.favorite_menu.$el.find('li:first').click();
ok($span.hasClass('badge'), "should check/select the filter's row");
ok($span.hasClass("oe_searchview_custom_private"),
ok($li.hasClass('selected'), "should check/select the filter's row");
ok($li.hasClass("oe_searchview_custom_private"),
"should have private filter note/class");
equal(view.query.length, 1, "should have only one facet");
var values = view.query.at(0).values;
@@ -1265,10 +1258,10 @@ openerp.testing.section('search.filters.saved', {
return view.appendTo($fix)
.done(function () {
var $row = $fix.find('.oe_searchview_custom li:first').click();
var $row = view.favorite_menu.$el.find('li:first').click();
view.query.remove(view.query.at(0));
ok(!$row.hasClass('badge'),
ok(!$row.hasClass('selected'),
"should not be checked anymore");
});
});
@@ -1280,7 +1273,7 @@ openerp.testing.section('search.filters.saved', {
return view.appendTo($fix)
.done(function () {
var $row = $fix.find('.oe_searchview_custom_list span:first').click();
var $row = view.favorite_menu.$el.find('li:first').click();
equal(view.query.length, 1, "should have one facet");
$row.click();
equal(view.query.length, 0, "should have removed facet");
@@ -1296,13 +1289,13 @@ openerp.testing.section('search.filters.saved', {
});
return view.appendTo($fix)
.done(function () {
$fix.find('.oe_searchview_custom_list span:eq(0)').click();
view.favorite_menu.$el.find('li:first').click();
equal(view.query.length, 1, "should have one facet");
deepEqual(
view.query.at(0).get('field').get_context(),
{'private': 1},
"should have selected first filter");
$fix.find('.oe_searchview_custom_list span:eq(1)').click();
view.favorite_menu.$el.find('li').eq(1).click();
equal(view.query.length, 1, "should have one facet");
deepEqual(
view.query.at(0).get('field').get_context(),
@@ -1325,10 +1318,8 @@ openerp.testing.section('search.filters.saved', {
});
return view.appendTo($fix)
.then(function () {
$fix.find('.oe_searchview_savefilter input#oe_searchview_custom_input')
.val("filter name")
.end()
.find('.oe_searchview_savefilter button').click();
view.favorite_menu.$el.find('.oe-save-name input').first().val("filter name");
view.favorite_menu.$el.find('.oe-save-name button').click();
return done.promise();
});
});
@@ -1343,16 +1334,16 @@ openerp.testing.section('search.advanced', {
return view.appendTo($fix)
.done(function () {
var $advanced = $fix.find('.oe_searchview_advanced');
var $filter_menu = view.filter_menu.$el;
// open advanced search (not actually useful)
$advanced.find('> h4').click();
$filter_menu.find('.oe-add-filter').click();
// select proposition (only one)
var $prop = $advanced.find('> form li:first');
var $prop = $filter_menu.find('.oe-filter-condition');
// field select should have two possible values, dummy and id
equal($prop.find('.searchview_extended_prop_field option').length,
equal($prop.find('select:first option').length,
2, "advanced search should provide choice between two fields");
// field should be dummy
equal($prop.find('.searchview_extended_prop_field').val(),
equal($prop.find('select:first').val(),
'dummy',
"only field should be dummy");
// operator should be "contains"/'ilike'
@@ -1362,8 +1353,7 @@ openerp.testing.section('search.advanced', {
$prop.find('.searchview_extended_prop_value input')
.val("stupid value");
// validate advanced search
$advanced.find('button.oe_apply').click();
$filter_menu.find('button.oe-apply-filter').click();
// resulting search
equal(view.query.length, 1, "search query should have a single facet");
var facet = view.query.at(0);
@@ -1379,34 +1369,35 @@ openerp.testing.section('search.advanced', {
return view.appendTo($fix)
.done(function () {
var $advanced = $fix.find('.oe_searchview_advanced');
var $filter_menu = view.filter_menu.$el;
// open advanced search (not actually useful)
$advanced.find('> h4').click();
$filter_menu.find('.oe-add-filter').click();
// open second condition
$advanced.find('button.oe_add_condition').click();
$filter_menu.find('a.oe-add-condition').click();
// select first proposition
var $prop1 = $advanced.find('> form li:first');
$prop1.find('.searchview_extended_prop_field').val('dummy').change();
$prop1.find('.searchview_extended_prop_op').val('ilike');
var $prop1 = $filter_menu.find('.oe-filter-condition:first');
$prop1.find('select.searchview_extended_prop_field').val("dummy").change();
$prop1.find('select.searchview_extended_prop_op').val('ilike');
$prop1.find('.searchview_extended_prop_value input')
.val("stupid value");
// select first proposition
var $prop2 = $advanced.find('> form li:last');
var $prop2 = $filter_menu.find('.oe-filter-condition:last');
// need to trigger event manually or op not changed
$prop2.find('.searchview_extended_prop_field').val('id').change();
$prop2.find('.searchview_extended_prop_op').val('=');
$prop2.find('select.searchview_extended_prop_field').val('id').change();
$prop2.find('select.searchview_extended_prop_op').val('=');
$prop2.find('.searchview_extended_prop_value input')
.val(42);
// validate advanced search
$advanced.find('button.oe_apply').click();
$filter_menu.find('button.oe-apply-filter').click();
// resulting search
equal(view.query.length, 1, "search query should have a single facet");
var facet = view.query.at(0);
ok(!facet.get('field').get_context(facet),
"advanced search facets should yield no context");
deepEqual(facet.get('field').get_domain(facet),
deepEqual(facet.get('field').get_domain(facet).eval(),
['|', ['dummy', 'ilike', "stupid value"],
['id', '=', 42]],
"advanced search facet should return proposed domain");
@@ -1414,6 +1405,8 @@ openerp.testing.section('search.advanced', {
});
// TODO: UI tests?
});
openerp.testing.section('search.invisible', {
dependencies: ['web.search'],
rpc: 'mock',