diff --git a/lib/Models/Newsletter.php b/lib/Models/Newsletter.php index 6732d0e0d1..7dc5de9be8 100644 --- a/lib/Models/Newsletter.php +++ b/lib/Models/Newsletter.php @@ -248,12 +248,14 @@ class Newsletter extends Model { } static function filterBy($orm, $data = array()) { + $type = isset($data['tab']) ? $data['tab'] : null; + if(!empty($data['filter'])) { foreach($data['filter'] as $key => $value) { if($key === 'segment') { $segment = Segment::findOne($value); if($segment !== false) { - $orm = $segment->newsletters()->where('type', $data['tab']); + $orm = $segment->newsletters()->filter('filterType', $type); } } } diff --git a/lib/Router/Newsletters.php b/lib/Router/Newsletters.php index 7ba38422a6..6bf6fd86df 100644 --- a/lib/Router/Newsletters.php +++ b/lib/Router/Newsletters.php @@ -155,7 +155,7 @@ class Newsletters { )); if($duplicate !== false && $duplicate->getErrors() === false) { - $result = $newsletter->asArray(); + $result = $duplicate->asArray(); } } return $result; diff --git a/tests/unit/Mailer/MailerTest.php b/tests/unit/Mailer/MailerTest.php index 48eade5cf2..e729cbf4eb 100644 --- a/tests/unit/Mailer/MailerTest.php +++ b/tests/unit/Mailer/MailerTest.php @@ -1,5 +1,6 @@ fail('Mailer did not throw an exception'); diff --git a/tests/unit/Models/NewsletterTest.php b/tests/unit/Models/NewsletterTest.php index 690300f06d..7778b5598b 100644 --- a/tests/unit/Models/NewsletterTest.php +++ b/tests/unit/Models/NewsletterTest.php @@ -165,7 +165,9 @@ class NewsletterTest extends MailPoetTest { // filter by segment $newsletters = Newsletter::filter('filterBy', array( - 'segment' => $this->segment_1->id + 'filter' => array( + 'segment' => $this->segment_1->id + ) ))->findArray(); expect($newsletters)->count(1); @@ -175,28 +177,39 @@ class NewsletterTest extends MailPoetTest { NewsletterSegment::deleteMany(); $newsletters = Newsletter::filter('filterBy', array( - 'segment' => $this->segment_1->id - ))->findArray(); + 'filter' => array( + 'segment' => $this->segment_1->id + )))->findArray(); expect($newsletters)->isEmpty(); } function testItCanBeGrouped() { - $newsletters = Newsletter::filter('groupBy', 'all')->findArray(); + $newsletters = Newsletter::filter('groupBy', array( + 'group' => 'all' + ))->findArray(); expect($newsletters)->count(1); - $newsletters = Newsletter::filter('groupBy', 'trash')->findArray(); + $newsletters = Newsletter::filter('groupBy', array( + 'group' => 'trash' + ))->findArray(); expect($newsletters)->count(0); $this->newsletter->trash(); - $newsletters = Newsletter::filter('groupBy', 'trash')->findArray(); + $newsletters = Newsletter::filter('groupBy', array( + 'group' => 'trash' + ))->findArray(); expect($newsletters)->count(1); - $newsletters = Newsletter::filter('groupBy', 'all')->findArray(); + $newsletters = Newsletter::filter('groupBy', array( + 'group' => 'all' + ))->findArray(); expect($newsletters)->count(0); $this->newsletter->restore(); - $newsletters = Newsletter::filter('groupBy', 'all')->findArray(); + $newsletters = Newsletter::filter('groupBy', array( + 'group' => 'all' + ))->findArray(); expect($newsletters)->count(1); } diff --git a/tests/unit/Models/SubscriberTest.php b/tests/unit/Models/SubscriberTest.php index f53c7b496b..f65d91e44e 100644 --- a/tests/unit/Models/SubscriberTest.php +++ b/tests/unit/Models/SubscriberTest.php @@ -210,7 +210,8 @@ class SubscriberTest extends MailPoetTest { expect($subscriber->email)->equals($this->data['email']); expect($subscriber->first_name)->equals($this->data['first_name']); expect($subscriber->last_name)->equals($this->data['last_name']); - expect($subscriber->status)->equals('subscribed'); + // signup confirmation is enabled by default + expect($subscriber->status)->equals(Subscriber::STATUS_UNCONFIRMED); expect($subscriber->deleted_at)->equals(null); }