aboutsummaryrefslogtreecommitdiffstats
path: root/simplepie/test/functions.php
diff options
context:
space:
mode:
Diffstat (limited to 'simplepie/test/functions.php')
-rw-r--r--simplepie/test/functions.php486
1 files changed, 486 insertions, 0 deletions
diff --git a/simplepie/test/functions.php b/simplepie/test/functions.php
new file mode 100644
index 000000000..0d01211ce
--- /dev/null
+++ b/simplepie/test/functions.php
@@ -0,0 +1,486 @@
+<?php
+
+require_once 'unit_test/unit_test2.php';
+
+class SimplePie_Unit_Test2_Group extends Unit_Test2_Group
+{
+ function pre()
+ {
+ ob_start();
+ }
+
+ function post()
+ {
+ $output = ob_get_contents();
+
+ if ($output !== false)
+ {
+ ob_end_clean();
+ }
+
+ $passed_percentage = floor($this->passes() / $this->total() * 100);
+ $failed_percentage = ceil($this->fails() / $this->total() * 100);
+
+ echo '<h2 class=' . (($passed_percentage == 100) ? 'pass' : 'fail') . '>' . htmlspecialchars($this->name(), ENT_COMPAT, 'UTF-8') . ': ' . $passed_percentage . "% passed!</h2>\n";
+ echo "<p>\n$output\n</p>\n";
+ echo '<p>We ran ' . $this->total() . ' tests in ' . round($this->time(), 3) . ' seconds of which ' . $this->passes() . ' passed, and ' . $this->fails() . ' failed.</p>';
+ flush();
+ }
+}
+
+class SimplePie_Unit_Test2 extends Unit_Test2
+{
+ function SimplePie_Unit_Test2()
+ {
+ parent::Unit_Test2();
+ if (strpos($this->name, 'SimplePie') === 0)
+ {
+ $this->name = trim(substr_replace($this->name, '', 0, 9));
+ }
+ }
+
+ function output($title, $class, $content)
+ {
+ printf("<span title='%s' class='%s'>%s</span>\n", $title, $class, $content);
+ }
+
+ function pass()
+ {
+ $this->output(htmlspecialchars($this->name(), ENT_COMPAT, 'UTF-8'), 'pass', '&#x2714;');
+ parent::pass();
+ }
+
+ function fail()
+ {
+ $this->output(htmlspecialchars($this->name(), ENT_COMPAT, 'UTF-8'), 'fail', '&#x2718;');
+ parent::fail();
+ }
+
+ function result()
+ {
+ if ($this->result === $this->expected)
+ {
+ $this->pass();
+ }
+ else
+ {
+ $this->fail();
+ }
+ }
+}
+
+class SimplePie_Feed_Test extends SimplePie_Unit_Test2
+{
+ function feed()
+ {
+ $feed = new SimplePie();
+ $feed->set_raw_data($this->data);
+ $feed->enable_cache(false);
+ $feed->init();
+ return $feed;
+ }
+}
+
+class SimplePie_Feed_Author_Test extends SimplePie_Feed_Test
+{
+ function author()
+ {
+ $feed = $this->feed();
+ if ($author = $item->get_author())
+ {
+ return $author;
+ }
+ else
+ {
+ return false;
+ }
+ }
+}
+
+class SimplePie_Feed_Category_Test extends SimplePie_Feed_Test
+{
+ function category()
+ {
+ $feed = $this->feed();
+ if ($category = $feed->get_category())
+ {
+ return $category;
+ }
+ else
+ {
+ return false;
+ }
+ }
+}
+
+class SimplePie_First_Item_Test extends SimplePie_Feed_Test
+{
+ function first_item()
+ {
+ $feed = $this->feed();
+ if ($item = $feed->get_item(0))
+ {
+ return $item;
+ }
+ else
+ {
+ return false;
+ }
+ }
+}
+
+class SimplePie_First_Item_Author_Test extends SimplePie_First_Item_Test
+{
+ function author()
+ {
+ if ($item = $this->first_item())
+ {
+ if ($author = $item->get_author())
+ {
+ return $author;
+ }
+ }
+ return false;
+ }
+}
+
+class SimplePie_First_Item_Category_Test extends SimplePie_First_Item_Test
+{
+ function category()
+ {
+ if ($item = $this->first_item())
+ {
+ if ($category = $item->get_category())
+ {
+ return $category;
+ }
+ }
+ return false;
+ }
+}
+
+class SimplePie_First_Item_Contributor_Test extends SimplePie_First_Item_Test
+{
+ function contributor()
+ {
+ if ($item = $this->first_item())
+ {
+ if ($contributor = $item->get_contributor())
+ {
+ return $contributor;
+ }
+ }
+ return false;
+ }
+}
+
+class SimplePie_Absolutize_Test extends SimplePie_Unit_Test2
+{
+ function test()
+ {
+ $this->result = SimplePie_Misc::absolutize_url($this->data['relative'], $this->data['base']);
+ }
+}
+
+class SimplePie_Date_Test extends SimplePie_Unit_Test2
+{
+ function test()
+ {
+ $this->result = SimplePie_Misc::parse_date($this->data);
+ }
+}
+
+class SimplePie_Feed_Category_Label_Test extends SimplePie_Feed_Category_Test
+{
+ function test()
+ {
+ if ($category = $this->category())
+ {
+ $this->result = $category->get_label();
+ }
+ }
+}
+
+class SimplePie_Feed_Copyright_Test extends SimplePie_Feed_Test
+{
+ function test()
+ {
+ $feed = $this->feed();
+ $this->result = $feed->get_copyright();
+ }
+}
+
+class SimplePie_Feed_Description_Test extends SimplePie_Feed_Test
+{
+ function test()
+ {
+ $feed = $this->feed();
+ $this->result = $feed->get_description();
+ }
+}
+
+class SimplePie_Feed_Image_Height_Test extends SimplePie_Feed_Test
+{
+ function test()
+ {
+ $feed = $this->feed();
+ $this->result = $feed->get_image_height();
+ }
+}
+
+class SimplePie_Feed_Image_Link_Test extends SimplePie_Feed_Test
+{
+ function test()
+ {
+ $feed = $this->feed();
+ $this->result = $feed->get_image_link();
+ }
+}
+
+class SimplePie_Feed_Image_Title_Test extends SimplePie_Feed_Test
+{
+ function test()
+ {
+ $feed = $this->feed();
+ $this->result = $feed->get_image_title();
+ }
+}
+
+class SimplePie_Feed_Image_URL_Test extends SimplePie_Feed_Test
+{
+ function test()
+ {
+ $feed = $this->feed();
+ $this->result = $feed->get_image_url();
+ }
+}
+
+class SimplePie_Feed_Image_Width_Test extends SimplePie_Feed_Test
+{
+ function test()
+ {
+ $feed = $this->feed();
+ $this->result = $feed->get_image_width();
+ }
+}
+
+class SimplePie_Feed_Language_Test extends SimplePie_Feed_Test
+{
+ function test()
+ {
+ $feed = $this->feed();
+ $this->result = $feed->get_language();
+ }
+}
+
+class SimplePie_Feed_Link_Test extends SimplePie_Feed_Test
+{
+ function test()
+ {
+ $feed = $this->feed();
+ $this->result = $feed->get_link();
+ }
+}
+
+class SimplePie_Feed_Title_Test extends SimplePie_Feed_Test
+{
+ function test()
+ {
+ $feed = $this->feed();
+ $this->result = $feed->get_title();
+ }
+}
+
+class SimplePie_First_Item_Author_Name_Test extends SimplePie_First_Item_Author_Test
+{
+ function test()
+ {
+ if ($author = $this->author())
+ {
+ $this->result = $author->get_name();
+ }
+ }
+}
+
+class SimplePie_First_Item_Category_Label_Test extends SimplePie_First_Item_Category_Test
+{
+ function test()
+ {
+ if ($category = $this->category())
+ {
+ $this->result = $category->get_label();
+ }
+ }
+}
+
+class SimplePie_First_Item_Content_Test extends SimplePie_First_Item_Test
+{
+ function test()
+ {
+ if ($item = $this->first_item())
+ {
+ $this->result = $item->get_content();
+ }
+ }
+}
+
+class SimplePie_First_Item_Contributor_Name_Test extends SimplePie_First_Item_Contributor_Test
+{
+ function test()
+ {
+ if ($contributor = $this->contributor())
+ {
+ $this->result = $contributor->get_name();
+ }
+ }
+}
+
+class SimplePie_First_Item_Date_Test extends SimplePie_First_Item_Test
+{
+ function test()
+ {
+ if ($item = $this->first_item())
+ {
+ $this->result = $item->get_date('U');
+ }
+ }
+}
+
+class SimplePie_First_Item_Description_Test extends SimplePie_First_Item_Test
+{
+ function test()
+ {
+ if ($item = $this->first_item())
+ {
+ $this->result = $item->get_description();
+ }
+ }
+}
+
+class SimplePie_First_Item_ID_Test extends SimplePie_First_Item_Test
+{
+ function test()
+ {
+ if ($item = $this->first_item())
+ {
+ $this->result = $item->get_id();
+ }
+ }
+}
+
+class SimplePie_First_Item_Latitude_Test extends SimplePie_First_Item_Test
+{
+ function test()
+ {
+ if ($item = $this->first_item())
+ {
+ $this->result = $item->get_latitude();
+ }
+ }
+}
+
+class SimplePie_First_Item_Longitude_Test extends SimplePie_First_Item_Test
+{
+ function test()
+ {
+ if ($item = $this->first_item())
+ {
+ $this->result = $item->get_longitude();
+ }
+ }
+}
+
+class SimplePie_First_Item_Permalink_Test extends SimplePie_First_Item_Test
+{
+ function test()
+ {
+ if ($item = $this->first_item())
+ {
+ $this->result = $item->get_permalink();
+ }
+ }
+}
+
+class SimplePie_First_Item_Title_Test extends SimplePie_First_Item_Test
+{
+ function test()
+ {
+ if ($item = $this->first_item())
+ {
+ $this->result = $item->get_title();
+ }
+ }
+}
+
+class SimplePie_iTunesRSS_Channel_Block_Test extends SimplePie_First_Item_Test
+{
+ function test()
+ {
+ if ($item = $this->first_item())
+ {
+ if ($enclosure = $item->get_enclosure())
+ {
+ if ($restriction = $enclosure->get_restriction())
+ {
+ return $restriction->get_relationship();
+ }
+ }
+ }
+ return false;
+ }
+}
+
+class diveintomark_Atom_Autodiscovery extends SimplePie_Unit_Test2
+{
+ var $data = array('url' => 'http://diveintomark.org/tests/client/autodiscovery/');
+
+ function data()
+ {
+ $this->data['file'] =& new SimplePie_File($this->data['url'], 10, 5, null, SIMPLEPIE_USERAGENT);
+ $this->name = $this->data['url'];
+ $this->data['url'] = false;
+ }
+
+ function expected()
+ {
+ $this->expected = $this->data['file']->url;
+ }
+
+ function test()
+ {
+ $feed = new SimplePie();
+ $feed->set_file($this->data['file']);
+ $feed->enable_cache(false);
+ $feed->init();
+ $this->result = $feed->get_link();
+ }
+
+ function result()
+ {
+ if ($this->data['file']->url != 'http://diveintomark.org/tests/client/autodiscovery/')
+ {
+ parent::result();
+ }
+ static $done = array();
+ $links = SimplePie_Misc::get_element('link', $this->data['file']->body);
+ foreach ($links as $link)
+ {
+ if (!empty($link['attribs']['href']['data']) && !empty($link['attribs']['rel']['data']))
+ {
+ $rel = array_unique(SimplePie_Misc::space_seperated_tokens(strtolower($link['attribs']['rel']['data'])));
+ $href = SimplePie_Misc::absolutize_url(trim($link['attribs']['href']['data']), $this->data['file']->url);
+ if (!in_array($href, $done) && in_array('next', $rel))
+ {
+ $done[] = $this->data['url'] = $href;
+ break;
+ }
+ }
+ }
+ if ($this->data['url'])
+ {
+ $this->run();
+ }
+ }
+}
+
+?> \ No newline at end of file