1--TEST--
2Test rename() function : variation - various invalid paths
3--CREDITS--
4Dave Kelsey <d_kelsey@uk.ibm.com>
5--SKIPIF--
6<?php
7if(substr(PHP_OS, 0, 3) == "WIN")
8  die("skip. Not for Windows");
9?>
10--CONFLICTS--
11obscure_filename
12--FILE--
13<?php
14/* Prototype  : bool rename(string old_name, string new_name[, resource context])
15 * Description: Rename a file
16 * Source code: ext/standard/file.c
17 * Alias to functions:
18 */
19
20echo "*** Testing rename() with obscure files ***\n";
21$file_path = __DIR__."/renameVar13";
22$aFile = $file_path.'/afile.tmp';
23
24mkdir($file_path);
25
26/* An array of files */
27$names_arr = array(
28  /* Invalid args */
29  -1,
30  TRUE,
31  FALSE,
32  NULL,
33  "",
34  " ",
35  "\0",
36  array(),
37
38  /* prefix with path separator of a non existing directory*/
39  "/no/such/file/dir",
40  "php/php"
41
42);
43
44for( $i=0; $i<count($names_arr); $i++ ) {
45  $name = $names_arr[$i];
46  echo @"-- testing '$name' --\n";
47  touch($aFile);
48  var_dump(rename($aFile, $name));
49  if (file_exists($name)) {
50     unlink($name);
51  }
52  if (file_exists($aFile)) {
53     unlink($aFile);
54  }
55  var_dump(rename($name, $aFile));
56  if (file_exists($aFile)) {
57     unlink($aFile);
58  }
59}
60
61rmdir($file_path);
62?>
63--EXPECTF--
64*** Testing rename() with obscure files ***
65-- testing '-1' --
66bool(true)
67
68Warning: rename(-1,%s/renameVar13/afile.tmp): No such file or directory in %s on line %d
69bool(false)
70-- testing '1' --
71bool(true)
72
73Warning: rename(1,%s/renameVar13/afile.tmp): No such file or directory in %s on line %d
74bool(false)
75-- testing '' --
76
77Warning: rename(%s/renameVar13/afile.tmp,): %s in %s on line %d
78bool(false)
79
80Warning: rename(,%s/renameVar13/afile.tmp): %s in %s on line %d
81bool(false)
82-- testing '' --
83
84Warning: rename(%s/renameVar13/afile.tmp,): %s in %s on line %d
85bool(false)
86
87Warning: rename(,%s/renameVar13/afile.tmp): %s in %s on line %d
88bool(false)
89-- testing '' --
90
91Warning: rename(%s/renameVar13/afile.tmp,): %s in %s on line %d
92bool(false)
93
94Warning: rename(,%s/renameVar13/afile.tmp): %s in %s on line %d
95bool(false)
96-- testing ' ' --
97bool(true)
98
99Warning: rename( ,%s/renameVar13/afile.tmp): No such file or directory in %s on line %d
100bool(false)
101-- testing '%s' --
102
103Warning: rename() %s in %s on line %d
104bool(false)
105
106Warning: file_exists() expects parameter 1 to be a valid path, string given in %s on line %d
107
108Warning: rename() expects parameter 1 to be a valid path, string given in %s on line %d
109bool(false)
110-- testing 'Array' --
111
112Warning: rename() expects parameter 2 to be a valid path, array given in %s on line %d
113bool(false)
114
115Warning: file_exists() expects parameter 1 to be a valid path, array given in %s on line %d
116
117Warning: rename() expects parameter 1 to be a valid path, array given in %s on line %d
118bool(false)
119-- testing '/no/such/file/dir' --
120
121Warning: rename(%s/renameVar13/afile.tmp,/no/such/file/dir): No such file or directory in %s on line %d
122bool(false)
123
124Warning: rename(/no/such/file/dir,%s/renameVar13/afile.tmp): No such file or directory in %s on line %d
125bool(false)
126-- testing 'php/php' --
127
128Warning: rename(%s/renameVar13/afile.tmp,php/php): %s directory in %s on line %d
129bool(false)
130
131Warning: rename(php/php,%s/renameVar13/afile.tmp): %s directory in %s on line %d
132bool(false)
133