- Renames router URL query parameter and router class
- Updates other classes to use the new name - Updates unit tests
This commit is contained in:
@@ -1,7 +1,6 @@
|
|||||||
<?php
|
<?php
|
||||||
namespace MailPoet\Config;
|
namespace MailPoet\Config;
|
||||||
|
|
||||||
use MailPoet\Models;
|
|
||||||
use MailPoet\Cron\CronTrigger;
|
use MailPoet\Cron\CronTrigger;
|
||||||
use MailPoet\Router;
|
use MailPoet\Router;
|
||||||
use MailPoet\API;
|
use MailPoet\API;
|
||||||
@@ -122,7 +121,7 @@ class Initializer {
|
|||||||
|
|
||||||
try {
|
try {
|
||||||
$this->setupAPI();
|
$this->setupAPI();
|
||||||
$this->setupFrontRouter();
|
$this->setupRouter();
|
||||||
$this->setupPages();
|
$this->setupPages();
|
||||||
} catch(\Exception $e) {
|
} catch(\Exception $e) {
|
||||||
$this->handleFailedInitialization($e);
|
$this->handleFailedInitialization($e);
|
||||||
@@ -187,8 +186,8 @@ class Initializer {
|
|||||||
$api->init();
|
$api->init();
|
||||||
}
|
}
|
||||||
|
|
||||||
function setupFrontRouter() {
|
function setupRouter() {
|
||||||
$router = new Router\Front();
|
$router = new Router\Router();
|
||||||
$router->init();
|
$router->init();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -3,7 +3,7 @@ namespace MailPoet\Cron;
|
|||||||
|
|
||||||
use MailPoet\Models\Setting;
|
use MailPoet\Models\Setting;
|
||||||
use MailPoet\Router\Endpoints\Queue as QueueEndpoint;
|
use MailPoet\Router\Endpoints\Queue as QueueEndpoint;
|
||||||
use MailPoet\Router\Front as FrontRouter;
|
use MailPoet\Router\Router;
|
||||||
use MailPoet\Util\Security;
|
use MailPoet\Util\Security;
|
||||||
|
|
||||||
if(!defined('ABSPATH')) exit;
|
if(!defined('ABSPATH')) exit;
|
||||||
@@ -55,7 +55,7 @@ class CronHelper {
|
|||||||
|
|
||||||
static function accessDaemon($token, $timeout = self::DAEMON_REQUEST_TIMEOUT) {
|
static function accessDaemon($token, $timeout = self::DAEMON_REQUEST_TIMEOUT) {
|
||||||
$data = array('token' => $token);
|
$data = array('token' => $token);
|
||||||
$url = FrontRouter::buildRequest(
|
$url = Router::buildRequest(
|
||||||
QueueEndpoint::ENDPOINT,
|
QueueEndpoint::ENDPOINT,
|
||||||
QueueEndpoint::ACTION_RUN,
|
QueueEndpoint::ACTION_RUN,
|
||||||
$data
|
$data
|
||||||
|
@@ -2,7 +2,7 @@
|
|||||||
namespace MailPoet\Newsletter\Links;
|
namespace MailPoet\Newsletter\Links;
|
||||||
|
|
||||||
use MailPoet\Models\Subscriber;
|
use MailPoet\Models\Subscriber;
|
||||||
use MailPoet\Router\Front as FrontRouter;
|
use MailPoet\Router\Router;
|
||||||
use MailPoet\Router\Endpoints\Track as TrackEndpoint;
|
use MailPoet\Router\Endpoints\Track as TrackEndpoint;
|
||||||
use MailPoet\Models\NewsletterLink;
|
use MailPoet\Models\NewsletterLink;
|
||||||
use MailPoet\Newsletter\Shortcodes\Shortcodes;
|
use MailPoet\Newsletter\Shortcodes\Shortcodes;
|
||||||
@@ -123,7 +123,7 @@ class Links {
|
|||||||
$router_action = ($matches[2][$index] === self::DATA_TAG_CLICK) ?
|
$router_action = ($matches[2][$index] === self::DATA_TAG_CLICK) ?
|
||||||
TrackEndpoint::ACTION_CLICK :
|
TrackEndpoint::ACTION_CLICK :
|
||||||
TrackEndpoint::ACTION_OPEN;
|
TrackEndpoint::ACTION_OPEN;
|
||||||
$link = FrontRouter::buildRequest(
|
$link = Router::buildRequest(
|
||||||
TrackEndpoint::ENDPOINT,
|
TrackEndpoint::ENDPOINT,
|
||||||
$router_action,
|
$router_action,
|
||||||
$data
|
$data
|
||||||
|
@@ -1,9 +1,8 @@
|
|||||||
<?php
|
<?php
|
||||||
namespace MailPoet\Newsletter;
|
namespace MailPoet\Newsletter;
|
||||||
|
|
||||||
use MailPoet\Models\Newsletter;
|
|
||||||
use MailPoet\Models\SendingQueue;
|
use MailPoet\Models\SendingQueue;
|
||||||
use MailPoet\Router\Front as FrontRouter;
|
use MailPoet\Router\Router;
|
||||||
use MailPoet\Router\Endpoints\ViewInBrowser as ViewInBrowserEndpoint;
|
use MailPoet\Router\Endpoints\ViewInBrowser as ViewInBrowserEndpoint;
|
||||||
use MailPoet\Models\Subscriber;
|
use MailPoet\Models\Subscriber;
|
||||||
|
|
||||||
@@ -44,7 +43,7 @@ class Url {
|
|||||||
$queue,
|
$queue,
|
||||||
'preview' => $preview
|
'preview' => $preview
|
||||||
);
|
);
|
||||||
return FrontRouter::buildRequest(
|
return Router::buildRequest(
|
||||||
ViewInBrowserEndpoint::ENDPOINT,
|
ViewInBrowserEndpoint::ENDPOINT,
|
||||||
ViewInBrowserEndpoint::ACTION_VIEW,
|
ViewInBrowserEndpoint::ACTION_VIEW,
|
||||||
$data
|
$data
|
||||||
|
@@ -5,12 +5,12 @@ use MailPoet\Util\Helpers;
|
|||||||
|
|
||||||
if(!defined('ABSPATH')) exit;
|
if(!defined('ABSPATH')) exit;
|
||||||
|
|
||||||
class Front {
|
class Router {
|
||||||
public $api_request;
|
public $api_request;
|
||||||
public $endpoint;
|
public $endpoint;
|
||||||
public $action;
|
public $action;
|
||||||
public $data;
|
public $data;
|
||||||
const NAME = 'mailpoet_api';
|
const NAME = 'mailpoet_router';
|
||||||
const RESPONSE_ERROR = 404;
|
const RESPONSE_ERROR = 404;
|
||||||
|
|
||||||
function __construct($api_data = false) {
|
function __construct($api_data = false) {
|
||||||
@@ -35,7 +35,7 @@ class Front {
|
|||||||
}
|
}
|
||||||
$endpoint = new $endpoint_class($this->data);
|
$endpoint = new $endpoint_class($this->data);
|
||||||
if(!method_exists($endpoint, $this->action) || !in_array($this->action, $endpoint->allowed_actions)) {
|
if(!method_exists($endpoint, $this->action) || !in_array($this->action, $endpoint->allowed_actions)) {
|
||||||
return $this->terminateRequest(self::RESPONSE_ERROR, __('Invalid router action.'));
|
return $this->terminateRequest(self::RESPONSE_ERROR, __('Invalid router endpoint action.'));
|
||||||
}
|
}
|
||||||
return call_user_func(
|
return call_user_func(
|
||||||
array(
|
array(
|
@@ -1,7 +1,7 @@
|
|||||||
<?php
|
<?php
|
||||||
namespace MailPoet\Subscription;
|
namespace MailPoet\Subscription;
|
||||||
|
|
||||||
use MailPoet\Router\Front as FrontRouter;
|
use MailPoet\Router\Router;
|
||||||
use MailPoet\Router\Endpoints\Subscription as SubscriptionEndpoint;
|
use MailPoet\Router\Endpoints\Subscription as SubscriptionEndpoint;
|
||||||
use MailPoet\Models\Subscriber;
|
use MailPoet\Models\Subscriber;
|
||||||
use MailPoet\Models\Setting;
|
use MailPoet\Models\Setting;
|
||||||
@@ -45,10 +45,10 @@ class Url {
|
|||||||
}
|
}
|
||||||
|
|
||||||
$params = array(
|
$params = array(
|
||||||
FrontRouter::NAME,
|
Router::NAME,
|
||||||
'endpoint='.SubscriptionEndpoint::ENDPOINT,
|
'endpoint='.SubscriptionEndpoint::ENDPOINT,
|
||||||
'action='.$action,
|
'action='.$action,
|
||||||
'data='.FrontRouter::encodeRequestData($data)
|
'data='.Router::encodeRequestData($data)
|
||||||
);
|
);
|
||||||
|
|
||||||
// add parameters
|
// add parameters
|
||||||
|
@@ -6,6 +6,7 @@ use MailPoet\Models\SendingQueue;
|
|||||||
use MailPoet\Models\Setting;
|
use MailPoet\Models\Setting;
|
||||||
use MailPoet\Models\Subscriber;
|
use MailPoet\Models\Subscriber;
|
||||||
use MailPoet\Newsletter\ViewInBrowser;
|
use MailPoet\Newsletter\ViewInBrowser;
|
||||||
|
use MailPoet\Router\Router;
|
||||||
|
|
||||||
class ViewInBrowserTest extends MailPoetTest {
|
class ViewInBrowserTest extends MailPoetTest {
|
||||||
function __construct() {
|
function __construct() {
|
||||||
@@ -126,8 +127,8 @@ class ViewInBrowserTest extends MailPoetTest {
|
|||||||
$this->queue,
|
$this->queue,
|
||||||
$preview = true
|
$preview = true
|
||||||
);
|
);
|
||||||
expect($rendered_body)->regExp('/Hello, First/');
|
expect($rendered_body)->contains('Hello, First');
|
||||||
expect($rendered_body)->regExp('/mailpoet_api&endpoint=view_in_browser/');
|
expect($rendered_body)->contains(Router::NAME . '&endpoint=view_in_browser');
|
||||||
}
|
}
|
||||||
|
|
||||||
function testItProcessesLinksWhenTrackingIsEnabled() {
|
function testItProcessesLinksWhenTrackingIsEnabled() {
|
||||||
@@ -140,7 +141,7 @@ class ViewInBrowserTest extends MailPoetTest {
|
|||||||
$queue,
|
$queue,
|
||||||
$preview = true
|
$preview = true
|
||||||
);
|
);
|
||||||
expect($rendered_body)->regExp('/mailpoet_api&endpoint=track/');
|
expect($rendered_body)->contains(Router::NAME . '&endpoint=track');
|
||||||
}
|
}
|
||||||
|
|
||||||
function _after() {
|
function _after() {
|
||||||
|
@@ -1,30 +1,30 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
use Codeception\Util\Stub;
|
use Codeception\Util\Stub;
|
||||||
use MailPoet\Router\Front;
|
use MailPoet\Router\Router;
|
||||||
|
|
||||||
require_once('FrontTestMockEndpoint.php');
|
require_once('RouterTestMockEndpoint.php');
|
||||||
|
|
||||||
class FrontTest extends MailPoetTest {
|
class FrontRouterTest extends MailPoetTest {
|
||||||
public $router_data;
|
public $router_data;
|
||||||
public $router;
|
public $router;
|
||||||
|
|
||||||
function __construct() {
|
function __construct() {
|
||||||
$this->router_data = array(
|
$this->router_data = array(
|
||||||
'mailpoet_api' => '',
|
Router::NAME => '',
|
||||||
'endpoint' => 'mock_endpoint',
|
'endpoint' => 'mock_endpoint',
|
||||||
'action' => 'test',
|
'action' => 'test',
|
||||||
'data' => base64_encode(serialize(array('data' => 'dummy data')))
|
'data' => base64_encode(serialize(array('data' => 'dummy data')))
|
||||||
);
|
);
|
||||||
$this->router = new Front($this->router_data);
|
$this->router = new Router($this->router_data);
|
||||||
}
|
}
|
||||||
|
|
||||||
function testItCanGetAPIDataFromGetRequest() {
|
function testItCanGetAPIDataFromGetRequest() {
|
||||||
$data = array('data' => 'dummy data');
|
$data = array('data' => 'dummy data');
|
||||||
$url = 'http://example.com/?mailpoet_api&endpoint=view_in_browser&action=view&data='
|
$url = 'http://example.com/?' . Router::NAME . '&endpoint=view_in_browser&action=view&data='
|
||||||
. base64_encode(serialize($data));
|
. base64_encode(serialize($data));
|
||||||
parse_str(parse_url($url, PHP_URL_QUERY), $_GET);
|
parse_str(parse_url($url, PHP_URL_QUERY), $_GET);
|
||||||
$router = new Front();
|
$router = new Router();
|
||||||
expect($router->api_request)->equals(true);
|
expect($router->api_request)->equals(true);
|
||||||
expect($router->endpoint)->equals('viewInBrowser');
|
expect($router->endpoint)->equals('viewInBrowser');
|
||||||
expect($router->action)->equals('view');
|
expect($router->action)->equals('view');
|
||||||
@@ -33,9 +33,9 @@ class FrontTest extends MailPoetTest {
|
|||||||
|
|
||||||
function testItContinuesExecutionWhenAPIRequestNotDetected() {
|
function testItContinuesExecutionWhenAPIRequestNotDetected() {
|
||||||
$router_data = $this->router_data;
|
$router_data = $this->router_data;
|
||||||
unset($router_data['mailpoet_api']);
|
unset($router_data[Router::NAME]);
|
||||||
$router = Stub::construct(
|
$router = Stub::construct(
|
||||||
new Front(),
|
new Router(),
|
||||||
array($router_data)
|
array($router_data)
|
||||||
);
|
);
|
||||||
$result = $router->init();
|
$result = $router->init();
|
||||||
@@ -46,7 +46,7 @@ class FrontTest extends MailPoetTest {
|
|||||||
$router_data = $this->router_data;
|
$router_data = $this->router_data;
|
||||||
$router_data['endpoint'] = 'invalid_endpoint';
|
$router_data['endpoint'] = 'invalid_endpoint';
|
||||||
$router = Stub::construct(
|
$router = Stub::construct(
|
||||||
new Front(),
|
new Router(),
|
||||||
array($router_data),
|
array($router_data),
|
||||||
array(
|
array(
|
||||||
'terminateRequest' => function($code, $error) {
|
'terminateRequest' => function($code, $error) {
|
||||||
@@ -70,7 +70,7 @@ class FrontTest extends MailPoetTest {
|
|||||||
$router_data = $this->router_data;
|
$router_data = $this->router_data;
|
||||||
$router_data['action'] = 'invalid_action';
|
$router_data['action'] = 'invalid_action';
|
||||||
$router = Stub::construct(
|
$router = Stub::construct(
|
||||||
new Front(),
|
new Router(),
|
||||||
array($router_data),
|
array($router_data),
|
||||||
array(
|
array(
|
||||||
'terminateRequest' => function($code, $error) {
|
'terminateRequest' => function($code, $error) {
|
||||||
@@ -85,7 +85,7 @@ class FrontTest extends MailPoetTest {
|
|||||||
expect($result)->equals(
|
expect($result)->equals(
|
||||||
array(
|
array(
|
||||||
404,
|
404,
|
||||||
'Invalid router action.'
|
'Invalid router endpoint action.'
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
@@ -98,7 +98,7 @@ class FrontTest extends MailPoetTest {
|
|||||||
|
|
||||||
function testItCanEncodeRequestData() {
|
function testItCanEncodeRequestData() {
|
||||||
$data = array('data' => 'dummy data');
|
$data = array('data' => 'dummy data');
|
||||||
$result = Front::encodeRequestData($data);
|
$result = Router::encodeRequestData($data);
|
||||||
expect($result)->equals(
|
expect($result)->equals(
|
||||||
rtrim(base64_encode(serialize($data)), '=')
|
rtrim(base64_encode(serialize($data)), '=')
|
||||||
);
|
);
|
||||||
@@ -106,25 +106,25 @@ class FrontTest extends MailPoetTest {
|
|||||||
|
|
||||||
function testItReturnsEmptyArrayWhenRequestDataIsAString() {
|
function testItReturnsEmptyArrayWhenRequestDataIsAString() {
|
||||||
$encoded_data = 'test';
|
$encoded_data = 'test';
|
||||||
$result = Front::decodeRequestData($encoded_data);
|
$result = Router::decodeRequestData($encoded_data);
|
||||||
expect($result)->equals(array());
|
expect($result)->equals(array());
|
||||||
}
|
}
|
||||||
|
|
||||||
function testItCanDecodeRequestData() {
|
function testItCanDecodeRequestData() {
|
||||||
$data = array('data' => 'dummy data');
|
$data = array('data' => 'dummy data');
|
||||||
$encoded_data = rtrim(base64_encode(serialize($data)), '=');
|
$encoded_data = rtrim(base64_encode(serialize($data)), '=');
|
||||||
$result = Front::decodeRequestData($encoded_data);
|
$result = Router::decodeRequestData($encoded_data);
|
||||||
expect($result)->equals($data);
|
expect($result)->equals($data);
|
||||||
}
|
}
|
||||||
|
|
||||||
function testItCanBuildRequest() {
|
function testItCanBuildRequest() {
|
||||||
$data = array('data' => 'dummy data');
|
$data = array('data' => 'dummy data');
|
||||||
$encoded_data = rtrim(base64_encode(serialize($data)), '=');
|
$encoded_data = rtrim(base64_encode(serialize($data)), '=');
|
||||||
$result = Front::buildRequest(
|
$result = Router::buildRequest(
|
||||||
'mock_endpoint',
|
'mock_endpoint',
|
||||||
'test',
|
'test',
|
||||||
$data
|
$data
|
||||||
);
|
);
|
||||||
expect($result)->contains('?mailpoet_api&endpoint=mock_endpoint&action=test&data=' . $encoded_data);
|
expect($result)->contains(Router::NAME . '&endpoint=mock_endpoint&action=test&data=' . $encoded_data);
|
||||||
}
|
}
|
||||||
}
|
}
|
Reference in New Issue
Block a user