CakePHP
  • Documentation
    • Book
    • API
    • Videos
    • Logos & Trademarks
  • Business Solutions
  • Swag
  • Road Trip
  • Team
  • Community
    • Community
    • Team
    • Issues (Github)
    • YouTube Channel
    • Get Involved
    • Bakery
    • Featured Resources
    • Newsletter
    • Certification
    • My CakePHP
    • CakeFest
    • Facebook
    • Twitter
    • Help & Support
    • Forum
    • Stack Overflow
    • IRC
    • Slack
    • Paid Support
CakePHP

C CakePHP 3.8 Red Velvet API

  • Overview
  • Tree
  • Deprecated
  • Version:
    • 3.8
      • 3.8
      • 3.7
      • 3.6
      • 3.5
      • 3.4
      • 3.3
      • 3.2
      • 3.1
      • 3.0
      • 2.10
      • 2.9
      • 2.8
      • 2.7
      • 2.6
      • 2.5
      • 2.4
      • 2.3
      • 2.2
      • 2.1
      • 2.0
      • 1.3
      • 1.2

Namespaces

  • Cake
    • Auth
      • Storage
    • Cache
      • Engine
    • Collection
      • Iterator
    • Command
    • Console
      • Exception
    • Controller
      • Component
      • Exception
    • Core
      • Configure
        • Engine
      • Exception
      • Retry
    • Database
      • Driver
      • Exception
      • Expression
      • Schema
      • Statement
      • Type
    • Datasource
      • Exception
    • Error
      • Middleware
    • Event
      • Decorator
    • Filesystem
    • Form
    • Http
      • Client
        • Adapter
        • Auth
      • Cookie
      • Exception
      • Middleware
      • Session
    • I18n
      • Formatter
      • Middleware
      • Parser
    • Log
      • Engine
    • Mailer
      • Exception
      • Transport
    • Network
      • Exception
    • ORM
      • Association
      • Behavior
        • Translate
      • Exception
      • Locator
      • Rule
    • Routing
      • Exception
      • Filter
      • Middleware
      • Route
    • Shell
      • Helper
      • Task
    • TestSuite
      • Fixture
      • Stub
    • Utility
      • Exception
    • Validation
    • View
      • Exception
      • Form
      • Helper
      • Widget
  • None

Classes

  • ConsoleIntegrationTestCase
  • IntegrationTestCase
  • LegacyCommandRunner
  • LegacyShellDispatcher
  • TestCase
  • TestEmailTransport
  • TestSuite

