From 59d30cc1390d88c24c91e66d3b0d872485d75971 Mon Sep 17 00:00:00 2001 From: Vlad Date: Thu, 25 Aug 2016 09:49:32 -0400 Subject: [PATCH] - Renames router URL query parameter and router class - Updates other classes to use the new name - Updates unit tests --- lib/Config/Initializer.php | 7 ++-- lib/Cron/CronHelper.php | 4 +-- lib/Newsletter/Links/Links.php | 4 +-- lib/Newsletter/Url.php | 5 ++- lib/Router/{Front.php => Router.php} | 6 ++-- lib/Subscription/Url.php | 6 ++-- tests/unit/Newsletter/ViewInBrowserTest.php | 7 ++-- .../Router/{FrontTest.php => RouterTest.php} | 34 +++++++++---------- ...ndpoint.php => RouterTestMockEndpoint.php} | 0 9 files changed, 36 insertions(+), 37 deletions(-) rename lib/Router/{Front.php => Router.php} (96%) rename tests/unit/Router/{FrontTest.php => RouterTest.php} (78%) rename tests/unit/Router/{FrontTestMockEndpoint.php => RouterTestMockEndpoint.php} (100%) diff --git a/lib/Config/Initializer.php b/lib/Config/Initializer.php index 01b47b9ba9..f7328ed89b 100644 --- a/lib/Config/Initializer.php +++ b/lib/Config/Initializer.php @@ -1,7 +1,6 @@ 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(); } diff --git a/lib/Cron/CronHelper.php b/lib/Cron/CronHelper.php index 91a6566e82..5672a034f7 100644 --- a/lib/Cron/CronHelper.php +++ b/lib/Cron/CronHelper.php @@ -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 diff --git a/lib/Newsletter/Links/Links.php b/lib/Newsletter/Links/Links.php index eee19f7c8b..9f46656bde 100644 --- a/lib/Newsletter/Links/Links.php +++ b/lib/Newsletter/Links/Links.php @@ -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 diff --git a/lib/Newsletter/Url.php b/lib/Newsletter/Url.php index d31393f9ea..36529946c5 100644 --- a/lib/Newsletter/Url.php +++ b/lib/Newsletter/Url.php @@ -1,9 +1,8 @@ $preview ); - return FrontRouter::buildRequest( + return Router::buildRequest( ViewInBrowserEndpoint::ENDPOINT, ViewInBrowserEndpoint::ACTION_VIEW, $data diff --git a/lib/Router/Front.php b/lib/Router/Router.php similarity index 96% rename from lib/Router/Front.php rename to lib/Router/Router.php index 5c1eb7d596..9f7fd1be5b 100644 --- a/lib/Router/Front.php +++ b/lib/Router/Router.php @@ -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( diff --git a/lib/Subscription/Url.php b/lib/Subscription/Url.php index 79d65581bd..bedf284f47 100644 --- a/lib/Subscription/Url.php +++ b/lib/Subscription/Url.php @@ -1,7 +1,7 @@ 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() { diff --git a/tests/unit/Router/FrontTest.php b/tests/unit/Router/RouterTest.php similarity index 78% rename from tests/unit/Router/FrontTest.php rename to tests/unit/Router/RouterTest.php index a315a766e6..0e4af722c8 100644 --- a/tests/unit/Router/FrontTest.php +++ b/tests/unit/Router/RouterTest.php @@ -1,30 +1,30 @@ 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); } } \ No newline at end of file diff --git a/tests/unit/Router/FrontTestMockEndpoint.php b/tests/unit/Router/RouterTestMockEndpoint.php similarity index 100% rename from tests/unit/Router/FrontTestMockEndpoint.php rename to tests/unit/Router/RouterTestMockEndpoint.php