aboutsummaryrefslogtreecommitdiffstats
path: root/apps/files/tests
diff options
context:
space:
mode:
authorThomas Müller <thomas.mueller@tmit.eu>2015-12-03 16:53:46 +0100
committerThomas Müller <thomas.mueller@tmit.eu>2015-12-03 16:53:46 +0100
commit2ceae43989cdc342f56c3e620b29b76a8825a748 (patch)
treeca34e135dc0725d2980f5a05c131e9f3c9d00b83 /apps/files/tests
parent1fe7957fd0210c6a3f6ad5c810f1ba5814ff68d6 (diff)
parent391bc49dabb39e31739c849b83bb490cabf9da3d (diff)
downloadnextcloud-server-2ceae43989cdc342f56c3e620b29b76a8825a748.tar.gz
nextcloud-server-2ceae43989cdc342f56c3e620b29b76a8825a748.zip
Merge pull request #20545 from owncloud/scan-storage-in-background-job
Move files/ajax/scan.php to background job
Diffstat (limited to 'apps/files/tests')
-rw-r--r--apps/files/tests/backgroundjob/ScanFilesTest.php134
1 files changed, 134 insertions, 0 deletions
diff --git a/apps/files/tests/backgroundjob/ScanFilesTest.php b/apps/files/tests/backgroundjob/ScanFilesTest.php
new file mode 100644
index 00000000000..907cad64f9e
--- /dev/null
+++ b/apps/files/tests/backgroundjob/ScanFilesTest.php
@@ -0,0 +1,134 @@
+<?php
+/**
+ * @author Lukas Reschke <lukas@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 OCA\Files\Tests\BackgroundJob;
+
+use Test\TestCase;
+use OCP\IConfig;
+use OCP\IUserManager;
+use OCA\Files\BackgroundJob\ScanFiles;
+use OCP\ILogger;
+
+/**
+ * Class ScanFilesTest
+ *
+ * @package OCA\Files\Tests\BackgroundJob
+ */
+class ScanFilesTest extends TestCase {
+ /** @var IConfig */
+ private $config;
+ /** @var IUserManager */
+ private $userManager;
+ /** @var ScanFiles */
+ private $scanFiles;
+
+ public function setUp() {
+ parent::setUp();
+
+ $this->config = $this->getMock('\OCP\IConfig');
+ $this->userManager = $this->getMock('\OCP\IUserManager');
+
+ $this->scanFiles = $this->getMockBuilder('\OCA\Files\BackgroundJob\ScanFiles')
+ ->setConstructorArgs([
+ $this->config,
+ $this->userManager,
+ ])
+ ->setMethods(['runScanner'])
+ ->getMock();
+ }
+
+ public function testRunWithoutUsers() {
+ $this->config
+ ->expects($this->at(0))
+ ->method('getAppValue')
+ ->with('files', 'cronjob_scan_files', 0)
+ ->will($this->returnValue(50));
+ $this->userManager
+ ->expects($this->at(0))
+ ->method('search')
+ ->with('', 500, 50)
+ ->will($this->returnValue([]));
+ $this->userManager
+ ->expects($this->at(1))
+ ->method('search')
+ ->with('', 500)
+ ->will($this->returnValue([]));
+ $this->config
+ ->expects($this->at(1))
+ ->method('setAppValue')
+ ->with('files', 'cronjob_scan_files', 500);
+
+ $this->invokePrivate($this->scanFiles, 'run', [[]]);
+ }
+
+ public function testRunWithUsers() {
+ $fakeUser = $this->getMock('\OCP\IUser');
+ $this->config
+ ->expects($this->at(0))
+ ->method('getAppValue')
+ ->with('files', 'cronjob_scan_files', 0)
+ ->will($this->returnValue(50));
+ $this->userManager
+ ->expects($this->at(0))
+ ->method('search')
+ ->with('', 500, 50)
+ ->will($this->returnValue([
+ $fakeUser
+ ]));
+ $this->config
+ ->expects($this->at(1))
+ ->method('setAppValue')
+ ->with('files', 'cronjob_scan_files', 550);
+ $this->scanFiles
+ ->expects($this->once())
+ ->method('runScanner')
+ ->with($fakeUser);
+
+ $this->invokePrivate($this->scanFiles, 'run', [[]]);
+ }
+
+ public function testRunWithUsersAndOffsetAtEndOfUserList() {
+ $this->config
+ ->expects($this->at(0))
+ ->method('getAppValue')
+ ->with('files', 'cronjob_scan_files', 0)
+ ->will($this->returnValue(50));
+ $this->userManager
+ ->expects($this->at(0))
+ ->method('search')
+ ->with('', 500, 50)
+ ->will($this->returnValue([]));
+ $this->userManager
+ ->expects($this->at(1))
+ ->method('search')
+ ->with('', 500)
+ ->will($this->returnValue([]));
+ $this->config
+ ->expects($this->at(1))
+ ->method('setAppValue')
+ ->with('files', 'cronjob_scan_files', 500);
+ $this->scanFiles
+ ->expects($this->never())
+ ->method('runScanner');
+
+ $this->invokePrivate($this->scanFiles, 'run', [[]]);
+ }
+
+}