Просмотр исходного кода

Merge pull request #1763 from PrivateBin/linter-ai-findings

Linter AI findings
El RIDO 5 месяцев назад
Родитель
Сommit
add6fe712a
7 измененных файлов с 57 добавлено и 49 удалено
  1. 1 1
      bin/configuration-test-generator
  2. 9 8
      doc/Installation.md
  3. 11 1
      tst/Bootstrap.php
  4. 20 23
      tst/ControllerTest.php
  5. 8 8
      tst/I18nTest.php
  6. 4 4
      tst/JsonApiTest.php
  7. 4 4
      tst/RequestTest.php

+ 1 - 1
bin/configuration-test-generator

@@ -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';

+ 9 - 8
doc/Installation.md

@@ -110,7 +110,7 @@ file is divided into multiple sections, which are enclosed in square brackets.
 
 
 In the `[main]` section you can enable or disable the discussion feature, set
 In the `[main]` section you can enable or disable the discussion feature, set
 the limit of stored pastes and comments in bytes. The `[traffic]` section lets
 the limit of stored pastes and comments in bytes. The `[traffic]` section lets
-you set a time limit in seconds. Users may not post more often then this limit
+you set a time limit in seconds. Users may not post more often than this limit
 to your PrivateBin installation.
 to your PrivateBin installation.
 
 
 More details can be found in the
 More details can be found in the
@@ -120,13 +120,14 @@ More details can be found in the
 
 
 ### Web server configuration
 ### Web server configuration
 
 
-A `robots.txt` file is provided in the root dir of PrivateBin. It requests bots to
-not access (and potentially burn) your pastes. It is recommend to place it into the
-root of your web directory if you have installed PrivateBin in a subdirectory.
-Make sure to adjust it, so that the file paths match your installation.
-Of course also adjust the file, if you already use a `robots.txt`.  
-More bot detection is implemented in JavaScript, but note none of these mechanisms is a
-100% fail-safe way to prevent non-human visitors on your site.
+A `robots.txt` file is provided in the root dir of PrivateBin. It requests bots
+such as search engines and other automation tools to not index or crawl your
+site, so the paste keys are not leaked. It is recommended to place it into
+the root of your web directory if you have installed PrivateBin in a subdirectory.
+Make sure to adjust it, so that the file paths match your installation. Of course
+you can also adjust an existing `robots.txt` file. More bot detection is
+implemented in JavaScript, but note none of these mechanisms is a 100% fail-safe
+way to prevent non-human visitors on your site.
 
 
 A `.htaccess.disabled` file is provided in the root dir of PrivateBin. It blocks
 A `.htaccess.disabled` file is provided in the root dir of PrivateBin. It blocks
 some known robots and link-scanning bots. If you use Apache, you can rename the
 some known robots and link-scanning bots. If you use Apache, you can rename the

+ 11 - 1
tst/Bootstrap.php

@@ -243,7 +243,7 @@ class Helper
     }
     }
 
 
     /**
     /**
-     * restor backup of the config file
+     * restore backup of the config file
      *
      *
      * @return void
      * @return void
      */
      */
@@ -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

+ 20 - 23
tst/ControllerTest.php

@@ -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',
         )));
         )));

+ 8 - 8
tst/I18nTest.php

@@ -141,14 +141,14 @@ class I18nTest extends TestCase
         $_SERVER['HTTP_ACCEPT_LANGUAGE'] = 'sl;q=0.8,en-GB;q=0.6,en-US;q=0.4,en;q=0.2';
         $_SERVER['HTTP_ACCEPT_LANGUAGE'] = 'sl;q=0.8,en-GB;q=0.6,en-US;q=0.4,en;q=0.2';
         I18n::loadTranslations();
         I18n::loadTranslations();
         $this->assertEquals('sl', I18n::getLanguage(), 'browser language sl');
         $this->assertEquals('sl', I18n::getLanguage(), 'browser language sl');
-        $this->assertEquals('0 ura',  I18n::_('%d hours', 0), '0 hours in Slowene');
-        $this->assertEquals('1 uri',  I18n::_('%d hours', 1), '1 hour in Slowene');
-        $this->assertEquals('2 ure', I18n::_('%d hours', 2), '2 hours in Slowene');
-        $this->assertEquals('3 ur',  I18n::_('%d hours', 3), '3 hours in Slowene');
-        $this->assertEquals('11 ura',  I18n::_('%d hours', 11), '11 hours in Slowene');
-        $this->assertEquals('101 uri',  I18n::_('%d hours', 101), '101 hours in Slowene');
-        $this->assertEquals('102 ure', I18n::_('%d hours', 102), '102 hours in Slowene');
-        $this->assertEquals('104 ur',  I18n::_('%d hours', 104), '104 hours in Slowene');
+        $this->assertEquals('0 ura',  I18n::_('%d hours', 0), '0 hours in Slovene');
+        $this->assertEquals('1 uri',  I18n::_('%d hours', 1), '1 hour in Slovene');
+        $this->assertEquals('2 ure', I18n::_('%d hours', 2), '2 hours in Slovene');
+        $this->assertEquals('3 ur',  I18n::_('%d hours', 3), '3 hours in Slovene');
+        $this->assertEquals('11 ura',  I18n::_('%d hours', 11), '11 hours in Slovene');
+        $this->assertEquals('101 uri',  I18n::_('%d hours', 101), '101 hours in Slovene');
+        $this->assertEquals('102 ure', I18n::_('%d hours', 102), '102 hours in Slovene');
+        $this->assertEquals('104 ur',  I18n::_('%d hours', 104), '104 hours in Slovene');
     }
     }
 
 
     public function testBrowserLanguageCsDetection()
     public function testBrowserLanguageCsDetection()

+ 4 - 4
tst/JsonApiTest.php

@@ -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']),

+ 4 - 4
tst/RequestTest.php

@@ -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;