odoo.define('web.search_tests', function (require) { "use strict"; var testUtils = require('web.test_utils'); var createActionManager = testUtils.createActionManager; QUnit.module('Mobile Search view Screen', { beforeEach: function () { this.data = { partner: { fields: { foo: {string: "Foo", type: "char"}, boolean_field: {string: "I am a boolean", type: "boolean"}, }, records: [ {id: 1, display_name: "First record", foo: "yop"}, ], }, }; this.actions = [{ id: 1, name: 'Partners Action 1', res_model: 'partner', type: 'ir.actions.act_window', views: [[false, 'list']], }]; this.archs = { // list views 'partner,false,list': '', // search views 'partner,false,search': '' + '' + '' + '', }; }, }, function () { QUnit.test('can activate a filter with mobile search view', async function (assert) { assert.expect(3); var filterActiveFlag = false; var actionManager = await createActionManager({ actions: this.actions, archs: this.archs, data: this.data, mockRPC: function (route, args) { if (filterActiveFlag) { assert.deepEqual(args.domain, [['boolean_field', '=', true]], "domain should have been properly transferred to list view"); } return this._super.apply(this, arguments); }, }); await actionManager.doAction(1); assert.ok(!$('.o_mobile_search').is(':visible'), 'mobile search view is not visible'); // open the search view await testUtils.dom.click($('button.o_enable_searchview')); assert.ok($('.o_mobile_search').is(':visible'), 'mobile search view is visible'); // open filter sub menu await testUtils.dom.click($('button.o_dropdown_toggler_btn').first()); filterActiveFlag = true; // click on Active filter await testUtils.dom.click($('.o_filters_menu a:contains(Active)')); actionManager.destroy(); }); }); });