From 6525f1c1096670f1c500e3cf0a2b45f97d7b3a43 Mon Sep 17 00:00:00 2001 From: Robbie Averill Date: Wed, 27 Sep 2017 11:49:57 +1300 Subject: [PATCH] FIX Update BlogArchiveWidget and tests for SS4 --- src/Widgets/BlogArchiveWidget.php | 8 ++-- tests/Widgets/BlogArchiveWidgetTest.php | 64 +++++++++++++++---------- 2 files changed, 42 insertions(+), 30 deletions(-) diff --git a/src/Widgets/BlogArchiveWidget.php b/src/Widgets/BlogArchiveWidget.php index 7d23dda..642494d 100644 --- a/src/Widgets/BlogArchiveWidget.php +++ b/src/Widgets/BlogArchiveWidget.php @@ -127,12 +127,12 @@ class BlogArchiveWidget extends Widget $month = null; $title = $year; } else { - $date = Date::create(); + $date = DBDate::create(); $date->setValue(strtotime($next['PublishDate'])); - $year = $date->Format('Y'); - $month = $date->Format('m'); - $title = $date->FormatI18N('%B %Y'); + $year = $date->Format('y'); + $month = $date->Format('MM'); + $title = $date->Format('MMMM y'); } $result->push(ArrayData::create([ diff --git a/tests/Widgets/BlogArchiveWidgetTest.php b/tests/Widgets/BlogArchiveWidgetTest.php index 7f93de4..9f4e49e 100644 --- a/tests/Widgets/BlogArchiveWidgetTest.php +++ b/tests/Widgets/BlogArchiveWidgetTest.php @@ -1,71 +1,83 @@ markTestSkipped('Test requires silverstripe/widgets to be installed.'); } - SS_Datetime::set_mock_now('2017-09-20 00:00:00'); + DBDatetime::set_mock_now('2017-09-20 00:00:00'); parent::setUp(); } - public function tearDown() + protected function tearDown() { parent::tearDown(); - SS_Datetime::clear_mock_now(); + DBDatetime::clear_mock_now(); } public function testArchiveMonthlyFromStage() { - $widget = $this->objFromFixture('BlogArchiveWidget', 'archive-monthly'); + $widget = $this->objFromFixture(BlogArchiveWidget::class, 'archive-monthly'); $archive = $widget->getArchive(); - $this->assertInstanceOf('SS_List', $archive); + $this->assertInstanceOf(SS_List::class, $archive); $this->assertCount(3, $archive); - $this->assertDOSContains(array( - array('Title' => 'August 2017'), - array('Title' => 'September 2017'), - array('Title' => 'May 2015'), - ), $archive); + $this->assertDOSContains([ + ['Title' => 'August 2017'], + ['Title' => 'September 2017'], + ['Title' => 'May 2015'], + ], $archive); } public function testArchiveMonthlyFromLive() { - $original = Versioned::current_stage(); + $original = Versioned::get_stage(); - $this->objFromFixture('BlogPost', 'post-b')->doPublish(); - Versioned::reading_stage('Live'); + $this->objFromFixture(BlogPost::class, 'post-b')->publishRecursive(); + Versioned::set_stage(Versioned::LIVE); - $widget = $this->objFromFixture('BlogArchiveWidget', 'archive-monthly'); + $widget = $this->objFromFixture(BlogArchiveWidget::class, 'archive-monthly'); $archive = $widget->getArchive(); $this->assertCount(1, $archive); - $this->assertDOSContains(array( - array('Title' => 'August 2017'), - ), $archive); + $this->assertDOSContains([ + ['Title' => 'August 2017'], + ], $archive); - Versioned::reading_stage($original); + if ($original) { + Versioned::set_stage($original); + } } public function testArchiveYearly() { - $widget = $this->objFromFixture('BlogArchiveWidget', 'archive-yearly'); + $widget = $this->objFromFixture(BlogArchiveWidget::class, 'archive-yearly'); $archive = $widget->getArchive(); - $this->assertInstanceOf('SS_List', $archive); + $this->assertInstanceOf(SS_List::class, $archive); $this->assertCount(2, $archive); - $this->assertDOSContains(array( - array('Title' => '2017'), - array('Title' => '2015'), - ), $archive); + $this->assertDOSContains([ + ['Title' => '2017'], + ['Title' => '2015'], + ], $archive); } }