summaryrefslogtreecommitdiff
path: root/ext/standard/tests/file/unlink_variation1.phpt
diff options
context:
space:
mode:
authorLorry Tar Creator <lorry-tar-importer@baserock.org>2013-03-14 05:42:27 +0000
committer <>2013-04-03 16:25:08 +0000
commitc4dd7a1a684490673e25aaf4fabec5df138854c4 (patch)
tree4d57c44caae4480efff02b90b9be86f44bf25409 /ext/standard/tests/file/unlink_variation1.phpt
downloadphp2-master.tar.gz
Imported from /home/lorry/working-area/delta_php2/php-5.4.13.tar.bz2.HEADphp-5.4.13master
Diffstat (limited to 'ext/standard/tests/file/unlink_variation1.phpt')
-rw-r--r--ext/standard/tests/file/unlink_variation1.phpt92
1 files changed, 92 insertions, 0 deletions
diff --git a/ext/standard/tests/file/unlink_variation1.phpt b/ext/standard/tests/file/unlink_variation1.phpt
new file mode 100644
index 0000000..c27c13d
--- /dev/null
+++ b/ext/standard/tests/file/unlink_variation1.phpt
@@ -0,0 +1,92 @@
+--TEST--
+Test unlink() function : usage variations - unlinking file in a directory
+--SKIPIF--
+<?php
+if (substr(PHP_OS, 0, 3) == 'WIN') {
+ die('skip only on Linux');
+}
+// Skip if being run by root (files are always readable, writeable and executable)
+$filename = dirname(__FILE__)."/unlink_root_check.tmp";
+$fp = fopen($filename, 'w');
+fclose($fp);
+if(fileowner($filename) == 0) {
+ unlink ($filename);
+ die('skip cannot be run as root');
+}
+
+unlink($filename);
+?>
+--FILE--
+<?php
+/* Prototype : bool unlink ( string $filename [, resource $context] );
+ Description : Deletes filename
+*/
+
+/* Delete file having default permission but its dir having readonly permission
+ Delete file having readonly permission but dir having default permission
+*/
+
+
+$file_path = dirname(__FILE__);
+
+// temp dir name used here
+$dirname = "$file_path/unlink_variation1";
+// temp filename used here
+$filename = "$dirname/unlink_variation1.tmp";
+
+echo "\n*** Testing unlink() on file inside a directory ***\n";
+// create temp dir
+mkdir($dirname);
+// create temp file inside $dirname
+$fp = fopen($filename, "w");
+fclose($fp);
+
+echo "-- Unlink file having default permission and its dir having read only permission --\n";
+// remove write permission of $dirname
+var_dump( chmod($dirname, 0444) );
+// now try deleting $filename
+var_dump( unlink($filename) ); // expected false
+var_dump( file_exists($filename) ); // confirm file is deleted
+
+// remove the dir
+var_dump( chmod($dirname, 0777) );
+var_dump( unlink($filename) ); // expected true
+var_dump( rmdir($dirname) );
+
+echo "\n-- Unlinking file without write permission, its dir having default permission --\n";
+// create the temp dir
+var_dump( mkdir($dirname) );
+// create the temp file
+$fp = fopen($filename, "w");
+fclose($fp);
+
+// remove write permission from file
+var_dump( chmod($filename, 0444) );
+// now try deleting temp file inside $dirname
+var_dump( unlink($filename) ); // expected: true
+var_dump( file_exists($filename) ); // expected: false
+
+// remove temp dir
+var_dump( rmdir($dirname) );
+
+echo "Done\n";
+?>
+--EXPECTF--
+*** Testing unlink() on file inside a directory ***
+-- Unlink file having default permission and its dir having read only permission --
+bool(true)
+
+Warning: unlink(%s): %s in %s on line %d
+bool(false)
+bool(false)
+bool(true)
+bool(true)
+bool(true)
+
+-- Unlinking file without write permission, its dir having default permission --
+bool(true)
+bool(true)
+bool(true)
+bool(false)
+bool(true)
+Done \ No newline at end of file