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 = __DIR__;
21$src_file_name = $file_path."/copy_variation5.tmp";
22$file_handle = fopen($src_file_name, "w");
23fwrite( $file_handle, str_repeat("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--CLEAN--
77<?php
78unlink(__DIR__."/copy_variation5.tmp");
79?>
80--EXPECTF--
81*** Test copy() function: checking case sensitivity in creation of destination file names ***
82Size of the source file before copy operation => int(1500)
83
84-- Now applying copy() on source file to create copies --
85-- Iteration 1 --
86Copy operation => bool(true)
87Existence of destination file => bool(true)
88Destination file name => %s/COPY.tmp
89Size of source file => int(1500)
90Size of destination file => int(1500)
91
92-- Iteration 2 --
93Copy operation => bool(true)
94Existence of destination file => bool(true)
95Destination file name => %s/COPY.TMP
96Size of source file => int(1500)
97Size of destination file => int(1500)
98
99-- Iteration 3 --
100Copy operation => bool(true)
101Existence of destination file => bool(true)
102Destination file name => %s/CopY.TMP
103Size of source file => int(1500)
104Size of destination file => int(1500)
105
106Warning: unlink(%s/COPY.TMP): No such file or directory in %s on line %d
107
108Warning: unlink(%s/CopY.TMP): No such file or directory in %s on line %d
109*** Done ***
110