deduplicate code, clarifications

This commit is contained in:
El RIDO
2026-01-25 10:37:32 +01:00
parent 520408b830
commit d00fb264fb
5 changed files with 39 additions and 32 deletions

View File

@@ -517,7 +517,7 @@ EOT;
EOT; EOT;
} }
$code .= PHP_EOL . <<<'EOT' $code .= PHP_EOL . <<<'EOT'
$file = tempnam(sys_get_temp_dir(), 'FOO'); $file = Helper::createTempFile();
file_put_contents($file, $paste); file_put_contents($file, $paste);
Request::setInputStream($file); Request::setInputStream($file);
$_SERVER['HTTP_X_REQUESTED_WITH'] = 'JSONHttpRequest'; $_SERVER['HTTP_X_REQUESTED_WITH'] = 'JSONHttpRequest';

View File

@@ -298,6 +298,16 @@ class Helper
} }
} }
/**
* create a temporary file, returns it's file name
*
* @return string
*/
public static function createTempFile(): string
{
return tempnam(sys_get_temp_dir(), 'FOO');
}
/** /**
* a var_export that returns arrays without line breaks * a var_export that returns arrays without line breaks
* by linus@flowingcreativity.net via php.net * by linus@flowingcreativity.net via php.net

View File

@@ -136,10 +136,6 @@ class ControllerTest extends TestCase
); );
} }
/**
* @expectedException Exception
* @expectedExceptionCode 2
*/
public function testConf() public function testConf()
{ {
file_put_contents(CONF, ''); file_put_contents(CONF, '');
@@ -176,7 +172,7 @@ class ControllerTest extends TestCase
$options['traffic']['limit'] = 0; $options['traffic']['limit'] = 0;
Helper::createIniFile(CONF, $options); Helper::createIniFile(CONF, $options);
$paste = Helper::getPasteJson(); $paste = Helper::getPasteJson();
$file = tempnam(sys_get_temp_dir(), 'FOO'); $file = Helper::createTempFile();
file_put_contents($file, $paste); file_put_contents($file, $paste);
Request::setInputStream($file); Request::setInputStream($file);
$_SERVER['HTTP_X_REQUESTED_WITH'] = 'JSONHttpRequest'; $_SERVER['HTTP_X_REQUESTED_WITH'] = 'JSONHttpRequest';
@@ -207,12 +203,13 @@ class ControllerTest extends TestCase
$options['traffic']['limit'] = 0; $options['traffic']['limit'] = 0;
Helper::createIniFile(CONF, $options); Helper::createIniFile(CONF, $options);
$paste = Helper::getPasteJson(array('expire' => 25)); $paste = Helper::getPasteJson(array('expire' => 25));
$file = tempnam(sys_get_temp_dir(), 'FOO'); $file = Helper::createTempFile();
file_put_contents($file, $paste); file_put_contents($file, $paste);
Request::setInputStream($file); Request::setInputStream($file);
$_SERVER['HTTP_X_REQUESTED_WITH'] = 'JSONHttpRequest'; $_SERVER['HTTP_X_REQUESTED_WITH'] = 'JSONHttpRequest';
$_SERVER['REQUEST_METHOD'] = 'POST'; $_SERVER['REQUEST_METHOD'] = 'POST';
$_SERVER['REMOTE_ADDR'] = '::1'; $_SERVER['REMOTE_ADDR'] = '::1';
// Explicitly invoke TrafficLimiter to ensure limit applies to this test
TrafficLimiter::canPass(); TrafficLimiter::canPass();
ob_start(); ob_start();
new Controller; new Controller;
@@ -239,7 +236,7 @@ class ControllerTest extends TestCase
$options['traffic']['limit'] = 0; $options['traffic']['limit'] = 0;
Helper::createIniFile(CONF, $options); Helper::createIniFile(CONF, $options);
$paste = Helper::getPasteJson(); $paste = Helper::getPasteJson();
$file = tempnam(sys_get_temp_dir(), 'FOO'); $file = Helper::createTempFile();
file_put_contents($file, $paste); file_put_contents($file, $paste);
Request::setInputStream($file); Request::setInputStream($file);
$_SERVER['HTTP_X_REQUESTED_WITH'] = 'JSONHttpRequest'; $_SERVER['HTTP_X_REQUESTED_WITH'] = 'JSONHttpRequest';
@@ -263,7 +260,7 @@ class ControllerTest extends TestCase
$options['traffic']['header'] = 'X_FORWARDED_FOR'; $options['traffic']['header'] = 'X_FORWARDED_FOR';
Helper::createIniFile(CONF, $options); Helper::createIniFile(CONF, $options);
$paste = Helper::getPasteJson(); $paste = Helper::getPasteJson();
$file = tempnam(sys_get_temp_dir(), 'FOO'); $file = Helper::createTempFile();
file_put_contents($file, $paste); file_put_contents($file, $paste);
Request::setInputStream($file); Request::setInputStream($file);
$_SERVER['HTTP_X_FORWARDED_FOR'] = '::2'; $_SERVER['HTTP_X_FORWARDED_FOR'] = '::2';
@@ -296,7 +293,7 @@ class ControllerTest extends TestCase
$paste = Helper::getPaste(); $paste = Helper::getPaste();
$this->_data->create(Helper::getPasteId(), $paste); $this->_data->create(Helper::getPasteId(), $paste);
$paste = Helper::getPasteJson(); $paste = Helper::getPasteJson();
$file = tempnam(sys_get_temp_dir(), 'FOO'); $file = Helper::createTempFile();
file_put_contents($file, $paste); file_put_contents($file, $paste);
Request::setInputStream($file); Request::setInputStream($file);
$_SERVER['HTTP_X_REQUESTED_WITH'] = 'JSONHttpRequest'; $_SERVER['HTTP_X_REQUESTED_WITH'] = 'JSONHttpRequest';
@@ -320,7 +317,7 @@ class ControllerTest extends TestCase
$options['traffic']['limit'] = 0; $options['traffic']['limit'] = 0;
Helper::createIniFile(CONF, $options); Helper::createIniFile(CONF, $options);
$paste = Helper::getPasteJson(); $paste = Helper::getPasteJson();
$file = tempnam(sys_get_temp_dir(), 'FOO'); $file = Helper::createTempFile();
file_put_contents($file, $paste); file_put_contents($file, $paste);
Request::setInputStream($file); Request::setInputStream($file);
$_SERVER['HTTP_X_REQUESTED_WITH'] = 'JSONHttpRequest'; $_SERVER['HTTP_X_REQUESTED_WITH'] = 'JSONHttpRequest';
@@ -352,7 +349,7 @@ class ControllerTest extends TestCase
$options['traffic']['limit'] = 0; $options['traffic']['limit'] = 0;
Helper::createIniFile(CONF, $options); Helper::createIniFile(CONF, $options);
$paste = Helper::getPasteJson(); $paste = Helper::getPasteJson();
$file = tempnam(sys_get_temp_dir(), 'FOO'); $file = Helper::createTempFile();
file_put_contents($file, $paste); file_put_contents($file, $paste);
Request::setInputStream($file); Request::setInputStream($file);
$_SERVER['HTTP_X_REQUESTED_WITH'] = 'JSONHttpRequest'; $_SERVER['HTTP_X_REQUESTED_WITH'] = 'JSONHttpRequest';
@@ -385,7 +382,7 @@ class ControllerTest extends TestCase
$options['traffic']['limit'] = 0; $options['traffic']['limit'] = 0;
Helper::createIniFile(CONF, $options); Helper::createIniFile(CONF, $options);
$paste = Helper::getPasteJson(array('expire' => 'foo')); $paste = Helper::getPasteJson(array('expire' => 'foo'));
$file = tempnam(sys_get_temp_dir(), 'FOO'); $file = Helper::createTempFile();
file_put_contents($file, $paste); file_put_contents($file, $paste);
Request::setInputStream($file); Request::setInputStream($file);
$_SERVER['HTTP_X_REQUESTED_WITH'] = 'JSONHttpRequest'; $_SERVER['HTTP_X_REQUESTED_WITH'] = 'JSONHttpRequest';
@@ -416,7 +413,7 @@ class ControllerTest extends TestCase
Helper::createIniFile(CONF, $options); Helper::createIniFile(CONF, $options);
$paste = Helper::getPastePost(); $paste = Helper::getPastePost();
$paste['adata'][3] = 'neither 1 nor 0'; $paste['adata'][3] = 'neither 1 nor 0';
$file = tempnam(sys_get_temp_dir(), 'FOO'); $file = Helper::createTempFile();
file_put_contents($file, json_encode($paste)); file_put_contents($file, json_encode($paste));
Request::setInputStream($file); Request::setInputStream($file);
$_SERVER['HTTP_X_REQUESTED_WITH'] = 'JSONHttpRequest'; $_SERVER['HTTP_X_REQUESTED_WITH'] = 'JSONHttpRequest';
@@ -441,7 +438,7 @@ class ControllerTest extends TestCase
Helper::createIniFile(CONF, $options); Helper::createIniFile(CONF, $options);
$paste = Helper::getPastePost(); $paste = Helper::getPastePost();
$paste['adata'][2] = 'neither 1 nor 0'; $paste['adata'][2] = 'neither 1 nor 0';
$file = tempnam(sys_get_temp_dir(), 'FOO'); $file = Helper::createTempFile();
file_put_contents($file, json_encode($paste)); file_put_contents($file, json_encode($paste));
Request::setInputStream($file); Request::setInputStream($file);
$_SERVER['HTTP_X_REQUESTED_WITH'] = 'JSONHttpRequest'; $_SERVER['HTTP_X_REQUESTED_WITH'] = 'JSONHttpRequest';
@@ -465,7 +462,7 @@ class ControllerTest extends TestCase
public function testCreateBrokenUpload() public function testCreateBrokenUpload()
{ {
$paste = substr(Helper::getPasteJson(), 0, -10); $paste = substr(Helper::getPasteJson(), 0, -10);
$file = tempnam(sys_get_temp_dir(), 'FOO'); $file = Helper::createTempFile();
file_put_contents($file, $paste); file_put_contents($file, $paste);
Request::setInputStream($file); Request::setInputStream($file);
$_SERVER['HTTP_X_REQUESTED_WITH'] = 'JSONHttpRequest'; $_SERVER['HTTP_X_REQUESTED_WITH'] = 'JSONHttpRequest';
@@ -487,7 +484,7 @@ class ControllerTest extends TestCase
public function testCreateTooSoon() public function testCreateTooSoon()
{ {
$paste = Helper::getPasteJson(); $paste = Helper::getPasteJson();
$file = tempnam(sys_get_temp_dir(), 'FOO'); $file = Helper::createTempFile();
file_put_contents($file, $paste); file_put_contents($file, $paste);
Request::setInputStream($file); Request::setInputStream($file);
$_SERVER['HTTP_X_REQUESTED_WITH'] = 'JSONHttpRequest'; $_SERVER['HTTP_X_REQUESTED_WITH'] = 'JSONHttpRequest';
@@ -514,7 +511,7 @@ class ControllerTest extends TestCase
$options = parse_ini_file(CONF, true); $options = parse_ini_file(CONF, true);
$options['traffic']['limit'] = 0; $options['traffic']['limit'] = 0;
Helper::createIniFile(CONF, $options); Helper::createIniFile(CONF, $options);
$file = tempnam(sys_get_temp_dir(), 'FOO'); $file = Helper::createTempFile();
file_put_contents($file, '{"data":"","meta":{}}'); file_put_contents($file, '{"data":"","meta":{}}');
Request::setInputStream($file); Request::setInputStream($file);
$_SERVER['HTTP_X_REQUESTED_WITH'] = 'JSONHttpRequest'; $_SERVER['HTTP_X_REQUESTED_WITH'] = 'JSONHttpRequest';
@@ -538,7 +535,7 @@ class ControllerTest extends TestCase
$options['traffic']['limit'] = 0; $options['traffic']['limit'] = 0;
Helper::createIniFile(CONF, $options); Helper::createIniFile(CONF, $options);
$comment = Helper::getCommentJson(); $comment = Helper::getCommentJson();
$file = tempnam(sys_get_temp_dir(), 'FOO'); $file = Helper::createTempFile();
file_put_contents($file, $comment); file_put_contents($file, $comment);
Request::setInputStream($file); Request::setInputStream($file);
$_SERVER['HTTP_X_REQUESTED_WITH'] = 'JSONHttpRequest'; $_SERVER['HTTP_X_REQUESTED_WITH'] = 'JSONHttpRequest';
@@ -565,7 +562,7 @@ class ControllerTest extends TestCase
Helper::createIniFile(CONF, $options); Helper::createIniFile(CONF, $options);
$comment = Helper::getCommentPost(); $comment = Helper::getCommentPost();
$comment['parentid'] = 'foo'; $comment['parentid'] = 'foo';
$file = tempnam(sys_get_temp_dir(), 'FOO'); $file = Helper::createTempFile();
file_put_contents($file, json_encode($comment)); file_put_contents($file, json_encode($comment));
Request::setInputStream($file); Request::setInputStream($file);
$_SERVER['HTTP_X_REQUESTED_WITH'] = 'JSONHttpRequest'; $_SERVER['HTTP_X_REQUESTED_WITH'] = 'JSONHttpRequest';
@@ -591,7 +588,7 @@ class ControllerTest extends TestCase
$options['traffic']['limit'] = 0; $options['traffic']['limit'] = 0;
Helper::createIniFile(CONF, $options); Helper::createIniFile(CONF, $options);
$comment = Helper::getCommentJson(); $comment = Helper::getCommentJson();
$file = tempnam(sys_get_temp_dir(), 'FOO'); $file = Helper::createTempFile();
file_put_contents($file, $comment); file_put_contents($file, $comment);
Request::setInputStream($file); Request::setInputStream($file);
$_SERVER['HTTP_X_REQUESTED_WITH'] = 'JSONHttpRequest'; $_SERVER['HTTP_X_REQUESTED_WITH'] = 'JSONHttpRequest';
@@ -618,7 +615,7 @@ class ControllerTest extends TestCase
$options['traffic']['limit'] = 0; $options['traffic']['limit'] = 0;
Helper::createIniFile(CONF, $options); Helper::createIniFile(CONF, $options);
$comment = Helper::getCommentJson(); $comment = Helper::getCommentJson();
$file = tempnam(sys_get_temp_dir(), 'FOO'); $file = Helper::createTempFile();
file_put_contents($file, $comment); file_put_contents($file, $comment);
Request::setInputStream($file); Request::setInputStream($file);
$_SERVER['HTTP_X_REQUESTED_WITH'] = 'JSONHttpRequest'; $_SERVER['HTTP_X_REQUESTED_WITH'] = 'JSONHttpRequest';
@@ -647,7 +644,7 @@ class ControllerTest extends TestCase
$this->_data->createComment(Helper::getPasteId(), Helper::getPasteId(), Helper::getPasteId(), $comment); $this->_data->createComment(Helper::getPasteId(), Helper::getPasteId(), Helper::getPasteId(), $comment);
$this->assertTrue($this->_data->existsComment(Helper::getPasteId(), Helper::getPasteId(), Helper::getPasteId()), 'comment exists before posting data'); $this->assertTrue($this->_data->existsComment(Helper::getPasteId(), Helper::getPasteId(), Helper::getPasteId()), 'comment exists before posting data');
$comment = Helper::getCommentJson(); $comment = Helper::getCommentJson();
$file = tempnam(sys_get_temp_dir(), 'FOO'); $file = Helper::createTempFile();
file_put_contents($file, $comment); file_put_contents($file, $comment);
Request::setInputStream($file); Request::setInputStream($file);
$_SERVER['HTTP_X_REQUESTED_WITH'] = 'JSONHttpRequest'; $_SERVER['HTTP_X_REQUESTED_WITH'] = 'JSONHttpRequest';
@@ -884,7 +881,7 @@ class ControllerTest extends TestCase
$paste = Helper::getPaste(); $paste = Helper::getPaste();
$this->_data->create(Helper::getPasteId(), $paste); $this->_data->create(Helper::getPasteId(), $paste);
$this->assertTrue($this->_data->exists(Helper::getPasteId()), 'paste exists before deleting data'); $this->assertTrue($this->_data->exists(Helper::getPasteId()), 'paste exists before deleting data');
$file = tempnam(sys_get_temp_dir(), 'FOO'); $file = Helper::createTempFile();
file_put_contents($file, json_encode(array( file_put_contents($file, json_encode(array(
'deletetoken' => 'burnafterreading', 'deletetoken' => 'burnafterreading',
))); )));

View File

@@ -51,7 +51,7 @@ class JsonApiTest extends TestCase
$options['traffic']['limit'] = 0; $options['traffic']['limit'] = 0;
Helper::createIniFile(CONF, $options); Helper::createIniFile(CONF, $options);
$paste = Helper::getPasteJson(); $paste = Helper::getPasteJson();
$file = tempnam(sys_get_temp_dir(), 'FOO'); $file = Helper::createTempFile();
file_put_contents($file, $paste); file_put_contents($file, $paste);
Request::setInputStream($file); Request::setInputStream($file);
$_SERVER['HTTP_X_REQUESTED_WITH'] = 'JSONHttpRequest'; $_SERVER['HTTP_X_REQUESTED_WITH'] = 'JSONHttpRequest';
@@ -83,7 +83,7 @@ class JsonApiTest extends TestCase
$options['traffic']['limit'] = 0; $options['traffic']['limit'] = 0;
Helper::createIniFile(CONF, $options); Helper::createIniFile(CONF, $options);
$paste = Helper::getPasteJson(); $paste = Helper::getPasteJson();
$file = tempnam(sys_get_temp_dir(), 'FOO'); $file = Helper::createTempFile();
file_put_contents($file, $paste); file_put_contents($file, $paste);
Request::setInputStream($file); Request::setInputStream($file);
$_SERVER['QUERY_STRING'] = Helper::getPasteId(); $_SERVER['QUERY_STRING'] = Helper::getPasteId();
@@ -118,7 +118,7 @@ class JsonApiTest extends TestCase
$this->_model->create(Helper::getPasteId(), $data); $this->_model->create(Helper::getPasteId(), $data);
$this->assertTrue($this->_model->exists(Helper::getPasteId()), 'paste exists before deleting data'); $this->assertTrue($this->_model->exists(Helper::getPasteId()), 'paste exists before deleting data');
$paste = $this->_model->read(Helper::getPasteId()); $paste = $this->_model->read(Helper::getPasteId());
$file = tempnam(sys_get_temp_dir(), 'FOO'); $file = Helper::createTempFile();
file_put_contents($file, json_encode(array( file_put_contents($file, json_encode(array(
'deletetoken' => hash_hmac('sha256', Helper::getPasteId(), $paste['meta']['salt']), 'deletetoken' => hash_hmac('sha256', Helper::getPasteId(), $paste['meta']['salt']),
))); )));
@@ -146,7 +146,7 @@ class JsonApiTest extends TestCase
$this->_model->create(Helper::getPasteId(), $data); $this->_model->create(Helper::getPasteId(), $data);
$this->assertTrue($this->_model->exists(Helper::getPasteId()), 'paste exists before deleting data'); $this->assertTrue($this->_model->exists(Helper::getPasteId()), 'paste exists before deleting data');
$paste = $this->_model->read(Helper::getPasteId()); $paste = $this->_model->read(Helper::getPasteId());
$file = tempnam(sys_get_temp_dir(), 'FOO'); $file = Helper::createTempFile();
file_put_contents($file, json_encode(array( file_put_contents($file, json_encode(array(
'pasteid' => Helper::getPasteId(), 'pasteid' => Helper::getPasteId(),
'deletetoken' => hash_hmac('sha256', Helper::getPasteId(), $paste['meta']['salt']), 'deletetoken' => hash_hmac('sha256', Helper::getPasteId(), $paste['meta']['salt']),

View File

@@ -89,7 +89,7 @@ class RequestTest extends TestCase
$this->reset(); $this->reset();
$_SERVER['REQUEST_METHOD'] = 'PUT'; $_SERVER['REQUEST_METHOD'] = 'PUT';
$_SERVER['HTTP_X_REQUESTED_WITH'] = 'JSONHttpRequest'; $_SERVER['HTTP_X_REQUESTED_WITH'] = 'JSONHttpRequest';
$file = tempnam(sys_get_temp_dir(), 'FOO'); $file = Helper::createTempFile();
file_put_contents($file, '{"ct":"foo"}'); file_put_contents($file, '{"ct":"foo"}');
Request::setInputStream($file); Request::setInputStream($file);
$request = new Request; $request = new Request;
@@ -104,7 +104,7 @@ class RequestTest extends TestCase
$this->reset(); $this->reset();
$_SERVER['REQUEST_METHOD'] = 'POST'; $_SERVER['REQUEST_METHOD'] = 'POST';
$_SERVER['HTTP_ACCEPT'] = 'application/json, text/javascript, */*; q=0.01'; $_SERVER['HTTP_ACCEPT'] = 'application/json, text/javascript, */*; q=0.01';
$file = tempnam(sys_get_temp_dir(), 'FOO'); $file = Helper::createTempFile();
file_put_contents($file, '{"ct":"foo"}'); file_put_contents($file, '{"ct":"foo"}');
Request::setInputStream($file); Request::setInputStream($file);
$request = new Request; $request = new Request;
@@ -135,7 +135,7 @@ class RequestTest extends TestCase
$_SERVER['HTTP_X_REQUESTED_WITH'] = 'JSONHttpRequest'; $_SERVER['HTTP_X_REQUESTED_WITH'] = 'JSONHttpRequest';
$_SERVER['QUERY_STRING'] = $id; $_SERVER['QUERY_STRING'] = $id;
$_GET = array($id => ''); $_GET = array($id => '');
$file = tempnam(sys_get_temp_dir(), 'FOO'); $file = Helper::createTempFile();
file_put_contents($file, '{"deletetoken":"bar"}'); file_put_contents($file, '{"deletetoken":"bar"}');
Request::setInputStream($file); Request::setInputStream($file);
$request = new Request; $request = new Request;
@@ -149,7 +149,7 @@ class RequestTest extends TestCase
{ {
$this->reset(); $this->reset();
$_SERVER['REQUEST_METHOD'] = 'POST'; $_SERVER['REQUEST_METHOD'] = 'POST';
$file = tempnam(sys_get_temp_dir(), 'FOO'); $file = Helper::createTempFile();
file_put_contents($file, random_bytes(256)); file_put_contents($file, random_bytes(256));
Request::setInputStream($file); Request::setInputStream($file);
$request = new Request; $request = new Request;