From 6a49c8d5bb8858fca90125a8fad299a1d3d5eb1b Mon Sep 17 00:00:00 2001 From: Ben Isaacs Date: Thu, 11 Feb 2021 22:28:30 +0000 Subject: [PATCH] Allow overriding of basic properties which an RSS_File_Item will infer if not set. This allows us to construct the test cases hierarchically as well. --- dir2cast.php | 18 ++++++++++++++++++ test/RSS_File_ItemTest.php | 23 +++++++++++++++++++++++ test/RSS_ItemTest.php | 19 ++++++++++++------- 3 files changed, 53 insertions(+), 7 deletions(-) create mode 100644 test/RSS_File_ItemTest.php diff --git a/dir2cast.php b/dir2cast.php index acf8f90..00f7d53 100644 --- a/dir2cast.php +++ b/dir2cast.php @@ -631,11 +631,23 @@ protected function stripBasePath($filename) */ public function getTitle() { + $overridden_title = parent::getTitle(); + if($overridden_title) + { + return $overridden_title; + } + return basename($this->getFilename()); } public function getType() { + $overridden_type = parent::getType(); + if($overridden_type) + { + return $overridden_type; + } + return 'application/octet-stream'; } @@ -683,6 +695,12 @@ protected function getImageFilename($type) { */ public function getImage() { + $overridden_image = parent::getImage(); + if($overridden_image) + { + return $overridden_image; + } + $image_file_name = $this->getImageFilename('png'); if(file_exists( $image_file_name )) return $this->filenameToUrl($image_file_name); diff --git a/test/RSS_File_ItemTest.php b/test/RSS_File_ItemTest.php new file mode 100644 index 0000000..12181e6 --- /dev/null +++ b/test/RSS_File_ItemTest.php @@ -0,0 +1,23 @@ +newRSSItem(); $item->setTitle('item title'); $item->setLink('link.mp3'); $item->setPubDate('today'); @@ -56,7 +61,7 @@ public function test_html_description_with_DESCRIPTION_HTML_set() define('DESCRIPTION_HTML', true); $mp = new MyPodcast(); - $item = new RSS_Item(); + $item = $this->newRSSItem(); $item->setDescription("

test

"); $mp->addRssItem($item); @@ -73,19 +78,19 @@ public function test_html_description_with_DESCRIPTION_HTML_set() public function test_rss_item_default_title() { $mp = new MyPodcast(); - $item = new RSS_Item(); + $item = $this->newRSSItem(); $mp->addRssItem($item); $content = $mp->generate(); $data = simplexml_load_string($content, 'SimpleXMLElement', LIBXML_NOCDATA); - $this->assertEquals('(untitled)', $data->channel->item[0]->title); + $this->assertEquals($this->getDefaultTitle(), $data->channel->item[0]->title); } public function test_adds_image_to_item_if_set() { $mp = new MyPodcast(); - $item = new RSS_Item(); + $item = $this->newRSSItem(); $item->setImage('visuals.jpg'); $mp->addRssItem($item);