Increase length of attachments file names (and truncate if really too long)

This commit is contained in:
Frederic Guillot 2015-05-22 11:54:45 -04:00
parent c9ba525bab
commit 8e3618f412
3 changed files with 38 additions and 2 deletions

View File

@ -92,7 +92,7 @@ class File extends Base
return $this->db->table(self::TABLE)->save(array(
'task_id' => $task_id,
'name' => $name,
'name' => substr($name, 0, 255),
'path' => $path,
'is_image' => $is_image ? '1' : '0',
'size' => $size,

View File

@ -6,7 +6,12 @@ use PDO;
use Core\Security;
use Model\Link;
const VERSION = 71;
const VERSION = 72;
function version_72($pdo)
{
$pdo->exec('ALTER TABLE files MODIFY name VARCHAR(255)');
}
function version_71($pdo)
{

31
tests/units/FileTest.php Normal file
View File

@ -0,0 +1,31 @@
<?php
require_once __DIR__.'/Base.php';
use Model\Task;
use Model\File;
use Model\TaskCreation;
use Model\Project;
class FileTest extends Base
{
public function testCreationFileNameTooLong()
{
$p = new Project($this->container);
$f = new File($this->container);
$tc = new TaskCreation($this->container);
$this->assertEquals(1, $p->create(array('name' => 'test')));
$this->assertEquals(1, $tc->create(array('project_id' => 1, 'title' => 'test')));
$this->assertTrue($f->create(1, 'test', '/tmp/foo', false, 10));
$this->assertTrue($f->create(1, str_repeat('a', 1000), '/tmp/foo', false, 10));
$files = $f->getAll(1);
$this->assertNotEmpty($files);
$this->assertCount(2, $files);
$this->assertEquals(str_repeat('a', 255), $files[0]['name']);
$this->assertEquals('test', $files[1]['name']);
}
}