From 39ab5712ed58ccbc16736cc08d594fe50fedde39 Mon Sep 17 00:00:00 2001 From: Aaron Bohy Date: Wed, 5 Apr 2017 11:36:33 +0200 Subject: [PATCH] [FIX] test_new_api: enable deactivated steps of x2many tour Those steps had been deactivated because the onchanges didn't work well back then. Now, everything that is tested by the tour works fine, so we can re-enable it entirely. --- .../addons/test_new_api/static/test/x2many.js | 209 ++++++++---------- 1 file changed, 97 insertions(+), 112 deletions(-) diff --git a/odoo/addons/test_new_api/static/test/x2many.js b/odoo/addons/test_new_api/static/test/x2many.js index 2c0562481f5..6610fcc5555 100644 --- a/odoo/addons/test_new_api/static/test/x2many.js +++ b/odoo/addons/test_new_api/static/test/x2many.js @@ -7,7 +7,11 @@ odoo.define('web.test.x2many', function (require) { tour.register('widget_x2many', { url: '/web?debug=assets#action=test_new_api.action_discussions', test: true, - }, [{ + }, [ + ///////////////////////////////////////////////////////////////////////////////////////////// + // Discussions + ///////////////////////////////////////////////////////////////////////////////////////////// + { content: "wait web client", trigger: '.breadcrumb:contains(Discussions)', }, { // create test discussion @@ -109,24 +113,22 @@ odoo.define('web.test.x2many', function (require) { content: "check onchange", trigger: '.o_form_textarea[name="message_concat"] textarea:first:propValue([test_trigger] Administrator:a\n[test_trigger] Administrator:b)', run: function () {}, - // FIXME: can't edit a not yet saved o2m record for now (problem 1) - // }, { // change message b - // content: "edit message b", - // trigger: '.tab-pane:eq(0) .o_form_field tbody tr td:containsExact(b)', - // extra_trigger: 'body:not(:has(.tab-pane:eq(0) .o_form_field tbody .o_data_row:eq(2))) .tab-pane:eq(0) .o_form_field tbody tr td:contains([test_trigger] )', - // }, { - // content: "change the body", - // trigger: '.o_form_textarea[name="body"] textarea:first', - // run: 'text bbb', - // }, { - // content: "save changes", - // trigger: '.modal-footer button:contains(Save):first', - // extra_trigger: '.o_form_textarea[name="body"] textarea:first:propValue(bbb)', + }, { // change message b + content: "edit message b", + trigger: '.tab-pane:eq(0) .o_form_field tbody tr td:containsExact(b)', + extra_trigger: 'body:not(:has(.tab-pane:eq(0) .o_form_field tbody .o_data_row:eq(2))) .tab-pane:eq(0) .o_form_field tbody tr td:contains([test_trigger] )', + }, { + content: "change the body", + trigger: '.o_form_textarea[name="body"] textarea:first', + run: 'text bbb', + }, { + content: "save changes", + trigger: '.modal-footer button:contains(Save):first', + extra_trigger: '.o_form_textarea[name="body"] textarea:first:propValue(bbb)', }, { // add message c content: "create new message c", trigger: '.tab-pane:eq(0) .o_form_field_x2many_list_row_add a', - // extra_trigger: 'textarea[name="message_concat"]:propValue([test_trigger] Administrator:a\n[test_trigger] Administrator:bbb)', // FIXME (problem 1) - extra_trigger: '.o_form_textarea[name="message_concat"] textarea:propValue([test_trigger] Administrator:a\n[test_trigger] Administrator:b)', + extra_trigger: '.o_form_textarea[name="message_concat"] textarea:propValue([test_trigger] Administrator:a\n[test_trigger] Administrator:bbb)', }, { content: "insert body", trigger: '.o_form_textarea[name="body"] textarea:first', @@ -160,8 +162,7 @@ odoo.define('web.test.x2many', function (require) { run: function () {}, // it's a check }, { content: "check data 2", - trigger: '.o_content:has(.tab-pane:eq(0) .o_form_field tr:has(td:containsExact(b)):has(td:containsExact([test_trigger] Administrator)))', - // trigger: '.o_content:has(.tab-pane:eq(0) .o_form_field tr:has(td:containsExact(bbb)):has(td:containsExact([test_trigger] Administrator)))', // FIXME (problem 1) + trigger: '.o_content:has(.tab-pane:eq(0) .o_form_field tr:has(td:containsExact(bbb)):has(td:containsExact([test_trigger] Administrator)))', run: function () {}, // it's a check }, { content: "check data 3", @@ -199,63 +200,58 @@ odoo.define('web.test.x2many', function (require) { content: "save new message e", trigger: '.modal-footer button:contains(Save):first', extra_trigger: '.o_form_textarea[name="body"] textarea:first:propValue(e)', - // FIXME: onchange don't work fine for now (problem 2), but this won't work anyway - // until problem 1 is solved - // }, { // change message a - // content: "edit message a", - // trigger: '.tab-pane:eq(0) .o_form_field tbody tr td:containsExact(a)', - // extra_trigger: '.tab-pane:eq(0) .o_form_field tbody tr td:containsExact(e)', - // }, { - // content: "change the body", - // trigger: '.o_form_textarea[name="body"] textarea:first', - // run: 'text aaa', - // }, { - // content: "save changes", - // trigger: '.modal-footer button:contains(Save):first', - // extra_trigger: '.o_form_textarea[name="body"] textarea:first:propValue(aaa)', - // }, { // change message e - // content: "edit message e", - // trigger: '.tab-pane:eq(0) .o_form_field tbody tr td:containsExact(e)', - // extra_trigger: '.tab-pane:eq(0) .o_form_field tbody tr td:contains(aaa)', - // }, { - // content: "open the many2one to select another user", - // trigger: '.o_form_input_dropdown > input', - // run: 'text Demo', - // }, { - // content: "select another user", - // trigger: '.ui-autocomplete li:contains(Demo User)', - // in_modal: false, - // }, { - // content: "test one2many's line onchange after many2one", - // trigger: '.o_form_field:contains([test_trigger] Demo User)', - // run: function () {}, // it's a check - // }, { - // content: "test one2many field not triggered onchange", - // trigger: 'textarea[name="message_concat"]:propValueContains([test_trigger] Administrator:e)', - // in_modal: false, - // run: function () {}, // don't change texarea content - // }, { - // content: "save changes", - // trigger: '.modal-footer button:contains(Save):contains(Close)' - // }, { - // content: "test one2many triggered the onchange on save for the line", - // trigger: '.o_content:has(.tab-pane:eq(0) .o_form_field tbody tr td.o_readonly:contains([test_trigger] Demo User))', - // run: function () {}, // it's a check - // }, { - // content: "test one2many triggered the onchange on save", - // trigger: 'textarea[name="message_concat"]:propValueContains([test_trigger] Demo User:e)', - // run: function () {}, // don't change texarea content + }, { // change message a + content: "edit message a", + trigger: '.tab-pane:eq(0) .o_form_field tbody tr td:containsExact(a)', + extra_trigger: '.tab-pane:eq(0) .o_form_field tbody tr td:containsExact(e)', + }, { + content: "change the body", + trigger: '.o_form_textarea[name="body"] textarea:first', + run: 'text aaa', + }, { + content: "save changes", + trigger: '.modal-footer button:contains(Save):first', + extra_trigger: '.o_form_textarea[name="body"] textarea:first:propValue(aaa)', + }, { // change message e + content: "edit message e", + trigger: '.tab-pane:eq(0) .o_form_field tbody tr td:containsExact(e)', + extra_trigger: '.tab-pane:eq(0) .o_form_field tbody tr td:contains(aaa)', + }, { + content: "open the many2one to select another user", + trigger: '.o_form_input_dropdown > input', + run: 'text Demo', + }, { + content: "select another user", + trigger: '.ui-autocomplete li:contains(Demo User)', + in_modal: false, + }, { + content: "test one2many's line onchange after many2one", + trigger: '.o_form_field:contains([test_trigger] Demo User)', + run: function () {}, // it's a check + }, { + content: "test one2many field not triggered onchange", + trigger: '.o_form_textarea[name="message_concat"] textarea:first:propValueContains([test_trigger] Administrator:e)', + in_modal: false, + run: function () {}, // don't change texarea content + }, { + content: "save changes", + trigger: '.modal-footer button:contains(Save):contains(Close)' + }, { + content: "test one2many triggered the onchange on save for the line", + trigger: '.o_content:has(.tab-pane:eq(0) .o_form_field tbody tr td.o_readonly:contains([test_trigger] Demo User))', + run: function () {}, // it's a check + }, { + content: "test one2many triggered the onchange on save", + trigger: '.o_form_textarea[name="message_concat"] textarea:first:propValueContains([test_trigger] Demo User:e)', + run: function () {}, // don't change texarea content }, { // remove content: "remove b", - trigger: '.tab-pane:eq(0) .o_form_field tbody tr:has(td:containsExact(b)) .o_list_record_delete', - // trigger: '.tab-pane:eq(0) .o_form_field tbody tr:has(td:containsExact(bbb)) .o_list_record_delete', // FIXME (problem 2) - extra_trigger: '.tab-pane:eq(0) .o_form_field tbody tr td:containsExact(e)', - // extra_trigger: '.tab-pane:eq(0) .o_form_field tbody tr td:contains(aaa)', // FIXME (problem 2) + trigger: '.tab-pane:eq(0) .o_form_field tbody tr:has(td:containsExact(bbb)) .o_list_record_delete', + extra_trigger: '.tab-pane:eq(0) .o_form_field tbody tr td:containsExact(aaa)', }, { content: "remove e", trigger: 'tr:has(td:containsExact(e)) .o_list_record_delete', - extra_trigger: 'body:not(:has(tr:has(td:containsExact(b))))', - // extra_trigger: 'body:not(:has(tr:has(td:containsExact(bbb))))', // FIXME (problem 2) + extra_trigger: 'body:not(:has(tr:has(td:containsExact(bbb))))', }, { // save content: "save discussion", trigger: 'button.o_form_button_save', @@ -266,13 +262,11 @@ odoo.define('web.test.x2many', function (require) { run: function () {}, // it's a check }, { content: "check data 5", - trigger: '.o_content:has(.tab-pane:eq(0) .o_form_field tbody:has(tr td:containsExact(a)):has(tr td:containsExact(c)):has(tr td:containsExact(d)))', - // trigger: '.o_content:has(.tab-pane:eq(0) .o_form_field tbody:has(tr td:containsExact(aaa)):has(tr td:containsExact(c)):has(tr td:containsExact(d)))', // FIXME (problem 2) + trigger: '.o_content:has(.tab-pane:eq(0) .o_form_field tbody:has(tr td:containsExact(aaa)):has(tr td:containsExact(c)):has(tr td:containsExact(d)))', run: function () {}, // it's a check }, { content: "check data 6", - trigger: '.o_content:has(.tab-pane:eq(0) .o_form_field tbody tr:has(td:containsExact([test_trigger] Administrator)):has(td:containsExact(a)))', - // trigger: '.o_content:has(.tab-pane:eq(0) .o_form_field tbody tr:has(td:containsExact([test_trigger] Administrator)):has(td:containsExact(aaa)))', // FIXME (problem 2) + trigger: '.o_content:has(.tab-pane:eq(0) .o_form_field tbody tr:has(td:containsExact([test_trigger] Administrator)):has(td:containsExact(aaa)))', run: function () {}, // it's a check }, { content: "check data 7", @@ -297,8 +291,7 @@ odoo.define('web.test.x2many', function (require) { in_modal: false, }, { content: "test one2many's line onchange after many2one", - trigger: '.o_form_field:contains([] Demo User)', - // trigger: '.o_form_field:contains([test_trigger] Demo User)', // FIXME (problem 2) + trigger: '.o_form_field:contains([test_trigger] Demo User)', run: function () {}, // it's a check }, { content: "insert body", @@ -314,8 +307,7 @@ odoo.define('web.test.x2many', function (require) { extra_trigger: '.tab-pane:eq(0) .o_form_field tbody:has(tr td:containsExact(ddd))', }, { // check onchange data content: "check data 8", - trigger: '.o_form_textarea[name="message_concat"] textarea:propValueContains([test_trigger] Administrator:a\n[test_trigger] Administrator:c\n[test_trigger] Administrator:d\n[test_trigger] Demo User:ddd)', - // trigger: 'textarea[name="message_concat"]:propValueContains([test_trigger] Administrator:aaa\n[test_trigger] Administrator:c\n[test_trigger] Administrator:d\n[test_trigger] Demo User:ddd)', // FIXME (problem 2) + trigger: '.o_form_textarea[name="message_concat"] textarea:propValueContains([test_trigger] Administrator:aaa\n[test_trigger] Administrator:c\n[test_trigger] Administrator:d\n[test_trigger] Demo User:ddd)', run: function () {}, // don't change texarea content }, { content: "check data 9", @@ -333,6 +325,7 @@ odoo.define('web.test.x2many', function (require) { }, ///////////////////////////////////////////////////////////////////////////////////////////// + // Discussions 2 ///////////////////////////////////////////////////////////////////////////////////////////// { @@ -371,8 +364,7 @@ odoo.define('web.test.x2many', function (require) { }, { content: "click on a field of the editable list to edit content", trigger: '.o_list_view .o_data_row:eq(1) td', - extra_trigger: '.o_list_view:contains(test_trigger)', - // extra_trigger: '.o_list_view:contains(test_trigger2)', // FIXME (problem 2) + extra_trigger: '.o_list_view:contains(test_trigger2)', }, { content: "change text value", trigger: '.o_form_textarea[name="body"] textarea:first', @@ -382,23 +374,20 @@ odoo.define('web.test.x2many', function (require) { trigger: '.o_list_view .o_form_field_many2one[name="author"] input', run: 'click' }, { - // FIXME (problem 2) - // content: "test one2many's line onchange", - // trigger: '.o_list_view .o_selected_row td:nth(3):contains(3)', - // run: function () {}, // don't blur the many2one - // }, { + content: "test one2many's line onchange", + trigger: '.o_list_view .o_selected_row td:nth(3):contains(3)', + run: function () {}, // don't blur the many2one + }, { content: "open the many2one to select an other user", trigger: '.o_list_view .o_form_field_many2one[name="author"] .o_form_input_dropdown > input', run: 'text Demo', }, { content: "select an other user", trigger: '.ui-autocomplete li a:contains(Demo User)', - // FIXME (problem 2) - // }, { - // content: "test one2many's line onchange after many2one", - // trigger: '.o_list_editable_form span.o_form_field:contains([test_trigger] Demo User)', - // // trigger: '.o_list_editable_form span.o_form_field:contains([test_trigger2] Demo User)', - // run: function () {}, // don't blur the many2one + }, { + content: "test one2many's line onchange after many2one", + trigger: '.o_list_view td:contains([test_trigger2] Demo User)', + run: function () {}, // don't blur the many2one }, { content: "change text value", trigger: '.o_form_textarea[name="body"] textarea:first', @@ -408,11 +397,10 @@ odoo.define('web.test.x2many', function (require) { trigger: 'input.o_form_required', run: 'click' }, { - // FIXME (problem 2) - // content: "test one2many onchange", - // trigger: '.o_form_textarea[name="message_concat"] textarea:first:propValueContains([test_trigger2] Demo User:ccccc)', - // run: function () {}, // don't change texarea content - // }, { + content: "test one2many onchange", + trigger: '.o_form_textarea[name="message_concat"] textarea:first:propValueContains([test_trigger2] Demo User:ccccc)', + run: function () {}, // don't change texarea content + }, { content: "click outside to trigger one2many onchange", trigger: '.o_form_field_many2manytags .o_form_input_dropdown > input', }, { @@ -430,12 +418,10 @@ odoo.define('web.test.x2many', function (require) { trigger: 'button.o_form_button_save', extra_trigger: 'body:not(:has(tr:has(td:containsExact(d))))', }, { // check saved data - // FIXME (problem 2) - // content: "check data 10", - // trigger: '.o_form_textarea:containsExact([test_trigger2] Administrator:aaa\n[test_trigger2] Demo User:ccccc)', - // trigger: '.o_form_textarea:containsExact([test_trigger2] Administrator:aaa\n[test_trigger2] Demo User:ccccc)', - // run: function () {}, // don't change texarea content - // }, { + content: "check data 10", + trigger: '.o_form_textarea:containsExact([test_trigger2] Administrator:aaa\n[test_trigger2] Demo User:ccccc)', + run: function () {}, // don't change texarea content + }, { content: "check data 11", trigger: '.tab-pane:eq(0) .o_form_field tbody .o_data_row:eq(1)', extra_trigger: 'body:not(:has(.tab-pane:eq(0) .o_form_field tbody .o_data_row:eq(2)))', @@ -455,16 +441,15 @@ odoo.define('web.test.x2many', function (require) { content: "save discussion", trigger: 'button.o_form_button_save', extra_trigger: '.o_form_textarea[name="body"] textarea:first:propValueContains(eee)', - // FIXME (problem 2) + add an item doesn't work at the end of the tour (problem 3) - // }, { // check saved data - // content: "check data 12", - // trigger: '.o_form_textarea[name="body"] textarea:first:containsExact([test_trigger2] Administrator:aaa\n[test_trigger2] Demo User:ccccc\n[test_trigger2] Administrator:eee)', - // run: function () {}, // it's a check - // }, { - // content: "check data 13", - // trigger: '.tab-pane:eq(0) .o_form_field tbody .o_data_row:eq(2)', - // extra_trigger: 'body:not(:has(.tab-pane:eq(0) .o_form_field tbody .o_data_row:eq(3)))', - // run: function () {}, // it's a check + }, { // check saved data + content: "check data 12", + trigger: '.o_form_textarea[name="message_concat"]:containsExact([test_trigger2] Administrator:aaa\n[test_trigger2] Demo User:ccccc\n[test_trigger2] Administrator:eee)', + run: function () {}, // it's a check + }, { + content: "check data 13", + trigger: '.tab-pane:eq(0) .o_form_field tbody .o_data_row:eq(2)', + extra_trigger: 'body:not(:has(.tab-pane:eq(0) .o_form_field tbody .o_data_row:eq(3)))', + run: function () {}, // it's a check }]); // FIXME: apply https://github.com/odoo/odoo/commit/a2479396204d900b267d2446001769bdcbd1f9fa