diff options
author | Thomas Müller <thomas.mueller@tmit.eu> | 2015-06-29 14:16:27 +0200 |
---|---|---|
committer | Thomas Müller <thomas.mueller@tmit.eu> | 2015-06-29 14:18:09 +0200 |
commit | f8127046eea132733052f1edf1792012fcef776a (patch) | |
tree | 16d033a782dad77c34b7332bc3919ed933e7ac37 | |
parent | 70eb20e3a7b65759cdea99279c53953379898d6f (diff) | |
download | nextcloud-server-f8127046eea132733052f1edf1792012fcef776a.tar.gz nextcloud-server-f8127046eea132733052f1edf1792012fcef776a.zip |
Unit tests added for MaintenancePlugin
-rw-r--r-- | lib/private/connector/sabre/maintenanceplugin.php | 20 | ||||
-rw-r--r-- | tests/lib/connector/sabre/MaintenancePluginTest.php | 73 |
2 files changed, 90 insertions, 3 deletions
diff --git a/lib/private/connector/sabre/maintenanceplugin.php b/lib/private/connector/sabre/maintenanceplugin.php index 21d711e844c..c5a9ca6d54a 100644 --- a/lib/private/connector/sabre/maintenanceplugin.php +++ b/lib/private/connector/sabre/maintenanceplugin.php @@ -25,12 +25,16 @@ namespace OC\Connector\Sabre; +use OCP\IConfig; use Sabre\DAV\Exception\ServiceUnavailable; use Sabre\DAV\Server; use Sabre\DAV\ServerPlugin; class MaintenancePlugin extends ServerPlugin { + /** @var IConfig */ + private $config; + /** * Reference to main server object * @@ -39,6 +43,17 @@ class MaintenancePlugin extends ServerPlugin { private $server; /** + * @param IConfig $config + */ + public function __construct(IConfig $config) { + $this->config = $config; + if (is_null($config)) { + $this->config = \OC::$server->getConfig(); + } + } + + + /** * This initializes the plugin. * * This function is called by \Sabre\DAV\Server, after @@ -59,14 +74,13 @@ class MaintenancePlugin extends ServerPlugin { * in case the system is in maintenance mode. * * @throws ServiceUnavailable - * @internal param string $method * @return bool */ public function checkMaintenanceMode() { - if (\OC::$server->getSystemConfig()->getValue('singleuser', false)) { + if ($this->config->getSystemValue('singleuser', false)) { throw new ServiceUnavailable('System in single user mode.'); } - if (\OC::$server->getSystemConfig()->getValue('maintenance', false)) { + if ($this->config->getSystemValue('maintenance', false)) { throw new ServiceUnavailable('System in maintenance mode.'); } if (\OC::checkUpgrade(false)) { diff --git a/tests/lib/connector/sabre/MaintenancePluginTest.php b/tests/lib/connector/sabre/MaintenancePluginTest.php new file mode 100644 index 00000000000..e5b50f71de6 --- /dev/null +++ b/tests/lib/connector/sabre/MaintenancePluginTest.php @@ -0,0 +1,73 @@ +<?php +/** + * @author Thomas Müller <thomas.mueller@tmit.eu> + * + * @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\Connector\Sabre; + +use OC\Connector\Sabre\MaintenancePlugin; +use Test\TestCase; +use OCP\IConfig; + +/** + * Class MaintenancePluginTest + * + * @package Test\Connector\Sabre + */ +class MaintenancePluginTest extends TestCase { + /** @var IConfig */ + private $config; + /** @var MaintenancePlugin */ + private $maintenancePlugin; + + public function setUp() { + parent::setUp(); + + $this->config = $this->getMock('\OCP\IConfig'); + $this->maintenancePlugin = new MaintenancePlugin($this->config); + } + + /** + * @expectedException \Sabre\DAV\Exception\ServiceUnavailable + * @expectedExceptionMessage System in single user mode. + */ + public function testSingleUserMode() { + $this->config + ->expects($this->once()) + ->method('getSystemValue') + ->with('singleuser', false) + ->will($this->returnValue(true)); + + $this->maintenancePlugin->checkMaintenanceMode(); + } + + /** + * @expectedException \Sabre\DAV\Exception\ServiceUnavailable + * @expectedExceptionMessage System in single user mode. + */ + public function testMaintenanceMode() { + $this->config + ->expects($this->exactly(1)) + ->method('getSystemValue') + ->will($this->onConsecutiveCalls([false, true])); + + $this->maintenancePlugin->checkMaintenanceMode(); + } + +} |