Merge pull request #11204 from owncloud/fix_oc_stream_seek

Fix oc stream seek
remotes/origin/fix-10825
Morris Jobke 12 years ago
commit 9e8d2907e2
  1. 2
      lib/private/files/stream/close.php
  2. 2
      lib/private/files/stream/oc.php
  3. 2
      lib/private/files/stream/quota.php
  4. 10
      tests/lib/streamwrappers.php

@ -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() {

@ -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() {

@ -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() {

@ -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:///'));
}

Loading…
Cancel
Save