summaryrefslogtreecommitdiffstats
path: root/apps/files_sharing/tests
diff options
context:
space:
mode:
authorJoas Schilling <nickvergessen@owncloud.com>2015-08-11 15:43:44 +0200
committerJoas Schilling <nickvergessen@owncloud.com>2015-08-26 11:54:24 +0200
commitbe257bc9cc2330d0e67957525cb66646b346a850 (patch)
treee709fc8eaaf9d94b9ed49eb87598ebf5810497d3 /apps/files_sharing/tests
parent9b0058d2b0c2137329491adbbf239b72f26f1637 (diff)
downloadnextcloud-server-be257bc9cc2330d0e67957525cb66646b346a850.tar.gz
nextcloud-server-be257bc9cc2330d0e67957525cb66646b346a850.zip
Add tests for "getUsers()"
Diffstat (limited to 'apps/files_sharing/tests')
-rw-r--r--apps/files_sharing/tests/api/sharees.php229
1 files changed, 205 insertions, 24 deletions
diff --git a/apps/files_sharing/tests/api/sharees.php b/apps/files_sharing/tests/api/sharees.php
index a9e3350ceb3..30397ba8678 100644
--- a/apps/files_sharing/tests/api/sharees.php
+++ b/apps/files_sharing/tests/api/sharees.php
@@ -1,50 +1,231 @@
<?php
+/**
+ * @author Joas Schilling <nickvergessen@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_Sharing\Tests\API;
use OCA\Files_Sharing\API\Sharees;
use OCA\Files_sharing\Tests\TestCase;
class ShareesTest extends TestCase {
+ /** @var Sharees */
+ protected $sharees;
- /**
- * Properly mock all injected elements
- */
- protected function setup() {
+ /** @var \OCP\IUserManager|\PHPUnit_Framework_MockObject_MockObject */
+ protected $userManager;
- }
+ /** @var \OCP\IGroupManager|\PHPUnit_Framework_MockObject_MockObject */
+ protected $groupManager;
- public function testArguments() {
+ /** @var \OCP\IUserSession|\PHPUnit_Framework_MockObject_MockObject */
+ protected $session;
- }
+ protected function setUp() {
+ parent::setUp();
- public function testsOnlyUsers() {
+ $this->userManager = $this->getMockBuilder('OCP\IUserManager')
+ ->disableOriginalConstructor()
+ ->getMock();
- }
+ $this->groupManager = $this->getMockBuilder('OCP\IGroupManager')
+ ->disableOriginalConstructor()
+ ->getMock();
- public function testOnlyGroups() {
+ $this->session = $this->getMockBuilder('OCP\IUserSession')
+ ->disableOriginalConstructor()
+ ->getMock();
+ $this->sharees = new Sharees(
+ $this->groupManager,
+ $this->userManager,
+ $this->getMockBuilder('OCP\Contacts\IManager')->disableOriginalConstructor()->getMock(),
+ $this->getMockBuilder('OCP\IAppConfig')->disableOriginalConstructor()->getMock(),
+ $this->session,
+ $this->getMockBuilder('OCP\IURLGenerator')->disableOriginalConstructor()->getMock()
+ );
}
- public function testRemoteAddress() {
+ protected function getUserMock($uid, $displayName) {
+ $user = $this->getMockBuilder('OCP\IUser')
+ ->disableOriginalConstructor()
+ ->getMock();
- }
+ $user->expects($this->any())
+ ->method('getUID')
+ ->willReturn($uid);
- public function testRemoteFromContacts() {
+ $user->expects($this->any())
+ ->method('getDisplayName')
+ ->willReturn($displayName);
+ return $user;
}
- public function testAll() {
-
+ public function dataGetUsers() {
+ return [
+ ['test', false, [], [], []],
+ ['test', true, [], [], []],
+ [
+ 'test',
+ false,
+ [],
+ [
+ $this->getUserMock('test1', 'Test One'),
+ ],
+ [
+ ['label' => 'Test One', 'value' => ['shareType' => \OCP\Share::SHARE_TYPE_USER, 'shareWith' => 'test1']],
+ ]
+ ],
+ [
+ 'test',
+ false,
+ [],
+ [
+ $this->getUserMock('test1', 'Test One'),
+ $this->getUserMock('test2', 'Test Two'),
+ ],
+ [
+ ['label' => 'Test One', 'value' => ['shareType' => \OCP\Share::SHARE_TYPE_USER, 'shareWith' => 'test1']],
+ ['label' => 'Test Two', 'value' => ['shareType' => \OCP\Share::SHARE_TYPE_USER, 'shareWith' => 'test2']],
+ ]
+ ],
+ [
+ 'test',
+ true,
+ ['abc', 'xyz'],
+ [
+ ['abc', 'test', -1, 0, ['test1' => 'Test One']],
+ ['xyz', 'test', -1, 0, []],
+ ],
+ [
+ ['label' => 'Test One', 'value' => ['shareType' => \OCP\Share::SHARE_TYPE_USER, 'shareWith' => 'test1']],
+ ]
+ ],
+ [
+ 'test',
+ true,
+ ['abc', 'xyz'],
+ [
+ ['abc', 'test', -1, 0, [
+ 'test1' => 'Test One',
+ 'test2' => 'Test Two',
+ ]],
+ ['xyz', 'test', -1, 0, [
+ 'test1' => 'Test One',
+ 'test2' => 'Test Two',
+ ]],
+ ],
+ [
+ ['label' => 'Test One', 'value' => ['shareType' => \OCP\Share::SHARE_TYPE_USER, 'shareWith' => 'test1']],
+ ['label' => 'Test Two', 'value' => ['shareType' => \OCP\Share::SHARE_TYPE_USER, 'shareWith' => 'test2']],
+ ]
+ ],
+ [
+ 'test',
+ true,
+ ['abc', 'xyz'],
+ [
+ ['abc', 'test', -1, 0, [
+ 'test1' => 'Test One',
+ ]],
+ ['xyz', 'test', -1, 0, [
+ 'test2' => 'Test Two',
+ ]],
+ ],
+ [
+ ['label' => 'Test One', 'value' => ['shareType' => \OCP\Share::SHARE_TYPE_USER, 'shareWith' => 'test1']],
+ ['label' => 'Test Two', 'value' => ['shareType' => \OCP\Share::SHARE_TYPE_USER, 'shareWith' => 'test2']],
+ ]
+ ],
+ ];
}
- public function testSorting() {
-
- }
-
- public function testPagination() {
-
+ /**
+ * @dataProvider dataGetUsers
+ *
+ * @param string $searchTerm
+ * @param bool $shareWithGroupOnly
+ * @param array $groupResponse
+ * @param array $userResponse
+ * @param array $expected
+ */
+ public function testGetUsers($searchTerm, $shareWithGroupOnly, $groupResponse, $userResponse, $expected) {
+ if (!$shareWithGroupOnly) {
+ $this->userManager->expects($this->once())
+ ->method('searchDisplayName')
+ ->with($searchTerm)
+ ->willReturn($userResponse);
+ } else {
+ $this->session->expects($this->any())
+ ->method('getUser')
+ ->willReturn($this->getUserMock('admin', 'Administrator'));
+
+ $this->groupManager->expects($this->once())
+ ->method('getUserGroupIds')
+ ->with($this->anything())
+ ->willReturn($groupResponse);
+
+ $this->groupManager->expects($this->exactly(sizeof($groupResponse)))
+ ->method('displayNamesInGroup')
+ ->with($this->anything(), $searchTerm)
+ ->willReturnMap($userResponse);
+ }
+
+ $users = $this->invokePrivate($this->sharees, 'getUsers', [$searchTerm, $shareWithGroupOnly]);
+
+ $this->assertEquals($expected, $users);
}
- public function testShareWithinGroup() {
-
- }
+// public function testArguments() {
+//
+// }
+//
+// public function testsOnlyUsers() {
+//
+// }
+//
+// public function testOnlyGroups() {
+//
+// }
+//
+// public function testRemoteAddress() {
+//
+// }
+//
+// public function testRemoteFromContacts() {
+//
+// }
+//
+// public function testAll() {
+//
+// }
+//
+// public function testSorting() {
+//
+// }
+//
+// public function testPagination() {
+//
+// }
+//
+// public function testShareWithinGroup() {
+//
+// }
}