Browse Source

Adjust tests

tags/v8.2beta1
Joas Schilling 8 years ago
parent
commit
2a6e676048
2 changed files with 348 additions and 403 deletions
  1. 51
    26
      apps/files_sharing/api/sharees.php
  2. 297
    377
      apps/files_sharing/tests/api/shareestest.php

+ 51
- 26
apps/files_sharing/api/sharees.php View File

@@ -35,31 +35,31 @@ use OCP\Share;
class Sharees {

/** @var IGroupManager */
private $groupManager;
protected $groupManager;

/** @var IUserManager */
private $userManager;
protected $userManager;

/** @var IManager */
private $contactsManager;
protected $contactsManager;

/** @var IConfig */
private $config;
protected $config;

/** @var IUserSession */
private $userSession;
protected $userSession;

/** @var IRequest */
private $request;
protected $request;

/** @var IURLGenerator */
private $urlGenerator;
protected $urlGenerator;

/** @var ILogger */
private $logger;
protected $logger;

/** @var bool */
private $shareWithGroupOnly;
protected $shareWithGroupOnly = false;

/** @var int */
protected $offset = 0;
@@ -105,6 +105,7 @@ class Sharees {
$this->config = $config;
$this->userSession = $userSession;
$this->urlGenerator = $urlGenerator;
$this->request = $request;
$this->logger = $logger;
}

@@ -118,8 +119,8 @@ class Sharees {
// Search in all the groups this user is part of
$userGroups = $this->groupManager->getUserGroupIds($this->userSession->getUser());
foreach ($userGroups as $userGroup) {
$users = $this->groupManager->displayNamesInGroup($userGroup, $search, $this->limit, $this->offset);
foreach ($users as $uid => $userDisplayName) {
$usersTmp = $this->groupManager->displayNamesInGroup($userGroup, $search, $this->limit, $this->offset);
foreach ($usersTmp as $uid => $userDisplayName) {
$users[$uid] = $userDisplayName;
}
}
@@ -143,13 +144,19 @@ class Sharees {
$foundUserById = true;
}
$this->result['exact']['users'][] = [
'shareWith' => $search,
'label' => $search,
'label' => $userDisplayName,
'value' => [
'shareType' => Share::SHARE_TYPE_USER,
'shareWith' => $uid,
],
];
} else {
$this->result['users'][] = [
'shareWith' => $uid,
'label' => $userDisplayName,
'value' => [
'shareType' => Share::SHARE_TYPE_USER,
'shareWith' => $uid,
],
];
}
}
@@ -160,8 +167,11 @@ class Sharees {
$user = $this->userManager->get($search);
if ($user instanceof IUser) {
array_push($this->result['exact']['users'], [
'shareWith' => $user->getUID(),
'label' => $user->getDisplayName(),
'value' => [
'shareType' => Share::SHARE_TYPE_USER,
'shareWith' => $user->getUID(),
],
]);
}
}
@@ -191,13 +201,19 @@ class Sharees {
foreach ($groups as $gid) {
if ($gid === $search) {
$this->result['exact']['groups'][] = [
'shareWith' => $search,
'label' => $search,
'value' => [
'shareType' => Share::SHARE_TYPE_GROUP,
'shareWith' => $search,
],
];
} else {
$this->result['groups'][] = [
'shareWith' => $gid,
'label' => $gid,
'value' => [
'shareType' => Share::SHARE_TYPE_GROUP,
'shareWith' => $gid,
],
];
}
}
@@ -208,8 +224,11 @@ class Sharees {
$group = $this->groupManager->get($search);
if ($group instanceof IGroup && (!$this->shareWithGroupOnly || array_intersect([$group], $userGroups))) {
array_push($this->result['exact']['users'], [
'shareWith' => $group->getGID(),
'label' => $group->getGID(),
'value' => [
'shareType' => Share::SHARE_TYPE_GROUP,
'shareWith' => $group->getGID(),
],
]);
}
}
@@ -224,8 +243,11 @@ class Sharees {

if (substr_count($search, '@') >= 1 && $this->offset === 0) {
$this->result['exact']['remotes'][] = [
'shareWith' => $search,
'label' => $search,
'value' => [
'shareType' => Share::SHARE_TYPE_REMOTE,
'shareWith' => $search,
],
];
}

@@ -237,13 +259,19 @@ class Sharees {
foreach ($contact['CLOUD'] as $cloudId) {
if ($contact['FN'] === $search || $cloudId === $search) {
$this->result['exact']['remotes'][] = [
'shareWith' => $cloudId,
'label' => $contact['FN'],
'value' => [
'shareType' => Share::SHARE_TYPE_REMOTE,
'shareWith' => $cloudId,
],
];
} else {
$this->result['remotes'][] = [
'shareWith' => $cloudId,
'label' => $contact['FN'],
'value' => [
'shareType' => Share::SHARE_TYPE_REMOTE,
'shareWith' => $cloudId,
],
];
}
}
@@ -259,7 +287,6 @@ class Sharees {
public function search() {
$search = isset($_GET['search']) ? (string) $_GET['search'] : '';
$itemType = isset($_GET['itemType']) ? (string) $_GET['itemType'] : null;
$shareIds = isset($_GET['existingShares']) ? (array) $_GET['existingShares'] : [];
$page = !empty($_GET['page']) ? max(1, (int) $_GET['page']) : 1;
$perPage = !empty($_GET['limit']) ? max(1, (int) $_GET['limit']) : 200;

@@ -286,7 +313,7 @@ class Sharees {
$this->limit = (int) $perPage;
$this->offset = $perPage * ($page - 1);

return $this->searchSharees($search, $itemType, $shareIds, $shareTypes, $page, $perPage);
return $this->searchSharees($search, $itemType, $shareTypes, $page, $perPage);
}

/**
@@ -309,13 +336,12 @@ class Sharees {
*
* @param string $search
* @param string $itemType
* @param array $shareIds
* @param array $shareTypes
* @param int $page
* @param int $perPage
* @return \OC_OCS_Result
*/
protected function searchSharees($search, $itemType, array $shareIds, array $shareTypes, $page, $perPage) {
protected function searchSharees($search, $itemType, array $shareTypes, $page, $perPage) {
// Verify arguments
if ($itemType === null) {
return new \OC_OCS_Result(null, 400, 'missing itemType');
@@ -343,7 +369,6 @@ class Sharees {
$response->addHeader('Link', $this->getPaginationLink($page, [
'search' => $search,
'itemType' => $itemType,
'existingShares' => $shareIds,
'shareType' => $shareTypes,
'limit' => $perPage,
]));

+ 297
- 377
apps/files_sharing/tests/api/shareestest.php
File diff suppressed because it is too large
View File


Loading…
Cancel
Save