@@ -180,6 +180,100 @@ public function testShowPassesPageTemplateToView(): void
180180 $ this ->assertEquals ( '<html>Landing</html> ' , $ result );
181181 }
182182
183+ public function testShowDatesDefaultsToTrueWhenSettingNotSet (): void
184+ {
185+ $ mockPage = $ this ->createMock ( Page::class );
186+ $ mockPage ->method ( 'getId ' )->willReturn ( 1 );
187+ $ mockPage ->method ( 'getTitle ' )->willReturn ( 'Test Page ' );
188+ $ mockPage ->method ( 'isPublished ' )->willReturn ( true );
189+ $ mockPage ->method ( 'getContent ' )->willReturn ( [ 'blocks ' => [] ] );
190+ $ mockPage ->method ( 'getMetaTitle ' )->willReturn ( '' );
191+ $ mockPage ->method ( 'getMetaDescription ' )->willReturn ( '' );
192+ $ mockPage ->method ( 'getMetaKeywords ' )->willReturn ( '' );
193+ $ mockPage ->method ( 'getTemplate ' )->willReturn ( 'default ' );
194+
195+ $ mockPageRepository = $ this ->createMock ( IPageRepository::class );
196+ $ mockPageRepository ->method ( 'findBySlug ' )->willReturn ( $ mockPage );
197+ $ mockPageRepository ->method ( 'incrementViewCount ' );
198+
199+ $ mockRenderer = $ this ->createMock ( EditorJsRenderer::class );
200+ $ mockRenderer ->method ( 'render ' )->willReturn ( '<p>Content</p> ' );
201+
202+ $ mockSettingManager = Registry::getInstance ()->get ( 'Settings ' );
203+ $ mockSessionManager = $ this ->createMock ( \Neuron \Cms \Auth \SessionManager::class );
204+
205+ $ controller = $ this ->getMockBuilder ( Pages::class )
206+ ->setConstructorArgs ( [ $ this ->_mockApp , $ mockSettingManager , $ mockSessionManager , $ mockPageRepository , $ mockRenderer ] )
207+ ->onlyMethods ( [ 'renderHtml ' ] )
208+ ->getMock ();
209+
210+ $ controller ->expects ( $ this ->once () )
211+ ->method ( 'renderHtml ' )
212+ ->with (
213+ $ this ->anything (),
214+ $ this ->callback ( function ( $ data ) {
215+ return isset ( $ data ['ShowDates ' ] ) && $ data ['ShowDates ' ] === true ;
216+ } ),
217+ 'show '
218+ )
219+ ->willReturn ( '<html>Page</html> ' );
220+
221+ $ request = new Request ();
222+ $ request ->setRouteParameters ( [ 'slug ' => 'test-page ' ] );
223+ $ controller ->show ( $ request );
224+ }
225+
226+ public function testShowDatesDisabledBySetting (): void
227+ {
228+ $ settings = new Memory ();
229+ $ settings ->set ( 'site ' , 'name ' , 'Test Site ' );
230+ $ settings ->set ( 'site ' , 'title ' , 'Test Title ' );
231+ $ settings ->set ( 'site ' , 'description ' , 'Test Description ' );
232+ $ settings ->set ( 'site ' , 'url ' , 'http://test.com ' );
233+ $ settings ->set ( 'paths ' , 'version_file ' , $ this ->_versionFilePath );
234+ $ settings ->set ( 'pages ' , 'show_dates ' , false );
235+ $ settingManager = new SettingManager ( $ settings );
236+
237+ $ mockPage = $ this ->createMock ( Page::class );
238+ $ mockPage ->method ( 'getId ' )->willReturn ( 1 );
239+ $ mockPage ->method ( 'getTitle ' )->willReturn ( 'Test Page ' );
240+ $ mockPage ->method ( 'isPublished ' )->willReturn ( true );
241+ $ mockPage ->method ( 'getContent ' )->willReturn ( [ 'blocks ' => [] ] );
242+ $ mockPage ->method ( 'getMetaTitle ' )->willReturn ( '' );
243+ $ mockPage ->method ( 'getMetaDescription ' )->willReturn ( '' );
244+ $ mockPage ->method ( 'getMetaKeywords ' )->willReturn ( '' );
245+ $ mockPage ->method ( 'getTemplate ' )->willReturn ( 'default ' );
246+
247+ $ mockPageRepository = $ this ->createMock ( IPageRepository::class );
248+ $ mockPageRepository ->method ( 'findBySlug ' )->willReturn ( $ mockPage );
249+ $ mockPageRepository ->method ( 'incrementViewCount ' );
250+
251+ $ mockRenderer = $ this ->createMock ( EditorJsRenderer::class );
252+ $ mockRenderer ->method ( 'render ' )->willReturn ( '<p>Content</p> ' );
253+
254+ $ mockSessionManager = $ this ->createMock ( \Neuron \Cms \Auth \SessionManager::class );
255+
256+ $ controller = $ this ->getMockBuilder ( Pages::class )
257+ ->setConstructorArgs ( [ $ this ->_mockApp , $ settingManager , $ mockSessionManager , $ mockPageRepository , $ mockRenderer ] )
258+ ->onlyMethods ( [ 'renderHtml ' ] )
259+ ->getMock ();
260+
261+ $ controller ->expects ( $ this ->once () )
262+ ->method ( 'renderHtml ' )
263+ ->with (
264+ $ this ->anything (),
265+ $ this ->callback ( function ( $ data ) {
266+ return isset ( $ data ['ShowDates ' ] ) && $ data ['ShowDates ' ] === false ;
267+ } ),
268+ 'show '
269+ )
270+ ->willReturn ( '<html>Page</html> ' );
271+
272+ $ request = new Request ();
273+ $ request ->setRouteParameters ( [ 'slug ' => 'test-page ' ] );
274+ $ controller ->show ( $ request );
275+ }
276+
183277 public function testShowThrowsNotFoundForNonexistentPage (): void
184278 {
185279 $ mockPageRepository = $ this ->createMock ( IPageRepository::class );
0 commit comments