Added storage tests for fopen with special chars

This makes it possible to test special chars with unit tests.
There is already a test for directories but there was none for file
names.
This commit is contained in:
Vincent Petry 2016-07-04 17:49:44 +02:00 committed by Lukas Reschke
parent b37e1ed17f
commit 631af42b3a
No known key found for this signature in database
GPG Key ID: B9F6980CF6E759B1
2 changed files with 21 additions and 7 deletions

View File

@ -80,7 +80,7 @@ if ! "$thisFolder"/env/wait-for-connection ${host} 80 600; then
exit 1
fi
echo "Waiting another 15 seconds"
sleep 15
sleep 15
cat > $thisFolder/config.swift.php <<DELIM
<?php

View File

@ -105,6 +105,17 @@ abstract class Storage extends \Test\TestCase {
$this->assertEquals(array(), $content);
}
public function fileNameProvider() {
return [
['file.txt'],
[' file.txt'],
['folder .txt'],
['file with space.txt'],
['spéciäl fäile'],
['test single\'quote.txt'],
];
}
public function directoryProvider() {
return [
['folder'],
@ -336,22 +347,25 @@ abstract class Storage extends \Test\TestCase {
$this->assertFalse($this->instance->file_exists('/lorem.txt'));
}
public function testFOpen() {
/**
* @dataProvider fileNameProvider
*/
public function testFOpen($fileName) {
$textFile = \OC::$SERVERROOT . '/tests/data/lorem.txt';
$fh = @$this->instance->fopen('foo', 'r');
$fh = @$this->instance->fopen($fileName, 'r');
if ($fh) {
fclose($fh);
}
$this->assertFalse($fh);
$this->assertFalse($this->instance->file_exists('foo'));
$this->assertFalse($this->instance->file_exists($fileName));
$fh = $this->instance->fopen('foo', 'w');
$fh = $this->instance->fopen($fileName, 'w');
fwrite($fh, file_get_contents($textFile));
fclose($fh);
$this->assertTrue($this->instance->file_exists('foo'));
$this->assertTrue($this->instance->file_exists($fileName));
$fh = $this->instance->fopen('foo', 'r');
$fh = $this->instance->fopen($fileName, 'r');
$content = stream_get_contents($fh);
$this->assertEquals(file_get_contents($textFile), $content);
}