Better result handling of email search
1. Local users should not be returned when searching for empty string 2. The limit of the response should be respected Signed-off-by: Joas Schilling <coding@schilljs.com>
This commit is contained in:
parent
a3de507b76
commit
d63caf5829
|
@ -173,6 +173,8 @@ class MailPlugin implements ISearchPlugin {
|
||||||
|
|
||||||
if (!$this->shareeEnumeration) {
|
if (!$this->shareeEnumeration) {
|
||||||
$result['wide'] = [];
|
$result['wide'] = [];
|
||||||
|
} else {
|
||||||
|
$result['wide'] = array_slice($result['wide'], $offset, $limit);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!$searchResult->hasExactIdMatch($emailType) && filter_var($search, FILTER_VALIDATE_EMAIL)) {
|
if (!$searchResult->hasExactIdMatch($emailType) && filter_var($search, FILTER_VALIDATE_EMAIL)) {
|
||||||
|
|
|
@ -102,6 +102,8 @@ class RemotePlugin implements ISearchPlugin {
|
||||||
|
|
||||||
if (!$this->shareeEnumeration) {
|
if (!$this->shareeEnumeration) {
|
||||||
$result['wide'] = [];
|
$result['wide'] = [];
|
||||||
|
} else {
|
||||||
|
$result['wide'] = array_slice($result['wide'], $offset, $limit);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!$searchResult->hasExactIdMatch($resultType) && $this->cloudIdManager->isValidCloudId($search) && $offset === 0) {
|
if (!$searchResult->hasExactIdMatch($resultType) && $this->cloudIdManager->isValidCloudId($search) && $offset === 0) {
|
||||||
|
|
|
@ -103,7 +103,7 @@ class MailPluginTest extends TestCase {
|
||||||
->with($searchTerm, ['EMAIL', 'FN'])
|
->with($searchTerm, ['EMAIL', 'FN'])
|
||||||
->willReturn($contacts);
|
->willReturn($contacts);
|
||||||
|
|
||||||
$moreResults = $this->plugin->search($searchTerm, 0, 0, $this->searchResult);
|
$moreResults = $this->plugin->search($searchTerm, 2, 0, $this->searchResult);
|
||||||
$result = $this->searchResult->asArray();
|
$result = $this->searchResult->asArray();
|
||||||
|
|
||||||
$this->assertSame($exactIdMatch, $this->searchResult->hasExactIdMatch(new SearchResultType('emails')));
|
$this->assertSame($exactIdMatch, $this->searchResult->hasExactIdMatch(new SearchResultType('emails')));
|
||||||
|
@ -398,7 +398,7 @@ class MailPluginTest extends TestCase {
|
||||||
return in_array($group, $userToGroupMapping[$userId]);
|
return in_array($group, $userToGroupMapping[$userId]);
|
||||||
});
|
});
|
||||||
|
|
||||||
$moreResults = $this->plugin->search($searchTerm, 0, 0, $this->searchResult);
|
$moreResults = $this->plugin->search($searchTerm, 2, 0, $this->searchResult);
|
||||||
$result = $this->searchResult->asArray();
|
$result = $this->searchResult->asArray();
|
||||||
|
|
||||||
$this->assertSame($exactIdMatch, $this->searchResult->hasExactIdMatch(new SearchResultType('emails')));
|
$this->assertSame($exactIdMatch, $this->searchResult->hasExactIdMatch(new SearchResultType('emails')));
|
||||||
|
|
|
@ -94,7 +94,7 @@ class RemotePluginTest extends TestCase {
|
||||||
->with($searchTerm, ['CLOUD', 'FN'])
|
->with($searchTerm, ['CLOUD', 'FN'])
|
||||||
->willReturn($contacts);
|
->willReturn($contacts);
|
||||||
|
|
||||||
$moreResults = $this->plugin->search($searchTerm, 0, 0, $this->searchResult);
|
$moreResults = $this->plugin->search($searchTerm, 2, 0, $this->searchResult);
|
||||||
$result = $this->searchResult->asArray();
|
$result = $this->searchResult->asArray();
|
||||||
|
|
||||||
$this->assertSame($exactIdMatch, $this->searchResult->hasExactIdMatch(new SearchResultType('remotes')));
|
$this->assertSame($exactIdMatch, $this->searchResult->hasExactIdMatch(new SearchResultType('remotes')));
|
||||||
|
|
Loading…
Reference in New Issue