aboutsummaryrefslogtreecommitdiffstats
path: root/tests/Core/Controller
diff options
context:
space:
mode:
authorArthur Schiwon <blizzz@arthur-schiwon.de>2017-08-30 10:56:02 +0200
committerArthur Schiwon <blizzz@arthur-schiwon.de>2017-10-22 14:13:32 +0200
commitfd6daf8d195b985fcdec82c0c53e8ba230765f41 (patch)
treedbfbbfb8424604daeb0fba63a8e0d2b7cda9a3ac /tests/Core/Controller
parent2b31b8289169e35be7bb1b129e9a978ddcd8f478 (diff)
downloadnextcloud-server-fd6daf8d195b985fcdec82c0c53e8ba230765f41.tar.gz
nextcloud-server-fd6daf8d195b985fcdec82c0c53e8ba230765f41.zip
AutoCompletion backend
* introduce a Controller for requests * introduce result sorting mechanism * extend Comments to retrieve commentors (actors) in a tree * add commenters sorter * add share recipients sorter Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
Diffstat (limited to 'tests/Core/Controller')
-rw-r--r--tests/Core/Controller/AutoCompleteControllerTest.php84
1 files changed, 84 insertions, 0 deletions
diff --git a/tests/Core/Controller/AutoCompleteControllerTest.php b/tests/Core/Controller/AutoCompleteControllerTest.php
new file mode 100644
index 00000000000..59dac58b952
--- /dev/null
+++ b/tests/Core/Controller/AutoCompleteControllerTest.php
@@ -0,0 +1,84 @@
+<?php
+/**
+ * @copyright Copyright (c) 2017 Arthur Schiwon <blizzz@arthur-schiwon.de>
+ *
+ * @author Arthur Schiwon <blizzz@arthur-schiwon.de>
+ *
+ * @license GNU AGPL version 3 or any later version
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * 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
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ *
+ */
+
+namespace Tests\Core\Controller;
+
+
+use OC\Core\Controller\AutoCompleteController;
+use OCP\Collaboration\AutoComplete\IManager;
+use OCP\Collaboration\Collaborators\ISearch;
+use OCP\IRequest;
+use Test\TestCase;
+
+class AutoCompleteControllerTest extends TestCase {
+ /** @var ISearch|\PHPUnit_Framework_MockObject_MockObject */
+ protected $collaboratorSearch;
+ /** @var IManager|\PHPUnit_Framework_MockObject_MockObject */
+ protected $autoCompleteManager;
+ /** @var AutoCompleteController */
+ protected $controller;
+
+ protected function setUp() {
+ parent::setUp();
+
+ /** @var IRequest $request */
+ $request = $this->createMock(IRequest::class);
+ $this->collaboratorSearch = $this->createMock(ISearch::class);
+ $this->autoCompleteManager = $this->createMock(IManager::class);
+
+ $this->controller = new AutoCompleteController(
+ 'core',
+ $request,
+ $this->collaboratorSearch,
+ $this->autoCompleteManager
+ );
+ }
+
+ public function testGet() {
+ $searchResults = [
+ 'exact' => [
+ 'users' => [],
+ 'robots' => [],
+ ],
+ 'users' => [
+ ['label' => 'Alice A.', 'value' => ['shareWith' => 'alice']],
+ ['label' => 'Bob Y.', 'value' => ['shareWith' => 'bob']],
+ ],
+ ];
+
+ $expected = [
+ [ 'id' => 'alice', 'label' => 'Alice A.', 'source' => 'users'],
+ [ 'id' => 'bob', 'label' => 'Bob Y.', 'source' => 'users'],
+ ];
+
+ $this->collaboratorSearch->expects($this->once())
+ ->method('search')
+ ->willReturn([$searchResults, false]);
+
+ $response = $this->controller->get('files', '42', null);
+
+ $list = $response->getData();
+ $this->assertEquals($expected, $list); // has better error output…
+ $this->assertSame($expected, $list);
+ }
+}