diff --git a/addons/website/static/src/js/tours/tour_utils.js b/addons/website/static/src/js/tours/tour_utils.js index 3f817b1f2b0..e200eee37e7 100644 --- a/addons/website/static/src/js/tours/tour_utils.js +++ b/addons/website/static/src/js/tours/tour_utils.js @@ -170,6 +170,7 @@ function clickOnSnippet(snippet, position = "bottom") { function clickOnSave(position = "bottom") { return { trigger: "button[data-action=save]", + in_modal: false, content: _t("Good job! It's time to Save your work."), position: position, }; diff --git a/addons/website_mass_mailing/static/tests/tours/newsletter_popup.js b/addons/website_mass_mailing/static/tests/tours/newsletter_popup.js new file mode 100644 index 00000000000..aeb732131be --- /dev/null +++ b/addons/website_mass_mailing/static/tests/tours/newsletter_popup.js @@ -0,0 +1,81 @@ +odoo.define("website_mass_mailing.tour.newsletter_popup_edition", function (require) { +"use strict"; + +const tour = require('web_tour.tour'); +const wTourUtils = require('website.tour_utils'); + +tour.register('newsletter_popup_edition', { + test: true, + url: '/?enable_editor=1', +}, [ + wTourUtils.dragNDrop({ + id: 's_newsletter_subscribe_popup', + name: 'Newsletter Popup', + }), + { + content: "Confirm newsletter choice", + trigger: '.modal-footer .btn-primary', + }, + { + content: "Check the modal is opened for edition", + trigger: '.o_newsletter_popup .modal:visible', + in_modal: false, + run: () => null, + }, + wTourUtils.clickOnSave(), + { + content: "Check the modal has been saved, closed", + trigger: '.o_newsletter_popup', + extra_trigger: 'body:not(.editor_enable)', + run: function (actions) { + const $modal = this.$anchor.find('.modal'); + if ($modal.is(':visible')) { + console.error('Modal is still opened...'); + } + }, + }, +]); +}); + +odoo.define("website_mass_mailing.tour.newsletter_popup_use", function (require) { +"use strict"; + +const tour = require('web_tour.tour'); + +tour.register('newsletter_popup_use', { + test: true, + url: '/', +}, [ + { + content: "Check the modal is not yet opened and force it opened", + trigger: '.o_newsletter_popup', + run: function (actions) { + const $modal = this.$anchor.find('.modal'); + if ($modal.is(':visible')) { + console.error('Modal is already opened...'); + } + $(document).trigger('mouseleave'); + }, + }, + { + content: "Check the modal is now opened and enter text in the subscribe input", + trigger: '.o_newsletter_popup .modal input', + in_modal: false, + run: 'text hello@world.com', + }, + { + content: "Subscribe", + trigger: '.modal-dialog .btn-primary', + }, + { + content: "Check the modal is now closed", + trigger: '.o_newsletter_popup', + run: function (actions) { + const $modal = this.$anchor.find('.modal'); + if ($modal.is(':visible')) { + console.error('Modal is still opened...'); + } + }, + } +]); +}); diff --git a/addons/website_mass_mailing/tests/__init__.py b/addons/website_mass_mailing/tests/__init__.py new file mode 100644 index 00000000000..ca21ae19714 --- /dev/null +++ b/addons/website_mass_mailing/tests/__init__.py @@ -0,0 +1,3 @@ +# -*- coding: utf-8 -*- +# Part of Odoo. See LICENSE file for full copyright and licensing details. +from . import test_snippets diff --git a/addons/website_mass_mailing/tests/test_snippets.py b/addons/website_mass_mailing/tests/test_snippets.py new file mode 100644 index 00000000000..3461c64eddc --- /dev/null +++ b/addons/website_mass_mailing/tests/test_snippets.py @@ -0,0 +1,16 @@ +# -*- coding: utf-8 -*- +# Part of Odoo. See LICENSE file for full copyright and licensing details. + +import odoo +import odoo.tests + + +@odoo.tests.common.tagged('post_install', '-at_install') +class TestSnippets(odoo.tests.HttpCase): + + def test_01_newsletter_popup(self): + self.start_tour("/?enable_editor=1", "newsletter_popup_edition", login='admin') + self.start_tour("/", "newsletter_popup_use", login=None) + mailing_list = self.env['mailing.list'].search([], limit=1) + emails = mailing_list.contact_ids.mapped('email') + self.assertIn("hello@world.com", emails) diff --git a/addons/website_mass_mailing/views/website_mass_mailing_templates.xml b/addons/website_mass_mailing/views/website_mass_mailing_templates.xml index 903d458ba05..54ff6afd2c2 100644 --- a/addons/website_mass_mailing/views/website_mass_mailing_templates.xml +++ b/addons/website_mass_mailing/views/website_mass_mailing_templates.xml @@ -18,6 +18,7 @@