From d00fb264fb69baed3b65051ceb7e96bf8662176b Mon Sep 17 00:00:00 2001 From: El RIDO Date: Sun, 25 Jan 2026 10:37:32 +0100 Subject: [PATCH] deduplicate code, clarifications --- bin/configuration-test-generator | 2 +- tst/Bootstrap.php | 10 ++++++++ tst/ControllerTest.php | 43 +++++++++++++++----------------- tst/JsonApiTest.php | 8 +++--- tst/RequestTest.php | 8 +++--- 5 files changed, 39 insertions(+), 32 deletions(-) diff --git a/bin/configuration-test-generator b/bin/configuration-test-generator index 6abe0d55..0c784e52 100755 --- a/bin/configuration-test-generator +++ b/bin/configuration-test-generator @@ -517,7 +517,7 @@ EOT; EOT; } $code .= PHP_EOL . <<<'EOT' - $file = tempnam(sys_get_temp_dir(), 'FOO'); + $file = Helper::createTempFile(); file_put_contents($file, $paste); Request::setInputStream($file); $_SERVER['HTTP_X_REQUESTED_WITH'] = 'JSONHttpRequest'; diff --git a/tst/Bootstrap.php b/tst/Bootstrap.php index 8b248206..857f1a59 100644 --- a/tst/Bootstrap.php +++ b/tst/Bootstrap.php @@ -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 * by linus@flowingcreativity.net via php.net diff --git a/tst/ControllerTest.php b/tst/ControllerTest.php index db6b6ccb..a1bbfba3 100644 --- a/tst/ControllerTest.php +++ b/tst/ControllerTest.php @@ -136,10 +136,6 @@ class ControllerTest extends TestCase ); } - /** - * @expectedException Exception - * @expectedExceptionCode 2 - */ public function testConf() { file_put_contents(CONF, ''); @@ -176,7 +172,7 @@ class ControllerTest extends TestCase $options['traffic']['limit'] = 0; Helper::createIniFile(CONF, $options); $paste = Helper::getPasteJson(); - $file = tempnam(sys_get_temp_dir(), 'FOO'); + $file = Helper::createTempFile(); file_put_contents($file, $paste); Request::setInputStream($file); $_SERVER['HTTP_X_REQUESTED_WITH'] = 'JSONHttpRequest'; @@ -207,12 +203,13 @@ class ControllerTest extends TestCase $options['traffic']['limit'] = 0; Helper::createIniFile(CONF, $options); $paste = Helper::getPasteJson(array('expire' => 25)); - $file = tempnam(sys_get_temp_dir(), 'FOO'); + $file = Helper::createTempFile(); file_put_contents($file, $paste); Request::setInputStream($file); $_SERVER['HTTP_X_REQUESTED_WITH'] = 'JSONHttpRequest'; $_SERVER['REQUEST_METHOD'] = 'POST'; $_SERVER['REMOTE_ADDR'] = '::1'; + // Explicitly invoke TrafficLimiter to ensure limit applies to this test TrafficLimiter::canPass(); ob_start(); new Controller; @@ -239,7 +236,7 @@ class ControllerTest extends TestCase $options['traffic']['limit'] = 0; Helper::createIniFile(CONF, $options); $paste = Helper::getPasteJson(); - $file = tempnam(sys_get_temp_dir(), 'FOO'); + $file = Helper::createTempFile(); file_put_contents($file, $paste); Request::setInputStream($file); $_SERVER['HTTP_X_REQUESTED_WITH'] = 'JSONHttpRequest'; @@ -263,7 +260,7 @@ class ControllerTest extends TestCase $options['traffic']['header'] = 'X_FORWARDED_FOR'; Helper::createIniFile(CONF, $options); $paste = Helper::getPasteJson(); - $file = tempnam(sys_get_temp_dir(), 'FOO'); + $file = Helper::createTempFile(); file_put_contents($file, $paste); Request::setInputStream($file); $_SERVER['HTTP_X_FORWARDED_FOR'] = '::2'; @@ -296,7 +293,7 @@ class ControllerTest extends TestCase $paste = Helper::getPaste(); $this->_data->create(Helper::getPasteId(), $paste); $paste = Helper::getPasteJson(); - $file = tempnam(sys_get_temp_dir(), 'FOO'); + $file = Helper::createTempFile(); file_put_contents($file, $paste); Request::setInputStream($file); $_SERVER['HTTP_X_REQUESTED_WITH'] = 'JSONHttpRequest'; @@ -320,7 +317,7 @@ class ControllerTest extends TestCase $options['traffic']['limit'] = 0; Helper::createIniFile(CONF, $options); $paste = Helper::getPasteJson(); - $file = tempnam(sys_get_temp_dir(), 'FOO'); + $file = Helper::createTempFile(); file_put_contents($file, $paste); Request::setInputStream($file); $_SERVER['HTTP_X_REQUESTED_WITH'] = 'JSONHttpRequest'; @@ -352,7 +349,7 @@ class ControllerTest extends TestCase $options['traffic']['limit'] = 0; Helper::createIniFile(CONF, $options); $paste = Helper::getPasteJson(); - $file = tempnam(sys_get_temp_dir(), 'FOO'); + $file = Helper::createTempFile(); file_put_contents($file, $paste); Request::setInputStream($file); $_SERVER['HTTP_X_REQUESTED_WITH'] = 'JSONHttpRequest'; @@ -385,7 +382,7 @@ class ControllerTest extends TestCase $options['traffic']['limit'] = 0; Helper::createIniFile(CONF, $options); $paste = Helper::getPasteJson(array('expire' => 'foo')); - $file = tempnam(sys_get_temp_dir(), 'FOO'); + $file = Helper::createTempFile(); file_put_contents($file, $paste); Request::setInputStream($file); $_SERVER['HTTP_X_REQUESTED_WITH'] = 'JSONHttpRequest'; @@ -416,7 +413,7 @@ class ControllerTest extends TestCase Helper::createIniFile(CONF, $options); $paste = Helper::getPastePost(); $paste['adata'][3] = 'neither 1 nor 0'; - $file = tempnam(sys_get_temp_dir(), 'FOO'); + $file = Helper::createTempFile(); file_put_contents($file, json_encode($paste)); Request::setInputStream($file); $_SERVER['HTTP_X_REQUESTED_WITH'] = 'JSONHttpRequest'; @@ -441,7 +438,7 @@ class ControllerTest extends TestCase Helper::createIniFile(CONF, $options); $paste = Helper::getPastePost(); $paste['adata'][2] = 'neither 1 nor 0'; - $file = tempnam(sys_get_temp_dir(), 'FOO'); + $file = Helper::createTempFile(); file_put_contents($file, json_encode($paste)); Request::setInputStream($file); $_SERVER['HTTP_X_REQUESTED_WITH'] = 'JSONHttpRequest'; @@ -465,7 +462,7 @@ class ControllerTest extends TestCase public function testCreateBrokenUpload() { $paste = substr(Helper::getPasteJson(), 0, -10); - $file = tempnam(sys_get_temp_dir(), 'FOO'); + $file = Helper::createTempFile(); file_put_contents($file, $paste); Request::setInputStream($file); $_SERVER['HTTP_X_REQUESTED_WITH'] = 'JSONHttpRequest'; @@ -487,7 +484,7 @@ class ControllerTest extends TestCase public function testCreateTooSoon() { $paste = Helper::getPasteJson(); - $file = tempnam(sys_get_temp_dir(), 'FOO'); + $file = Helper::createTempFile(); file_put_contents($file, $paste); Request::setInputStream($file); $_SERVER['HTTP_X_REQUESTED_WITH'] = 'JSONHttpRequest'; @@ -514,7 +511,7 @@ class ControllerTest extends TestCase $options = parse_ini_file(CONF, true); $options['traffic']['limit'] = 0; Helper::createIniFile(CONF, $options); - $file = tempnam(sys_get_temp_dir(), 'FOO'); + $file = Helper::createTempFile(); file_put_contents($file, '{"data":"","meta":{}}'); Request::setInputStream($file); $_SERVER['HTTP_X_REQUESTED_WITH'] = 'JSONHttpRequest'; @@ -538,7 +535,7 @@ class ControllerTest extends TestCase $options['traffic']['limit'] = 0; Helper::createIniFile(CONF, $options); $comment = Helper::getCommentJson(); - $file = tempnam(sys_get_temp_dir(), 'FOO'); + $file = Helper::createTempFile(); file_put_contents($file, $comment); Request::setInputStream($file); $_SERVER['HTTP_X_REQUESTED_WITH'] = 'JSONHttpRequest'; @@ -565,7 +562,7 @@ class ControllerTest extends TestCase Helper::createIniFile(CONF, $options); $comment = Helper::getCommentPost(); $comment['parentid'] = 'foo'; - $file = tempnam(sys_get_temp_dir(), 'FOO'); + $file = Helper::createTempFile(); file_put_contents($file, json_encode($comment)); Request::setInputStream($file); $_SERVER['HTTP_X_REQUESTED_WITH'] = 'JSONHttpRequest'; @@ -591,7 +588,7 @@ class ControllerTest extends TestCase $options['traffic']['limit'] = 0; Helper::createIniFile(CONF, $options); $comment = Helper::getCommentJson(); - $file = tempnam(sys_get_temp_dir(), 'FOO'); + $file = Helper::createTempFile(); file_put_contents($file, $comment); Request::setInputStream($file); $_SERVER['HTTP_X_REQUESTED_WITH'] = 'JSONHttpRequest'; @@ -618,7 +615,7 @@ class ControllerTest extends TestCase $options['traffic']['limit'] = 0; Helper::createIniFile(CONF, $options); $comment = Helper::getCommentJson(); - $file = tempnam(sys_get_temp_dir(), 'FOO'); + $file = Helper::createTempFile(); file_put_contents($file, $comment); Request::setInputStream($file); $_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->assertTrue($this->_data->existsComment(Helper::getPasteId(), Helper::getPasteId(), Helper::getPasteId()), 'comment exists before posting data'); $comment = Helper::getCommentJson(); - $file = tempnam(sys_get_temp_dir(), 'FOO'); + $file = Helper::createTempFile(); file_put_contents($file, $comment); Request::setInputStream($file); $_SERVER['HTTP_X_REQUESTED_WITH'] = 'JSONHttpRequest'; @@ -884,7 +881,7 @@ class ControllerTest extends TestCase $paste = Helper::getPaste(); $this->_data->create(Helper::getPasteId(), $paste); $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( 'deletetoken' => 'burnafterreading', ))); diff --git a/tst/JsonApiTest.php b/tst/JsonApiTest.php index 90545c93..bc536d25 100644 --- a/tst/JsonApiTest.php +++ b/tst/JsonApiTest.php @@ -51,7 +51,7 @@ class JsonApiTest extends TestCase $options['traffic']['limit'] = 0; Helper::createIniFile(CONF, $options); $paste = Helper::getPasteJson(); - $file = tempnam(sys_get_temp_dir(), 'FOO'); + $file = Helper::createTempFile(); file_put_contents($file, $paste); Request::setInputStream($file); $_SERVER['HTTP_X_REQUESTED_WITH'] = 'JSONHttpRequest'; @@ -83,7 +83,7 @@ class JsonApiTest extends TestCase $options['traffic']['limit'] = 0; Helper::createIniFile(CONF, $options); $paste = Helper::getPasteJson(); - $file = tempnam(sys_get_temp_dir(), 'FOO'); + $file = Helper::createTempFile(); file_put_contents($file, $paste); Request::setInputStream($file); $_SERVER['QUERY_STRING'] = Helper::getPasteId(); @@ -118,7 +118,7 @@ class JsonApiTest extends TestCase $this->_model->create(Helper::getPasteId(), $data); $this->assertTrue($this->_model->exists(Helper::getPasteId()), 'paste exists before deleting data'); $paste = $this->_model->read(Helper::getPasteId()); - $file = tempnam(sys_get_temp_dir(), 'FOO'); + $file = Helper::createTempFile(); file_put_contents($file, json_encode(array( 'deletetoken' => hash_hmac('sha256', Helper::getPasteId(), $paste['meta']['salt']), ))); @@ -146,7 +146,7 @@ class JsonApiTest extends TestCase $this->_model->create(Helper::getPasteId(), $data); $this->assertTrue($this->_model->exists(Helper::getPasteId()), 'paste exists before deleting data'); $paste = $this->_model->read(Helper::getPasteId()); - $file = tempnam(sys_get_temp_dir(), 'FOO'); + $file = Helper::createTempFile(); file_put_contents($file, json_encode(array( 'pasteid' => Helper::getPasteId(), 'deletetoken' => hash_hmac('sha256', Helper::getPasteId(), $paste['meta']['salt']), diff --git a/tst/RequestTest.php b/tst/RequestTest.php index eb22655f..41794d5c 100644 --- a/tst/RequestTest.php +++ b/tst/RequestTest.php @@ -89,7 +89,7 @@ class RequestTest extends TestCase $this->reset(); $_SERVER['REQUEST_METHOD'] = 'PUT'; $_SERVER['HTTP_X_REQUESTED_WITH'] = 'JSONHttpRequest'; - $file = tempnam(sys_get_temp_dir(), 'FOO'); + $file = Helper::createTempFile(); file_put_contents($file, '{"ct":"foo"}'); Request::setInputStream($file); $request = new Request; @@ -104,7 +104,7 @@ class RequestTest extends TestCase $this->reset(); $_SERVER['REQUEST_METHOD'] = 'POST'; $_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"}'); Request::setInputStream($file); $request = new Request; @@ -135,7 +135,7 @@ class RequestTest extends TestCase $_SERVER['HTTP_X_REQUESTED_WITH'] = 'JSONHttpRequest'; $_SERVER['QUERY_STRING'] = $id; $_GET = array($id => ''); - $file = tempnam(sys_get_temp_dir(), 'FOO'); + $file = Helper::createTempFile(); file_put_contents($file, '{"deletetoken":"bar"}'); Request::setInputStream($file); $request = new Request; @@ -149,7 +149,7 @@ class RequestTest extends TestCase { $this->reset(); $_SERVER['REQUEST_METHOD'] = 'POST'; - $file = tempnam(sys_get_temp_dir(), 'FOO'); + $file = Helper::createTempFile(); file_put_contents($file, random_bytes(256)); Request::setInputStream($file); $request = new Request;