Odoo18-Base/addons/website/static/tests/tours/page_manager.js
2025-01-06 10:57:38 +07:00

263 lines
7.7 KiB
JavaScript

/** @odoo-module **/
import { testSwitchWebsite, registerWebsitePreviewTour } from '@website/js/tours/tour_utils';
import { registry } from "@web/core/registry";
// TODO: This part should be moved in a QUnit test
const checkKanbanGroupBy = [
{
content: "Click on Kanban View",
trigger: ".o_cp_switch_buttons .o_kanban",
run: "click",
},
{
trigger: ".o_kanban_renderer",
},
{
content: "Open search panel menu",
trigger: ".o_control_panel .o_searchview_dropdown_toggler",
run: "click",
},
{
content: "Select 'Active' in the select of Add Custom Group",
trigger: "select.o_add_custom_group_menu",
run: "select active",
},
{
trigger: ".o_kanban_renderer .o_kanban_header",
},
{
content: "Click on List View",
trigger: ".o_cp_switch_buttons .o_list",
run: "click",
},
{
trigger: ".o_list_renderer",
},
{
content: "Remove applied Group By",
trigger: ".o_cp_searchview .o_facet_remove",
run: "click",
},
];
const checkWebsiteFilter = [{
content: "Click on the search options",
trigger: ".o_searchview_dropdown_toggler",
run: "click",
}, {
content: "Select Test Website",
trigger: ".o_dropdown_container.o_website_menu > .dropdown-item:contains('Test Website')",
run: "click",
}, {
content: "Check that the homepage is now the one of Test Website",
trigger: ".o_list_table .o_data_row .o_data_cell[name=name]:contains('Home') " +
"~ .o_data_cell[name=website_id]:contains('Test Website')",
}, {
content: "Check that the search options are still open",
trigger: ".o_search_bar_menu",
}, {
content: "Go back to My Website",
trigger: ".o_dropdown_container.o_website_menu > .dropdown-item:contains('My Website')",
run: "click",
}, {
content: "Check that the homepage is now the one of My Website",
trigger: ".o_list_table .o_data_row .o_data_cell[name=name]:contains('Home') " +
"~ .o_data_cell[name=website_id]:contains('My Website'):not(:contains('2'))",
}];
const deleteSelectedPage = [
{
content: "Click on Action",
trigger: '.o_cp_action_menus button',
run: "click",
},
{
content: "Click on Delete",
trigger: '.o-dropdown--menu span:contains("Delete")',
run: "click",
},
{
content: "Click on I am sure about this",
trigger: 'main.modal-body input[type="checkbox"]',
// The loading of the dependencies can take a while and
// sometimes reach the default 10s timeout
timeout: 20000,
run: "click",
},
{
content: "Click on OK",
trigger: '.modal-content footer button.btn-primary:not([disabled])',
run: "click",
}
];
const homePage = 'tr:contains("Home")';
const refreshPage = [
{
trigger: "body",
run() {window.location.reload();},
},
];
const duplicateSinglePage = [
{
content: "Click on checkbox",
trigger:
'.o_list_renderer tr:contains("/test-duplicate") td.o_list_record_selector input[type="checkbox"]',
run: "click",
},
{
content: "Click on Action button",
trigger: ".o_cp_action_menus button",
run: "click",
},
{
content: "Click on Duplicate",
trigger: '.o-dropdown--menu span:contains("Duplicate")',
run: "click",
},
{
content: "Put your website name as 'Test Duplicate' here",
trigger: 'main.modal-body input[type="text"]',
run: "edit Test Duplicate",
},
{
content: "Click on OK",
trigger: ".modal-footer button.btn-primary",
run: "click",
},
...refreshPage,
];
const duplicateMultiplePage = [
{
content: "Click on checkbox",
trigger:
'.o_list_renderer tr:contains("/test-duplicate") td.o_list_record_selector input[type="checkbox"]',
run: "click",
},
{
content: "Click on checkbox",
trigger:
'.o_list_renderer tr:contains("/test-duplicate-1") td.o_list_record_selector input[type="checkbox"]',
run: "click",
},
{
content: "Click on Action button",
trigger: ".o_cp_action_menus button",
run: "click",
},
{
content: "Click on Duplicate",
trigger: '.o-dropdown--menu span:contains("Duplicate")',
run: "click",
},
{
content: "Put your website name as 'Test Duplicate' here",
trigger: 'main.modal-body input[type="text"]',
run: "edit Test Duplicate",
},
{
content: "Click on OK",
trigger: ".modal-footer button.btn-primary",
run: "click",
},
...refreshPage,
];
registerWebsitePreviewTour('website_page_manager', {
url: '/',
}, () => [
{
content: "Click on Site",
trigger: 'button.dropdown-toggle[data-menu-xmlid="website.menu_site"]',
run: "click",
},
{
content: "Click on Pages",
trigger: 'a.dropdown-item[data-menu-xmlid="website.menu_website_pages_list"]',
run: "click",
},
...checkKanbanGroupBy,
...checkWebsiteFilter,
{
content: "Click on Home Page",
trigger: `.o_list_renderer ${homePage} td.o_list_record_selector input[type="checkbox"]`,
run: "click",
},
...deleteSelectedPage,
{
content: "Check that the page has been removed",
trigger: `.o_list_renderer:not(:has(${homePage}))`,
},
{
content: "Click on All Pages",
trigger: '.o_list_renderer thead input[type="checkbox"]',
run: "click",
},
...deleteSelectedPage,
{
content: "Check that all pages have been removed",
trigger: '.o_list_renderer tbody:not(:has([data-id]))',
},
]);
registerWebsitePreviewTour('website_page_manager_session_forced', {
url: '/',
}, () => [...testSwitchWebsite('Test Website'), {
content: "Click on Site",
trigger: 'button.dropdown-toggle[data-menu-xmlid="website.menu_site"]',
run:" click",
}, {
content: "Click on Pages",
trigger: 'a.dropdown-item[data-menu-xmlid="website.menu_website_pages_list"]',
run:" click",
}, {
content: "Check that the homepage is the one of Test Website",
trigger: ".o_list_table .o_data_row .o_data_cell[name=name]:contains('Home') " +
"~ .o_data_cell[name=website_id]:contains('Test Website')",
}, {
content: "Click on the search options",
trigger: ".o_searchview_dropdown_toggler",
run:" click",
}, {
content: "Check that the selected website is Test Website",
trigger: ".o_dropdown_container.o_website_menu > .dropdown-item:contains('Test Website')",
}]);
registry.category("web_tour.tours").add('website_page_manager_direct_access', {
url: '/odoo/action-website.action_website_pages_list',
steps: () => [{
content: "Check that the homepage is the one of Test Website",
trigger: ".o_list_table .o_data_row .o_data_cell[name=name]:contains('Home') " +
"~ .o_data_cell[name=website_id]:contains('Test Website')",
}, {
content: "Click on the search options",
trigger: ".o_searchview_dropdown_toggler",
run:" click",
}, {
content: "Check that the selected website is Test Website",
trigger: ".o_dropdown_container.o_website_menu > .dropdown-item:contains('Test Website')",
}]});
registerWebsitePreviewTour(
"website_clone_pages",
{
url: "/",
},
() => [
{
content: "Click on Site",
trigger: 'button.dropdown-toggle[data-menu-xmlid="website.menu_site"]',
run: "click",
},
{
content: "Click on Pages",
trigger: 'a.dropdown-item[data-menu-xmlid="website.menu_website_pages_list"]',
run: "click",
},
...duplicateSinglePage,
...duplicateMultiplePage,
]
);