- Renames router URL query parameter and router class

- Updates other classes to use the new name
- Updates unit tests
This commit is contained in:
Vlad
2016-08-25 09:49:32 -04:00
parent 6ff3bbbb72
commit 59d30cc139
9 changed files with 36 additions and 37 deletions

View File

@ -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();
}

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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(

View File

@ -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

View File

@ -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() {

View File

@ -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);
}
}