Annotation of embedaddon/php/ext/standard/tests/file/file_put_contents_variation7-win32.phpt, revision 1.1.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>