1--TEST--
2Test copy() function: usage variations - destination file names(case sensitive)
3--SKIPIF--
4<?php
5if(substr(PHP_OS, 0, 3) != "WIN")
6  die("skip only run on Windows");
7?>
8--FILE--
9<?php
10/* Prototype: bool copy ( string $source, string $dest );
11   Description: Makes a copy of the file source to dest.
12     Returns TRUE on success or FALSE on failure.
13*/
14
15/* Test copy() function: Checking case sensitivity in creation of destination file names
16     and the existence and size of destination files
17*/
18
19echo "*** Test copy() function: checking case sensitivity in creation of destination file names ***\n";
20$file_path = dirname(__FILE__);
21$src_file_name = $file_path."/copy_variation5.tmp";
22$file_handle = fopen($src_file_name, "w");
23fwrite( $file_handle, str_repeat(b"Hello2World...\n", 100) );
24fclose($file_handle);
25
26/* array of destination file names */
27$dest_files = array(
28
29  /* Checking case sensitiveness */
30  "COPY.tmp",
31  "COPY.TMP",
32  "CopY.TMP"
33);
34
35echo "Size of the source file before copy operation => ";
36var_dump( filesize($src_file_name) );
37clearstatcache();
38
39echo "\n-- Now applying copy() on source file to create copies --";
40$count = 1;
41foreach($dest_files as $dest_file) {
42
43  echo "\n-- Iteration $count --\n";
44  $dest_file_name = $file_path."/$dest_file";
45
46  echo "Copy operation => ";
47  var_dump( copy($src_file_name, $dest_file_name) );
48
49  echo "Existence of destination file => ";
50  var_dump( file_exists($dest_file_name) );
51
52  echo "Destination file name => ";
53  print($dest_file_name);
54  echo "\n";
55
56  echo "Size of source file => ";
57  var_dump( filesize($src_file_name) );
58  clearstatcache();
59
60  echo "Size of destination file => ";
61  var_dump( filesize($dest_file_name) );
62  clearstatcache();
63
64  $count++;
65}
66
67
68$count = 1;
69foreach($dest_files as $dest_file) {
70  unlink($file_path."/".$dest_file);
71  $count++;
72}
73
74echo "*** Done ***\n";
75?>
76
77--CLEAN--
78<?php
79unlink(dirname(__FILE__)."/copy_variation5.tmp");
80?>
81
82--EXPECTF--
83*** Test copy() function: checking case sensitivity in creation of destination file names ***
84Size of the source file before copy operation => int(1500)
85
86-- Now applying copy() on source file to create copies --
87-- Iteration 1 --
88Copy operation => bool(true)
89Existence of destination file => bool(true)
90Destination file name => %s/COPY.tmp
91Size of source file => int(1500)
92Size of destination file => int(1500)
93
94-- Iteration 2 --
95Copy operation => bool(true)
96Existence of destination file => bool(true)
97Destination file name => %s/COPY.TMP
98Size of source file => int(1500)
99Size of destination file => int(1500)
100
101-- Iteration 3 --
102Copy operation => bool(true)
103Existence of destination file => bool(true)
104Destination file name => %s/CopY.TMP
105Size of source file => int(1500)
106Size of destination file => int(1500)
107
108Warning: unlink(%s/COPY.TMP): No such file or directory in %s on line %d
109
110Warning: unlink(%s/CopY.TMP): No such file or directory in %s on line %d
111*** Done ***
112