summaryrefslogtreecommitdiff
path: root/modules
diff options
context:
space:
mode:
Diffstat (limited to 'modules')
-rw-r--r--modules/gallery/helpers/system.php15
-rw-r--r--modules/gallery/tests/Mock_Built_In.php39
-rw-r--r--modules/gallery/tests/System_Helper_Test.php25
3 files changed, 5 insertions, 74 deletions
diff --git a/modules/gallery/helpers/system.php b/modules/gallery/helpers/system.php
index 9815d588..e7e58a70 100644
--- a/modules/gallery/helpers/system.php
+++ b/modules/gallery/helpers/system.php
@@ -47,20 +47,13 @@ class system_Core {
* It allows the caller to specify a prefix and an extension.
* It always places the file in TMPPATH.
*/
- static function temp_filename($prefix = "", $extension = "") {
- return self::_tempnam(TMPPATH, $prefix, ".$extension", "tempnam");
- }
-
- /**
- * This helper provides a dependency-injected implementation of tempnam.
- */
- static function _tempnam($dir, $prefix, $postfix, $builtin) {
+ static function temp_filename($prefix="", $extension="") {
do {
- $basename = call_user_func($builtin, $dir, $prefix);
+ $basename = tempnam(TMPPATH, $prefix);
if (!$basename) {
return false;
}
- $filename = $basename . $postfix;
+ $filename = "$basename.$extension";
$success = !file_exists($filename) && @rename($basename, $filename);
if (!$success) {
@unlink($basename);
@@ -68,4 +61,4 @@ class system_Core {
} while (!$success);
return $filename;
}
-} \ No newline at end of file
+}
diff --git a/modules/gallery/tests/Mock_Built_In.php b/modules/gallery/tests/Mock_Built_In.php
deleted file mode 100644
index b02e5ecf..00000000
--- a/modules/gallery/tests/Mock_Built_In.php
+++ /dev/null
@@ -1,39 +0,0 @@
-<?php defined("SYSPATH") or die("No direct script access.");
-/**
- * Gallery - a web based photo album viewer and editor
- * Copyright (C) 2011 Chad Parry
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or (at
- * your option) any later version.
- *
- * This program is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.
- */
-/**
- * Deterministic replacement for the built-in tempnam function.
- * This is useful in unit tests where a dependency on tempnam needs to be mocked.
- */
-class Mock_Built_In {
- private $nonces;
-
- function __construct() {
- $this->nonces = func_get_args();
- }
-
- function _tempnam($dir, $prefix) {
- if (empty($this->nonces))
- return false;
- $filename = "$dir/$prefix" . array_shift($this->nonces);
- if (!touch($filename))
- return false;
- return $filename;
- }
-}
diff --git a/modules/gallery/tests/System_Helper_Test.php b/modules/gallery/tests/System_Helper_Test.php
index dfe5d9ab..3d56c516 100644
--- a/modules/gallery/tests/System_Helper_Test.php
+++ b/modules/gallery/tests/System_Helper_Test.php
@@ -18,33 +18,10 @@
* Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.
*/
class System_Helper_Test extends Gallery_Unit_Test_Case {
- public function temp_filename_random_test() {
+ public function temp_filename_test() {
$filename = system::temp_filename("file", "ext");
$this->assert_true(file_exists($filename), "File not created");
unlink($filename);
$this->assert_pattern($filename, "|/file.*\\.ext$|");
}
-
- public function tempnam_collision_test() {
- require_once('Mock_Built_In.php');
- $existing = TMPPATH . "/file1.ext";
- $available = TMPPATH . "/file2.ext";
- touch($existing);
- $filename = system::_tempnam(TMPPATH, "file", ".ext",
- array(new Mock_Built_In("1", "2"), "_tempnam"));
- unlink($existing);
- $this->assert_true(file_exists($filename), "File not created");
- unlink($filename);
- $this->assert_equal($available, $filename, "Incorrect filename created");
- }
-
- public function tempnam_abort_test() {
- require_once('Mock_Built_In.php');
- $filename = system::_tempnam(TMPPATH, "file", ".ext",
- array(new Mock_Built_In(), "_tempnam"));
- if ($filename) {
- @unlink($filename);
- }
- $this->assert_false($filename, "Operation not aborted");
- }
}