1--TEST--
2Test copy() function: usage variations - destination file names(numerics/strings)
3--FILE--
4<?php
5/* Prototype: bool copy ( string $source, string $dest );
6   Description: Makes a copy of the file source to dest.
7     Returns TRUE on success or FALSE on failure.
8*/
9
10/* Test copy() function: In creation of destination file names containing numerics/strings
11     and checking the existence and size of destination files
12*/
13
14echo "*** Test copy() function: destination file names containing numerics/strings ***\n";
15$file_path = dirname(__FILE__);
16$src_file_name = $file_path."/copy_variation1.tmp";
17$file_handle = fopen($src_file_name, "w");
18fwrite( $file_handle, str_repeat(b"Hello2World...\n", 100) );
19fclose($file_handle);
20
21/* array of destination file names */
22$dest_files = array(
23
24  /* File names containing numerics, strings */
25  "copy.tmp",  //regular file name
26  "copy_copy_variation1.tmp",
27  ".tmp",  //file name only with extension
28  "123.tmp",  //file name starts with numeric and with regular extension
29  "copy_variation1.123",  //file name with numeric extension
30  "123",  //numeric
31  "123copy_variation1.tmp",  //file name containing numeric & string
32  "copy_variation.tmp123",  //file name containing string & numeric
33  chr(99).chr(111).chr(112).chr(121).chr(49).".tmp"  //file name containing ASCII values
34);
35
36echo "Size of the source file before copy operation => ";
37var_dump( filesize("$src_file_name") );
38clearstatcache();
39
40echo "\n-- Now applying copy() on source file to create copies --";
41$count = 1;
42foreach($dest_files as $dest_file) {
43  echo "\n-- Iteration $count --\n";
44
45  $dest_file_name = "$file_path/$dest_file";
46
47  echo "Copy operation => ";
48  var_dump( copy($src_file_name, $dest_file_name) );
49
50  echo "Existence of destination file => ";
51  var_dump( file_exists($dest_file_name) );
52
53  echo "Destination file name => ";
54  print($dest_file_name);
55  echo "\n";
56
57  echo "Size of source file => ";
58  var_dump( filesize($src_file_name) );
59  clearstatcache();
60
61  echo "Size of destination file => ";
62  var_dump( filesize($dest_file_name) );
63  clearstatcache();
64
65  unlink($dest_file_name);
66
67  $count++;
68}
69
70echo "*** Done ***\n";
71?>
72--CLEAN--
73<?php
74unlink(dirname(__FILE__)."/copy_variation1.tmp");
75?>
76--EXPECTF--
77*** Test copy() function: destination file names containing numerics/strings ***
78Size of the source file before copy operation => int(1500)
79
80-- Now applying copy() on source file to create copies --
81-- Iteration 1 --
82Copy operation => bool(true)
83Existence of destination file => bool(true)
84Destination file name => %s/copy.tmp
85Size of source file => int(1500)
86Size of destination file => int(1500)
87
88-- Iteration 2 --
89Copy operation => bool(true)
90Existence of destination file => bool(true)
91Destination file name => %s/copy_copy_variation1.tmp
92Size of source file => int(1500)
93Size of destination file => int(1500)
94
95-- Iteration 3 --
96Copy operation => bool(true)
97Existence of destination file => bool(true)
98Destination file name => %s/.tmp
99Size of source file => int(1500)
100Size of destination file => int(1500)
101
102-- Iteration 4 --
103Copy operation => bool(true)
104Existence of destination file => bool(true)
105Destination file name => %s/123.tmp
106Size of source file => int(1500)
107Size of destination file => int(1500)
108
109-- Iteration 5 --
110Copy operation => bool(true)
111Existence of destination file => bool(true)
112Destination file name => %s/copy_variation1.123
113Size of source file => int(1500)
114Size of destination file => int(1500)
115
116-- Iteration 6 --
117Copy operation => bool(true)
118Existence of destination file => bool(true)
119Destination file name => %s/123
120Size of source file => int(1500)
121Size of destination file => int(1500)
122
123-- Iteration 7 --
124Copy operation => bool(true)
125Existence of destination file => bool(true)
126Destination file name => %s/123copy_variation1.tmp
127Size of source file => int(1500)
128Size of destination file => int(1500)
129
130-- Iteration 8 --
131Copy operation => bool(true)
132Existence of destination file => bool(true)
133Destination file name => %s/copy_variation.tmp123
134Size of source file => int(1500)
135Size of destination file => int(1500)
136
137-- Iteration 9 --
138Copy operation => bool(true)
139Existence of destination file => bool(true)
140Destination file name => %s/copy1.tmp
141Size of source file => int(1500)
142Size of destination file => int(1500)
143*** Done ***
144