summaryrefslogtreecommitdiff
path: root/addons/web/static/tests/widgets
diff options
context:
space:
mode:
Diffstat (limited to 'addons/web/static/tests/widgets')
-rw-r--r--addons/web/static/tests/widgets/data_export_tests.js30
-rw-r--r--addons/web/static/tests/widgets/domain_selector_tests.js30
-rw-r--r--addons/web/static/tests/widgets/dropdown_menu_tests.js87
-rw-r--r--addons/web/static/tests/widgets/model_field_selector_tests.js20
4 files changed, 85 insertions, 82 deletions
diff --git a/addons/web/static/tests/widgets/data_export_tests.js b/addons/web/static/tests/widgets/data_export_tests.js
index 4569a5a6290..40b59157b02 100644
--- a/addons/web/static/tests/widgets/data_export_tests.js
+++ b/addons/web/static/tests/widgets/data_export_tests.js
@@ -104,18 +104,19 @@ QUnit.module('widgets', {
};
},
};
- list.$('thead th.o_list_record_selector input').click();
- list.sidebar.$('a:contains(Export)').click();
+ testUtils.dom.click(list.$('thead th.o_list_record_selector input'));
+ testUtils.dom.click(list.sidebar.$('.o_dropdown_toggler_btn:contains(Action)'));
+ testUtils.dom.click(list.sidebar.$('a:contains(Export)'));
assert.strictEqual($('.modal').length, 1, "a modal dialog should be open");
assert.strictEqual($('span.o_tree_column:contains(Activities)').length, 1,
"the Activities field should be in the list of exportable fields");
// select the field Description, click on add, then export and close
- $('.modal span:contains(Description)').click();
- $('.modal .o_add_field').click();
- $('.modal span:contains(Export To File)').click();
- $('.modal span:contains(Close)').click();
+ testUtils.dom.click($('.modal span:contains(Description)'));
+ testUtils.dom.click($('.modal .o_add_field'));
+ testUtils.dom.click($('.modal span:contains(Export To File)'));
+ testUtils.dom.click($('.modal span:contains(Close)'));
list.destroy();
framework.blockUI = blockUI;
@@ -183,28 +184,29 @@ QUnit.module('widgets', {
};
// Open the export modal
- list.$('thead th.o_list_record_selector input').click();
- list.sidebar.$('a:contains(Export)').click();
+ testUtils.dom.click(list.$('thead th.o_list_record_selector input'));
+ testUtils.dom.click(list.sidebar.$('.o_dropdown_toggler_btn:contains(Action)'));
+ testUtils.dom.click(list.sidebar.$('a:contains(Export)'));
assert.strictEqual($('.modal').length, 1,
"a modal dialog should be open");
// Select 'Activities' in fields to export
assert.strictEqual($('.modal select.o_fields_list option').length, 0,
"the fields list should be empty");
- $('.modal .o_export_tree_item:contains(Activities)').click();
- $('.modal button:contains(Add)').click();
+ testUtils.dom.click($('.modal .o_export_tree_item:contains(Activities)'));
+ testUtils.dom.click($('.modal button:contains(Add)'));
assert.strictEqual($('.modal select.o_fields_list option').length, 1,
"there should be one item in the fields list");
// Save fields list
- $('.modal a:contains(Save fields list)').click();
- $('.modal .o_save_list > input').val('fields list').trigger('input');
- $('.modal .o_save_list > button').click();
+ testUtils.dom.click($('.modal a:contains(Save fields list)'));
+ testUtils.fields.editInput($('.modal .o_save_list > input'), 'fields list');
+ testUtils.dom.click($('.modal .o_save_list > button'));
assert.verifySteps(['build_search_data', 'create'],
"create should have been called");
// Close the modal and destroy list
- $('.modal button span:contains(Close)').click();
+ testUtils.dom.click($('.modal button span:contains(Close)'));
list.destroy();
// restore create function
diff --git a/addons/web/static/tests/widgets/domain_selector_tests.js b/addons/web/static/tests/widgets/domain_selector_tests.js
index a1369090f51..6a9df11935a 100644
--- a/addons/web/static/tests/widgets/domain_selector_tests.js
+++ b/addons/web/static/tests/widgets/domain_selector_tests.js
@@ -60,7 +60,7 @@ QUnit.module('DomainSelector', {
readonly: false,
debugMode: true,
});
- testUtils.addMockEnvironment(domainSelector, {data: this.data});
+ testUtils.mock.addMockEnvironment(domainSelector, {data: this.data});
domainSelector.appendTo($target);
// As we gave an empty domain, there should be a visible button to add
@@ -71,7 +71,7 @@ QUnit.module('DomainSelector', {
// Clicking on the button should add a visible field selector in the
// widget so that the user can change the field chain
- $domainAddFirstNodeButton.click();
+ testUtils.dom.click($domainAddFirstNodeButton);
var $fieldSelector = domainSelector.$(".o_field_selector:visible");
assert.strictEqual($fieldSelector.length, 1,
"there should be a field selector");
@@ -97,7 +97,7 @@ QUnit.module('DomainSelector', {
// Clicking the "Bar" field should change the internal domain and this
// should be displayed in the debug input
- $barLi.click();
+ testUtils.dom.click($barLi);
assert.strictEqual(
domainSelector.$(".o_domain_debug_input").val(),
'[["bar","=",True]]',
@@ -108,7 +108,7 @@ QUnit.module('DomainSelector', {
// should add the default "['id', '=', 1]" domain
var $plus = domainSelector.$(".fa-plus-circle");
assert.strictEqual($plus.length, 1, "there should be a '+' button");
- $plus.click();
+ testUtils.dom.click($plus);
assert.strictEqual(
domainSelector.$(".o_domain_debug_input").val(),
'["&",["bar","=",True],["id","=",1]]',
@@ -119,7 +119,7 @@ QUnit.module('DomainSelector', {
// domains and the "|" operator
var $dots = domainSelector.$(".fa-ellipsis-h");
assert.strictEqual($dots.length, 2, "there should be two '...' buttons");
- $dots.first().click();
+ testUtils.dom.click($dots.first());
assert.strictEqual(
domainSelector.$(".o_domain_debug_input").val(),
'["&","&",["bar","=",True],"|",["id","=",1],["id","=",1],["id","=",1]]',
@@ -140,8 +140,8 @@ QUnit.module('DomainSelector', {
// "foo" fields, with the initial "&" operator
var $minus = domainSelector.$(".o_domain_delete_node_button");
assert.strictEqual($minus.length, 5, "there should be five 'x' buttons");
- $minus.last().click();
- domainSelector.$(".o_domain_delete_node_button").last().click();
+ testUtils.dom.click($minus.last());
+ testUtils.dom.click(domainSelector.$(".o_domain_delete_node_button").last());
assert.strictEqual(
domainSelector.$(".o_domain_debug_input").val(),
'["&",["bar","=",True],["foo","=","hello"]]',
@@ -159,7 +159,7 @@ QUnit.module('DomainSelector', {
var domainSelector = new DomainSelector(null, "partner", [["nice_datetime", "=", "2017-03-27 15:42:00"]], {
readonly: false,
});
- testUtils.addMockEnvironment(domainSelector, {data: this.data});
+ testUtils.mock.addMockEnvironment(domainSelector, {data: this.data});
domainSelector.appendTo($target);
// Check that there is a datepicker to choose the date
@@ -168,8 +168,8 @@ QUnit.module('DomainSelector', {
"there should be a datepicker");
var val = $datepicker.find('input').val();
- testUtils.openDatepicker($datepicker);
- $('.bootstrap-datetimepicker-widget :not(.today)[data-action="selectDay"]').click();
+ testUtils.dom.openDatepicker($datepicker);
+ testUtils.dom.clickFirst($('.bootstrap-datetimepicker-widget :not(.today)[data-action="selectDay"]'));
assert.notEqual(domainSelector.$(".o_datepicker:visible input").val(), val,
"datepicker value should have changed");
@@ -186,10 +186,10 @@ QUnit.module('DomainSelector', {
debugMode: true,
readonly: false,
});
- testUtils.addMockEnvironment(domainSelector, {data: this.data});
+ testUtils.mock.addMockEnvironment(domainSelector, {data: this.data});
domainSelector.appendTo($target);
- domainSelector.$('.o_domain_leaf_value_input').val('pad').trigger('input').trigger('change');
+ testUtils.fields.editAndTrigger(domainSelector.$('.o_domain_leaf_value_input'), 'pad', ['input', 'change']);
assert.strictEqual(domainSelector.$('.o_domain_debug_input').val(), '[["product_id","ilike","pad"]]',
"string should have been allowed as m2o value");
@@ -206,7 +206,7 @@ QUnit.module('DomainSelector', {
debugMode: true,
readonly: false,
});
- testUtils.addMockEnvironment(domainSelector, {data: this.data});
+ testUtils.mock.addMockEnvironment(domainSelector, {data: this.data});
domainSelector.appendTo($target);
assert.strictEqual(domainSelector.$el.text(), "This domain is not supported.",
@@ -226,12 +226,12 @@ QUnit.module('DomainSelector', {
debugMode: true,
default: [["foo","=","kikou"]],
});
- testUtils.addMockEnvironment(domainSelector, {data: this.data});
+ testUtils.mock.addMockEnvironment(domainSelector, {data: this.data});
domainSelector.appendTo($target);
// Clicking on the button should add a visible field selector in the
// widget so that the user can change the field chain
- domainSelector.$(".o_domain_add_first_node_button:visible").click();
+ testUtils.dom.click(domainSelector.$(".o_domain_add_first_node_button:visible"));
assert.strictEqual(
domainSelector.$(".o_domain_debug_input").val(),
diff --git a/addons/web/static/tests/widgets/dropdown_menu_tests.js b/addons/web/static/tests/widgets/dropdown_menu_tests.js
index c46c15fe649..83f5d3fecb7 100644
--- a/addons/web/static/tests/widgets/dropdown_menu_tests.js
+++ b/addons/web/static/tests/widgets/dropdown_menu_tests.js
@@ -8,7 +8,7 @@ function createDropdownMenu(dropdownTitle, groups, params) {
params = params || {};
var target = params.debug ? document.body : $('#qunit-fixture');
var menu = new DropdownMenu(null, dropdownTitle, groups);
- testUtils.addMockEnvironment(menu, params);
+ testUtils.mock.addMockEnvironment(menu, params);
menu.appendTo(target);
return menu;
}
@@ -44,7 +44,7 @@ QUnit.module('Web', {
assert.expect(2);
var dropdownMenu = createDropdownMenu(this.dropdownHeader, this.items);
- assert.strictEqual(dropdownMenu.$('.dropdown-divider, .dropdown-item, .dropdown-item-text').length, 4, 'should have 4 elements counting the dividers');
+ assert.containsN(dropdownMenu, '.dropdown-divider, .dropdown-item, .dropdown-item-text', 4, 'should have 4 elements counting the dividers');
assert.strictEqual(dropdownMenu.$('.dropdown-divider, .dropdown-item, .dropdown-item-text').eq(1).text().trim(), 'Some Item',
'first element should have "Some Item" description');
dropdownMenu.destroy();
@@ -68,14 +68,14 @@ QUnit.module('Web', {
},
},
});
- dropdownMenu.$('button:first').click();
- assert.ok(!dropdownMenu.$('.o_menu_item:first > .dropdown-item').hasClass('selected'));
- dropdownMenu.$('.o_menu_item a').first().click();
- assert.ok(dropdownMenu.$('.o_menu_item:first > .dropdown-item').hasClass('selected'));
+ testUtils.dom.click(dropdownMenu.$('button:first'));
+ assert.doesNotHaveClass(dropdownMenu.$('.o_menu_item:first > .dropdown-item'), 'selected');
+ testUtils.dom.click(dropdownMenu.$('.o_menu_item a').first());
+ assert.hasClass(dropdownMenu.$('.o_menu_item:first > .dropdown-item'), 'selected');
assert.ok(dropdownMenu.$('.o_menu_item:first').is(':visible'),
'item should still be visible');
- dropdownMenu.$('.o_menu_item a').first().click();
- assert.ok(!dropdownMenu.$('.o_menu_item:first > .dropdown-item').hasClass('selected'));
+ testUtils.dom.click(dropdownMenu.$('.o_menu_item a').first());
+ assert.doesNotHaveClass(dropdownMenu.$('.o_menu_item:first > .dropdown-item'), 'selected');
assert.ok(dropdownMenu.$('.o_menu_item:first').is(':visible'),
'item should still be visible');
@@ -86,11 +86,12 @@ QUnit.module('Web', {
assert.expect(0);
var dropdownMenu = createDropdownMenu(this.dropdownHeader, this.items);
+ testUtils.dom.click(dropdownMenu.$('.o_dropdown_toggler_btn'));
dropdownMenu.$el.click(function () {
// we do not want a click to get out and change the url, for example
throw new Error('No click should get out of the dropdown menu');
});
- dropdownMenu.$('.o_menu_item a').first().click();
+ testUtils.dom.click(dropdownMenu.$('.o_menu_item a').first());
dropdownMenu.destroy();
});
@@ -102,14 +103,14 @@ QUnit.module('Web', {
var dropdownMenu = createDropdownMenu(this.dropdownHeader, this.items);
// open dropdown
- dropdownMenu.$('button:first').click();
- assert.strictEqual(dropdownMenu.$('.dropdown-divider, .dropdown-item, .dropdown-item-text').length, 4);
+ testUtils.dom.click(dropdownMenu.$('button:first'));
+ assert.containsN(dropdownMenu, '.dropdown-divider, .dropdown-item, .dropdown-item-text', 4);
// open options menu
- dropdownMenu.$('span.fa-caret-right').click();
- assert.strictEqual(dropdownMenu.$('.dropdown-divider, .dropdown-item, .dropdown-item-text').length, 7);
+ testUtils.dom.click(dropdownMenu.$('span.fa-caret-right'));
+ assert.containsN(dropdownMenu, '.dropdown-divider, .dropdown-item, .dropdown-item-text', 7);
// close options menu
- dropdownMenu.$('span.fa-caret-down').click();
- assert.strictEqual(dropdownMenu.$('.dropdown-divider, .dropdown-item, .dropdown-item-text').length, 4);
+ testUtils.dom.click(dropdownMenu.$('span.fa-caret-down'));
+ assert.containsN(dropdownMenu, '.dropdown-divider, .dropdown-item, .dropdown-item-text', 4);
dropdownMenu.destroy();
});
@@ -120,13 +121,13 @@ QUnit.module('Web', {
this.items[0].options = [{optionId: 1, description: "First Option"}, {optionId: 2, description: "Second Option"}];
var dropdownMenu = createDropdownMenu(this.dropdownHeader, this.items);
- dropdownMenu.$('button:first').click();
+ testUtils.dom.click(dropdownMenu.$('button:first'));
// open options menu
- dropdownMenu.$('span.fa-caret-right').click();
- assert.strictEqual(dropdownMenu.$('.dropdown-divider, .dropdown-item, .dropdown-item-text').length, 7);
- dropdownMenu.$('button:first').click();
- dropdownMenu.$('button:first').click();
- assert.strictEqual(dropdownMenu.$('.dropdown-divider, .dropdown-item, .dropdown-item-text').length, 4);
+ testUtils.dom.click(dropdownMenu.$('span.fa-caret-right'));
+ assert.containsN(dropdownMenu, '.dropdown-divider, .dropdown-item, .dropdown-item-text', 7);
+ testUtils.dom.click(dropdownMenu.$('button:first'));
+ testUtils.dom.click(dropdownMenu.$('button:first'));
+ assert.containsN(dropdownMenu, '.dropdown-divider, .dropdown-item, .dropdown-item-text', 4);
dropdownMenu.destroy();
});
@@ -162,26 +163,26 @@ QUnit.module('Web', {
},
});
// open dropdown menu
- dropdownMenu.$('button:first').click();
+ testUtils.dom.click(dropdownMenu.$('button:first'));
// open options menu
- dropdownMenu.$('span.fa-caret-right').click();
- assert.strictEqual(dropdownMenu.$('.dropdown-divider, .dropdown-item, .dropdown-item-text').length, 7);
+ testUtils.dom.click(dropdownMenu.$('span.fa-caret-right'));
+ assert.containsN(dropdownMenu, '.dropdown-divider, .dropdown-item, .dropdown-item-text', 7);
// Don't forget there is a hidden li.divider element at first place among children
- assert.ok(!dropdownMenu.$('.o_menu_item:nth-child(2) > .dropdown-item').hasClass('selected'));
- assert.ok(!dropdownMenu.$('.o_item_option:nth-child(2) > .dropdown-item').hasClass('selected'));
- assert.ok(!dropdownMenu.$('.o_item_option:nth-child(3) > .dropdown-item').hasClass('selected'));
- dropdownMenu.$('.o_item_option:first').click();
- assert.ok(dropdownMenu.$('.o_menu_item:nth-child(2) > .dropdown-item').hasClass('selected'));
- assert.ok(dropdownMenu.$('.o_item_option:nth-child(2) > .dropdown-item').hasClass('selected'));
- assert.ok(!dropdownMenu.$('.o_item_option:nth-child(3) > .dropdown-item').hasClass('selected'));
- dropdownMenu.$('.o_item_option:nth-child(3)').click();
- assert.ok(dropdownMenu.$('.o_menu_item:nth-child(2) > .dropdown-item').hasClass('selected'));
- assert.ok(!dropdownMenu.$('.o_item_option:nth-child(2) > .dropdown-item').hasClass('selected'));
- assert.ok(dropdownMenu.$('.o_item_option:nth-child(3) > .dropdown-item').hasClass('selected'));
- dropdownMenu.$('.o_item_option:nth-child(3)').click();
- assert.ok(!dropdownMenu.$('.o_menu_item:nth-child(2) > .dropdown-item').hasClass('selected'));
- assert.ok(!dropdownMenu.$('.o_item_option:nth-child(2) > .dropdown-item').hasClass('selected'));
- assert.ok(!dropdownMenu.$('.o_item_option:nth-child(3) > .dropdown-item').hasClass('selected'));
+ assert.doesNotHaveClass(dropdownMenu.$('.o_menu_item:nth-child(2) > .dropdown-item'), 'selected');
+ assert.doesNotHaveClass(dropdownMenu.$('.o_item_option:nth-child(2) > .dropdown-item'), 'selected');
+ assert.doesNotHaveClass(dropdownMenu.$('.o_item_option:nth-child(3) > .dropdown-item'), 'selected');
+ testUtils.dom.click(dropdownMenu.$('.o_item_option:first'));
+ assert.hasClass(dropdownMenu.$('.o_menu_item:nth-child(2) > .dropdown-item'), 'selected');
+ assert.hasClass(dropdownMenu.$('.o_item_option:nth-child(2) > .dropdown-item'), 'selected');
+ assert.doesNotHaveClass(dropdownMenu.$('.o_item_option:nth-child(3) > .dropdown-item'), 'selected');
+ testUtils.dom.click(dropdownMenu.$('.o_item_option:nth-child(3)'));
+ assert.hasClass(dropdownMenu.$('.o_menu_item:nth-child(2) > .dropdown-item'), 'selected');
+ assert.doesNotHaveClass(dropdownMenu.$('.o_item_option:nth-child(2) > .dropdown-item'), 'selected');
+ assert.hasClass(dropdownMenu.$('.o_item_option:nth-child(3) > .dropdown-item'), 'selected');
+ testUtils.dom.click(dropdownMenu.$('.o_item_option:nth-child(3)'));
+ assert.doesNotHaveClass(dropdownMenu.$('.o_menu_item:nth-child(2) > .dropdown-item'), 'selected');
+ assert.doesNotHaveClass(dropdownMenu.$('.o_item_option:nth-child(2) > .dropdown-item'), 'selected');
+ assert.doesNotHaveClass(dropdownMenu.$('.o_item_option:nth-child(3) > .dropdown-item'), 'selected');
dropdownMenu.destroy();
});
@@ -195,10 +196,10 @@ QUnit.module('Web', {
},
},
});
- dropdownMenu.$('button:first').click();
- assert.strictEqual(dropdownMenu.$('.dropdown-divider, .dropdown-item, .dropdown-item-text').length, 4);
- dropdownMenu.$('span.o_trash_button').click();
- assert.strictEqual(dropdownMenu.$('.dropdown-divider, .dropdown-item, .dropdown-item-text').length, 2);
+ testUtils.dom.click(dropdownMenu.$('button:first'));
+ assert.containsN(dropdownMenu, '.dropdown-divider, .dropdown-item, .dropdown-item-text', 4);
+ testUtils.dom.click(dropdownMenu.$('span.o_trash_button'));
+ assert.containsN(dropdownMenu, '.dropdown-divider, .dropdown-item, .dropdown-item-text', 2);
dropdownMenu.destroy();
});
});
diff --git a/addons/web/static/tests/widgets/model_field_selector_tests.js b/addons/web/static/tests/widgets/model_field_selector_tests.js
index 23b5ed5d05c..9cbba06ad97 100644
--- a/addons/web/static/tests/widgets/model_field_selector_tests.js
+++ b/addons/web/static/tests/widgets/model_field_selector_tests.js
@@ -59,7 +59,7 @@ QUnit.module('ModelFieldSelector', {
readonly: false,
debugMode: true,
});
- testUtils.addMockEnvironment(fieldSelector, {data: this.data});
+ testUtils.mock.addMockEnvironment(fieldSelector, {data: this.data});
fieldSelector.appendTo($target);
var $value = fieldSelector.$("> .o_field_selector_value");
@@ -84,7 +84,7 @@ QUnit.module('ModelFieldSelector', {
// Clicking the "Bar" field should close the popover and set the field
// chain to "bar" as it is a basic field
- $barLi.click();
+ testUtils.dom.click($barLi);
assert.notOk($fieldSelectorPopover.is("visible"),
"field selector popover should be closed now");
assert.strictEqual(getValueFromDOM($value), "Bar",
@@ -118,7 +118,7 @@ QUnit.module('ModelFieldSelector', {
// Clicking on the "Product" field should update the popover to show
// the product fields (so only "Product Name" should be there)
- $productLi.click();
+ testUtils.dom.click($productLi);
$lis = $fieldSelectorPopover.find("li");
assert.strictEqual($lis.length, 1,
"there should be only one field proposition for 'product' model");
@@ -127,7 +127,7 @@ QUnit.module('ModelFieldSelector', {
// Clicking on "Product Name" should close the popover and set the chain
// to "product_id.name"
- $lis.first().click();
+ testUtils.dom.click($lis.first());
assert.notOk($fieldSelectorPopover.is("visible"),
"field selector popover should be closed now");
assert.strictEqual(getValueFromDOM($value), "Product -> Product Name",
@@ -135,8 +135,8 @@ QUnit.module('ModelFieldSelector', {
// Remove the current selection and recreate it again
fieldSelector.$el.trigger('focusin');
- fieldSelector.$('.o_field_selector_prev_page').click();
- fieldSelector.$('.o_field_selector_close').click();
+ testUtils.dom.click(fieldSelector.$('.o_field_selector_prev_page'));
+ testUtils.dom.click(fieldSelector.$('.o_field_selector_close'));
fieldSelector.$el.trigger('focusin');
$fieldSelectorPopover = fieldSelector.$(".o_field_selector_popover:visible");
@@ -151,9 +151,9 @@ QUnit.module('ModelFieldSelector', {
assert.strictEqual($productLi.length, 1,
"field selector popover should contain the 'Product' field");
- $productLi.click();
+ testUtils.dom.click($productLi);
$lis = $fieldSelectorPopover.find("li");
- $lis.first().click();
+ testUtils.dom.click($lis.first());
assert.notOk($fieldSelectorPopover.is("visible"),
"field selector popover should be closed now");
assert.strictEqual(getValueFromDOM($value), "Product -> Product Name",
@@ -180,7 +180,7 @@ QUnit.module('ModelFieldSelector', {
return field.type === 'many2one';
},
});
- testUtils.addMockEnvironment(fieldSelector, {data: this.data});
+ testUtils.mock.addMockEnvironment(fieldSelector, {data: this.data});
fieldSelector.appendTo($target);
fieldSelector.$el.trigger('focusin');
@@ -202,7 +202,7 @@ QUnit.module('ModelFieldSelector', {
readonly: false,
showSearchInput: true,
});
- testUtils.addMockEnvironment(fieldSelector, {data: this.data});
+ testUtils.mock.addMockEnvironment(fieldSelector, {data: this.data});
fieldSelector.appendTo($target);
fieldSelector.$el.trigger('focusin');