[FIX] website: restore the language install steps in tour
Those steps were removed with [1] to avoid a indeterminist timeout, but by doing so that part of the feature was not tested anymore. Sadly, it was broken by [2] without being noticed for a long period of time. The error was discovered by fixing multiple lang issues in the website configurator in master. Note that by creating a new lang instead of using an existing one will avoid the timout error that lead to the removal of those steps with [1]. Indeed, as no .po files will be found for that lang, it won't spend time on processing those files. [1]: https://github.com/odoo/odoo/commit/a15c7099a36a3a5b4dca9375b233cbe3fe2a280f [2]: https://github.com/odoo/odoo/commit/745ef9de97544d5c1a97e03be67e903feca40c2a closes odoo/odoo#83420 X-original-commit: 0b43f52116fd9a58fb0a123db576d822fd541043 Signed-off-by: Romain Derie (rde) <rde@odoo.com>
This commit is contained in:
@@ -3,7 +3,6 @@ odoo.define('website.tour.rte', function (require) {
|
||||
|
||||
var ajax = require('web.ajax');
|
||||
var session = require('web.session');
|
||||
var Wysiwyg = require('web_editor.wysiwyg');
|
||||
var tour = require('web_tour.tour');
|
||||
|
||||
var domReady = new Promise(function (resolve) {
|
||||
@@ -13,15 +12,30 @@ var ready = Promise.all([domReady, session.is_bound, ajax.loadXML()]);
|
||||
|
||||
tour.register('rte_translator', {
|
||||
test: true,
|
||||
url: '/fr_BE',
|
||||
url: '/',
|
||||
wait_for: ready,
|
||||
}, [{
|
||||
content : "click language dropdown",
|
||||
trigger : '.js_language_selector .dropdown-toggle',
|
||||
content: "click language dropdown",
|
||||
trigger: '.js_language_selector .dropdown-toggle',
|
||||
}, {
|
||||
content: "click on Add a language",
|
||||
trigger: 'a.o_add_language',
|
||||
}, {
|
||||
content: "select Parseltongue",
|
||||
trigger: 'select[name="lang"]',
|
||||
run: 'text "pa_GB"',
|
||||
}, {
|
||||
content: "load Parseltongue",
|
||||
trigger: '.modal-footer button:first',
|
||||
extra_trigger: '.modal select[name="lang"]:propValueContains(pa_GB)',
|
||||
}, {
|
||||
content: "click language dropdown (2)",
|
||||
trigger: '.js_language_selector .dropdown-toggle',
|
||||
timeout: 60000,
|
||||
}, {
|
||||
content: "go to english version",
|
||||
trigger: '.js_language_selector a[data-url_code="en"]',
|
||||
extra_trigger: 'html[lang*="fr"]',
|
||||
extra_trigger: 'html[lang*="pa-GB"]',
|
||||
}, {
|
||||
content: "Open new page menu",
|
||||
trigger: '#new-content-menu > a',
|
||||
@@ -56,12 +70,12 @@ tour.register('rte_translator', {
|
||||
trigger: 'button[data-action=save]',
|
||||
extra_trigger: '#wrap p:first b',
|
||||
}, {
|
||||
content : "click language dropdown",
|
||||
trigger : '.js_language_selector .dropdown-toggle',
|
||||
content: "click language dropdown (3)",
|
||||
trigger: '.js_language_selector .dropdown-toggle',
|
||||
extra_trigger: 'body:not(.o_wait_reload):not(:has(.note-editor)) a[data-action="edit"]',
|
||||
}, {
|
||||
content: "click on french version",
|
||||
trigger: '.js_language_selector a[data-url_code="fr_BE"]',
|
||||
content: "click on Parseltongue version",
|
||||
trigger: '.js_language_selector a[data-url_code="pa_GB"]',
|
||||
extra_trigger: 'html[lang*="en"]:not(:has(button[data-action=save]))',
|
||||
}, {
|
||||
content: "translate",
|
||||
@@ -76,41 +90,43 @@ tour.register('rte_translator', {
|
||||
content: "translate text",
|
||||
extra_trigger: '.editor_started',
|
||||
trigger: '#wrap p font:first',
|
||||
run: function (action_helper) {
|
||||
action_helper.text('translated french text');
|
||||
run: function (actionHelper) {
|
||||
actionHelper.text('translated Parseltongue text');
|
||||
const Wysiwyg = odoo.__DEBUG__.services['web_editor.wysiwyg'];
|
||||
Wysiwyg.setRange(this.$anchor.contents()[0], 22);
|
||||
this.$anchor.trigger($.Event( "keyup", {key: '_', keyCode: 95}));
|
||||
this.$anchor.trigger($.Event("keyup", {key: '_', keyCode: 95}));
|
||||
this.$anchor.trigger('input');
|
||||
},
|
||||
}, {
|
||||
content: "translate text with special char",
|
||||
trigger: '#wrap input + p span:first',
|
||||
run: function (action_helper) {
|
||||
action_helper.click();
|
||||
run: function (actionHelper) {
|
||||
actionHelper.click();
|
||||
this.$anchor.prepend('<{translated}>');
|
||||
const Wysiwyg = odoo.__DEBUG__.services['web_editor.wysiwyg'];
|
||||
Wysiwyg.setRange(this.$anchor.contents()[0], 0);
|
||||
this.$anchor.trigger($.Event( "keyup", {key: '_', keyCode: 95}));
|
||||
this.$anchor.trigger($.Event("keyup", {key: '_', keyCode: 95}));
|
||||
this.$anchor.trigger('input');
|
||||
},
|
||||
}, {
|
||||
content: "click on input",
|
||||
trigger: '#wrap input:first',
|
||||
extra_trigger: '#wrap .o_dirty font:first:contains(translated french text)',
|
||||
extra_trigger: '#wrap .o_dirty font:first:contains(translated Parseltongue text)',
|
||||
run: 'click',
|
||||
}, {
|
||||
content: "translate placeholder",
|
||||
trigger: 'input:first',
|
||||
run: 'text test french placeholder',
|
||||
run: 'text test Parseltongue placeholder',
|
||||
}, {
|
||||
content: "close modal",
|
||||
trigger: '.modal-footer .btn-primary',
|
||||
extra_trigger: '.modal input:propValue(test french placeholder)',
|
||||
extra_trigger: '.modal input:propValue(test Parseltongue placeholder)',
|
||||
}, {
|
||||
content: "save translation",
|
||||
trigger: 'button[data-action=save]',
|
||||
}, {
|
||||
content: "check: content is translated",
|
||||
trigger: '#wrap p font:first:contains(translated french text)',
|
||||
trigger: '#wrap p font:first:contains(translated Parseltongue text)',
|
||||
extra_trigger: 'body:not(.o_wait_reload):not(:has(.note-editor)) a[data-action="edit_master"]',
|
||||
run: function () {}, // it's a check
|
||||
}, {
|
||||
@@ -120,13 +136,13 @@ tour.register('rte_translator', {
|
||||
|
||||
}, {
|
||||
content: "check: placeholder translation",
|
||||
trigger: 'input[placeholder="test french placeholder"]',
|
||||
trigger: 'input[placeholder="test Parseltongue placeholder"]',
|
||||
run: function () {}, // it's a check
|
||||
|
||||
}, {
|
||||
content: "open language selector",
|
||||
trigger: '.js_language_selector button:first',
|
||||
extra_trigger: 'html[lang*="fr"]:not(:has(#wrap p span))',
|
||||
extra_trigger: 'html[lang*="pa-GB"]:not(:has(#wrap p span))',
|
||||
}, {
|
||||
content: "return to english version",
|
||||
trigger: '.js_language_selector a[data-url_code="en"]',
|
||||
@@ -138,13 +154,14 @@ tour.register('rte_translator', {
|
||||
content: "select text",
|
||||
extra_trigger: '#oe_snippets.o_loaded',
|
||||
trigger: '#wrap p',
|
||||
run: function (action_helper) {
|
||||
action_helper.click();
|
||||
run: function (actionHelper) {
|
||||
actionHelper.click();
|
||||
var el = this.$anchor[0];
|
||||
var mousedown = document.createEvent('MouseEvents');
|
||||
mousedown.initMouseEvent('mousedown', true, true, window, 0, 0, 0, 0, 0, false, false, false, false, 0, el);
|
||||
el.dispatchEvent(mousedown);
|
||||
var mouseup = document.createEvent('MouseEvents');
|
||||
const Wysiwyg = odoo.__DEBUG__.services['web_editor.wysiwyg'];
|
||||
Wysiwyg.setRange(el.childNodes[2], 6, el.childNodes[2], 13);
|
||||
mouseup.initMouseEvent('mouseup', true, true, window, 0, 0, 0, 0, 0, false, false, false, false, 0, el);
|
||||
el.dispatchEvent(mouseup);
|
||||
@@ -158,19 +175,19 @@ tour.register('rte_translator', {
|
||||
extra_trigger: '#wrap.o_dirty p u',
|
||||
|
||||
}, {
|
||||
content : "click language dropdown",
|
||||
trigger : '.js_language_selector .dropdown-toggle',
|
||||
content: "click language dropdown (4)",
|
||||
trigger: '.js_language_selector .dropdown-toggle',
|
||||
extra_trigger: 'body:not(.o_wait_reload):not(:has(.note-editor)) a[data-action="edit"]',
|
||||
}, {
|
||||
content: "return in french",
|
||||
trigger : 'html[lang="en-US"] .js_language_selector .js_change_lang[data-url_code="fr_BE"]',
|
||||
content: "return in Parseltongue",
|
||||
trigger: 'html[lang="en-US"] .js_language_selector .js_change_lang[data-url_code="pa_GB"]',
|
||||
}, {
|
||||
content: "check bis: content is translated",
|
||||
trigger: '#wrap p font:first:contains(translated french text)',
|
||||
extra_trigger: 'html[lang*="fr"] body:not(:has(button[data-action=save]))',
|
||||
trigger: '#wrap p font:first:contains(translated Parseltongue text)',
|
||||
extra_trigger: 'html[lang*="pa-GB"] body:not(:has(button[data-action=save]))',
|
||||
}, {
|
||||
content: "check bis: placeholder translation",
|
||||
trigger: 'input[placeholder="test french placeholder"]',
|
||||
trigger: 'input[placeholder="test Parseltongue placeholder"]',
|
||||
}, {
|
||||
content: "Open customize menu",
|
||||
trigger: "#customize-menu > .dropdown-toggle",
|
||||
|
||||
@@ -103,9 +103,12 @@ class TestUiHtmlEditor(odoo.tests.HttpCase):
|
||||
@odoo.tests.tagged('-at_install', 'post_install')
|
||||
class TestUiTranslate(odoo.tests.HttpCase):
|
||||
def test_admin_tour_rte_translator(self):
|
||||
fr_BE = self.env.ref('base.lang_fr_BE')
|
||||
fr_BE.active = True
|
||||
self.env.ref('website.default_website').language_ids |= fr_BE
|
||||
self.env['res.lang'].create({
|
||||
'name': 'Parseltongue',
|
||||
'code': 'pa_GB',
|
||||
'iso_code': 'pa_GB',
|
||||
'url_code': 'pa_GB',
|
||||
})
|
||||
self.start_tour("/", 'rte_translator', login='admin', timeout=120)
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user