diff options
author | Arthur Schiwon <blizzz@arthur-schiwon.de> | 2017-11-28 13:30:51 +0100 |
---|---|---|
committer | Arthur Schiwon <blizzz@arthur-schiwon.de> | 2017-11-28 13:30:51 +0100 |
commit | 96bc03a03a7d7b1d5868eed5c1cc86b1b9b8ca2c (patch) | |
tree | 42fa9dbca516aa9638d3e28fa0abc8c47f6eaf5b /tests | |
parent | a0ce2c1204861e64219f6375f6ff8d13e63cfe32 (diff) | |
download | nextcloud-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.php | 140 |
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… |