website/static/tests/tours/text_highlights.js

82 lines
3.1 KiB
JavaScript
Raw Normal View History

/** @odoo-module */
import wTourUtils from "@website/js/tours/tour_utils";
wTourUtils.registerWebsitePreviewTour("text_highlights", {
test: true,
url: "/",
edition: true,
}, () => [
wTourUtils.dragNDrop({
id: "s_cover",
name: "Cover",
}),
{
content: "Select the snippet title",
trigger: "iframe .s_cover h1",
run: "dblclick",
},
{
content: "Click on the 'Highlight Effects' button to activate the option",
trigger: "div.o_we_text_highlight",
},
{
content: "Check that the highlight was applied",
trigger: "iframe .s_cover h1 span.o_text_highlight > .o_text_highlight_item > svg:has(.o_text_highlight_path_underline)",
isCheck: true,
},
{
content: "Disable the highlight effect",
trigger: "div.o_we_text_highlight",
},
{
content: "Check that the highlight was disabled for the title",
trigger: "iframe .s_cover:not(:has(.o_text_highlight))",
isCheck: true,
},
{
// On muti-line text, the highlight effect is added on every detected
// line (using the `.o_text_highlight_item` span).
content: "Update and select the snippet paragraph content",
trigger: "iframe .s_cover p",
run() {
const iframeDOC = document.querySelector(".o_iframe").contentDocument;
const firstLine = document.createElement("strong");
firstLine.textContent = "Text content line A";
const secondLine = document.createElement("i");
secondLine.textContent = "Text content line B";
this.$anchor[0].replaceChildren(firstLine, document.createElement("br"), secondLine);
// Select the whole content.
const range = iframeDOC.createRange();
const selection = iframeDOC.getSelection();
range.selectNodeContents(this.$anchor[0]);
selection.removeAllRanges();
selection.addRange(range);
},
},
{
content: "Add the highlight effect on the muti-line text",
trigger: "div.o_we_text_highlight",
},
{
content: "Check if the text was correctly updated",
trigger: "iframe .s_cover span.o_text_highlight:has(.o_text_highlight_item:has(.o_text_highlight_path_underline) + br + .o_text_highlight_item:has(.o_text_highlight_path_underline))",
isCheck: true,
},
...wTourUtils.selectElementInWeSelectWidget("text_highlight_opt", "Jagged"),
{
content: "When changing the text highlight, we only replace the highlight SVG with a new drawn one",
trigger: "iframe .s_cover span.o_text_highlight:has(.o_text_highlight_item:has(.o_text_highlight_path_jagged) + br + .o_text_highlight_item:has(.o_text_highlight_path_jagged))",
isCheck: true,
},
{
content: "Disable the highlight effect",
trigger: "div.o_we_text_highlight",
},
{
content: "Check if the original DOM structure was restored",
trigger: "iframe .s_cover p:has(strong:contains(Text content line A) + br + i:contains(Text content line B))",
isCheck: true,
},
]);