1--TEST--
2Test fopen() function : variation: file uri, no use include path
3--CREDITS--
4Dave Kelsey <d_kelsey@uk.ibm.com>
5--SKIPIF--
6<?php
7if(substr(PHP_OS, 0, 3) == "WIN")
8  die("skip not for Windows");
9?>
10--FILE--
11<?php
12/* Prototype  : resource fopen(string filename, string mode [, bool use_include_path [, resource context]])
13 * Description: Open a file or a URL and return a file pointer
14 * Source code: ext/standard/file.c
15 * Alias to functions:
16 */
17
18echo "*** Testing fopen() : variation ***\n";
19
20// fopen with interesting windows paths.
21$testDir = 'fopen14.tmpDir';
22$absTestDir = getcwd().'/'.$testDir;
23$file = "fopen_variation14.tmp";
24$absFile = $absTestDir.'/'.$file;
25
26mkdir($testDir);
27
28$files = array("file://$testDir/$file",
29               "file://./$testDir/$file",
30               "file://$absTestDir/$file"
31);
32
33runtest($files);
34
35chdir($testDir);
36$files = array("file://../$testDir/$file",
37               "file://$absTestDir/$file",
38);
39runtest($files);
40chdir("..");
41rmdir($testDir);
42
43function runtest($fileURIs) {
44   global $absFile;
45   $iteration = 0;
46   foreach($fileURIs as $fileURI) {
47      echo "--- READ: $fileURI ---\n";
48
49      $readData = "read:$iteration";
50      $writeData = "write:$iteration";
51
52      // create the file and test read
53      $h = fopen($absFile, 'w');
54      fwrite($h, $readData);
55      fclose($h);
56
57      $h = fopen($fileURI, 'r');
58      if ($h !== false) {
59         if (fread($h, 4096) != $readData) {
60            echo "contents not correct\n";
61         }
62         else {
63            echo "test passed\n";
64         }
65         fclose($h);
66      }
67      unlink($absFile);
68
69      echo "--- WRITE: $fileURI ---\n";
70      // create the file to test write
71      $h = fopen($fileURI, 'w');
72      if ($h !== false) {
73	      fwrite($h, $writeData);
74	      fclose($h);
75
76	      $h = fopen($absFile, 'r');
77	      if ($h !== false) {
78	         if (fread($h, 4096) != $writeData) {
79	            echo "contents not correct\n";
80	         }
81	         else {
82	            echo "test passed\n";
83	         }
84	         fclose($h);
85	      }
86	      unlink($absFile);
87	   }
88   }
89}
90
91
92?>
93===DONE===
94--EXPECTF--
95*** Testing fopen() : variation ***
96--- READ: file://fopen14.tmpDir/fopen_variation14.tmp ---
97
98Warning: fopen(): remote host file access not supported, file://fopen14.tmpDir/fopen_variation14.tmp in %s on line %d
99
100Warning: fopen(file://fopen14.tmpDir/fopen_variation14.tmp): failed to open stream: no suitable wrapper could be found in %s on line %d
101--- WRITE: file://fopen14.tmpDir/fopen_variation14.tmp ---
102
103Warning: fopen(): remote host file access not supported, file://fopen14.tmpDir/fopen_variation14.tmp in %s on line %d
104
105Warning: fopen(file://fopen14.tmpDir/fopen_variation14.tmp): failed to open stream: no suitable wrapper could be found in %s on line %d
106--- READ: file://./fopen14.tmpDir/fopen_variation14.tmp ---
107
108Warning: fopen(): remote host file access not supported, file://./fopen14.tmpDir/fopen_variation14.tmp in %s on line %d
109
110Warning: fopen(file://./fopen14.tmpDir/fopen_variation14.tmp): failed to open stream: no suitable wrapper could be found in %s on line %d
111--- WRITE: file://./fopen14.tmpDir/fopen_variation14.tmp ---
112
113Warning: fopen(): remote host file access not supported, file://./fopen14.tmpDir/fopen_variation14.tmp in %s on line %d
114
115Warning: fopen(file://./fopen14.tmpDir/fopen_variation14.tmp): failed to open stream: no suitable wrapper could be found in %s on line %d
116--- READ: file:///%s/fopen14.tmpDir/fopen_variation14.tmp ---
117test passed
118--- WRITE: file:///%s/fopen14.tmpDir/fopen_variation14.tmp ---
119test passed
120--- READ: file://../fopen14.tmpDir/fopen_variation14.tmp ---
121
122Warning: fopen(): remote host file access not supported, file://../fopen14.tmpDir/fopen_variation14.tmp in %s on line %d
123
124Warning: fopen(file://../fopen14.tmpDir/fopen_variation14.tmp): failed to open stream: no suitable wrapper could be found in %s on line %d
125--- WRITE: file://../fopen14.tmpDir/fopen_variation14.tmp ---
126
127Warning: fopen(): remote host file access not supported, file://../fopen14.tmpDir/fopen_variation14.tmp in %s on line %d
128
129Warning: fopen(file://../fopen14.tmpDir/fopen_variation14.tmp): failed to open stream: no suitable wrapper could be found in %s on line %d
130--- READ: file:///%s/fopen14.tmpDir/fopen_variation14.tmp ---
131test passed
132--- WRITE: file:///%s/fopen14.tmpDir/fopen_variation14.tmp ---
133test passed
134===DONE===