]> granicus.if.org Git - php/commitdiff
Tests for lchown(), testfest.php.net task number 129.
authorFelix De Vliegher <felixdv@php.net>
Thu, 26 Jun 2008 09:10:54 +0000 (09:10 +0000)
committerFelix De Vliegher <felixdv@php.net>
Thu, 26 Jun 2008 09:10:54 +0000 (09:10 +0000)
ext/standard/tests/file/lchown_basic.phpt [new file with mode: 0644]
ext/standard/tests/file/lchown_error.phpt [new file with mode: 0644]

diff --git a/ext/standard/tests/file/lchown_basic.phpt b/ext/standard/tests/file/lchown_basic.phpt
new file mode 100644 (file)
index 0000000..0b7edb6
--- /dev/null
@@ -0,0 +1,43 @@
+--TEST--
+Test lchown() function : basic functionality 
+--SKIPIF--
+<?php
+if (substr(PHP_OS, 0, 3) == 'WIN') die('Skip: no windows support');
+?>
+--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() : basic functionality ***\n";
+$filename = dirname(__FILE__) . DIRECTORY_SEPARATOR . 'lchown.txt';
+$symlink = dirname(__FILE__) . DIRECTORY_SEPARATOR . 'symlink.txt';
+
+$uid = posix_getuid();
+
+var_dump( touch( $filename ) );
+var_dump( symlink( $filename, $symlink ) );
+var_dump( lchown( $filename, $uid ) );
+var_dump( fileowner( $symlink ) === $uid );
+
+?>
+===DONE===
+--CLEAN--
+<?php
+
+$filename = dirname(__FILE__) . DIRECTORY_SEPARATOR . 'lchown.txt';
+$symlink = dirname(__FILE__) . DIRECTORY_SEPARATOR . 'symlink.txt';
+unlink($filename);
+unlink($symlink);
+
+?>
+--EXPECTF--
+*** Testing lchown() : basic functionality ***
+bool(true)
+bool(true)
+bool(true)
+bool(true)
+===DONE===
diff --git a/ext/standard/tests/file/lchown_error.phpt b/ext/standard/tests/file/lchown_error.phpt
new file mode 100644 (file)
index 0000000..de7d922
--- /dev/null
@@ -0,0 +1,68 @@
+--TEST--
+Test lchown() function : error functionality 
+--SKIPIF--
+<?php
+if (substr(PHP_OS, 0, 3) == 'WIN') die('Skip: no windows support');
+?>
+--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 string, object given in %s on line %d
+bool(true)
+
+Warning: lchown() expects parameter 1 to be string, array given in %s on line %d
+bool(true)
+
+Warning: lchown(): Operation not permitted in %s on line %d
+bool(false)
+===DONE===