Browser preview mixed content error fix

Strips protocol from preview URL

[MAILPOET-1080]
This commit is contained in:
mrcasual
2017-09-05 03:54:23 -04:00
committed by pavel-mailpoet
parent 657658ea2b
commit 59ae6619c0
2 changed files with 16 additions and 2 deletions

View File

@ -267,6 +267,8 @@ class Newsletters extends APIEndpoint {
$newsletter,
$subscriber
);
// strip protocol to avoid mix content error
$preview_url = preg_replace('{^https?:}i', '', $preview_url);
return $this->successResponse(
Newsletter::findOne($newsletter->id)->asArray(),

View File

@ -1,12 +1,13 @@
<?php
namespace MailPoet\Test\API\JSON\v1;
use Carbon\Carbon;
use Codeception\Util\Fixtures;
use Codeception\Util\Stub;
use Helper\WordPressHooks as WPHooksHelper;
use MailPoet\API\JSON\v1\Newsletters;
use MailPoet\API\JSON\Response as APIResponse;
use MailPoet\API\JSON\v1\Newsletters;
use MailPoet\Models\Newsletter;
use MailPoet\Models\NewsletterOption;
use MailPoet\Models\NewsletterOptionField;
@ -747,6 +748,17 @@ class NewslettersTest extends \MailPoetTest {
expect($response->errors[0]['message'])->equals('The email could not be sent: failed');
}
function testItReturnsBrowserPreviewUrlWithoutProtocol() {
$data = array(
'id' => $this->newsletter->id,
'body' => 'fake body'
);
$router = new Newsletters();
$response = $router->showPreview($data);
expect($response->meta['preview_url'])->notContains('http');
expect($response->meta['preview_url'])->regExp('!^\/\/!');
}
function testItGeneratesPreviewLinksWithNewsletterHashAndNoSubscriberData() {
$router = new Newsletters();
$response = $router->listing();