mirror of
https://github.com/kamilwylegala/cakephp2-php8.git
synced 2025-03-17 06:59:51 +00:00
Merge remote-tracking branch 'origin/2.1' into 2.2
Conflicts: lib/Cake/Model/Model.php lib/Cake/Test/Case/Model/ModelValidationTest.php
This commit is contained in:
commit
51635c2ca6
9 changed files with 87 additions and 15 deletions
|
@ -137,7 +137,9 @@ class ModelValidator implements ArrayAccess, IteratorAggregate, Countable {
|
||||||
if ($options['deep']) {
|
if ($options['deep']) {
|
||||||
$validates = $model->{$association}->validateAssociated($values, $options);
|
$validates = $model->{$association}->validateAssociated($values, $options);
|
||||||
} else {
|
} else {
|
||||||
$validates = $model->{$association}->create($values) !== null && $model->{$association}->validates($options);
|
$model->{$association}->create(null);
|
||||||
|
$validates = $model->{$association}->set($values) && $model->{$association}->validates($options);
|
||||||
|
$data[$association] = $model->{$association}->data[$model->{$association}->alias];
|
||||||
}
|
}
|
||||||
if (is_array($validates)) {
|
if (is_array($validates)) {
|
||||||
if (in_array(false, $validates, true)) {
|
if (in_array(false, $validates, true)) {
|
||||||
|
|
|
@ -296,21 +296,8 @@ class ExceptionRendererTest extends CakeTestCase {
|
||||||
$testApp . 'Error' . DS
|
$testApp . 'Error' . DS
|
||||||
),
|
),
|
||||||
), App::RESET);
|
), App::RESET);
|
||||||
Configure::write('Error', array(
|
|
||||||
'handler' => 'TestAppsErrorHandler::handleError',
|
|
||||||
'level' => E_ALL & ~E_DEPRECATED,
|
|
||||||
'trace' => true
|
|
||||||
));
|
|
||||||
|
|
||||||
Configure::write('Exception', array(
|
|
||||||
'handler' => 'TestAppsErrorHandler::handleException',
|
|
||||||
'renderer' => 'TestAppsExceptionRenderer',
|
|
||||||
'log' => true
|
|
||||||
));
|
|
||||||
|
|
||||||
App::uses('TestAppsErrorController', 'Controller');
|
|
||||||
App::uses('TestAppsExceptionRenderer', 'Error');
|
App::uses('TestAppsExceptionRenderer', 'Error');
|
||||||
|
|
||||||
$exception = new SocketException('socket exception');
|
$exception = new SocketException('socket exception');
|
||||||
$renderer = new TestAppsExceptionRenderer($exception);
|
$renderer = new TestAppsExceptionRenderer($exception);
|
||||||
|
|
||||||
|
|
|
@ -2057,4 +2057,34 @@ class ModelValidationTest extends BaseModelTest {
|
||||||
$this->assertSame($set, $Validator->getField('other'));
|
$this->assertSame($set, $Validator->getField('other'));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Tests that altering data in a beforeValidate callback will lead to saving those
|
||||||
|
* values in database, this time with belongsTo associations
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public function testValidateFirstAssociatedWithBeforeValidate2() {
|
||||||
|
$this->loadFixtures('Article', 'User');
|
||||||
|
$model = new CustomArticle();
|
||||||
|
$model->validate = array(
|
||||||
|
'title' => array(
|
||||||
|
'notempty' => array(
|
||||||
|
'rule' => 'notEmpty',
|
||||||
|
'required' => true
|
||||||
|
)
|
||||||
|
)
|
||||||
|
);
|
||||||
|
|
||||||
|
$data = array(
|
||||||
|
'User' => array('user' => 'foo', 'password' => 'bar'),
|
||||||
|
'CustomArticle' => array(
|
||||||
|
'body' => 'a test'
|
||||||
|
)
|
||||||
|
);
|
||||||
|
$result = $model->saveAll($data, array('validate' => 'first'));
|
||||||
|
$this->assertTrue($result);
|
||||||
|
|
||||||
|
$this->assertEquals('foo', $model->field('title', array('body' => 'a test')));
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -5939,6 +5939,7 @@ class ModelWriteTest extends BaseModelTest {
|
||||||
* @return void
|
* @return void
|
||||||
*/
|
*/
|
||||||
public function testValidateAssociated() {
|
public function testValidateAssociated() {
|
||||||
|
$this->loadFixtures('Attachment', 'Article', 'Comment');
|
||||||
$TestModel = new Comment();
|
$TestModel = new Comment();
|
||||||
$TestModel->Attachment->validate = array('attachment' => 'notEmpty');
|
$TestModel->Attachment->validate = array('attachment' => 'notEmpty');
|
||||||
|
|
||||||
|
|
|
@ -1099,6 +1099,27 @@ class CakeEmailTest extends CakeTestCase {
|
||||||
$this->assertEquals(array('Time'), $result);
|
$this->assertEquals(array('Time'), $result);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* testSendRenderWithImage method
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public function testSendRenderWithImage() {
|
||||||
|
$this->CakeEmail->reset();
|
||||||
|
$this->CakeEmail->transport('Debug');
|
||||||
|
|
||||||
|
$this->CakeEmail->from('cake@cakephp.org');
|
||||||
|
$this->CakeEmail->to(array('you@cakephp.org' => 'You'));
|
||||||
|
$this->CakeEmail->subject('My title');
|
||||||
|
$this->CakeEmail->config(array('empty'));
|
||||||
|
$this->CakeEmail->template('image');
|
||||||
|
$this->CakeEmail->emailFormat('html');
|
||||||
|
|
||||||
|
$expected = '<img src="http://localhost/img/image.gif" alt="cool image" width="100" height="100" />';
|
||||||
|
$result = $this->CakeEmail->send();
|
||||||
|
$this->assertContains($expected, $result['message']);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* testSendRenderPlugin method
|
* testSendRenderPlugin method
|
||||||
*
|
*
|
||||||
|
|
|
@ -324,7 +324,7 @@ object(View) {
|
||||||
validationErrors => array()
|
validationErrors => array()
|
||||||
hasRendered => false
|
hasRendered => false
|
||||||
uuids => array()
|
uuids => array()
|
||||||
request => null
|
request => object(CakeRequest) {}
|
||||||
response => object(CakeResponse) {}
|
response => object(CakeResponse) {}
|
||||||
elementCache => 'default'
|
elementCache => 'default'
|
||||||
int => (int) 2
|
int => (int) 2
|
||||||
|
|
23
lib/Cake/Test/test_app/View/Emails/html/image.ctp
Normal file
23
lib/Cake/Test/test_app/View/Emails/html/image.ctp
Normal file
|
@ -0,0 +1,23 @@
|
||||||
|
<?php
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* PHP 5
|
||||||
|
*
|
||||||
|
* CakePHP(tm) : Rapid Development Framework (http://www.cakephp.org)
|
||||||
|
* Copyright 2005-2012, Cake Software Foundation, Inc. (http://www.cakefoundation.org)
|
||||||
|
*
|
||||||
|
* Licensed under The MIT License
|
||||||
|
* Redistributions of files must retain the above copyright notice.
|
||||||
|
*
|
||||||
|
* @copyright Copyright 2005-2012, Cake Software Foundation, Inc. (http://www.cakefoundation.org)
|
||||||
|
* @link http://www.cakefoundation.org/projects/info/cakephp CakePHP(tm) Project
|
||||||
|
* @since CakePHP(tm) v 2.1
|
||||||
|
* @license http://www.opensource.org/licenses/mit-license.php The MIT License
|
||||||
|
*/
|
||||||
|
|
||||||
|
echo $this->Html->image('image.gif', array(
|
||||||
|
'alt' => 'cool image',
|
||||||
|
'width' => 100,
|
||||||
|
'height' => 100,
|
||||||
|
'fullBase' => true,
|
||||||
|
));
|
|
@ -313,6 +313,9 @@ class Helper extends Object {
|
||||||
$path = h($this->assetTimestamp($this->webroot($path)));
|
$path = h($this->assetTimestamp($this->webroot($path)));
|
||||||
|
|
||||||
if (!empty($options['fullBase'])) {
|
if (!empty($options['fullBase'])) {
|
||||||
|
if ($path[0] == '/') {
|
||||||
|
$path = substr($path, 1);
|
||||||
|
}
|
||||||
$path = $this->url('/', true) . $path;
|
$path = $this->url('/', true) . $path;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -319,6 +319,11 @@ class View extends Object {
|
||||||
}
|
}
|
||||||
$this->_eventManager = $controller->getEventManager();
|
$this->_eventManager = $controller->getEventManager();
|
||||||
}
|
}
|
||||||
|
if (empty($this->request) && !($this->request = Router::getRequest(true))) {
|
||||||
|
$this->request = new CakeRequest(null, false);
|
||||||
|
$this->request->base = '';
|
||||||
|
$this->request->here = $this->request->webroot = '/';
|
||||||
|
}
|
||||||
if (is_object($controller) && isset($controller->response)) {
|
if (is_object($controller) && isset($controller->response)) {
|
||||||
$this->response = $controller->response;
|
$this->response = $controller->response;
|
||||||
} else {
|
} else {
|
||||||
|
|
Loading…
Add table
Reference in a new issue