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.7 Red Velvet API

  • Overview
  • Tree
  • Deprecated
  • Version:
    • 3.7
      • 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:     /**
 33:      * @var \Cake\Mailer\Email
 34:      */
 35:     protected $_email;
 36: 
 37:     /**
 38:      * Sends email using the test email instance.
 39:      *
 40:      * @param array|string|null $content The email's content to send.
 41:      * @return void
 42:      */
 43:     public function send($content = null)
 44:     {
 45:         $this->email(true)->send($content);
 46:     }
 47: 
 48:     /**
 49:      * Creates an email instance overriding its transport for testing purposes.
 50:      *
 51:      * @param bool $new Tells if new instance should forcibly be created.
 52:      * @return \Cake\Mailer\Email
 53:      */
 54:     public function email($new = false)
 55:     {
 56:         if ($new || !$this->_email) {
 57:             $this->_email = new Email();
 58:             $this->_email->setProfile(['transport' => 'debug'] + $this->_email->getProfile());
 59:         }
 60: 
 61:         return $this->_email;
 62:     }
 63: 
 64:     /**
 65:      * Generates mock for given mailer class.
 66:      *
 67:      * @param string $className The mailer's FQCN.
 68:      * @param array $methods The methods to mock on the mailer.
 69:      * @return \Cake\Mailer\Mailer|\PHPUnit_Framework_MockObject_MockObject
 70:      */
 71:     public function getMockForMailer($className, array $methods = [])
 72:     {
 73:         $name = current(array_slice(explode('\\', $className), -1));
 74: 
 75:         if (!in_array('profile', $methods)) {
 76:             $methods[] = 'profile';
 77:         }
 78: 
 79:         $mailer = $this->getMockBuilder($className)
 80:             ->setMockClassName($name)
 81:             ->setMethods($methods)
 82:             ->setConstructorArgs([$this->email()])
 83:             ->getMock();
 84: 
 85:         $mailer->expects($this->any())
 86:             ->method('profile')
 87:             ->willReturn($mailer);
 88: 
 89:         return $mailer;
 90:     }
 91: 
 92:     /**
 93:      * Asserts email content (both text and HTML) contains `$needle`.
 94:      *
 95:      * @param string $needle Text to look for.
 96:      * @param string|null $message The failure message to define.
 97:      * @return void
 98:      */
 99:     public function assertEmailMessageContains($needle, $message = null)
