16fbe9396SMichael Große<?php 26fbe9396SMichael Große 36fbe9396SMichael Großedeclare(strict_types=1); 46fbe9396SMichael Große 56fbe9396SMichael Großenamespace dokuwiki\plugin\today\test; 66fbe9396SMichael Große 76fbe9396SMichael Großeuse DokuWikiTest; 86fbe9396SMichael Großeuse TestRequest; 96fbe9396SMichael Große 106fbe9396SMichael Große/** 116fbe9396SMichael Große * Tests for the `?do=today&namespace=foo:bar` action component of the today plugin 126fbe9396SMichael Große * 136fbe9396SMichael Große * @group plugin_today 146fbe9396SMichael Große * @group plugins 156fbe9396SMichael Große */ 166fbe9396SMichael Großefinal class ActionTest extends DokuWikiTest { 176fbe9396SMichael Große protected $pluginsEnabled = ['today']; 186fbe9396SMichael Große 19*c2de205aSMichael Große public static function dataProvider(): iterable 20*c2de205aSMichael Große { 21*c2de205aSMichael Große yield 'no format' => [ 22*c2de205aSMichael Große 'extraParams' => [ 23*c2de205aSMichael Große 'namespace' => 'foo:bar', 24*c2de205aSMichael Große ], 25*c2de205aSMichael Große 'expectedUrl' => '/doku.php?id=foo:bar:' . date('Y-m-d'), 26*c2de205aSMichael Große ]; 27*c2de205aSMichael Große 28*c2de205aSMichael Große yield 'with format' => [ 29*c2de205aSMichael Große 'extraParams' => [ 30*c2de205aSMichael Große 'namespace' => 'foo:bar', 31*c2de205aSMichael Große 'format' => 'Y:Y-m-d', 32*c2de205aSMichael Große ], 33*c2de205aSMichael Große 'expectedUrl' => '/doku.php?id=foo:bar:' . date('Y:Y-m-d'), 34*c2de205aSMichael Große ]; 35*c2de205aSMichael Große 36*c2de205aSMichael Große yield 'weekly' => [ 37*c2de205aSMichael Große 'extraParams' => [ 38*c2de205aSMichael Große 'namespace' => 'journal:weekly', 39*c2de205aSMichael Große 'format' => 'Y:W', 40*c2de205aSMichael Große ], 41*c2de205aSMichael Große 'expectedUrl' => '/doku.php?id=journal:weekly:' . date('Y:W'), 42*c2de205aSMichael Große ]; 43*c2de205aSMichael Große } 44*c2de205aSMichael Große 45*c2de205aSMichael Große /** 46*c2de205aSMichael Große * @dataProvider dataProvider 47*c2de205aSMichael Große */ 48*c2de205aSMichael Große public function testRedirect(array $extraParams, $expectedUrl): void 496fbe9396SMichael Große { 506fbe9396SMichael Große $request = new TestRequest(); 51*c2de205aSMichael Große $response = $request->get( array_merge(['do' => 'today'], $extraParams) ); 526fbe9396SMichael Große 536fbe9396SMichael Große $actualUrl = $response->getData('send_redirect')[0]; 54*c2de205aSMichael Große 556fbe9396SMichael Große $this->assertSame( $expectedUrl, $actualUrl); 566fbe9396SMichael Große } 576fbe9396SMichael Große} 58