$enclosureParams = array('url' => 'foo.com', 'length' => '1234', 'mimeType' => 'foobarmimetype');
$enclosure = new sfFeedEnclosure();
$enclosure->initialize($enclosureParams);
$itemParams = array('title' => 'fooitem', 'link' => 'http://www.example.com/item1', 'description' => 'foobar baz item', 'content' => 'this is foo bar baz', 'authorName' => 'francois item', 'authorEmail' => '*****@*****.**', 'authorLink' => 'http://bar.baz.item', 'categories' => array('fooitem', 'baritem'), 'pubDate' => '12345', 'comments' => 'gee', 'uniqueId' => '98765', 'enclosure' => $enclosure, 'categories' => array('fooitem', 'baritem'));
$item2Params = array('title' => 'foobaritem', 'pubDate' => '123456', 'authorEmail' => '*****@*****.**', 'link' => 'http://www.example.com/item2');
$image_params = array('title' => 'symfony project', 'link' => 'http://www.symfony-project.org', 'favicon' => 'http://www.symfony-project.org/favicon.ico', 'image' => 'http://www.symfony-project.org/images/symfony_logo.gif', 'faviconX' => '16', 'faviconY' => '16', 'imageX' => '176', 'imageY' => '37');
$feed = new sfRssFeed();
$feed->initialize($feedParams);
$feedItem = new sfFeedItem();
$feedItem->initialize($itemParams);
$feed->addItem($feedItem);
$feedItem2 = new sfFeedItem();
$feedItem2->initialize($item2Params);
$feed->addItem($feedItem2);
$feedImage = new sfFeedImage();
$feedImage->initialize($image_params);
$feed->setImage($feedImage);
$t = new lime_test(62, new lime_output_color());
$t->diag('toXML() - generated feed');
$feedString = $feed->toXml();
$feedXml = simplexml_load_string($feedString);
$t->is($feedXml->getName(), 'rss', '<rss> is the main tag');
preg_match('/^<\\?xml\\s*version="1\\.0"\\s*encoding="(.*?)".*?\\?>$/mi', $feedString, $matches);
$t->is($matches[1], $feed->getEncoding(), 'The encoding is set with the proper feed encoding');
$t->is((string) $feedXml->channel[0]->title, $feedParams['title'], '<title> contains the feed title');
$t->is((string) $feedXml->channel[0]->link, $feedParams['link'], '<link> contains the feed link');
$t->is((string) $feedXml->channel[0]->description, $feedParams['description'], '<description> contains the feed description');
$t->is((string) $feedXml->channel[0]->language, $feedParams['language'], '<language> contains the feed language');
$t->is((string) $feedXml->channel[0]->managingEditor, $feedParams['authorEmail'] . ' (' . $feedParams['authorName'] . ')', '<managingEditor> contains the author email and name');
$t->is((string) $feedXml->channel[0]->pubDate, date(DATE_RFC822, $item2Params['pubDate']), '<pubDate> contains the latest publication date of all feed items');
$t->is_deeply(array((string) $feedXml->channel[0]->category[0], (string) $feedXml->channel[0]->category[1]), $feedParams['categories'], '<category> contains the correct categories');
<?php

define('SF_ROOT_DIR', realpath(dirname(__FILE__) . '/../../../..'));
define('SF_APP', 'frontend');
include dirname(__FILE__) . '/../../../../test/bootstrap/functional.php';
$b = new sfTestBrowser();
$b->initialize();
$t = new lime_test(9, new lime_output_color());
$image_params = array('title' => 'symfony project', 'link' => 'http://www.symfony-project.org', 'favicon' => 'http://www.symfony-project.org/favicon.ico', 'image' => 'http://www.symfony-project.org/images/symfony_logo.gif', 'faviconX' => '16', 'faviconY' => '16', 'imageX' => '176', 'imageY' => '37');
$item = new sfFeedImage();
$t->isa_ok($item->initialize($image_params), 'sfFeedImage', 'initialize() returns the current feed image object');
$t->is($item->getTitle(), $image_params['title'], 'getTitle() gets the feed image title');
$t->is($item->getLink(), $image_params['link'], 'getLink() gets the feed image link');
$t->is($item->getFavicon(), $image_params['favicon'], 'getFavicon() gets the feed favicon url');
$t->is($item->getImage(), $image_params['image'], 'getImage() gets the feed image url');
$t->is($item->getFaviconX(), $image_params['faviconX'], 'getFaviconX() gets the feed favicon x size');
$t->is($item->getFaviconY(), $image_params['faviconY'], 'getFaviconY() gets the feed favicon y size');
$t->is($item->getImageX(), $image_params['imageX'], 'getImageX() gets the feed image x size');
$t->is($item->getImageY(), $image_params['imageY'], 'getImageY() gets the feed image y size');