summaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authorArthur Schiwon <blizzz@arthur-schiwon.de>2017-11-28 13:30:51 +0100
committerArthur Schiwon <blizzz@arthur-schiwon.de>2017-11-28 13:30:51 +0100
commit96bc03a03a7d7b1d5868eed5c1cc86b1b9b8ca2c (patch)
tree42fa9dbca516aa9638d3e28fa0abc8c47f6eaf5b /tests
parenta0ce2c1204861e64219f6375f6ff8d13e63cfe32 (diff)
downloadnextcloud-server-96bc03a03a7d7b1d5868eed5c1cc86b1b9b8ca2c.tar.gz
nextcloud-server-96bc03a03a7d7b1d5868eed5c1cc86b1b9b8ca2c.zip
don't create sorter instances when none was requested
Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
Diffstat (limited to 'tests')
-rw-r--r--tests/Core/Controller/AutoCompleteControllerTest.php140
1 files changed, 99 insertions, 41 deletions
diff --git a/tests/Core/Controller/AutoCompleteControllerTest.php b/tests/Core/Controller/AutoCompleteControllerTest.php
index bcd0d6e1cd3..6279ba3283e 100644
--- a/tests/Core/Controller/AutoCompleteControllerTest.php
+++ b/tests/Core/Controller/AutoCompleteControllerTest.php
@@ -59,57 +59,115 @@ class AutoCompleteControllerTest extends TestCase {
);
}
- public function testGet() {
- $searchResults = [
- 'exact' => [
- 'users' => [],
- 'robots' => [],
- ],
- 'users' => [
- ['label' => 'Alice A.', 'value' => ['shareWith' => 'alice']],
- ['label' => 'Bob Y.', 'value' => ['shareWith' => 'bob']],
+ public function searchDataProvider() {
+ return [
+ [ #0 – regular search
+ // 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'],
+ ],
+ '',
+ 'files',
+ '42',
+ null
],
- ];
-
- $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);
- }
-
- public function testGetWithExactMatch() {
- $searchResults = [
- 'exact' => [
- 'users' => [
- ['label' => 'Bob Y.', 'value' => ['shareWith' => 'bob']],
+ [ #1 – missing itemtype and id
+ [
+ 'exact' => [
+ 'users' => [],
+ 'robots' => [],
+ ],
+ 'users' => [
+ ['label' => 'Alice A.', 'value' => ['shareWith' => 'alice']],
+ ['label' => 'Bob Y.', 'value' => ['shareWith' => 'bob']],
+ ],
],
- 'robots' => [],
+ // expected
+ [
+ [ 'id' => 'alice', 'label' => 'Alice A.', 'source' => 'users'],
+ [ 'id' => 'bob', 'label' => 'Bob Y.', 'source' => 'users'],
+ ],
+ '',
+ null,
+ null,
+ null
],
- 'users' => [
- ['label' => 'Robert R.', 'value' => ['shareWith' => 'bobby']],
+ [ #2 – with sorter
+ [
+ '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'],
+ ],
+ '',
+ 'files',
+ '42',
+ 'karma|bus-factor'
],
+ [ #3 – exact Match
+ [
+ 'exact' => [
+ 'users' => [
+ ['label' => 'Bob Y.', 'value' => ['shareWith' => 'bob']],
+ ],
+ 'robots' => [],
+ ],
+ 'users' => [
+ ['label' => 'Robert R.', 'value' => ['shareWith' => 'bobby']],
+ ],
+ ],
+ [
+ [ 'id' => 'bob', 'label' => 'Bob Y.', 'source' => 'users'],
+ [ 'id' => 'bobby', 'label' => 'Robert R.', 'source' => 'users'],
+ ],
+ 'bob',
+ 'files',
+ '42',
+ null
+ ]
];
+ }
- $expected = [
- [ 'id' => 'bob', 'label' => 'Bob Y.', 'source' => 'users'],
- [ 'id' => 'bobby', 'label' => 'Robert R.', 'source' => 'users'],
- ];
-
+ /**
+ * @param $searchResults
+ * @param $expected
+ * @param $searchTerm
+ * @param $itemType
+ * @param $itemId
+ * @param $sorter
+ * @dataProvider searchDataProvider
+ */
+ public function testGet($searchResults, $expected, $searchTerm, $itemType, $itemId, $sorter) {
$this->collaboratorSearch->expects($this->once())
->method('search')
->willReturn([$searchResults, false]);
- $response = $this->controller->get('bob', 'files', '42', null);
+ $runSorterFrequency = $sorter === null ? $this->never() : $this->once();
+ $this->autoCompleteManager->expects($runSorterFrequency)
+ ->method('runSorters');
+
+ $response = $this->controller->get($searchTerm, $itemType, $itemId, $sorter);
$list = $response->getData();
$this->assertEquals($expected, $list); // has better error output…