diff --git a/src/SilverStripe/BehatExtension/Context/EmailContext.php b/src/SilverStripe/BehatExtension/Context/EmailContext.php index f8c5cb7..221c29a 100644 --- a/src/SilverStripe/BehatExtension/Context/EmailContext.php +++ b/src/SilverStripe/BehatExtension/Context/EmailContext.php @@ -88,7 +88,7 @@ class EmailContext extends BehatContext $from = ($direction == 'from') ? $email : null; $match = $this->mailer->findEmail($to, $from, $subject); $allMails = $this->mailer->findEmails($to, $from); - $allTitles = $allMails ? '"' . implode('","', array_map(function($email) {return $email['Subject'];}, $allMails)) . '"' : null; + $allTitles = $allMails ? '"' . implode('","', array_map(function($email) {return $email->Subject;}, $allMails)) . '"' : null; if(trim($negate)) { assertNull($match); } else { @@ -120,10 +120,10 @@ class EmailContext extends BehatContext } $email = $this->lastMatchedEmail; - if($email['Content']) { - assertContains($content, $email['Content']); + if($email->Content) { + assertContains($content, $email->Content); } else { - assertContains($content, $email['PlainContent']); + assertContains($content, $email->PlainContent); } } @@ -137,7 +137,7 @@ class EmailContext extends BehatContext $match = $this->mailer->findEmail($to, $from); assertNotNull($match); - $crawler = new Crawler($match['Content']); + $crawler = new Crawler($match->Content); $linkEl = $crawler->selectLink($linkSelector); assertNotNull($linkEl); $link = $linkEl->attr('href'); @@ -159,7 +159,7 @@ class EmailContext extends BehatContext } $match = $this->lastMatchedEmail; - $crawler = new Crawler($match['Content']); + $crawler = new Crawler($match->Content); $linkEl = $crawler->selectLink($linkSelector); assertNotNull($linkEl); $link = $linkEl->attr('href'); diff --git a/src/SilverStripe/BehatExtension/Context/Initializer/SilverStripeAwareInitializer.php b/src/SilverStripe/BehatExtension/Context/Initializer/SilverStripeAwareInitializer.php index cd5d1ae..7179557 100644 --- a/src/SilverStripe/BehatExtension/Context/Initializer/SilverStripeAwareInitializer.php +++ b/src/SilverStripe/BehatExtension/Context/Initializer/SilverStripeAwareInitializer.php @@ -67,7 +67,6 @@ class SilverStripeAwareInitializer implements InitializerInterface file_put_contents('php://stdout', "Creating test session environment" . PHP_EOL); $testEnv = \Injector::inst()->get('TestSessionEnvironment'); - $testEnv->startTestSession(array( 'createDatabase' => true )); diff --git a/src/SilverStripe/BehatExtension/Utility/TestMailer.php b/src/SilverStripe/BehatExtension/Utility/TestMailer.php index 4495e1c..aae7baa 100644 --- a/src/SilverStripe/BehatExtension/Utility/TestMailer.php +++ b/src/SilverStripe/BehatExtension/Utility/TestMailer.php @@ -64,7 +64,7 @@ class TestMailer extends \Mailer { public function clearEmails() { $state = $this->testSessionEnvironment->getState(); if(isset($state->emails)) unset($state->emails); - $this->testSessionEnvironment->persistState(); + $this->testSessionEnvironment->applyState($state); } /** @@ -103,10 +103,11 @@ class TestMailer extends \Mailer { $matched = true; foreach(array('To','From','Subject','Content') as $i => $field) { + if(!isset($email->$field)) continue; $value = (isset($args[$i])) ? $args[$i] : null; if($value) { - if($value[0] == '/') $matched = preg_match($value, $email[$field]); - else $matched = ($value == $email[$field]); + if($value[0] == '/') $matched = preg_match($value, $email->$field); + else $matched = ($value == $email->$field); if(!$matched) break; } } @@ -120,7 +121,7 @@ class TestMailer extends \Mailer { $state = $this->testSessionEnvironment->getState(); if(!isset($state->emails)) $state->emails = array(); $state->emails[] = array_filter($data); - $this->testSessionEnvironment->persistState(); + $this->testSessionEnvironment->applyState($state); } }