Commit Graph

178 Commits

Author SHA1 Message Date
John Oleksowicz
115fe9c511 Make test more generic
We already have a specific test for the newsletter validator to check
for the missing unsubscribe link case. All we really care about for the
sending queue is that it rejects newsletters that are considered invalid
 for any reason.

MAILPOET-4236
2022-05-16 11:17:29 +02:00
John Oleksowicz
702d00c6e4 Refactor to use service override helper
MAILPOET-4236
2022-05-16 11:17:29 +02:00
John Oleksowicz
c98f3bba29 Refactor mock service creation to use new helper
MAILPOET-4236
2022-05-16 11:17:29 +02:00
John Oleksowicz
ab609c8867 Remove subscriber check from newsletter validator
Checking the subscriber limit has nothing to do with the newsletter
itself, so it makes more sense to continue to perform that check as
needed elsewhere in the codebase.

MAILPOET-4236
2022-05-16 11:17:29 +02:00
John Oleksowicz
8983d5e3f7 Move subscriber limit check into validator
[MAILPOET-4236]
2022-05-16 11:17:29 +02:00
John Oleksowicz
9bfe2b2ca1 Newsletter validation updates
- Rename validator to newsletterValidator for clarity
- Add validation for ALC content
- Refactor tests to use data factory for consistency and to avoid
validation issues
- Add separate tests for NewsletterValidator service
- Add test helper for retrieving service with private properties
overridden by name

[MAILPOET-4236]
2022-05-16 11:17:29 +02:00
John Oleksowicz
a5103f9596 Move reengagement validations into validator
[MAILPOET-4236]
2022-05-16 11:17:29 +02:00
John Oleksowicz
27a86d2ca6 Check validity on activating newsletters
This prevents users from activating automatic emails from listing pages
that are not valid.

This also adds more checks for the content of a newsletter, requiring
that a newsletter have at least one content block in order to be valid.
This change makes the server side validation check match what we're
checking in the editor in mailpoet/assets/js/src/newsletter_editor
/components/save.js and mailpoet/assets/js/src/newsletters/send.jsx

[MAILPOET-4236]
2022-05-16 11:17:29 +02:00
John Oleksowicz
fdaf22d46b Extract newsletter validation to a service
[MAILPOET-4236]
2022-05-16 11:17:29 +02:00
Rodrigo Primo
ed164ac397 Replace Paris code with Doctrine in NewslettersResponseBuilder.php
[MAILPOET-4138]
2022-05-09 13:04:56 +02:00
Rostislav Wolny
62c7022227 Improve message for confirmation emails when confirmation is disabled
[MAILPOET-4149]
2022-05-02 13:47:54 +02:00
David Remer
ca3f8bdc43 Make Scheduler non-static
[MAILPOET-4252]
2022-04-25 12:08:18 +02:00
Rostislav Wolny
6b758d90e6 Use MailerFactory in Mailer api
[MAILPOET-4115]
2022-04-11 16:54:38 +02:00
Rostislav Wolny
06fb13bd86 Use MailerFactory in sending queue API mailer config check
[MAILPOET-4115]
2022-04-11 16:54:38 +02:00
John Oleksowicz
fc1f3e6dc2 Inline generateToken for clarity
The only thing Security::generateToken was providing was a default value
 for the $action, which created a pattern of using the same $action
 everywhere, which may not be the best way to go.

 Since it was essentially a wrapper for WP's built-in nonce functions,
 it seemed clearer to use those functions directly to be more explicit
 about how we're handling tokens.

[MAILPOET-2030]
2022-04-11 10:29:35 +02:00
Rodrigo Primo
d07b45c83b Fix minor coding style error
[MAILPOET-4225]
2022-04-11 09:20:21 +02:00
Rodrigo Primo
e00d71b781 Remove WP < 4.5.0 compatibility code
This commit removes the method Posts::getTerms() as it existed to add a
compatibility layer for sites running WP < 4.5.0 and we don't support
this version anymore. The signature of the WP get_terms() function was
changed in version 4.5.0 and that is why this compatibility layer was
needed.

The integration test class for this method was also removed. The only
place where this method was used, AutomatedLatestContent::getTerms(),
now call WPFunctions->getTerms() directly. A very basic integration test
was added to cover the happy path of AutomatedLatestContent::getTerms().

[MAILPOET-4225]
2022-04-11 09:20:21 +02:00
Rostislav Wolny
d1b8ddee91 Refactor SendingTaskSubscriber API Test to doctrine
[MAILPOET-4006]
2022-04-04 15:33:52 +02:00
Rostislav Wolny
86164fd32e Use scheduled task subscriber listing repository in API endpoint
[MAILPOET-4006]
2022-04-04 15:33:52 +02:00
Rodrigo Primo
54ecb6065c Replace old ScheduledTask model with ScheduledTaskEntity in SubscribersFinder
[MAILPOET-3925]
2022-03-28 08:13:53 +02:00
David Remer
ac52f2af99 Introduce phpstan-type for MailerLog data
[MAILPOET-4122]
2022-03-21 10:17:37 +01:00
Jan Jakes
86d934ba36 Add hook for segment subscription
This will be used for a "SegmentSubscribed" trigger for automation
that can trigger welcome emails and other actions.

[MAILPOET-4136]
2022-03-14 09:36:21 +01:00
David Remer
d89edb27c0 Test if filter returns correct subscribers without segments 2022-02-09 16:31:51 +01:00
David Remer
57c842f37f Simplyfy error throwing 2022-02-09 15:06:58 +01:00
David Remer
0e48d3e2d1 Add integration test for before_subscribe action hook 2022-02-09 15:06:58 +01:00
John Oleksowicz
00f3e3787d New service for handling setting changes
[MAILPOET-4061]
2022-02-07 14:37:08 +01:00
John Oleksowicz
82a6fb8ac7 Refactor migrator to be a DI service
[MAILPOET-4061]
2022-02-07 14:37:08 +01:00
Jan Jakes
9f790efbf0 Move plugin files to a subfolder
[MAILPOET-3988]
2022-01-18 15:30:22 +01:00