found and fixed a bug when using expiration together with discussion
This commit is contained in:
parent
add980d36f
commit
e5b096ed8c
2 changed files with 36 additions and 1 deletions
|
@ -243,6 +243,8 @@ class zerobin
|
||||||
{
|
{
|
||||||
$paste = $this->_model->getPaste();
|
$paste = $this->_model->getPaste();
|
||||||
try {
|
try {
|
||||||
|
$paste->setData($data);
|
||||||
|
|
||||||
if (!empty($attachment))
|
if (!empty($attachment))
|
||||||
{
|
{
|
||||||
$paste->setAttachment($attachment);
|
$paste->setAttachment($attachment);
|
||||||
|
@ -262,7 +264,6 @@ class zerobin
|
||||||
$formatter = $this->_request->getParam('formatter');
|
$formatter = $this->_request->getParam('formatter');
|
||||||
if (!empty($formatter)) $paste->setFormatter($formatter);
|
if (!empty($formatter)) $paste->setFormatter($formatter);
|
||||||
|
|
||||||
$paste->setData($data);
|
|
||||||
$paste->store();
|
$paste->store();
|
||||||
} catch (Exception $e) {
|
} catch (Exception $e) {
|
||||||
return $this->_return_message(1, $e->getMessage());
|
return $this->_return_message(1, $e->getMessage());
|
||||||
|
|
|
@ -248,6 +248,40 @@ class zerobinTest extends PHPUnit_Framework_TestCase
|
||||||
'outputs valid delete token'
|
'outputs valid delete token'
|
||||||
);
|
);
|
||||||
$this->assertTrue($this->_model->exists($response['id']), 'paste exists after posting data');
|
$this->assertTrue($this->_model->exists($response['id']), 'paste exists after posting data');
|
||||||
|
$paste = $this->_model->read($response['id']);
|
||||||
|
$this->assertEquals(time() + 300, $paste->meta->expire_date, 'time is set correctly');
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @runInSeparateProcess
|
||||||
|
*/
|
||||||
|
public function testCreateValidExpireWithDiscussion()
|
||||||
|
{
|
||||||
|
$this->reset();
|
||||||
|
$options = parse_ini_file(CONF, true);
|
||||||
|
$options['traffic']['limit'] = 0;
|
||||||
|
helper::confBackup();
|
||||||
|
helper::createIniFile(CONF, $options);
|
||||||
|
$_POST = helper::getPaste();
|
||||||
|
$_POST['expire'] = '5min';
|
||||||
|
$_POST['opendiscussion'] = '1';
|
||||||
|
$_SERVER['HTTP_X_REQUESTED_WITH'] = 'JSONHttpRequest';
|
||||||
|
$_SERVER['REQUEST_METHOD'] = 'POST';
|
||||||
|
$_SERVER['REMOTE_ADDR'] = '::1';
|
||||||
|
ob_start();
|
||||||
|
new zerobin;
|
||||||
|
$content = ob_get_contents();
|
||||||
|
$response = json_decode($content, true);
|
||||||
|
$this->assertEquals(0, $response['status'], 'outputs status');
|
||||||
|
$this->assertEquals(
|
||||||
|
hash_hmac('sha1', $response['id'], serversalt::get()),
|
||||||
|
$response['deletetoken'],
|
||||||
|
'outputs valid delete token'
|
||||||
|
);
|
||||||
|
$this->assertTrue($this->_model->exists($response['id']), 'paste exists after posting data');
|
||||||
|
$paste = $this->_model->read($response['id']);
|
||||||
|
$this->assertEquals(time() + 300, $paste->meta->expire_date, 'time is set correctly');
|
||||||
|
$this->assertEquals(1, $paste->meta->opendiscussion, 'time is set correctly');
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
Loading…
Reference in a new issue