diff options
author | Robin Appelman <icewind@owncloud.com> | 2012-03-02 18:42:23 +0100 |
---|---|---|
committer | Robin Appelman <icewind@owncloud.com> | 2012-03-02 18:42:57 +0100 |
commit | 48fe85d9bd7fc6a82f54d23befe06c2457b590bc (patch) | |
tree | 6c11c1433044c985db9f2b6fca347df63344eedf /tests | |
parent | e8afe4f1588ad5697b8ef6627417dfeb4a6c0573 (diff) | |
download | nextcloud-server-48fe85d9bd7fc6a82f54d23befe06c2457b590bc.tar.gz nextcloud-server-48fe85d9bd7fc6a82f54d23befe06c2457b590bc.zip |
add streamwrapper that provides a callback on stream close
Diffstat (limited to 'tests')
-rw-r--r-- | tests/lib/streamwrappers.php | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/tests/lib/streamwrappers.php b/tests/lib/streamwrappers.php index c4784a62976..17a92c6658c 100644 --- a/tests/lib/streamwrappers.php +++ b/tests/lib/streamwrappers.php @@ -44,4 +44,35 @@ class Test_StreamWrappers extends UnitTestCase { clearstatcache(); $this->assertFalse(file_exists($staticFile)); } + + public function testCloseStream(){ + //ensure all basic stream stuff works + $sourceFile=OC::$SERVERROOT.'/tests/data/lorem.txt'; + $tmpFile=OC_Helper::TmpFile('.txt'); + $file='close://'.$tmpFile; + $this->assertTrue(file_exists($file)); + file_put_contents($file,file_get_contents($sourceFile)); + $this->assertEqual(file_get_contents($sourceFile),file_get_contents($file)); + unlink($file); + clearstatcache(); + $this->assertFalse(file_exists($file)); + + //test callback + $tmpFile=OC_Helper::TmpFile('.txt'); + $file='close://'.$tmpFile; + OC_CloseStreamWrapper::$callBacks[$tmpFile]=array('Test_StreamWrappers','closeCallBack'); + $fh=fopen($file,'w'); + fwrite($fh,'asd'); + try{ + fclose($fh); + $this->fail('Expected exception'); + }catch(Exception $e){ + $path=$e->getMessage(); + $this->assertEqual($path,$tmpFile); + } + } + + public static function closeCallBack($path){ + throw new Exception($path); + } }
\ No newline at end of file |