diff --git a/lib/Config/Migrator.php b/lib/Config/Migrator.php index ebfa554301..747598d74b 100644 --- a/lib/Config/Migrator.php +++ b/lib/Config/Migrator.php @@ -59,7 +59,7 @@ class Migrator { 'id mediumint(9) NOT NULL AUTO_INCREMENT,', 'name varchar(90) NOT NULL,', 'type varchar(90) NOT NULL DEFAULT "default",', - 'description varchar(250) NOT NULL,', + 'description varchar(250) NOT NULL DEFAULT "",', 'created_at TIMESTAMP NOT NULL DEFAULT 0,', 'deleted_at TIMESTAMP NULL DEFAULT NULL,', 'updated_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,', @@ -124,8 +124,8 @@ class Migrator { $attributes = array( 'id mediumint(9) NOT NULL AUTO_INCREMENT,', 'wp_user_id bigint(20) NULL,', - 'first_name tinytext NOT NULL,', - 'last_name tinytext NOT NULL,', + 'first_name tinytext NOT NULL DEFAULT "",', + 'last_name tinytext NOT NULL DEFAULT "",', 'email varchar(150) NOT NULL,', 'status varchar(12) NOT NULL DEFAULT "unconfirmed",', 'created_at TIMESTAMP NOT NULL DEFAULT 0,', @@ -156,7 +156,7 @@ class Migrator { 'id mediumint(9) NOT NULL AUTO_INCREMENT,', 'subscriber_id mediumint(9) NOT NULL,', 'custom_field_id mediumint(9) NOT NULL,', - 'value varchar(255) NOT NULL,', + 'value varchar(255) NOT NULL DEFAULT "",', 'created_at TIMESTAMP NOT NULL DEFAULT 0,', 'updated_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,', 'PRIMARY KEY (id),', @@ -168,13 +168,13 @@ class Migrator { function newsletters() { $attributes = array( 'id mediumint(9) NOT NULL AUTO_INCREMENT,', - 'subject varchar(250) NOT NULL,', + 'subject varchar(250) NOT NULL DEFAULT "",', 'type varchar(20) NOT NULL DEFAULT "standard",', - 'sender_address varchar(150) NOT NULL,', - 'sender_name varchar(150) NOT NULL,', - 'reply_to_address varchar(150) NOT NULL,', - 'reply_to_name varchar(150) NOT NULL,', - 'preheader varchar(250) NOT NULL,', + 'sender_address varchar(150) NOT NULL DEFAULT "",', + 'sender_name varchar(150) NOT NULL DEFAULT "",', + 'reply_to_address varchar(150) NOT NULL DEFAULT "",', + 'reply_to_name varchar(150) NOT NULL DEFAULT "",', + 'preheader varchar(250) NOT NULL DEFAULT "",', 'body longtext,', 'created_at TIMESTAMP NOT NULL DEFAULT 0,', 'deleted_at TIMESTAMP NULL DEFAULT NULL,', @@ -217,7 +217,7 @@ class Migrator { 'id mediumint(9) NOT NULL AUTO_INCREMENT,', 'newsletter_id mediumint(9) NOT NULL,', 'option_field_id mediumint(9) NOT NULL,', - 'value varchar(255) NOT NULL,', + 'value varchar(255) NOT NULL DEFAULT "",', 'created_at TIMESTAMP NOT NULL DEFAULT 0,', 'updated_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,', 'PRIMARY KEY (id),', diff --git a/lib/Subscribers/ImportExport/Import/MailChimp.php b/lib/Subscribers/ImportExport/Import/MailChimp.php index 6192512525..11209c9059 100644 --- a/lib/Subscribers/ImportExport/Import/MailChimp.php +++ b/lib/Subscribers/ImportExport/Import/MailChimp.php @@ -121,7 +121,8 @@ class MailChimp { function getDataCenter($APIKey) { if (!preg_match('/-[a-zA-Z0-9]{3,}/', $APIKey)) return false; // double parantheses: http://phpsadness.com/sad/51 - return end((explode('-', $APIKey))); + $key_parts = explode('-', $APIKey); + return end($key_parts); } function getAPIKey($APIKey) { diff --git a/tests/unit/Models/NewsletterTest.php b/tests/unit/Models/NewsletterTest.php index 58be6e8aef..4ff9ab77a0 100644 --- a/tests/unit/Models/NewsletterTest.php +++ b/tests/unit/Models/NewsletterTest.php @@ -2,6 +2,7 @@ use MailPoet\Models\Newsletter; use MailPoet\Models\Segment; +use MailPoet\Models\Subscriber; use MailPoet\Models\SendingQueue; use MailPoet\Models\NewsletterSegment; use MailPoet\Models\NewsletterOptionField; @@ -111,10 +112,17 @@ class NewsletterTest extends MailPoetTest { $sending_queue = SendingQueue::create(); $sending_queue->newsletter_id = $this->newsletter->id; $sending_queue->save(); + + $subscriber = Subscriber::createOrUpdate(array( + 'email' => 'john.doe@mailpoet.com' + )); + $opens = StatisticsOpens::create(); + $opens->subscriber_id = $subscriber->id; $opens->newsletter_id = $this->newsletter->id; $opens->queue_id = $sending_queue->id; $opens->save(); + $newsletter->queue = $newsletter->getQueue()->asArray(); $statistics = $newsletter->getStatistics(); expect($statistics->opened)->equals(1); diff --git a/tests/unit/Router/NewslettersTest.php b/tests/unit/Router/NewslettersTest.php index c11545640b..5a0e6206c5 100644 --- a/tests/unit/Router/NewslettersTest.php +++ b/tests/unit/Router/NewslettersTest.php @@ -53,8 +53,10 @@ class NewslettersTest extends MailPoetTest { function testItCanSaveAnExistingNewsletter() { $router = new Newsletters(); - $newsletter_data = $this->newsletter->asArray(); - $newsletter_data['subject'] = 'My Updated Newsletter'; + $newsletter_data = array( + 'id' => $this->newsletter->id, + 'subject' => 'My Updated Newsletter' + ); $response = $router->save($newsletter_data); expect($response['result'])->true();