diff --git a/Tests/Fixtures/Controller/pages.csv b/Tests/Fixtures/Controller/pages.csv
index 1444c7d5b8..45bd7d0350 100644
--- a/Tests/Fixtures/Controller/pages.csv
+++ b/Tests/Fixtures/Controller/pages.csv
@@ -80,3 +80,4 @@ tt_content,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
tx_dlf_collections,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
,uid,pid,tstamp,crdate,cruser_id,deleted,sys_language_uid,l18n_parent,l18n_diffsource,hidden,fe_group,fe_cruser_id,fe_admin_lock,label,index_name,index_search,oai_name,description,thumbnail,priority,documents,owner,status,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
,1,2,1678700538,1678700538,2,0,0,0,"a:16:{s:16:"sys_language_uid";N;s:11:"l18n_parent";N;s:6:"hidden";N;s:8:"fe_group";N;s:5:"label";N;s:10:"index_name";N;s:12:"index_search";N;s:8:"oai_name";N;s:11:"description";N;s:8:"priority";N;s:9:"documents";N;s:5:"owner";N;s:12:"fe_cruser_id";N;s:13:"fe_admin_lock";N;s:6:"status";N;s:9:"thumbnail";N;}"",0,,0,0,""Test Collection",0,,0,0,Test Collection,test-collection,,test-collection,,,3,0,0,0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
+,2,2,1678700538,1678700538,2,0,0,0,"a:16:{s:16:"sys_language_uid";N;s:11:"l18n_parent";N;s:6:"hidden";N;s:8:"fe_group";N;s:5:"label";N;s:10:"index_name";N;s:12:"index_search";N;s:8:"oai_name";N;s:11:"description";N;s:8:"priority";N;s:9:"documents";N;s:5:"owner";N;s:12:"fe_cruser_id";N;s:13:"fe_admin_lock";N;s:6:"status";N;s:9:"thumbnail";N;}"",0,,0,0,""Second Collection",0,,0,0,Second Collection,second-collection,,second-collection,,,3,0,0,0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
diff --git a/Tests/Functional/Controller/CollectionControllerTest.php b/Tests/Functional/Controller/CollectionControllerTest.php
index 6a48d70e4a..90081a8f6c 100644
--- a/Tests/Functional/Controller/CollectionControllerTest.php
+++ b/Tests/Functional/Controller/CollectionControllerTest.php
@@ -13,6 +13,7 @@
namespace Kitodo\Dlf\Tests\Functional\Controller;
use Kitodo\Dlf\Controller\CollectionController;
+use PHPUnit\Framework\Attributes\Group;
use PHPUnit\Framework\Attributes\Test;
use TYPO3\CMS\Core\Core\SystemEnvironmentBuilder;
@@ -35,27 +36,25 @@ public function setUp(): void
}
#[Test]
+ #[Group("listAction")]
public function canListAction()
{
$settings = [
'storagePid' => self::$storagePid,
'solrcore' => self::$solrCoreId,
- 'collections' => '1',
+ 'collections' => '1,2',
'showSingle' => '0',
'randomize' => ''
];
- $templateHtml = '{item.collection.indexName}';
- $controller = $this->setUpController(CollectionController::class, $settings, $templateHtml);
- $request = $this->setUpRequest('list', [ 'tx_dlf' => ['id' => 1] ]);
+ $templateHtml = '{item.collection.indexName},';
- $response = $controller->processRequest($request);
- $response->getBody()->rewind();
- $actual = $response->getBody()->getContents();
- $expected = 'test-collection';
+ $actual = $this->getContentsList($settings, $templateHtml);
+ $expected = 'test-collection,second-collection,';
$this->assertEquals($expected, $actual);
}
#[Test]
+ #[Group("listAction")]
public function canListActionForwardToShow()
{
$settings = [
@@ -74,28 +73,121 @@ public function canListActionForwardToShow()
}
#[Test]
- public function canShowAction()
+ #[Group("listAction")]
+ public function canNotListActionForwardToShow()
{
$settings = [
'storagePid' => self::$storagePid,
'solrcore' => self::$solrCoreId,
'collections' => '1',
- 'showSingle' => '1',
+ 'showSingle' => '0',
+ 'randomize' => ''
+ ];
+ $templateHtml = '{item.collection.indexName}';
+
+ $actual = $this->getContentsList($settings, $templateHtml);
+ $expected = 'test-collection';
+ $this->assertEquals($expected, $actual);
+ }
+
+ #[Test]
+ #[Group("showAction")]
+ public function canShowSingleCollection()
+ {
+ $settings = [
+ 'storagePid' => self::$storagePid,
+ 'solrcore' => self::$solrCoreId,
+ 'collections' => '1',
+ 'showSingle' => '0',
'showOverview' => '1',
'showDocuments' => '1',
'randomize' => ''
];
$templateHtml = '{page.title},';
- $controller = $this->setUpController(CollectionController::class, $settings, $templateHtml);
- $request = $this->setUpRequest('show', [], ['collection' => '1' ]);
+ $actual = $this->getContentsShow($settings, $templateHtml);
+ $expected = '10 Keyboard pieces - Go. S. 658,';
+ $this->assertEquals($expected, $actual);
+ }
- $response = $controller->processRequest($request);
- $response->getBody()->rewind();
- $actual = $response->getBody()->getContents();
+ #[Test]
+ #[Group("showAction")]
+ public function canShowCollectionOverview()
+ {
+ $settings = [
+ 'storagePid' => self::$storagePid,
+ 'solrcore' => self::$solrCoreId,
+ 'collections' => '1',
+ 'showSingle' => '1',
+ 'showOverview' => '1',
+ 'showDocuments' => '1',
+ 'randomize' => ''
+ ];
+ $templateHtml = '{collection.label}';
+
+ $actual = $this->getContentsShow($settings, $templateHtml);;
+ $expected = 'Test Collection';
+ $this->assertEquals($expected, $actual);
+ }
+
+ #[Test]
+ #[Group("showAction")]
+ public function canNotShowCollectionOverview()
+ {
+ $settings = [
+ 'storagePid' => self::$storagePid,
+ 'solrcore' => self::$solrCoreId,
+ 'collections' => '1',
+ 'showSingle' => '1',
+ 'showOverview' => '0',
+ 'showDocuments' => '1',
+ 'randomize' => ''
+ ];
+ $templateHtml = '{collection.label}';
+
+ $actual = $this->getContentsShow($settings, $templateHtml);;
+ $expected = '';
+ $this->assertEquals($expected, $actual);
+ }
+
+ #[Test]
+ #[Group("showAction")]
+ public function canShowCollectionDocuments()
+ {
+ $settings = [
+ 'storagePid' => self::$storagePid,
+ 'solrcore' => self::$solrCoreId,
+ 'collections' => '1',
+ 'showSingle' => '1',
+ 'showOverview' => '1',
+ 'showDocuments' => '1',
+ 'randomize' => ''
+ ];
+ $templateHtml = '{page.title},';
+
+ $actual = $this->getContentsShow($settings, $templateHtml);;
$expected = '10 Keyboard pieces - Go. S. 658,';
$this->assertEquals($expected, $actual);
+ }
+ #[Test]
+ #[Group("showAction")]
+ public function canNotShowCollectionDocuments()
+ {
+ $settings = [
+ 'storagePid' => self::$storagePid,
+ 'solrcore' => self::$solrCoreId,
+ 'collections' => '1',
+ 'showSingle' => '1',
+ 'showOverview' => '1',
+ 'showDocuments' => '0',
+ 'randomize' => ''
+ ];
+ $templateHtml = '{page.title},';
+
+ $actual = $this->getContentsShow($settings, $templateHtml);;
+ $expected = '';
+ $this->assertEquals($expected, $actual);
}
#[Test]
@@ -115,4 +207,50 @@ public function canShowSortedAction()
$response = $controller->processRequest($request);
$this->assertEquals(303, $response->getStatusCode());
}
+
+ /**
+ * @access private
+ *
+ * @param array $settings
+ * @param string $templateHtml
+ *
+ * @return string
+ */
+ private function getContentsList(array $settings, string $templateHtml): string
+ {
+ return $this->getContents('list', [ 'tx_dlf' => ['id' => 1] ], $settings, $templateHtml);
+ }
+
+ /**
+ * @access private
+ *
+ * @param array $settings
+ * @param string $templateHtml
+ *
+ * @return string
+ */
+ private function getContentsShow(array $settings, string $templateHtml): string
+ {
+ return $this->getContents('show', ['collection' => '1' ], $settings, $templateHtml);
+ }
+
+ /**
+ * @access private
+ *
+ * @param string $action
+ * @param array $parameters
+ * @param array $settings
+ * @param string $templateHtml
+ *
+ * @return string
+ */
+ private function getContents(string $action, array $parameters, array $settings, string $templateHtml): string
+ {
+ $controller = $this->setUpController(CollectionController::class, $settings, $templateHtml);
+ $request = $this->setUpRequest($action, [], $parameters);
+
+ $response = $controller->processRequest($request);
+ $response->getBody()->rewind();
+ return $response->getBody()->getContents();
+ }
}