improving code coverage and unit testing

This commit is contained in:
El RIDO
2016-07-18 14:47:32 +02:00
parent ff0c55c0d6
commit b53efda635
8 changed files with 139 additions and 15 deletions

View File

@@ -78,6 +78,7 @@ class privatebin_dbTest extends PHPUnit_Framework_TestCase
foreach ($keys as $key)
{
$ids[$key] = substr(md5($key), 0, 16);
$this->_model->delete($ids[$key]);
$this->assertFalse($this->_model->exists($ids[$key]), "paste $key does not yet exist");
if (in_array($key, array('x', 'y', 'z')))
{
@@ -95,6 +96,7 @@ class privatebin_dbTest extends PHPUnit_Framework_TestCase
if (in_array($key, array('x', 'y', 'z')))
{
$this->assertTrue($this->_model->exists($ids[$key]), "paste $key exists after purge");
$this->_model->delete($ids[$key]);
}
else
{
@@ -224,10 +226,53 @@ class privatebin_dbTest extends PHPUnit_Framework_TestCase
privatebin_db::getInstance($options);
}
public function testOldAttachments()
{
mkdir(PATH . 'data');
$path = PATH . 'data' . DIRECTORY_SEPARATOR . 'attachement-test.sq3';
@unlink($path);
$this->_options['dsn'] = 'sqlite:' . $path;
$this->_options['tbl'] = 'bar_';
$model = privatebin_db::getInstance($this->_options);
$original = $paste = helper::getPasteWithAttachment(array('expire_date' => 1344803344));
$paste['meta']['attachment'] = $paste['attachment'];
$paste['meta']['attachmentname'] = $paste['attachmentname'];
unset($paste['attachment'], $paste['attachmentname']);
$meta = $paste['meta'];
$db = new PDO(
$this->_options['dsn'],
$this->_options['usr'],
$this->_options['pwd'],
$this->_options['opt']
);
$statement = $db->prepare('INSERT INTO bar_paste VALUES(?,?,?,?,?,?,?,?,?)');
$statement->execute(
array(
helper::getPasteId(),
$paste['data'],
$paste['meta']['postdate'],
1344803344,
0,
0,
json_encode($meta),
null,
null,
)
);
$statement->closeCursor();
$this->assertTrue($model->exists(helper::getPasteId()), 'paste exists after storing it');
$this->assertEquals(json_decode(json_encode($original)), $model->read(helper::getPasteId()));
helper::rmdir(PATH . 'data');
}
public function testTableUpgrade()
{
mkdir(PATH . 'data');
$path = PATH . 'data/db-test.sq3';
$path = PATH . 'data' . DIRECTORY_SEPARATOR . 'db-test.sq3';
@unlink($path);
$this->_options['dsn'] = 'sqlite:' . $path;
$this->_options['tbl'] = 'foo_';
@@ -246,7 +291,17 @@ class privatebin_dbTest extends PHPUnit_Framework_TestCase
'opendiscussion INT, ' .
'burnafterreading INT );'
);
$db->exec(
'CREATE TABLE foo_comment ( ' .
"dataid CHAR(16) NOT NULL, " .
'pasteid CHAR(16), ' .
'parentid CHAR(16), ' .
'data BLOB, ' .
'nickname BLOB, ' .
'vizhash BLOB, ' .
"postdate INT );"
);
privatebin_db::getInstance($this->_options);
@unlink($path);
helper::rmdir(PATH . 'data');
}
}