From 42721e95726559b4a601240bb5b0fe4e5d755b2a Mon Sep 17 00:00:00 2001 From: Igor Scheller Date: Wed, 27 Nov 2019 23:43:21 +0100 Subject: Added Schedule parsing and replaced old Fahrplan importer Resolves #553 (Change Frab Import from xCal to XML) Resolves #538 (Feature Request: Multi Frab Import) --- tests/Unit/Helpers/Schedule/EventTest.php | 145 ++++++++++++++++++++++++++++++ 1 file changed, 145 insertions(+) create mode 100644 tests/Unit/Helpers/Schedule/EventTest.php (limited to 'tests/Unit/Helpers/Schedule/EventTest.php') diff --git a/tests/Unit/Helpers/Schedule/EventTest.php b/tests/Unit/Helpers/Schedule/EventTest.php new file mode 100644 index 00000000..262aeea7 --- /dev/null +++ b/tests/Unit/Helpers/Schedule/EventTest.php @@ -0,0 +1,145 @@ +assertEquals('0-1-2-3', $event->getGuid()); + $this->assertEquals(1, $event->getId()); + $this->assertEquals($room, $event->getRoom()); + $this->assertEquals('Some stuff', $event->getTitle()); + $this->assertEquals('sub stuff', $event->getSubtitle()); + $this->assertEquals('Talk', $event->getType()); + $this->assertEquals($date, $event->getDate()); + $this->assertEquals('19:30:00', $event->getStart()); + $this->assertEquals('00:50', $event->getDuration()); + $this->assertEquals('Doing stuff is hard, plz try again', $event->getAbstract()); + $this->assertEquals('1-some-stuff', $event->getSlug()); + $this->assertEquals('Security', $event->getTrack()); + $this->assertNull($event->getLogo()); + $this->assertEquals([], $event->getPersons()); + $this->assertNull($event->getLanguage()); + $this->assertNull($event->getDescription()); + $this->assertEquals('', $event->getRecording()); + $this->assertEquals([], $event->getLinks()); + $this->assertEquals([], $event->getAttachments()); + $this->assertNull($event->getUrl()); + $this->assertNull($event->getVideoDownloadUrl()); + $this->assertEquals('2020-12-28T20:20:00+00:00', $event->getEndDate()->format(Carbon::RFC3339)); + } + + /** + * @covers \Engelsystem\Helpers\Schedule\Event::__construct + * @covers \Engelsystem\Helpers\Schedule\Event::getGuid + * @covers \Engelsystem\Helpers\Schedule\Event::getId + * @covers \Engelsystem\Helpers\Schedule\Event::getRoom + * @covers \Engelsystem\Helpers\Schedule\Event::getTitle + * @covers \Engelsystem\Helpers\Schedule\Event::getSubtitle + * @covers \Engelsystem\Helpers\Schedule\Event::getType + * @covers \Engelsystem\Helpers\Schedule\Event::getDate + * @covers \Engelsystem\Helpers\Schedule\Event::getStart + * @covers \Engelsystem\Helpers\Schedule\Event::getDuration + * @covers \Engelsystem\Helpers\Schedule\Event::getDurationSeconds + * @covers \Engelsystem\Helpers\Schedule\Event::getAbstract + * @covers \Engelsystem\Helpers\Schedule\Event::getSlug + * @covers \Engelsystem\Helpers\Schedule\Event::getTrack + * @covers \Engelsystem\Helpers\Schedule\Event::getLogo + * @covers \Engelsystem\Helpers\Schedule\Event::getPersons + * @covers \Engelsystem\Helpers\Schedule\Event::getLanguage + * @covers \Engelsystem\Helpers\Schedule\Event::getDescription + * @covers \Engelsystem\Helpers\Schedule\Event::getRecording + * @covers \Engelsystem\Helpers\Schedule\Event::getLinks + * @covers \Engelsystem\Helpers\Schedule\Event::getAttachments + * @covers \Engelsystem\Helpers\Schedule\Event::getUrl + * @covers \Engelsystem\Helpers\Schedule\Event::getVideoDownloadUrl + */ + public function testCreateNotDefault() + { + $persons = [1337 => 'Some Person']; + $links = ['https://foo.bar' => 'Foo Bar']; + $attachments = ['/files/foo.pdf' => 'Suspicious PDF']; + $event = new Event( + '3-2-1-0', + 2, + new Room('Bar'), + 'Lorem', + 'Ipsum', + 'Workshop', + new Carbon('2021-01-01T00:00:00+00:00'), + '00:00:00', + '00:30', + 'Lorem ipsum dolor sit amet', + '2-lorem', + 'DevOps', + '/foo/bar.png', + $persons, + 'de', + 'Foo bar is awesome! & That\'s why...', + 'CC BY SA', + $links, + $attachments, + 'https://foo.bar/2-lorem', + 'https://videos.orem.ipsum/2-lorem.mp4' + ); + + $this->assertEquals('/foo/bar.png', $event->getLogo()); + $this->assertEquals($persons, $event->getPersons()); + $this->assertEquals('de', $event->getLanguage()); + $this->assertEquals('Foo bar is awesome! & That\'s why...', $event->getDescription()); + $this->assertEquals('CC BY SA', $event->getRecording()); + $this->assertEquals($links, $event->getLinks()); + $this->assertEquals($attachments, $event->getAttachments()); + $this->assertEquals('https://foo.bar/2-lorem', $event->getUrl()); + $this->assertEquals('https://videos.orem.ipsum/2-lorem.mp4', $event->getVideoDownloadUrl()); + } +} -- cgit v1.2.3-54-g00ecf From 47e209e12594b935ba1670096ae4c55538ebde94 Mon Sep 17 00:00:00 2001 From: Igor Scheller Date: Sat, 30 Nov 2019 01:15:39 +0100 Subject: ImportSchedule: Append talk language to shift title Resolves #587 (Include talk language into Frab-imported shift titles) --- includes/pages/schedule/ImportSchedule.php | 1 + src/Helpers/Schedule/Event.php | 8 ++++++++ tests/Unit/Helpers/Schedule/EventTest.php | 4 ++++ 3 files changed, 13 insertions(+) (limited to 'tests/Unit/Helpers/Schedule/EventTest.php') diff --git a/includes/pages/schedule/ImportSchedule.php b/includes/pages/schedule/ImportSchedule.php index 1b03b57b..8bc769d4 100644 --- a/includes/pages/schedule/ImportSchedule.php +++ b/includes/pages/schedule/ImportSchedule.php @@ -440,6 +440,7 @@ class ImportSchedule extends BaseController $event->getDate()->subMinutes($minutesBefore); $event->getEndDate()->addMinutes($minutesAfter); + $event->setTitle(sprintf('%s [%s]', $event->getTitle(), $event->getLanguage())); } } } diff --git a/src/Helpers/Schedule/Event.php b/src/Helpers/Schedule/Event.php index 46970e7b..ab3b39a5 100644 --- a/src/Helpers/Schedule/Event.php +++ b/src/Helpers/Schedule/Event.php @@ -183,6 +183,14 @@ class Event return $this->title; } + /** + * @param string $title + */ + public function setTitle(string $title): void + { + $this->title = $title; + } + /** * @return string */ diff --git a/tests/Unit/Helpers/Schedule/EventTest.php b/tests/Unit/Helpers/Schedule/EventTest.php index 262aeea7..d9706b13 100644 --- a/tests/Unit/Helpers/Schedule/EventTest.php +++ b/tests/Unit/Helpers/Schedule/EventTest.php @@ -84,6 +84,7 @@ class EventTest extends TestCase * @covers \Engelsystem\Helpers\Schedule\Event::getId * @covers \Engelsystem\Helpers\Schedule\Event::getRoom * @covers \Engelsystem\Helpers\Schedule\Event::getTitle + * @covers \Engelsystem\Helpers\Schedule\Event::setTitle * @covers \Engelsystem\Helpers\Schedule\Event::getSubtitle * @covers \Engelsystem\Helpers\Schedule\Event::getType * @covers \Engelsystem\Helpers\Schedule\Event::getDate @@ -141,5 +142,8 @@ class EventTest extends TestCase $this->assertEquals($attachments, $event->getAttachments()); $this->assertEquals('https://foo.bar/2-lorem', $event->getUrl()); $this->assertEquals('https://videos.orem.ipsum/2-lorem.mp4', $event->getVideoDownloadUrl()); + + $event->setTitle('Event title'); + $this->assertEquals('Event title', $event->getTitle()); } } -- cgit v1.2.3-54-g00ecf