diff --git a/lib/API/JSON/v1/Newsletters.php b/lib/API/JSON/v1/Newsletters.php index b9bf43c33f..c31835c932 100644 --- a/lib/API/JSON/v1/Newsletters.php +++ b/lib/API/JSON/v1/Newsletters.php @@ -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(), diff --git a/tests/unit/API/JSON/v1/NewslettersTest.php b/tests/unit/API/JSON/v1/NewslettersTest.php index 98b4a1eab2..70a65a3825 100644 --- a/tests/unit/API/JSON/v1/NewslettersTest.php +++ b/tests/unit/API/JSON/v1/NewslettersTest.php @@ -1,12 +1,13 @@ 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(); @@ -767,4 +779,4 @@ class NewslettersTest extends \MailPoetTest { \ORM::raw_execute('TRUNCATE ' . Segment::$_table); \ORM::raw_execute('TRUNCATE ' . SendingQueue::$_table); } -} +} \ No newline at end of file