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