Rename Daemon to DaemonHttpRunner

[MAILPOET-1538]
This commit is contained in:
Pavel Dohnal
2018-10-03 10:28:26 +02:00
parent e8f0a0067d
commit f81323ad52
7 changed files with 63 additions and 57 deletions

View File

@@ -83,12 +83,12 @@ class CronHelper {
$result = self::queryCronUrl($url); $result = self::queryCronUrl($url);
if(is_wp_error($result)) return $result->get_error_message(); if(is_wp_error($result)) return $result->get_error_message();
$response = WPFunctions::wpRemoteRetrieveBody($result); $response = WPFunctions::wpRemoteRetrieveBody($result);
$response = substr(trim($response), -strlen(Daemon::PING_SUCCESS_RESPONSE)) === Daemon::PING_SUCCESS_RESPONSE ? $response = substr(trim($response), -strlen(DaemonHttpRunner::PING_SUCCESS_RESPONSE)) === DaemonHttpRunner::PING_SUCCESS_RESPONSE ?
Daemon::PING_SUCCESS_RESPONSE : DaemonHttpRunner::PING_SUCCESS_RESPONSE :
$response; $response;
return (!$validate_response) ? return (!$validate_response) ?
$response : $response :
$response === Daemon::PING_SUCCESS_RESPONSE; $response === DaemonHttpRunner::PING_SUCCESS_RESPONSE;
} }
static function accessDaemon($token) { static function accessDaemon($token) {

View File

@@ -11,7 +11,7 @@ use MailPoet\Cron\Workers\KeyCheck\SendingServiceKeyCheck as SendingServiceKeyCh
if(!defined('ABSPATH')) exit; if(!defined('ABSPATH')) exit;
require_once(ABSPATH . 'wp-includes/pluggable.php'); require_once(ABSPATH . 'wp-includes/pluggable.php');
class Daemon { class DaemonHttpRunner {
public $daemon; public $daemon;
public $request_data; public $request_data;
public $timer; public $timer;

View File

@@ -4,7 +4,7 @@ namespace MailPoet\Router\Endpoints;
use MailPoet\Config\AccessControl; use MailPoet\Config\AccessControl;
use MailPoet\Cron\CronHelper; use MailPoet\Cron\CronHelper;
use MailPoet\Cron\Daemon; use MailPoet\Cron\DaemonHttpRunner;
if(!defined('ABSPATH')) exit; if(!defined('ABSPATH')) exit;
@@ -28,7 +28,7 @@ class CronDaemon {
} }
function run() { function run() {
$queue = new Daemon($this->data); $queue = new DaemonHttpRunner($this->data);
$queue->run(); $queue->run();
} }
@@ -37,7 +37,7 @@ class CronDaemon {
} }
function pingResponse() { function pingResponse() {
$queue = new Daemon(); $queue = new DaemonHttpRunner();
$queue->ping(); $queue->ping();
} }
} }

View File

