Annotation of embedaddon/php/ext/standard/tests/file/file_put_contents_variation7-win32.phpt, revision 1.1
1.1 ! misho 1: --TEST--
! 2: Test file_put_contents() function : usage variation - various absolute and relative paths
! 3: --CREDITS--
! 4: Dave Kelsey <d_kelsey@uk.ibm.com>
! 5: --SKIPIF--
! 6: <?php
! 7: if(substr(PHP_OS, 0, 3) != "WIN")
! 8: die("skip Only run on Windows");
! 9: ?>
! 10: --FILE--
! 11: <?php
! 12: /* Prototype : int file_put_contents(string file, mixed data [, int flags [, resource context]])
! 13: * Description: Write/Create a file with contents data and return the number of bytes written
! 14: * Source code: ext/standard/file.c
! 15: * Alias to functions:
! 16: */
! 17:
! 18: echo "*** Testing file_put_contents() : usage variation ***\n";
! 19:
! 20: $mainDir = "filePutContentsVar7.dir";
! 21: $subDir = "filePutContentsVar7Sub";
! 22: $absMainDir = dirname(__FILE__)."/".$mainDir;
! 23: mkdir($absMainDir);
! 24: $absSubDir = $absMainDir."\\".$subDir;
! 25: mkdir($absSubDir);
! 26:
! 27: $old_dir_path = getcwd();
! 28: chdir(dirname(__FILE__));
! 29: $unixifiedDir = '/'.substr(str_replace('\\','/',$absSubDir),3);
! 30:
! 31:
! 32: // Note invalid dirs in p8 result in (The system cannot find the path specified.)
! 33: // rather than No Such File or Directory in php.net
! 34: $allDirs = array(
! 35: // absolute paths
! 36: "$absSubDir\\",
! 37: "$absSubDir\\..\\".$subDir,
! 38: "$absSubDir\\\\..\\.\\".$subDir,
! 39: "$absSubDir\\..\\..\\".$mainDir."\\.\\".$subDir,
! 40: "$absSubDir\\..\\\\\\".$subDir."\\\\..\\\\..\\".$subDir,
! 41: "$absSubDir\\BADDIR",
! 42:
! 43: // relative paths
! 44: $mainDir."\\".$subDir,
! 45: $mainDir."\\\\".$subDir,
! 46: $mainDir."\\\\\\".$subDir,
! 47: ".\\".$mainDir."\\..\\".$mainDir."\\".$subDir,
! 48: "BADDIR",
! 49:
! 50: // unixifed path
! 51: $unixifiedDir,
! 52: );
! 53:
! 54: $filename = 'FileGetContentsVar7.tmp';
! 55: $absFile = $absSubDir.'/'.$filename;
! 56: $data = "This was the written data";
! 57:
! 58: for($i = 0; $i<count($allDirs); $i++) {
! 59: $j = $i+1;
! 60: $dir = $allDirs[$i];
! 61: echo "\n-- Iteration $j --\n";
! 62: $res = file_put_contents($dir."\\".$filename, ($data + $i));
! 63: if ($res !== false) {
! 64: $in = file_get_contents($absFile);
! 65: if ($in == ($data + $i)) {
! 66: echo "Data written correctly\n";
! 67: }
! 68: else {
! 69: echo "Data not written correctly or to correct place\n";
! 70: }
! 71: unlink($dir."/".$filename);
! 72: }
! 73: else {
! 74: echo "No data written\n";
! 75: }
! 76:
! 77: }
! 78:
! 79: chdir($old_dir_path);
! 80: rmdir($absSubDir);
! 81: rmdir($absMainDir);
! 82:
! 83: echo "\n*** Done ***\n";
! 84: ?>
! 85: --EXPECTF--
! 86: *** Testing file_put_contents() : usage variation ***
! 87:
! 88: -- Iteration 1 --
! 89: Data written correctly
! 90:
! 91: -- Iteration 2 --
! 92: Data written correctly
! 93:
! 94: -- Iteration 3 --
! 95: Data written correctly
! 96:
! 97: -- Iteration 4 --
! 98: Data written correctly
! 99:
! 100: -- Iteration 5 --
! 101:
! 102: Warning: file_put_contents(%sfilePutContentsVar7.dir\filePutContentsVar7Sub\..\\\filePutContentsVar7Sub\\..\\..\filePutContentsVar7Sub\FileGetContentsVar7.tmp): failed to open stream: %s in %s on line %d
! 103: No data written
! 104:
! 105: -- Iteration 6 --
! 106:
! 107: Warning: file_put_contents(%sfilePutContentsVar7.dir\filePutContentsVar7Sub\BADDIR\FileGetContentsVar7.tmp): failed to open stream: %s in %s on line %d
! 108: No data written
! 109:
! 110: -- Iteration 7 --
! 111: Data written correctly
! 112:
! 113: -- Iteration 8 --
! 114: Data written correctly
! 115:
! 116: -- Iteration 9 --
! 117: Data written correctly
! 118:
! 119: -- Iteration 10 --
! 120: Data written correctly
! 121:
! 122: -- Iteration 11 --
! 123:
! 124: Warning: file_put_contents(BADDIR\FileGetContentsVar7.tmp): failed to open stream: %s in %s on line %d
! 125: No data written
! 126:
! 127: -- Iteration 12 --
! 128: Data written correctly
! 129:
! 130: *** Done ***
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>