function SimplenewsSendTestCase::testSendNowNoCron in Simplenews 6.2
Same name and namespace in other branches
- 7.2 tests/simplenews.test \SimplenewsSendTestCase::testSendNowNoCron()
- 7 tests/simplenews.test \SimplenewsSendTestCase::testSendNowNoCron()
Send a newsletter using cron.
File
- tests/
simplenews.test, line 1010 - Simplenews test functions.
Class
- SimplenewsSendTestCase
- Test cases for creating and sending newsletters.
Code
function testSendNowNoCron() {
// Disable cron.
variable_set('simplenews_use_cron', FALSE);
// Verify that the newsletter settings are shown.
$this
->drupalGet('node/add/simplenews');
$this
->assertText(t('Newsletter'));
$edit = array(
'title' => $this
->randomName(),
'taxonomy[' . variable_get('simplenews_vid', '') . ']' => $this
->getRandomNewsletter(),
);
$this
->drupalPost(NULL, $edit, 'Save');
$this
->assertTrue(preg_match('|node/(\\d+)$|', $this
->getUrl(), $matches), 'Node created');
$node = node_load($matches[1], NULL, TRUE);
$this
->clickLink(t('Newsletter'));
$this
->assertText(t('Send one test newsletter to the test address'));
$this
->assertText(t('Send newsletter'));
// Verify state.
$this
->assertEqual(SIMPLENEWS_STATUS_SEND_NOT, $node->simplenews['s_status'], t('Newsletter not sent yet.'));
// Send now.
$this
->drupalPost(NULL, array(
'simplenews[send]' => SIMPLENEWS_COMMAND_SEND_NOW,
), t('Submit'));
// Verify state.
$node = node_load($node->nid, NULL, TRUE);
$this
->assertEqual(SIMPLENEWS_STATUS_SEND_READY, $node->simplenews['s_status'], t('Newsletter sending finished'));
// Verify mails.
$mails = $this
->drupalGetMails();
$this
->assertEqual(5, count($mails), t('All mails were sent.'));
foreach ($mails as $mail) {
$this
->assertEqual($mail['subject'], '[Drupal newsletter] ' . $edit['title'], t('Mail has correct subject'));
$this
->assertTrue(isset($this->subscribers[$mail['to']]), t('Found valid recipient'));
unset($this->subscribers[$mail['to']]);
}
$this
->assertEqual(0, count($this->subscribers), t('all subscribers have been received a mail'));
}