@@ -5,7 +5,7 @@ namespace MailPoet\Test\Cron;
use AspectMock\Test as Mock; use AspectMock\Test as Mock;
use Helper\WordPress as WPHelper; use Helper\WordPress as WPHelper;
use MailPoet\Cron\CronHelper; use MailPoet\Cron\CronHelper;
use MailPoet\Cron\Daemon; use MailPoet\Cron\DaemonHttpRunner;
use MailPoet\Models\Setting; use MailPoet\Models\Setting;
use MailPoet\WP\Hooks as WPHooks; use MailPoet\WP\Hooks as WPHooks;
@@ -294,7 +294,7 @@ class CronHelperTest extends \MailPoetTest {
function testItPingsDaemon() { function testItPingsDaemon() {
if(getenv('WP_TEST_ENABLE_NETWORK_TESTS') !== 'true') return; if(getenv('WP_TEST_ENABLE_NETWORK_TESTS') !== 'true') return;
// raw response is returned // raw response is returned
expect(CronHelper::pingDaemon())->equals(Daemon::PING_SUCCESS_RESPONSE); expect(CronHelper::pingDaemon())->equals(DaemonHttpRunner::PING_SUCCESS_RESPONSE);
// response is validated // response is validated
expect(CronHelper::pingDaemon(true))->true(); expect(CronHelper::pingDaemon(true))->true();
} }

View File

@@ -4,16 +4,16 @@ namespace MailPoet\Test\Cron;
use Codeception\Stub; use Codeception\Stub;
use Codeception\Stub\Expected; use Codeception\Stub\Expected;
use MailPoet\Cron\CronHelper; use MailPoet\Cron\CronHelper;
use MailPoet\Cron\Daemon; use MailPoet\Cron\DaemonHttpRunner;
use MailPoet\Models\Setting; use MailPoet\Models\Setting;
class DaemonTest extends \MailPoetTest { class DaemonHttpRunnerTest extends \MailPoetTest {
function testItConstructs() { function testItConstructs() {
Setting::setValue( Setting::setValue(
CronHelper::DAEMON_SETTING, CronHelper::DAEMON_SETTING,
'daemon object' 'daemon object'
); );
$daemon = new Daemon($request_data = 'request data'); $daemon = new DaemonHttpRunner($request_data = 'request data');
expect($daemon->daemon)->equals('daemon object'); expect($daemon->daemon)->equals('daemon object');
expect($daemon->request_data)->equals('request data'); expect($daemon->request_data)->equals('request data');
expect(strlen($daemon->timer))->greaterOrEquals(5); expect(strlen($daemon->timer))->greaterOrEquals(5);
@@ -22,7 +22,7 @@ class DaemonTest extends \MailPoetTest {
function testItDoesNotRunWithoutRequestData() { function testItDoesNotRunWithoutRequestData() {
$daemon = Stub::construct( $daemon = Stub::construct(
new Daemon(), new DaemonHttpRunner(),
array(), array(),
array( array(
'abortWithError' => function($message) { 'abortWithError' => function($message) {
@@ -36,7 +36,7 @@ class DaemonTest extends \MailPoetTest {
function testItDoesNotRunWhenDaemonIsNotFound() { function testItDoesNotRunWhenDaemonIsNotFound() {
$daemon = Stub::construct( $daemon = Stub::construct(
new Daemon(), new DaemonHttpRunner(),
array(), array(),
array( array(
'abortWithError' => function($message) { 'abortWithError' => function($message) {
@@ -50,7 +50,7 @@ class DaemonTest extends \MailPoetTest {
function testItDoesNotRunWhenThereIsInvalidOrMissingToken() { function testItDoesNotRunWhenThereIsInvalidOrMissingToken() {
$daemon = Stub::construct( $daemon = Stub::construct(
new Daemon(), new DaemonHttpRunner(),
array(), array(),
array( array(
'abortWithError' => function($message) { 'abortWithError' => function($message) {
@@ -66,7 +66,7 @@ class DaemonTest extends \MailPoetTest {
} }
function testItCanExecuteWorkers() { function testItCanExecuteWorkers() {
$daemon = Stub::make(new Daemon(true), array( $daemon = Stub::make(new DaemonHttpRunner(true), array(
'executeScheduleWorker' => Expected::exactly(1), 'executeScheduleWorker' => Expected::exactly(1),
'executeQueueWorker' => Expected::exactly(1), 'executeQueueWorker' => Expected::exactly(1),
'pauseExecution' => null, 'pauseExecution' => null,
@@ -81,7 +81,7 @@ class DaemonTest extends \MailPoetTest {
} }
function testItStoresErrorMessageAndContinuesExecutionWhenWorkersThrowException() { function testItStoresErrorMessageAndContinuesExecutionWhenWorkersThrowException() {
$daemon = Stub::make(new Daemon(true), array( $daemon = Stub::make(new DaemonHttpRunner(true), array(
'executeScheduleWorker' => function() { 'executeScheduleWorker' => function() {
throw new \Exception('Message'); throw new \Exception('Message');
}, },
@@ -102,7 +102,7 @@ class DaemonTest extends \MailPoetTest {
} }
function testItCanPauseExecution() { function testItCanPauseExecution() {
$daemon = Stub::make(new Daemon(true), array( $daemon = Stub::make(new DaemonHttpRunner(true), array(
'executeScheduleWorker' => null, 'executeScheduleWorker' => null,
'executeQueueWorker' => null, 'executeQueueWorker' => null,
'pauseExecution' => Expected::exactly(1, function($pause_delay) { 'pauseExecution' => Expected::exactly(1, function($pause_delay) {
@@ -121,7 +121,7 @@ class DaemonTest extends \MailPoetTest {
function testItTerminatesExecutionWhenDaemonIsDeleted() { function testItTerminatesExecutionWhenDaemonIsDeleted() {
$daemon = Stub::make(new Daemon(true), array( $daemon = Stub::make(new DaemonHttpRunner(true), array(
'executeScheduleWorker' => function() { 'executeScheduleWorker' => function() {
Setting::deleteValue(CronHelper::DAEMON_SETTING); Setting::deleteValue(CronHelper::DAEMON_SETTING);
}, },
@@ -138,7 +138,7 @@ class DaemonTest extends \MailPoetTest {
} }
function testItTerminatesExecutionWhenDaemonTokenChangesAndKeepsChangedToken() { function testItTerminatesExecutionWhenDaemonTokenChangesAndKeepsChangedToken() {
$daemon = Stub::make(new Daemon(true), array( $daemon = Stub::make(new DaemonHttpRunner(true), array(
'executeScheduleWorker' => function() { 'executeScheduleWorker' => function() {
Setting::setValue( Setting::setValue(
CronHelper::DAEMON_SETTING, CronHelper::DAEMON_SETTING,
@@ -160,7 +160,7 @@ class DaemonTest extends \MailPoetTest {
} }
function testItTerminatesExecutionWhenDaemonIsDeactivated() { function testItTerminatesExecutionWhenDaemonIsDeactivated() {
$daemon = Stub::make(new Daemon(true), [ $daemon = Stub::make(new DaemonHttpRunner(true), [
'executeScheduleWorker' => null, 'executeScheduleWorker' => null,
'executeQueueWorker' => null, 'executeQueueWorker' => null,
'pauseExecution' => null, 'pauseExecution' => null,
@@ -176,7 +176,7 @@ class DaemonTest extends \MailPoetTest {
} }
function testItUpdatesDaemonTokenDuringExecution() { function testItUpdatesDaemonTokenDuringExecution() {
$daemon = Stub::make(new Daemon(true), array( $daemon = Stub::make(new DaemonHttpRunner(true), array(
'executeScheduleWorker' => null, 'executeScheduleWorker' => null,
'executeQueueWorker' => null, 'executeQueueWorker' => null,
'pauseExecution' => null, 'pauseExecution' => null,
@@ -193,7 +193,7 @@ class DaemonTest extends \MailPoetTest {
} }
function testItUpdatesTimestampsDuringExecution() { function testItUpdatesTimestampsDuringExecution() {
$daemon = Stub::make(new Daemon(true), array( $daemon = Stub::make(new DaemonHttpRunner(true), array(
'executeScheduleWorker' => function() { 'executeScheduleWorker' => function() {
sleep(2); sleep(2);
}, },
@@ -218,7 +218,7 @@ class DaemonTest extends \MailPoetTest {
function testItCanRun() { function testItCanRun() {
ignore_user_abort(0); ignore_user_abort(0);
expect(ignore_user_abort())->equals(0); expect(ignore_user_abort())->equals(0);
$daemon = Stub::make(new Daemon(true), array( $daemon = Stub::make(new DaemonHttpRunner(true), array(
'pauseExecution' => null, 'pauseExecution' => null,
// workers should be executed // workers should be executed
'executeScheduleWorker' => Expected::exactly(1), 'executeScheduleWorker' => Expected::exactly(1),
@@ -236,7 +236,7 @@ class DaemonTest extends \MailPoetTest {
} }
function testItRespondsToPingRequest() { function testItRespondsToPingRequest() {
$daemon = Stub::make(new Daemon(true), array( $daemon = Stub::make(new DaemonHttpRunner(true), array(
'terminateRequest' => Expected::exactly(1, function($message) { 'terminateRequest' => Expected::exactly(1, function($message) {
expect($message)->equals('pong'); expect($message)->equals('pong');
}) })

View File

@@ -17,14 +17,18 @@ use MailPoet\Models\SubscriberCustomField;
use MailPoet\Models\SubscriberSegment; use MailPoet\Models\SubscriberSegment;
class SubscriberTest extends \MailPoetTest { class SubscriberTest extends \MailPoetTest {
/** @var array */
private $test_data;
function _before() { function _before() {
$this->data = array( $this->test_data = array(
'first_name' => 'John', 'first_name' => 'John',
'last_name' => 'Mailer', 'last_name' => 'Mailer',
'email' => 'john@mailpoet.com' 'email' => 'john@mailpoet.com'
); );
$this->subscriber = Subscriber::create(); $this->subscriber = Subscriber::create();
$this->subscriber->hydrate($this->data); $this->subscriber->hydrate($this->test_data);
$this->saved = $this->subscriber->save(); $this->saved = $this->subscriber->save();
} }
@@ -35,26 +39,26 @@ class SubscriberTest extends \MailPoetTest {
function testItHasFirstName() { function testItHasFirstName() {
$subscriber = $subscriber =
Subscriber::where('email', $this->data['email']) Subscriber::where('email', $this->test_data['email'])
->findOne(); ->findOne();
expect($subscriber->first_name) expect($subscriber->first_name)
->equals($this->data['first_name']); ->equals($this->test_data['first_name']);
} }
function testItHasLastName() { function testItHasLastName() {
$subscriber = $subscriber =
Subscriber::where('email', $this->data['email']) Subscriber::where('email', $this->test_data['email'])
->findOne(); ->findOne();
expect($subscriber->last_name) expect($subscriber->last_name)
->equals($this->data['last_name']); ->equals($this->test_data['last_name']);
} }
function testItHasEmail() { function testItHasEmail() {
$subscriber = $subscriber =
Subscriber::where('email', $this->data['email']) Subscriber::where('email', $this->test_data['email'])
->findOne(); ->findOne();
expect($subscriber->email) expect($subscriber->email)
->equals($this->data['email']); ->equals($this->test_data['email']);
} }
function testItShouldSetErrors() { function testItShouldSetErrors() {
@@ -92,26 +96,26 @@ class SubscriberTest extends \MailPoetTest {
function emailMustBeUnique() { function emailMustBeUnique() {
$conflict_subscriber = Subscriber::create(); $conflict_subscriber = Subscriber::create();
$conflict_subscriber->hydrate($this->data); $conflict_subscriber->hydrate($this->test_data);
$saved = $conflict_subscriber->save(); $saved = $conflict_subscriber->save();
expect($saved)->notEquals(true); expect($saved)->notEquals(true);
} }
function testItHasStatusDefaultStatusOfUnconfirmed() { function testItHasStatusDefaultStatusOfUnconfirmed() {
$subscriber = $subscriber =
Subscriber::where('email', $this->data['email']) Subscriber::where('email', $this->test_data['email'])
->findOne(); ->findOne();
expect($subscriber->status)->equals(Subscriber::STATUS_UNCONFIRMED); expect($subscriber->status)->equals(Subscriber::STATUS_UNCONFIRMED);
} }
function testItCanChangeStatus() { function testItCanChangeStatus() {
$subscriber = Subscriber::where('email', $this->data['email'])->findOne(); $subscriber = Subscriber::where('email', $this->test_data['email'])->findOne();
$subscriber->status = Subscriber::STATUS_SUBSCRIBED; $subscriber->status = Subscriber::STATUS_SUBSCRIBED;
$subscriber->save(); $subscriber->save();
expect($subscriber->id() > 0)->true(); expect($subscriber->id() > 0)->true();
expect($subscriber->getErrors())->false(); expect($subscriber->getErrors())->false();
$subscriber_updated = Subscriber::where('email', $this->data['email']) $subscriber_updated = Subscriber::where('email', $this->test_data['email'])
->findOne(); ->findOne();
expect($subscriber_updated->status)->equals(Subscriber::STATUS_SUBSCRIBED); expect($subscriber_updated->status)->equals(Subscriber::STATUS_SUBSCRIBED);
} }
@@ -119,13 +123,13 @@ class SubscriberTest extends \MailPoetTest {
function testItHasSearchFilter() { function testItHasSearchFilter() {
$subscriber = Subscriber::filter('search', 'john') $subscriber = Subscriber::filter('search', 'john')
->findOne(); ->findOne();
expect($subscriber->first_name)->equals($this->data['first_name']); expect($subscriber->first_name)->equals($this->test_data['first_name']);
$subscriber = Subscriber::filter('search', 'mailer') $subscriber = Subscriber::filter('search', 'mailer')
->findOne(); ->findOne();
expect($subscriber->last_name)->equals($this->data['last_name']); expect($subscriber->last_name)->equals($this->test_data['last_name']);
$subscriber = Subscriber::filter('search', 'mailpoet') $subscriber = Subscriber::filter('search', 'mailpoet')
->findOne(); ->findOne();
expect($subscriber->email)->equals($this->data['email']); expect($subscriber->email)->equals($this->test_data['email']);
} }
function testItHasGroupFilter() { function testItHasGroupFilter() {
@@ -425,15 +429,15 @@ class SubscriberTest extends \MailPoetTest {
$segment2->save(); $segment2->save();
$subscriber = Subscriber::subscribe( $subscriber = Subscriber::subscribe(
$this->data, $this->test_data,
array($segment->id(), $segment2->id()) array($segment->id(), $segment2->id())
); );
expect($subscriber->id() > 0)->equals(true); expect($subscriber->id() > 0)->equals(true);
expect($subscriber->segments()->count())->equals(2); expect($subscriber->segments()->count())->equals(2);
expect($subscriber->email)->equals($this->data['email']); expect($subscriber->email)->equals($this->test_data['email']);
expect($subscriber->first_name)->equals($this->data['first_name']); expect($subscriber->first_name)->equals($this->test_data['first_name']);
expect($subscriber->last_name)->equals($this->data['last_name']); expect($subscriber->last_name)->equals($this->test_data['last_name']);
// signup confirmation is enabled by default // signup confirmation is enabled by default
expect($subscriber->status)->equals(Subscriber::STATUS_UNCONFIRMED); expect($subscriber->status)->equals(Subscriber::STATUS_UNCONFIRMED);
expect($subscriber->deleted_at)->equals(null); expect($subscriber->deleted_at)->equals(null);
@@ -477,7 +481,7 @@ class SubscriberTest extends \MailPoetTest {
$signup_confirmation_enabled = (bool)Setting::setValue( $signup_confirmation_enabled = (bool)Setting::setValue(
'signup_confirmation.enabled', false 'signup_confirmation.enabled', false
); );
$subscriber = Subscriber::subscribe($this->data, array($segment->id())); $subscriber = Subscriber::subscribe($this->test_data, array($segment->id()));
expect($subscriber->id() > 0)->equals(true); expect($subscriber->id() > 0)->equals(true);
expect($subscriber->segments()->count())->equals(1); expect($subscriber->segments()->count())->equals(1);
$scheduled_notification = SendingQueue::findTaskByNewsletterId($newsletter->id) $scheduled_notification = SendingQueue::findTaskByNewsletterId($newsletter->id)
@@ -524,7 +528,7 @@ class SubscriberTest extends \MailPoetTest {
$signup_confirmation_enabled = (bool)Setting::setValue( $signup_confirmation_enabled = (bool)Setting::setValue(
'signup_confirmation.enabled', true 'signup_confirmation.enabled', true
); );
$subscriber = Subscriber::subscribe($this->data, array($segment->id())); $subscriber = Subscriber::subscribe($this->test_data, array($segment->id()));
expect($subscriber->id() > 0)->equals(true); expect($subscriber->id() > 0)->equals(true);
expect($subscriber->segments()->count())->equals(1); expect($subscriber->segments()->count())->equals(1);
$scheduled_notification = SendingQueue::findTaskByNewsletterId($newsletter->id) $scheduled_notification = SendingQueue::findTaskByNewsletterId($newsletter->id)
@@ -687,7 +691,7 @@ class SubscriberTest extends \MailPoetTest {
function testItCanBeUpdatedByEmail() { function testItCanBeUpdatedByEmail() {
$subscriber_updated = Subscriber::createOrUpdate(array( $subscriber_updated = Subscriber::createOrUpdate(array(
'email' => $this->data['email'], 'email' => $this->test_data['email'],
'first_name' => 'JoJo', 'first_name' => 'JoJo',
'last_name' => 'DoDo' 'last_name' => 'DoDo'
)); ));
@@ -695,7 +699,7 @@ class SubscriberTest extends \MailPoetTest {
expect($this->subscriber->id())->equals($subscriber_updated->id()); expect($this->subscriber->id())->equals($subscriber_updated->id());
$subscriber = Subscriber::findOne($this->subscriber->id()); $subscriber = Subscriber::findOne($this->subscriber->id());
expect($subscriber->email)->equals($this->data['email']); expect($subscriber->email)->equals($this->test_data['email']);
expect($subscriber->first_name)->equals('JoJo'); expect($subscriber->first_name)->equals('JoJo');
expect($subscriber->last_name)->equals('DoDo'); expect($subscriber->last_name)->equals('DoDo');
} }
@@ -877,20 +881,20 @@ class SubscriberTest extends \MailPoetTest {
} }
function testItGeneratesSubscriberToken() { function testItGeneratesSubscriberToken() {
$token = Subscriber::generateToken($this->data['email']); $token = Subscriber::generateToken($this->test_data['email']);
expect(strlen($token))->equals(Subscriber::SUBSCRIBER_TOKEN_LENGTH); expect(strlen($token))->equals(Subscriber::SUBSCRIBER_TOKEN_LENGTH);
} }
function testItVerifiesSubscriberToken() { function testItVerifiesSubscriberToken() {
$token = Subscriber::generateToken($this->data['email']); $token = Subscriber::generateToken($this->test_data['email']);
expect(Subscriber::verifyToken($this->data['email'], $token))->true(); expect(Subscriber::verifyToken($this->test_data['email'], $token))->true();
expect(Subscriber::verifyToken('fake@email.com', $token))->false(); expect(Subscriber::verifyToken('fake@email.com', $token))->false();
} }
function testItVerifiesTokensOfDifferentLengths() { function testItVerifiesTokensOfDifferentLengths() {
$token = md5(AUTH_KEY . $this->data['email']); $token = md5(AUTH_KEY . $this->test_data['email']);
expect(strlen($token))->notEquals(Subscriber::SUBSCRIBER_TOKEN_LENGTH); expect(strlen($token))->notEquals(Subscriber::SUBSCRIBER_TOKEN_LENGTH);
expect(Subscriber::verifyToken($this->data['email'], $token))->true(); expect(Subscriber::verifyToken($this->test_data['email'], $token))->true();
} }
function testItBulkDeletesSubscribers() { function testItBulkDeletesSubscribers() {
@@ -1079,15 +1083,15 @@ class SubscriberTest extends \MailPoetTest {
} }
function testItDoesNotSetDefaultValuesForExistingSubscribers() { function testItDoesNotSetDefaultValuesForExistingSubscribers() {
$existing_subscriber_data = $this->data; $existing_subscriber_data = $this->test_data;
$result = Subscriber::createOrUpdate( $result = Subscriber::createOrUpdate(
array( array(
'email' => $existing_subscriber_data['email'] 'email' => $existing_subscriber_data['email']
) )
); );
expect($result->getErrors())->false(); expect($result->getErrors())->false();
expect($result->first_name)->equals($this->data['first_name']); expect($result->first_name)->equals($this->test_data['first_name']);
expect($result->last_name)->equals($this->data['last_name']); expect($result->last_name)->equals($this->test_data['last_name']);
} }
function testItExtractsCustomFieldsFromObject() { function testItExtractsCustomFieldsFromObject() {

View File

@@ -7,6 +7,7 @@ use MailPoet\Models\Subscriber;
use MailPoet\Util\License\Features\Subscribers as SubscribersFeature; use MailPoet\Util\License\Features\Subscribers as SubscribersFeature;
class SubscribersTest extends \MailPoetTest { class SubscribersTest extends \MailPoetTest {
function testChecksIfSubscribersWithinLimitWhenPremiumLicenseDoesNotExist() { function testChecksIfSubscribersWithinLimitWhenPremiumLicenseDoesNotExist() {
// if premium unlocker plugin is enabled, skip this check // if premium unlocker plugin is enabled, skip this check
if(defined('MAILPOET_PREMIUM_LICENSE')) return; if(defined('MAILPOET_PREMIUM_LICENSE')) return;
@@ -34,4 +35,5 @@ class SubscribersTest extends \MailPoetTest {
function _after() { function _after() {
\ORM::raw_execute('TRUNCATE ' . Subscriber::$_table); \ORM::raw_execute('TRUNCATE ' . Subscriber::$_table);
} }
}
}