summaryrefslogtreecommitdiff
path: root/ext/standard/tests/file/lchown_error.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/lchown_error.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/lchown_error.phpt')
-rw-r--r--ext/standard/tests/file/lchown_error.phpt78
1 files changed, 78 insertions, 0 deletions
diff --git a/ext/standard/tests/file/lchown_error.phpt b/ext/standard/tests/file/lchown_error.phpt
new file mode 100644
index 0000000..979959e
--- /dev/null
+++ b/ext/standard/tests/file/lchown_error.phpt
@@ -0,0 +1,78 @@
+--TEST--
+Test lchown() function : error functionality
+--SKIPIF--
+<?php
+if (substr(PHP_OS, 0, 3) == 'WIN') die('skip no windows support');
+if (!function_exists("posix_getuid")) die("skip no posix_getuid()");
+// Skip if being run by root
+$filename = dirname(__FILE__)."/is_readable_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 lchown (string filename, mixed user)
+ * Description: Change file owner of a symlink
+ * Source code: ext/standard/filestat.c
+ * Alias to functions:
+ */
+
+echo "*** Testing lchown() : error functionality ***\n";
+
+// Set up
+$filename = dirname(__FILE__) . DIRECTORY_SEPARATOR . 'lchown.txt';
+touch( $filename );
+$uid = posix_getuid();
+
+
+// Less than expected arguments
+var_dump( lchown( $filename ) );
+
+// More than expected arguments
+var_dump( lchown( $filename, $uid, 'foobar' ) );
+
+// Non-existant filename
+var_dump( lchown( 'foobar_lchown.txt', $uid ) );
+
+// Wrong argument types
+var_dump( lchown( new StdClass(), $uid ) );
+var_dump( lchown( array(), $uid ) );
+
+// Bad user
+var_dump( lchown( $filename, -5 ) );
+
+?>
+===DONE===
+--CLEAN--
+<?php
+
+$filename = dirname(__FILE__) . DIRECTORY_SEPARATOR . 'lchown.txt';
+unlink($filename);
+
+?>
+--EXPECTF--
+*** Testing lchown() : error functionality ***
+
+Warning: lchown() expects exactly 2 parameters, 1 given in %s on line %d
+bool(true)
+
+Warning: lchown() expects exactly 2 parameters, 3 given in %s on line %d
+bool(true)
+
+Warning: lchown(): No such file or directory in %s on line %d
+bool(false)
+
+Warning: lchown() expects parameter 1 to be a valid path, object given in %s on line %d
+bool(true)
+
+Warning: lchown() expects parameter 1 to be a valid path, array given in %s on line %d
+bool(true)
+
+Warning: lchown(): Operation not permitted in %s on line %d
+bool(false)
+===DONE===