Traits

  • ConsoleIntegrationTestTrait
  • EmailAssertTrait
  • EmailTrait
  • IntegrationTestTrait
  • StringCompareTrait
  1: <?php
  2: /**
  3:  * CakePHP(tm) : Rapid Development Framework (https://cakephp.org)
  4:  * Copyright (c) Cake Software Foundation, Inc. (https://cakefoundation.org)
  5:  *
  6:  * Licensed under The MIT License
  7:  * For full copyright and license information, please see the LICENSE.txt
  8:  * Redistributions of files must retain the above copyright notice.
  9:  *
 10:  * @copyright     Copyright (c) Cake Software Foundation, Inc. (https://cakefoundation.org)
 11:  * @link          https://cakephp.org CakePHP(tm) Project
 12:  * @since         3.3.3
 13:  * @license       https://opensource.org/licenses/mit-license.php MIT License
 14:  */
 15: namespace Cake\TestSuite;
 16: 
 17: use Cake\Mailer\Email;
 18: 
 19: /**
 20:  * Email and mailer assertions.
 21:  *
 22:  * @method \PHPUnit_Framework_MockObject_Matcher_AnyInvokedCount any()
 23:  * @method void assertSame($expected, $result, $message)
 24:  * @method void assertTextContains($needle, $haystack, $message)
 25:  * @method \PHPUnit_Framework_MockObject_MockBuilder getMockBuilder($className)
 26:  *
 27:  * @deprecated 3.7.0 Use Cake\TestSuite\EmailTrait instead
 28:  */
 29: trait EmailAssertTrait
 30: {
 31:     /**
 32:      * @var \Cake\Mailer\Email
 33:      */
 34:     protected $_email;
 35: 
 36:     /**
 37:      * Sends email using the test email instance.
 38:      *
 39:      * @param array|string|null $content The email's content to send.
 40:      * @return void
 41:      */
 42:     public function send($content = null)
 43:     {
 44:         $this->email(true)->send($content);
 45:     }
 46: 
 47:     /**
 48:      * Creates an email instance overriding its transport for testing purposes.
 49:      *
 50:      * @param bool $new Tells if new instance should forcibly be created.
 51:      * @return \Cake\Mailer\Email
 52:      */
 53:     public function email($new = false)
 54:     {
 55:         if ($new || !$this->_email) {
 56:             $this->_email = new Email();
 57:             $this->_email->setProfile(['transport' => 'debug'] + $this->_email->getProfile());
 58:         }
 59: 
 60:         return $this->_email;
 61:     }
 62: 
 63:     /**
 64:      * Generates mock for given mailer class.
 65:      *
 66:      * @param string $className The mailer's FQCN.
 67:      * @param array $methods The methods to mock on the mailer.
 68:      * @return \Cake\Mailer\Mailer|\PHPUnit_Framework_MockObject_MockObject
 69:      */
 70:     public function getMockForMailer($className, array $methods = [])
 71:     {
 72:         $name = current(array_slice(explode('\\', $className), -1));
 73: 
 74:         if (!in_array('profile', $methods, true)) {
 75:             $methods[] = 'profile';
 76:         }
 77: 
 78:         $mailer = $this->getMockBuilder($className)
 79:             ->setMockClassName($name)
 80:             ->setMethods($methods)
 81:             ->setConstructorArgs([$this->email()])
 82:             ->getMock();
 83: 
 84:         $mailer->expects($this->any())
 85:             ->method('profile')
 86:             ->willReturn($mailer);
 87: 
 88:         return $mailer;
 89:     }
 90: 
 91:     /**
 92:      * Asserts email content (both text and HTML) contains `$needle`.
 93:      *
 94:      * @param string $needle Text to look for.
 95:      * @param string|null $message The failure message to define.
 96:      * @return void
 97:      */
 98:     public function assertEmailMessageContains($needle, $message = null)
 99:     {
100:         $this->assertEmailHtmlMessageContains($needle, $message);
101:         $this->assertEmailTextMessageContains($needle, $message);
102:     }
103: 
104:     /**
105:      * Asserts HTML email content contains `$needle`.
106:      *
107:      * @param string $needle Text to look for.
108:      * @param string|null $message The failure message to define.
109:      * @return void
110:      */
111:     public function assertEmailHtmlMessageContains($needle, $message = null)
112:     {
113:         $haystack = $this->email()->message('html');
114:         $this->assertTextContains($needle, $haystack, $message);
115:     }
116: 
117:     /**
118:      * Asserts text email content contains `$needle`.
119:      *
120:      * @param string $needle Text to look for.
121:      * @param string|null $message The failure message to define.
122:      * @return void
123:      */
124:     public function assertEmailTextMessageContains($needle, $message = null)
125:     {
126:         $haystack = $this->email()->message('text');
127:         $this->assertTextContains($needle, $haystack, $message);
128:     }
129: 
130:     /**
131:      * Asserts email's subject contains `$expected`.
132:      *
133:      * @param string $expected Email's subject.
134:      * @param string|null $message The failure message to define.
135:      * @return void
136:      */
137:     public function assertEmailSubject($expected, $message = null)
138:     {
139:         $result = $this->email()->getSubject();
140:         $this->assertSame($expected, $result, $message);
141:     }
142: 
143:     /**
144:      * Asserts email's sender email address and optionally name.
145:      *
146:      * @param string $email Sender's email address.
147:      * @param string|null $name Sender's name.
148:      * @param string|null $message The failure message to define.
149:      * @return void
150:      */
151:     public function assertEmailFrom($email, $name = null, $message = null)
152:     {
153:         if ($name === null) {
154:             $name = $email;
155:         }
156: 
157:         $expected = [$email => $name];
158:         $result = $this->email()->getFrom();
159:         $this->assertSame($expected, $result, $message);
160:     }
161: 
162:     /**
163:      * Asserts email is CC'd to only one email address (and optionally name).
164:      *
165:      * @param string $email CC'd email address.
166:      * @param string|null $name CC'd person name.
167:      * @param string|null $message The failure message to define.
168:      * @return void
169:      */
170:     public function assertEmailCc($email, $name = null, $message = null)
171:     {
172:         if ($name === null) {
173:             $name = $email;
174:         }
175: 
176:         $expected = [$email => $name];
177:         $result = $this->email()->getCc();
178:         $this->assertSame($expected, $result, $message);
179:     }
180: 
181:     /**
182:      * Asserts email CC'd addresses contain given email address (and
183:      * optionally name).
184:      *
185:      * @param string $email CC'd email address.
186:      * @param string|null $name CC'd person name.
187:      * @param string|null $message The failure message to define.
188:      * @return void
189:      */
190:     public function assertEmailCcContains($email, $name = null, $message = null)
191:     {
192:         $result = $this->email()->getCc();
193:         $this->assertNotEmpty($result[$email], $message);
194:         if ($name !== null) {
195:             $this->assertEquals($result[$email], $name, $message);
196:         }
197:     }
198: 
199:     /**
200:      * Asserts email is BCC'd to only one email address (and optionally name).
201:      *
202:      * @param string $email BCC'd email address.
203:      * @param string|null $name BCC'd person name.
204:      * @param string|null $message The failure message to define.
205:      * @return void
206:      */
207:     public function assertEmailBcc($email, $name = null, $message = null)
208:     {
209:         if ($name === null) {
210:             $name = $email;
211:         }
212: 
213:         $expected = [$email => $name];
214:         $result = $this->email()->getBcc();
215:         $this->assertSame($expected, $result, $message);
216:     }
217: 
218:     /**
219:      * Asserts email BCC'd addresses contain given email address (and
220:      * optionally name).
221:      *
222:      * @param string $email BCC'd email address.
223:      * @param string|null $name BCC'd person name.
224:      * @param string|null $message The failure message to define.
225:      * @return void
226:      */
227:     public function assertEmailBccContains($email, $name = null, $message = null)
228:     {
229:         $result = $this->email()->getBcc();
230:         $this->assertNotEmpty($result[$email], $message);
231:         if ($name !== null) {
232:             $this->assertEquals($result[$email], $name, $message);
233:         }
234:     }
235: 
236:     /**
237:      * Asserts email is sent to only the given recipient's address (and
238:      * optionally name).
239:      *
240:      * @param string $email Recipient's email address.
241:      * @param string|null $name Recipient's name.
242:      * @param string|null $message The failure message to define.
243:      * @return void
244:      */
245:     public function assertEmailTo($email, $name = null, $message = null)
246:     {
247:         if ($name === null) {
248:             $name = $email;
249:         }
250: 
251:         $expected = [$email => $name];
252:         $result = $this->email()->getTo();
253:         $this->assertSame($expected, $result, $message);
254:     }
255: 
256:     /**
257:      * Asserts email recipients' list contains given email address (and
258:      * optionally name).
259:      *
260:      * @param string $email Recipient's email address.
261:      * @param string|null $name Recipient's name.
262:      * @param string|null $message The failure message to define.
263:      * @return void
264:      */
265:     public function assertEmailToContains($email, $name = null, $message = null)
266:     {
267:         $result = $this->email()->getTo();
268:         $this->assertNotEmpty($result[$email], $message);
269:         if ($name !== null) {
270:             $this->assertEquals($result[$email], $name, $message);
271:         }
272:     }
273: 
274:     /**
275:      * Asserts the email attachments contain the given filename (and optionally
276:      * file info).
277:      *
278:      * @param string $filename Expected attachment's filename.
279:      * @param array|null $file Expected attachment's file info.
280:      * @param string|null $message The failure message to define.
281:      * @return void
282:      */
283:     public function assertEmailAttachmentsContains($filename, array $file = null, $message = null)
284:     {
285:         $result = $this->email()->getAttachments();
286:         $this->assertNotEmpty($result[$filename], $message);
287:         if ($file === null) {
288:             return;
289:         }
290:         $this->assertContains($file, $result, $message);
291:         $this->assertEquals($file, $result[$filename], $message);
292:     }
293: }
294: 
Follow @CakePHP
#IRC
OpenHub
Rackspace
  • Business Solutions
  • Showcase
  • Documentation
  • Book
  • API
  • Videos
  • Logos & Trademarks
  • Community
  • Team
  • Issues (Github)
  • YouTube Channel
  • Get Involved
  • Bakery
  • Featured Resources
  • Newsletter
  • Certification
  • My CakePHP
  • CakeFest
  • Facebook
  • Twitter
  • Help & Support
  • Forum
  • Stack Overflow
  • IRC
  • Slack
  • Paid Support

Generated using CakePHP API Docs