Merge pull request #11204 from owncloud/fix_oc_stream_seek

Fix oc stream seek
This commit is contained in:
Morris Jobke 2014-09-22 16:25:07 +02:00
commit 9e8d2907e2
4 changed files with 13 additions and 3 deletions

View File

@ -29,7 +29,7 @@ class Close {
}
public function stream_seek($offset, $whence = SEEK_SET) {
fseek($this->source, $offset, $whence);
return fseek($this->source, $offset, $whence) === 0;
}
public function stream_tell() {

View File

@ -48,7 +48,7 @@ class OC {
}
public function stream_seek($offset, $whence = SEEK_SET) {
fseek($this->fileSource, $offset, $whence);
return fseek($this->fileSource, $offset, $whence) === 0;
}
public function stream_tell() {

View File

@ -83,7 +83,7 @@ class Quota {
}
// this wrapper needs to return "true" for success.
// the fseek call itself returns 0 on succeess
return !fseek($this->source, $offset, $whence);
return fseek($this->source, $offset, $whence) === 0;
}
public function stream_tell() {

View File

@ -79,6 +79,16 @@ class Test_StreamWrappers extends PHPUnit_Framework_TestCase {
$this->assertEquals(array('.', '..', 'bar.txt', 'foo.txt'), scandir('oc:///'));
$this->assertEquals('qwerty', file_get_contents('oc:///bar.txt'));
$fh = fopen('oc:///bar.txt', 'rb');
$this->assertSame(0, ftell($fh));
$content = fread($fh, 4);
$this->assertSame(4, ftell($fh));
$this->assertSame('qwer', $content);
$content = fread($fh, 1);
$this->assertSame(5, ftell($fh));
$this->assertSame(0, fseek($fh, 0));
$this->assertSame(0, ftell($fh));
unlink('oc:///foo.txt');
$this->assertEquals(array('.', '..', 'bar.txt'), scandir('oc:///'));
}