mirror of
https://github.com/kamilwylegala/cakephp2-php8.git
synced 2024-11-15 11:28:25 +00:00
Adding valid option checking to fieldParameters.
Test case added.
This commit is contained in:
parent
f299283dc4
commit
a33457155f
2 changed files with 34 additions and 1 deletions
|
@ -2489,6 +2489,9 @@ class DboSource extends DataSource {
|
|||
function _buildFieldParameters($columnString, $columnData, $position) {
|
||||
foreach ($this->fieldParameters as $paramName => $value) {
|
||||
if (isset($columnData[$paramName]) && $value['position'] == $position) {
|
||||
if (isset($value['options']) && !in_array($columnData[$paramName], $value['options'])) {
|
||||
continue;
|
||||
}
|
||||
$val = $columnData[$paramName];
|
||||
if ($value['quote']) {
|
||||
$val = $this->value($val);
|
||||
|
|
|
@ -3612,7 +3612,37 @@ class DboSourceTest extends CakeTestCase {
|
|||
$this->testDb->columns = array('integer' => array('name' => 'int', 'limit' => '11', 'formatter' => 'intval'), );
|
||||
$result = $this->testDb->buildColumn($data);
|
||||
$expected = '`int_field` int(11) NOT NULL';
|
||||
$this->assertTrue($result, $expected);
|
||||
$this->assertEqual($result, $expected);
|
||||
|
||||
$this->testDb->fieldParameters['param'] = array(
|
||||
'value' => 'COLLATE',
|
||||
'quote' => false,
|
||||
'join' => ' ',
|
||||
'column' => 'Collate',
|
||||
'position' => 'beforeDefault',
|
||||
'options' => array('GOOD', 'OK')
|
||||
);
|
||||
$data = array(
|
||||
'name' => 'int_field',
|
||||
'type' => 'integer',
|
||||
'default' => '',
|
||||
'null' => false,
|
||||
'param' => 'BAD'
|
||||
);
|
||||
$result = $this->testDb->buildColumn($data);
|
||||
$expected = '`int_field` int(11) NOT NULL';
|
||||
$this->assertEqual($result, $expected);
|
||||
|
||||
$data = array(
|
||||
'name' => 'int_field',
|
||||
'type' => 'integer',
|
||||
'default' => '',
|
||||
'null' => false,
|
||||
'param' => 'GOOD'
|
||||
);
|
||||
$result = $this->testDb->buildColumn($data);
|
||||
$expected = '`int_field` int(11) COLLATE GOOD NOT NULL';
|
||||
$this->assertEqual($result, $expected);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
Loading…
Reference in a new issue