Skip to content
Permalink
Browse files

Fixed issue where incorrect cached filesize was reported when appendi…

…ng to file.
  • Loading branch information...
ADmad committed Apr 13, 2013
1 parent ed43587 commit ba56fb706447320df23958a4217a028efdeff28c
Showing with 14 additions and 3 deletions.
  1. +9 −1 lib/Cake/Test/Case/Utility/FileTest.php
  2. +5 −2 lib/Cake/Utility/File.php
@@ -433,16 +433,24 @@ public function testAppend() {
$TmpFile = new File($tmpFile);
$this->assertFalse(file_exists($tmpFile));
$fragments = array('CakePHP\'s', ' test suite', ' was here ...', '');
$fragments = array('CakePHP\'s', ' test suite', ' was here ...');
$data = null;
$size = 0;
foreach ($fragments as $fragment) {
$r = $TmpFile->append($fragment);
$this->assertTrue($r);
$this->assertTrue(file_exists($tmpFile));
$data = $data . $fragment;
$this->assertEquals($data, file_get_contents($tmpFile));
$newSize = $TmpFile->size();
$this->assertTrue($newSize > $size);
$size = $newSize;
$TmpFile->close();
}
$TmpFile->append('');
$this->assertEquals($data, file_get_contents($tmpFile));
$TmpFile->close();
}
/**
@@ -130,7 +130,6 @@ public function open($mode = 'r', $force = false) {
if (!$force && is_resource($this->handle)) {
return true;
}
clearstatcache();
if ($this->exists() === false) {
if ($this->create() === false) {
return false;
@@ -278,7 +277,6 @@ public function close() {
* @link http://book.cakephp.org/2.0/en/core-utility-libraries/file-folder.html#File::delete
*/
public function delete() {
clearstatcache();
if (is_resource($this->handle)) {
fclose($this->handle);
$this->handle = null;
@@ -410,6 +408,11 @@ public function pwd() {
* @link http://book.cakephp.org/2.0/en/core-utility-libraries/file-folder.html#File::exists
*/
public function exists() {
if (version_compare(PHP_VERSION, '5.3.0') >= 0) {
clearstatcache(true, $this->path);
} else {
clearstatcache();
}
return (file_exists($this->path) && is_file($this->path));
}

0 comments on commit ba56fb7

Please sign in to comment.
You can’t perform that action at this time.