diff options
author | Romain Rivière <lecoyote@lecoyote.org> | 2018-03-05 09:27:34 +0100 |
---|---|---|
committer | Daniel Kesselberg <mail@danielkesselberg.de> | 2019-02-14 11:48:09 +0100 |
commit | abb56c72e1d63fe0e70e82c2b12032e0f923d191 (patch) | |
tree | 5b212bc95034fd4602d9e3737d0d69a88b681bd7 /tests/lib/IntegrityCheck | |
parent | 004f7fa8e141b159cc76f99cc041eec215444236 (diff) | |
download | nextcloud-server-abb56c72e1d63fe0e70e82c2b12032e0f923d191.tar.gz nextcloud-server-abb56c72e1d63fe0e70e82c2b12032e0f923d191.zip |
Exclude file name patterns; ignore gentoo webapp files
Signed-off-by: Romain Rivière <lecoyote@lecoyote.org>
Diffstat (limited to 'tests/lib/IntegrityCheck')
-rw-r--r-- | tests/lib/IntegrityCheck/Iterator/ExcludeFileByNameFilterIteratorTest.php | 92 |
1 files changed, 92 insertions, 0 deletions
diff --git a/tests/lib/IntegrityCheck/Iterator/ExcludeFileByNameFilterIteratorTest.php b/tests/lib/IntegrityCheck/Iterator/ExcludeFileByNameFilterIteratorTest.php new file mode 100644 index 00000000000..ce677599eb8 --- /dev/null +++ b/tests/lib/IntegrityCheck/Iterator/ExcludeFileByNameFilterIteratorTest.php @@ -0,0 +1,92 @@ +<?php +/** + * @author Victor Dubiniuk <dubiniuk@owncloud.com> + * + * @copyright Copyright (c) 2015, ownCloud, Inc. + * @license AGPL-3.0 + * + * This code is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License, version 3, + * as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License, version 3, + * along with this program. If not, see <http://www.gnu.org/licenses/> + * + */ + +namespace Test\IntegrityCheck\Iterator; + +use \OC\IntegrityCheck\Iterator\ExcludeFileByNameFilterIterator; +use Test\TestCase; + +class ExcludeFileByNameFilterIteratorTest extends TestCase { + /** @var ExcludeFileByNameFilterIterator */ + protected $filter; + + public function setUp() { + parent::setUp(); + $this->filter = $this->getMockBuilder(ExcludeFileByNameFilterIterator::class) + ->disableOriginalConstructor() + ->getMock() + ; + + } + + public function fileNameProvider(){ + return [ + ['a file', true], + ['Thumbs.db', false], + ['another file', true], + ['.directory', false], + ['.webapp-owncloud-obee', false], + ['wx.webapp-owncloud-obee', true], + ]; + } + + /** + * @dataProvider fileNameProvider + * @param string $fileName + * @param bool $expectedResult + */ + public function testAcceptForFiles($fileName, $expectedResult){ + $iteratorMock = $this->createMock(\DirectoryIterator::class); + $iteratorMock->method('getFilename') + ->will($this->returnValue($fileName)) + ; + + $this->filter->method('isDir') + ->will($this->returnValue(false)); + $this->filter->method('current') + ->will($this->returnValue($iteratorMock)) + ; + + $actualResult = $this->filter->accept(); + $this->assertEquals($expectedResult, $actualResult); + } + + /** + * @dataProvider fileNameProvider + * @param string $fileName + * @param bool $fakeExpectedResult + */ + public function testAcceptForDirs($fileName, $fakeExpectedResult){ + $iteratorMock = $this->createMock(\DirectoryIterator::class); + $iteratorMock->method('getFilename') + ->will($this->returnValue($fileName)) + ; + + $this->filter->method('isDir') + ->will($this->returnValue(true)); + $this->filter->method('current') + ->will($this->returnValue($iteratorMock)) + ; + + $actualResult = $this->filter->accept(); + $this->assertFalse($actualResult); + } +} |