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);
if(is_wp_error($result)) return $result->get_error_message();
$response = WPFunctions::wpRemoteRetrieveBody($result);
$response = substr(trim($response), -strlen(Daemon::PING_SUCCESS_RESPONSE)) === Daemon::PING_SUCCESS_RESPONSE ?
Daemon::PING_SUCCESS_RESPONSE :
$response = substr(trim($response), -strlen(DaemonHttpRunner::PING_SUCCESS_RESPONSE)) === DaemonHttpRunner::PING_SUCCESS_RESPONSE ?
DaemonHttpRunner::PING_SUCCESS_RESPONSE :
$response;
return (!$validate_response) ?
$response :
$response === Daemon::PING_SUCCESS_RESPONSE;
$response === DaemonHttpRunner::PING_SUCCESS_RESPONSE;
}
static function accessDaemon($token) {

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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