summaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authorRobin Appelman <icewind@owncloud.com>2012-03-02 18:42:23 +0100
committerRobin Appelman <icewind@owncloud.com>2012-03-02 18:42:57 +0100
commit48fe85d9bd7fc6a82f54d23befe06c2457b590bc (patch)
tree6c11c1433044c985db9f2b6fca347df63344eedf /tests
parente8afe4f1588ad5697b8ef6627417dfeb4a6c0573 (diff)
downloadnextcloud-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.php31
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