100:     {
101:         $this->assertEmailHtmlMessageContains($needle, $message);
102:         $this->assertEmailTextMessageContains($needle, $message);
103:     }
104: 
105:     /**
106:      * Asserts HTML email content contains `$needle`.
107:      *
108:      * @param string $needle Text to look for.
109:      * @param string|null $message The failure message to define.
110:      * @return void
111:      */
112:     public function assertEmailHtmlMessageContains($needle, $message = null)
113:     {
114:         $haystack = $this->email()->message('html');
115:         $this->assertTextContains($needle, $haystack, $message);
116:     }
117: 
118:     /**
119:      * Asserts text email content contains `$needle`.
120:      *
121:      * @param string $needle Text to look for.
122:      * @param string|null $message The failure message to define.
123:      * @return void
124:      */
125:     public function assertEmailTextMessageContains($needle, $message = null)
126:     {
127:         $haystack = $this->email()->message('text');
128:         $this->assertTextContains($needle, $haystack, $message);
129:     }
130: 
131:     /**
132:      * Asserts email's subject contains `$expected`.
133:      *
134:      * @param string $expected Email's subject.
135:      * @param string|null $message The failure message to define.
136:      * @return void
137:      */
138:     public function assertEmailSubject($expected, $message = null)
139:     {
140:         $result = $this->email()->getSubject();
141:         $this->assertSame($expected, $result, $message);
142:     }
143: 
144:     /**
145:      * Asserts email's sender email address and optionally name.
146:      *
147:      * @param string $email Sender's email address.
148:      * @param string|null $name Sender's name.
149:      * @param string|null $message The failure message to define.
150:      * @return void
151:      */
152:     public function assertEmailFrom($email, $name = null, $message = null)
153:     {
154:         if ($name === null) {
155:             $name = $email;
156:         }
157: 
158:         $expected = [$email => $name];
159:         $result = $this->email()->getFrom();
160:         $this->assertSame($expected, $result, $message);
161:     }
162: 
163:     /**
164:      * Asserts email is CC'd to only one email address (and optionally name).
165:      *
166:      * @param string $email CC'd email address.
167:      * @param string|null $name CC'd person name.
168:      * @param string|null $message The failure message to define.
169:      * @return void
170:      */
171:     public function assertEmailCc($email, $name = null, $message = null)
172:     {
173:         if ($name === null) {
174:             $name = $email;
175:         }
176: 
177:         $expected = [$email => $name];
178:         $result = $this->email()->getCc();
179:         $this->assertSame($expected, $result, $message);
180:     }
181: 
182:     /**
183:      * Asserts email CC'd addresses contain given email address (and
184:      * optionally name).
185:      *
186:      * @param string $email CC'd email address.
187:      * @param string|null $name CC'd person name.
188:      * @param string|null $message The failure message to define.
189:      * @return void
190:      */
191:     public function assertEmailCcContains($email, $name = null, $message = null)
192:     {
193:         $result = $this->email()->getCc();
194:         $this->assertNotEmpty($result[$email], $message);
195:         if ($name !== null) {
196:             $this->assertEquals($result[$email], $name, $message);
197:         }
198:     }
199: 
200:     /**
201:      * Asserts email is BCC'd to only one email address (and optionally name).
202:      *
203:      * @param string $email BCC'd email address.
204:      * @param string|null $name BCC'd person name.
205:      * @param string|null $message The failure message to define.
206:      * @return void
207:      */
208:     public function assertEmailBcc($email, $name = null, $message = null)
209:     {
210:         if ($name === null) {
211:             $name = $email;
212:         }
213: 
214:         $expected = [$email => $name];
215:         $result = $this->email()->getBcc();
216:         $this->assertSame($expected, $result, $message);
217:     }
218: 
219:     /**
220:      * Asserts email BCC'd addresses contain given email address (and
221:      * optionally name).
222:      *
223:      * @param string $email BCC'd email address.
224:      * @param string|null $name BCC'd person name.
225:      * @param string|null $message The failure message to define.
226:      * @return void
227:      */
228:     public function assertEmailBccContains($email, $name = null, $message = null)
229:     {
230:         $result = $this->email()->getBcc();
231:         $this->assertNotEmpty($result[$email], $message);
232:         if ($name !== null) {
233:             $this->assertEquals($result[$email], $name, $message);
234:         }
235:     }
236: 
237:     /**
238:      * Asserts email is sent to only the given recipient's address (and
239:      * optionally name).
240:      *
241:      * @param string $email Recipient's email address.
242:      * @param string|null $name Recipient's name.
243:      * @param string|null $message The failure message to define.
244:      * @return void
245:      */
246:     public function assertEmailTo($email, $name = null, $message = null)
247:     {
248:         if ($name === null) {
249:             $name = $email;
250:         }
251: 
252:         $expected = [$email => $name];
253:         $result = $this->email()->getTo();
254:         $this->assertSame($expected, $result, $message);
255:     }
256: 
257:     /**
258:      * Asserts email recipients' list contains given email address (and
259:      * optionally name).
260:      *
261:      * @param string $email Recipient's email address.
262:      * @param string|null $name Recipient's name.
263:      * @param string|null $message The failure message to define.
264:      * @return void
265:      */
266:     public function assertEmailToContains($email, $name = null, $message = null)
267:     {
268:         $result = $this->email()->getTo();
269:         $this->assertNotEmpty($result[$email], $message);
270:         if ($name !== null) {
271:             $this->assertEquals($result[$email], $name, $message);
272:         }
273:     }
274: 
275:     /**
276:      * Asserts the email attachments contain the given filename (and optionally
277:      * file info).
278:      *
279:      * @param string $filename Expected attachment's filename.
280:      * @param array|null $file Expected attachment's file info.
281:      * @param string|null $message The failure message to define.
282:      * @return void
283:      */
284:     public function assertEmailAttachmentsContains($filename, array $file = null, $message = null)
285:     {
286:         $result = $this->email()->getAttachments();
287:         $this->assertNotEmpty($result[$filename], $message);
288:         if ($file === null) {
289:             return;
290:         }
291:         $this->assertContains($file, $result, $message);
292:         $this->assertEquals($file, $result[$filename], $message);
293:     }
294: }
295: 
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