Annotation of embedaddon/php/ext/standard/tests/file/fopen_variation5.phpt, revision 1.1
1.1 ! misho 1: --TEST--
! 2: Test fopen() function : variation: use include path and stream context (absolute directories in path)
! 3: --CREDITS--
! 4: Dave Kelsey <d_kelsey@uk.ibm.com>
! 5: --FILE--
! 6: <?php
! 7: /* Prototype : resource fopen(string filename, string mode [, bool use_include_path [, resource context]])
! 8: * Description: Open a file or a URL and return a file pointer
! 9: * Source code: ext/standard/file.c
! 10: * Alias to functions:
! 11: */
! 12:
! 13:
! 14:
! 15: //create the include directory structure
! 16: $thisTestDir = basename(__FILE__, ".php") . ".dir";
! 17: mkdir($thisTestDir);
! 18: chdir($thisTestDir);
! 19:
! 20: $workingDir = "workdir";
! 21: $filename = basename(__FILE__, ".php") . ".tmp";
! 22: $scriptDir = dirname(__FILE__);
! 23: $baseDir = getcwd();
! 24: $secondFile = $baseDir."/dir2/".$filename;
! 25: $firstFile = "../dir1/".$filename;
! 26: $scriptFile = $scriptDir.'/'.$filename;
! 27:
! 28: $newdirs = array("dir1", "dir2", "dir3");
! 29: $pathSep = ":";
! 30: $newIncludePath = "";
! 31: if(substr(PHP_OS, 0, 3) == 'WIN' ) {
! 32: $pathSep = ";";
! 33: }
! 34: foreach($newdirs as $newdir) {
! 35: mkdir($newdir);
! 36: $newIncludePath .= $baseDir.'/'.$newdir.$pathSep;
! 37: }
! 38: mkdir($workingDir);
! 39: chdir($workingDir);
! 40:
! 41: //define the files to go into these directories, create one in dir2
! 42: echo "\n--- testing include path ---\n";
! 43: set_include_path($newIncludePath);
! 44: $modes = array("r", "r+", "rt");
! 45: foreach($modes as $mode) {
! 46: test_fopen($mode);
! 47: }
! 48: restore_include_path();
! 49:
! 50: // remove the directory structure
! 51: chdir($baseDir);
! 52: rmdir($workingDir);
! 53: foreach($newdirs as $newdir) {
! 54: rmdir($newdir);
! 55: }
! 56:
! 57: chdir("..");
! 58: rmdir($thisTestDir);
! 59:
! 60:
! 61: function test_fopen($mode) {
! 62: global $scriptFile, $secondFile, $firstFile, $filename;
! 63:
! 64: // create a file in the middle directory
! 65: $h = fopen($secondFile, "w");
! 66: fwrite($h, (binary) "in dir2");
! 67: fclose($h);
! 68:
! 69: echo "\n** testing with mode=$mode **\n";
! 70: // should read dir2 file
! 71: $h = fopen($filename, $mode, true);
! 72: fpassthru($h);
! 73: fclose($h);
! 74: echo "\n";
! 75:
! 76: //create a file in dir1
! 77: $h = fopen($firstFile, "w");
! 78: fwrite($h, (binary) "in dir1");
! 79: fclose($h);
! 80:
! 81: //should now read dir1 file
! 82: $h = fopen($filename, $mode, true);
! 83: fpassthru($h);
! 84: fclose($h);
! 85: echo "\n";
! 86:
! 87: // create a file in working directory
! 88: $h = fopen($filename, "w");
! 89: fwrite($h, (binary) "in working dir");
! 90: fclose($h);
! 91:
! 92: //should still read dir1 file
! 93: $h = fopen($filename, $mode, true);
! 94: fpassthru($h);
! 95: fclose($h);
! 96: echo "\n";
! 97:
! 98: unlink($firstFile);
! 99: unlink($secondFile);
! 100:
! 101: //should read the file in working dir
! 102: $h = fopen($filename, $mode, true);
! 103: fpassthru($h);
! 104: fclose($h);
! 105: echo "\n";
! 106:
! 107: // create a file in the script directory
! 108: $h = fopen($scriptFile, "w");
! 109: fwrite($h, (binary) "in script dir");
! 110: fclose($h);
! 111:
! 112: //should read the file in script dir
! 113: $h = fopen($filename, $mode, true);
! 114: fpassthru($h);
! 115: fclose($h);
! 116: echo "\n";
! 117:
! 118: //cleanup
! 119: unlink($filename);
! 120: unlink($scriptFile);
! 121:
! 122: }
! 123:
! 124: ?>
! 125: ===DONE===
! 126: --EXPECTF--
! 127:
! 128: --- testing include path ---
! 129:
! 130: ** testing with mode=r **
! 131: in dir2
! 132: in dir1
! 133: in dir1
! 134: in working dir
! 135: in script dir
! 136:
! 137: ** testing with mode=r+ **
! 138: in dir2
! 139: in dir1
! 140: in dir1
! 141: in working dir
! 142: in script dir
! 143:
! 144: ** testing with mode=rt **
! 145: in dir2
! 146: in dir1
! 147: in dir1
! 148: in working dir
! 149: in script dir
! 150: ===DONE===
! 151:
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>