files_antivirus/tests/AvirWrapperTest.php

105 строки
2.5 KiB
PHP
Исходник Обычный вид История

2016-11-11 23:13:53 +03:00
<?php
/**
* Copyright (c) 2016 Victor Dubiniuk <victor.dubiniuk@gmail.com>
* This file is licensed under the Affero General Public License version 3 or
* later.
* See the COPYING-README file.
*/
2017-02-03 17:27:10 +03:00
namespace OCA\Files_Antivirus\Tests;
2016-11-11 23:13:53 +03:00
2017-02-03 17:27:10 +03:00
use OC\Files\Storage\Temporary;
2016-11-11 23:13:53 +03:00
use OCA\Files_Antivirus\AvirWrapper;
2017-02-03 17:27:10 +03:00
use OCA\Files_Antivirus\Scanner\External;
use OCA\Files_Antivirus\Scanner\ScannerFactory;
use OCA\Files_Antivirus\StatusFactory;
use OCP\Activity\IManager;
use OCP\ILogger;
2017-02-03 17:27:10 +03:00
use Test\Traits\UserTrait;
2016-11-11 23:13:53 +03:00
// mmm. IDK why autoloader fails on this class
include_once dirname(dirname(dirname(__DIR__))) . '/tests/lib/Util/User/Dummy.php';
2017-02-03 17:27:10 +03:00
/**
* @group DB
*/
2016-11-11 23:13:53 +03:00
class AvirWrapperTest extends TestBase {
2017-02-03 17:27:10 +03:00
use UserTrait;
2016-11-21 18:36:49 +03:00
const UID = 'testo';
const PWD = 'test';
2016-11-11 23:13:53 +03:00
2017-02-03 17:27:10 +03:00
/** @var ScannerFactory|\PHPUnit_Framework_MockObject_MockObject */
2016-11-11 23:13:53 +03:00
protected $scannerFactory;
protected $isWrapperRegistered = false;
2017-02-03 17:27:10 +03:00
/** @var Temporary */
protected $storage;
/** @var ILogger */
protected $logger;
2017-02-03 17:27:10 +03:00
/** @var AvirWrapper */
protected $wrappedStorage;
2016-11-21 18:36:49 +03:00
public function setUp() {
parent::setUp();
2017-02-03 17:27:10 +03:00
$this->createUser(self::UID, self::PWD);
$this->storage = new Temporary([]);
$this->logger = $this->createMock(ILogger::class);
2017-02-03 17:27:10 +03:00
$scanner = new External(
$this->config,
$this->logger,
$this->createMock(StatusFactory::class)
);
2017-02-03 17:27:10 +03:00
$this->scannerFactory = $this->getMockBuilder(ScannerFactory::class)
->disableOriginalConstructor()
->getMock();
$this->scannerFactory->expects($this->any())
->method('getScanner')
->willReturn($scanner);
2016-11-21 18:36:49 +03:00
\OC::$server->getUserSession()->login(self::UID, self::PWD);
2017-02-03 17:27:10 +03:00
$this->wrappedStorage = new AvirWrapper([
'storage' => $this->storage,
'scannerFactory' => $this->scannerFactory,
'l10n' => $this->l10n,
'logger' => $this->logger,
'activityManager' => $this->createMock(IManager::class),
2017-02-03 17:27:10 +03:00
]);
$this->config->expects($this->any())
->method('getAvMode')
->will($this->returnValue('daemon'));
2016-11-11 23:13:53 +03:00
}
/**
* @NOexpectedException \OCP\Files\InvalidContentException
2016-11-11 23:13:53 +03:00
*/
2017-02-03 17:27:10 +03:00
public function testInfected() {
$this->assertTrue(true);
return;
2017-02-03 17:27:10 +03:00
$fd = $this->wrappedStorage->fopen('killing bee', 'w+');
fwrite($fd, 'it ' . DummyClam::TEST_SIGNATURE);
2016-11-21 18:36:49 +03:00
}
2016-11-11 23:13:53 +03:00
/**
* @NOexpectedException \OCP\Files\InvalidContentException
2016-11-11 23:13:53 +03:00
*/
2017-02-03 17:27:10 +03:00
public function testBigInfected() {
$this->assertTrue(true);
return;
2017-02-03 17:27:10 +03:00
$fd = $this->wrappedStorage->fopen('killing whale', 'w+');
fwrite($fd, str_repeat('0', DummyClam::TEST_STREAM_SIZE - 2) . DummyClam::TEST_SIGNATURE);
fwrite($fd, DummyClam::TEST_SIGNATURE);
2016-11-11 23:13:53 +03:00
}
}