getting cakephp set up with its own web server(s) and docroot
This commit is contained in:
593
web-cake/html/cake/tests/cases/libs/view/helpers/rss.test.php
Normal file
593
web-cake/html/cake/tests/cases/libs/view/helpers/rss.test.php
Normal file
@@ -0,0 +1,593 @@
|
||||
<?php
|
||||
/**
|
||||
* RssHelperTest file
|
||||
*
|
||||
* PHP versions 4 and 5
|
||||
*
|
||||
* CakePHP(tm) Tests <http://book.cakephp.org/view/1196/Testing>
|
||||
* Copyright 2005-2010, Cake Software Foundation, Inc. (http://cakefoundation.org)
|
||||
*
|
||||
* Licensed under The Open Group Test Suite License
|
||||
* Redistributions of files must retain the above copyright notice.
|
||||
*
|
||||
* @copyright Copyright 2005-2010, Cake Software Foundation, Inc. (http://cakefoundation.org)
|
||||
* @link http://book.cakephp.org/view/1196/Testing CakePHP(tm) Tests
|
||||
* @package cake
|
||||
* @subpackage cake.tests.cases.libs.view.helpers
|
||||
* @since CakePHP(tm) v 1.2.0.4206
|
||||
* @license http://www.opensource.org/licenses/opengroup.php The Open Group Test Suite License
|
||||
*/
|
||||
App::import('Helper', array('Rss', 'Time'));
|
||||
|
||||
/**
|
||||
* RssHelperTest class
|
||||
*
|
||||
* @package cake
|
||||
* @subpackage cake.tests.cases.libs.view.helpers
|
||||
*/
|
||||
class RssHelperTest extends CakeTestCase {
|
||||
|
||||
/**
|
||||
* setUp method
|
||||
*
|
||||
* @access public
|
||||
* @return void
|
||||
*/
|
||||
function setUp() {
|
||||
$this->Rss =& new RssHelper();
|
||||
$this->Rss->Time =& new TimeHelper();
|
||||
$this->Rss->beforeRender();
|
||||
|
||||
$manager =& XmlManager::getInstance();
|
||||
$manager->namespaces = array();
|
||||
}
|
||||
|
||||
/**
|
||||
* tearDown method
|
||||
*
|
||||
* @access public
|
||||
* @return void
|
||||
*/
|
||||
function tearDown() {
|
||||
unset($this->Rss);
|
||||
}
|
||||
|
||||
/**
|
||||
* testAddNamespace method
|
||||
*
|
||||
* @access public
|
||||
* @return void
|
||||
*/
|
||||
function testAddNamespace() {
|
||||
$this->Rss->addNs('custom', 'http://example.com/dtd.xml');
|
||||
$manager =& XmlManager::getInstance();
|
||||
|
||||
$expected = array('custom' => 'http://example.com/dtd.xml');
|
||||
$this->assertEqual($manager->namespaces, $expected);
|
||||
|
||||
$this->Rss->removeNs('custom');
|
||||
|
||||
$this->Rss->addNs('dummy', 'http://dummy.com/1.0/');
|
||||
$result = $this->Rss->document();
|
||||
$expected = array(
|
||||
'rss' => array(
|
||||
'xmlns:dummy' => 'http://dummy.com/1.0/',
|
||||
'version' => '2.0'
|
||||
)
|
||||
);
|
||||
$this->assertTags($result, $expected);
|
||||
|
||||
$this->Rss->removeNs('dummy');
|
||||
}
|
||||
|
||||
/**
|
||||
* testRemoveNamespace method
|
||||
*
|
||||
* @access public
|
||||
* @return void
|
||||
*/
|
||||
function testRemoveNamespace() {
|
||||
$this->Rss->addNs('custom', 'http://example.com/dtd.xml');
|
||||
$this->Rss->addNs('custom2', 'http://example.com/dtd2.xml');
|
||||
$manager =& XmlManager::getInstance();
|
||||
|
||||
$expected = array('custom' => 'http://example.com/dtd.xml', 'custom2' => 'http://example.com/dtd2.xml');
|
||||
$this->assertEqual($manager->namespaces, $expected);
|
||||
|
||||
$this->Rss->removeNs('custom');
|
||||
$expected = array('custom2' => 'http://example.com/dtd2.xml');
|
||||
$this->assertEqual($manager->namespaces, $expected);
|
||||
}
|
||||
/**
|
||||
* testDocument method
|
||||
*
|
||||
* @access public
|
||||
* @return void
|
||||
*/
|
||||
function testDocument() {
|
||||
$result = $this->Rss->document();
|
||||
$expected = array(
|
||||
'rss' => array(
|
||||
'version' => '2.0'
|
||||
)
|
||||
);
|
||||
$this->assertTags($result, $expected);
|
||||
|
||||
$result = $this->Rss->document(array('contrived' => 'parameter'));
|
||||
$expected = array(
|
||||
'rss' => array(
|
||||
'version' => '2.0'
|
||||
),
|
||||
'<parameter'
|
||||
);
|
||||
$this->assertTags($result, $expected);
|
||||
|
||||
$result = $this->Rss->document(null, 'content');
|
||||
$expected = array(
|
||||
'rss' => array(
|
||||
'version' => '2.0'
|
||||
),
|
||||
'content'
|
||||
);
|
||||
$this->assertTags($result, $expected);
|
||||
|
||||
$result = $this->Rss->document(array('contrived' => 'parameter'), 'content');
|
||||
$expected = array(
|
||||
'rss' => array(
|
||||
'contrived' => 'parameter',
|
||||
'version' => '2.0'
|
||||
),
|
||||
'content'
|
||||
);
|
||||
$this->assertTags($result, $expected);
|
||||
}
|
||||
|
||||
/**
|
||||
* testChannel method
|
||||
*
|
||||
* @access public
|
||||
* @return void
|
||||
*/
|
||||
function testChannel() {
|
||||
$attrib = array('a' => '1', 'b' => '2');
|
||||
$elements = array('title' => 'title');
|
||||
$content = 'content';
|
||||
|
||||
$result = $this->Rss->channel($attrib, $elements, $content);
|
||||
$expected = array(
|
||||
'channel' => array(
|
||||
'a' => '1',
|
||||
'b' => '2'
|
||||
),
|
||||
'<title',
|
||||
'title',
|
||||
'/title',
|
||||
'<link',
|
||||
RssHelper::url('/', true),
|
||||
'/link',
|
||||
'<description',
|
||||
'content',
|
||||
'/channel'
|
||||
);
|
||||
$this->assertTags($result, $expected);
|
||||
}
|
||||
|
||||
/**
|
||||
* test correct creation of channel sub elements.
|
||||
*
|
||||
* @access public
|
||||
* @return void
|
||||
*/
|
||||
function testChannelElements() {
|
||||
$attrib = array();
|
||||
$elements = array(
|
||||
'title' => 'Title of RSS Feed',
|
||||
'link' => 'http://example.com',
|
||||
'description' => 'Description of RSS Feed',
|
||||
'image' => array(
|
||||
'title' => 'Title of image',
|
||||
'url' => 'http://example.com/example.png',
|
||||
'link' => 'http://example.com'
|
||||
),
|
||||
'cloud' => array(
|
||||
'domain' => "rpc.sys.com",
|
||||
'port' => "80",
|
||||
'path' =>"/RPC2",
|
||||
'registerProcedure' => "myCloud.rssPleaseNotify",
|
||||
'protocol' => "xml-rpc"
|
||||
)
|
||||
);
|
||||
$content = 'content-here';
|
||||
$result = $this->Rss->channel($attrib, $elements, $content);
|
||||
$expected = array(
|
||||
'<channel',
|
||||
'<title', 'Title of RSS Feed', '/title',
|
||||
'<link', 'http://example.com', '/link',
|
||||
'<description', 'Description of RSS Feed', '/description',
|
||||
'<image',
|
||||
'<title', 'Title of image', '/title',
|
||||
'<url', 'http://example.com/example.png', '/url',
|
||||
'<link', 'http://example.com', '/link',
|
||||
'/image',
|
||||
'cloud' => array(
|
||||
'domain' => "rpc.sys.com",
|
||||
'port' => "80",
|
||||
'path' =>"/RPC2",
|
||||
'registerProcedure' => "myCloud.rssPleaseNotify",
|
||||
'protocol' => "xml-rpc"
|
||||
),
|
||||
'content-here',
|
||||
'/channel',
|
||||
);
|
||||
$this->assertTags($result, $expected);
|
||||
}
|
||||
function testChannelElementAttributes() {
|
||||
$attrib = array();
|
||||
$elements = array(
|
||||
'title' => 'Title of RSS Feed',
|
||||
'link' => 'http://example.com',
|
||||
'description' => 'Description of RSS Feed',
|
||||
'image' => array(
|
||||
'title' => 'Title of image',
|
||||
'url' => 'http://example.com/example.png',
|
||||
'link' => 'http://example.com'
|
||||
),
|
||||
'atom:link' => array(
|
||||
'attrib' => array(
|
||||
'href' => 'http://www.example.com/rss.xml',
|
||||
'rel' => 'self',
|
||||
'type' => 'application/rss+xml')
|
||||
)
|
||||
);
|
||||
$content = 'content-here';
|
||||
$result = $this->Rss->channel($attrib, $elements, $content);
|
||||
$expected = array(
|
||||
'<channel',
|
||||
'<title', 'Title of RSS Feed', '/title',
|
||||
'<link', 'http://example.com', '/link',
|
||||
'<description', 'Description of RSS Feed', '/description',
|
||||
'<image',
|
||||
'<title', 'Title of image', '/title',
|
||||
'<url', 'http://example.com/example.png', '/url',
|
||||
'<link', 'http://example.com', '/link',
|
||||
'/image',
|
||||
'atom:link' => array(
|
||||
'href' => "http://www.example.com/rss.xml",
|
||||
'rel' => "self",
|
||||
'type' =>"application/rss+xml"
|
||||
),
|
||||
'content-here',
|
||||
'/channel',
|
||||
);
|
||||
$this->assertTags($result, $expected);
|
||||
}
|
||||
|
||||
/**
|
||||
* testItems method
|
||||
*
|
||||
* @access public
|
||||
* @return void
|
||||
*/
|
||||
function testItems() {
|
||||
$items = array(
|
||||
array('title' => 'title1', 'guid' => 'http://www.example.com/guid1', 'link' => 'http://www.example.com/link1', 'description' => 'description1'),
|
||||
array('title' => 'title2', 'guid' => 'http://www.example.com/guid2', 'link' => 'http://www.example.com/link2', 'description' => 'description2'),
|
||||
array('title' => 'title3', 'guid' => 'http://www.example.com/guid3', 'link' => 'http://www.example.com/link3', 'description' => 'description3')
|
||||
);
|
||||
|
||||
$result = $this->Rss->items($items);
|
||||
$expected = array(
|
||||
'<item',
|
||||
'<title', 'title1', '/title',
|
||||
'<guid', 'http://www.example.com/guid1', '/guid',
|
||||
'<link', 'http://www.example.com/link1', '/link',
|
||||
'<description', 'description1', '/description',
|
||||
'/item',
|
||||
'<item',
|
||||
'<title', 'title2', '/title',
|
||||
'<guid', 'http://www.example.com/guid2', '/guid',
|
||||
'<link', 'http://www.example.com/link2', '/link',
|
||||
'<description', 'description2', '/description',
|
||||
'/item',
|
||||
'<item',
|
||||
'<title', 'title3', '/title',
|
||||
'<guid', 'http://www.example.com/guid3', '/guid',
|
||||
'<link', 'http://www.example.com/link3', '/link',
|
||||
'<description', 'description3', '/description',
|
||||
'/item'
|
||||
);
|
||||
$this->assertTags($result, $expected);
|
||||
|
||||
$result = $this->Rss->items(array());
|
||||
$expected = '';
|
||||
$this->assertEqual($result, $expected);
|
||||
}
|
||||
|
||||
/**
|
||||
* testItem method
|
||||
*
|
||||
* @access public
|
||||
* @return void
|
||||
*/
|
||||
function testItem() {
|
||||
$item = array(
|
||||
'title' => 'My title',
|
||||
'description' => 'My description',
|
||||
'link' => 'http://www.google.com/'
|
||||
);
|
||||
$result = $this->Rss->item(null, $item);
|
||||
$expected = array(
|
||||
'<item',
|
||||
'<title',
|
||||
'My title',
|
||||
'/title',
|
||||
'<description',
|
||||
'My description',
|
||||
'/description',
|
||||
'<link',
|
||||
'http://www.google.com/',
|
||||
'/link',
|
||||
'<guid',
|
||||
'http://www.google.com/',
|
||||
'/guid',
|
||||
'/item'
|
||||
);
|
||||
$this->assertTags($result, $expected);
|
||||
|
||||
$item = array(
|
||||
'title' => array(
|
||||
'value' => 'My Title',
|
||||
'cdata' => true,
|
||||
),
|
||||
'link' => 'http://www.example.com/1',
|
||||
'description' => array(
|
||||
'value' => 'descriptive words',
|
||||
'cdata' => true,
|
||||
),
|
||||
'pubDate' => '2008-05-31 12:00:00',
|
||||
'guid' => 'http://www.example.com/1'
|
||||
);
|
||||
$result = $this->Rss->item(null, $item);
|
||||
|
||||
$expected = array(
|
||||
'<item',
|
||||
'<title',
|
||||
'<![CDATA[My Title]]',
|
||||
'/title',
|
||||
'<link',
|
||||
'http://www.example.com/1',
|
||||
'/link',
|
||||
'<description',
|
||||
'<![CDATA[descriptive words]]',
|
||||
'/description',
|
||||
'<pubDate',
|
||||
date('r', strtotime('2008-05-31 12:00:00')),
|
||||
'/pubDate',
|
||||
'<guid',
|
||||
'http://www.example.com/1',
|
||||
'/guid',
|
||||
'/item'
|
||||
);
|
||||
$this->assertTags($result, $expected);
|
||||
|
||||
$item = array(
|
||||
'title' => array(
|
||||
'value' => 'My Title & more',
|
||||
'cdata' => true
|
||||
)
|
||||
);
|
||||
$result = $this->Rss->item(null, $item);
|
||||
$expected = array(
|
||||
'<item',
|
||||
'<title',
|
||||
'<![CDATA[My Title & more]]',
|
||||
'/title',
|
||||
'/item'
|
||||
);
|
||||
$this->assertTags($result, $expected);
|
||||
|
||||
$item = array(
|
||||
'title' => array(
|
||||
'value' => 'My Title & more',
|
||||
'convertEntities' => false
|
||||
)
|
||||
);
|
||||
$result = $this->Rss->item(null, $item);
|
||||
$expected = array(
|
||||
'<item',
|
||||
'<title',
|
||||
'My Title & more',
|
||||
'/title',
|
||||
'/item'
|
||||
);
|
||||
$this->assertTags($result, $expected);
|
||||
|
||||
$item = array(
|
||||
'title' => array(
|
||||
'value' => 'My Title & more',
|
||||
'cdata' => true,
|
||||
'convertEntities' => false,
|
||||
)
|
||||
);
|
||||
$result = $this->Rss->item(null, $item);
|
||||
$expected = array(
|
||||
'<item',
|
||||
'<title',
|
||||
'<![CDATA[My Title & more]]',
|
||||
'/title',
|
||||
'/item'
|
||||
);
|
||||
$this->assertTags($result, $expected);
|
||||
|
||||
$item = array(
|
||||
'category' => array(
|
||||
'value' => 'CakePHP',
|
||||
'cdata' => true,
|
||||
'domain' => 'http://www.cakephp.org'
|
||||
)
|
||||
);
|
||||
$result = $this->Rss->item(null, $item);
|
||||
$expected = array(
|
||||
'<item',
|
||||
'category' => array('domain' => 'http://www.cakephp.org'),
|
||||
'<![CDATA[CakePHP]]',
|
||||
'/category',
|
||||
'/item'
|
||||
);
|
||||
$this->assertTags($result, $expected);
|
||||
|
||||
$item = array(
|
||||
'category' => array(
|
||||
array(
|
||||
'value' => 'CakePHP',
|
||||
'cdata' => true,
|
||||
'domain' => 'http://www.cakephp.org'
|
||||
),
|
||||
array(
|
||||
'value' => 'Bakery',
|
||||
'cdata' => true
|
||||
)
|
||||
)
|
||||
);
|
||||
$result = $this->Rss->item(null, $item);
|
||||
$expected = array(
|
||||
'<item',
|
||||
'category' => array('domain' => 'http://www.cakephp.org'),
|
||||
'<![CDATA[CakePHP]]',
|
||||
'/category',
|
||||
'<category',
|
||||
'<![CDATA[Bakery]]',
|
||||
'/category',
|
||||
'/item'
|
||||
);
|
||||
$this->assertTags($result, $expected);
|
||||
|
||||
$item = array(
|
||||
'title' => array(
|
||||
'value' => 'My Title',
|
||||
'cdata' => true,
|
||||
),
|
||||
'link' => 'http://www.example.com/1',
|
||||
'description' => array(
|
||||
'value' => 'descriptive words',
|
||||
'cdata' => true,
|
||||
),
|
||||
'enclosure' => array(
|
||||
'url' => '/test.flv'
|
||||
),
|
||||
'pubDate' => '2008-05-31 12:00:00',
|
||||
'guid' => 'http://www.example.com/1',
|
||||
'category' => array(
|
||||
array(
|
||||
'value' => 'CakePHP',
|
||||
'cdata' => true,
|
||||
'domain' => 'http://www.cakephp.org'
|
||||
),
|
||||
array(
|
||||
'value' => 'Bakery',
|
||||
'cdata' => true
|
||||
)
|
||||
)
|
||||
);
|
||||
$result = $this->Rss->item(null, $item);
|
||||
$expected = array(
|
||||
'<item',
|
||||
'<title',
|
||||
'<![CDATA[My Title]]',
|
||||
'/title',
|
||||
'<link',
|
||||
'http://www.example.com/1',
|
||||
'/link',
|
||||
'<description',
|
||||
'<![CDATA[descriptive words]]',
|
||||
'/description',
|
||||
'enclosure' => array('url' => RssHelper::url('/test.flv', true)),
|
||||
'<pubDate',
|
||||
date('r', strtotime('2008-05-31 12:00:00')),
|
||||
'/pubDate',
|
||||
'<guid',
|
||||
'http://www.example.com/1',
|
||||
'/guid',
|
||||
'category' => array('domain' => 'http://www.cakephp.org'),
|
||||
'<![CDATA[CakePHP]]',
|
||||
'/category',
|
||||
'<category',
|
||||
'<![CDATA[Bakery]]',
|
||||
'/category',
|
||||
'/item'
|
||||
);
|
||||
$this->assertTags($result, $expected);
|
||||
|
||||
$item = array(
|
||||
'title' => 'Foo bar',
|
||||
'link' => array(
|
||||
'url' => 'http://example.com/foo?a=1&b=2',
|
||||
'convertEntities' => false
|
||||
),
|
||||
'description' => array(
|
||||
'value' => 'descriptive words',
|
||||
'cdata' => true,
|
||||
),
|
||||
'pubDate' => '2008-05-31 12:00:00'
|
||||
);
|
||||
$result = $this->Rss->item(null, $item);
|
||||
$expected = array(
|
||||
'<item',
|
||||
'<title',
|
||||
'Foo bar',
|
||||
'/title',
|
||||
'<link',
|
||||
'http://example.com/foo?a=1&b=2',
|
||||
'/link',
|
||||
'<description',
|
||||
'<![CDATA[descriptive words]]',
|
||||
'/description',
|
||||
'<pubDate',
|
||||
date('r', strtotime('2008-05-31 12:00:00')),
|
||||
'/pubDate',
|
||||
'<guid',
|
||||
'http://example.com/foo?a=1&b=2',
|
||||
'/guid',
|
||||
'/item'
|
||||
);
|
||||
$this->assertTags($result, $expected);
|
||||
}
|
||||
|
||||
/**
|
||||
* testTime method
|
||||
*
|
||||
* @access public
|
||||
* @return void
|
||||
*/
|
||||
function testTime() {
|
||||
}
|
||||
|
||||
/**
|
||||
* testElementAttrNotInParent method
|
||||
*
|
||||
* @access public
|
||||
* @return void
|
||||
*/
|
||||
function testElementAttrNotInParent() {
|
||||
$attributes = array(
|
||||
'title' => 'Some Title',
|
||||
'link' => 'http://link.com',
|
||||
'description' => 'description'
|
||||
);
|
||||
$elements = array('enclosure' => array('url' => 'http://test.com'));
|
||||
|
||||
$result = $this->Rss->item($attributes, $elements);
|
||||
$expected = array(
|
||||
'item' => array(
|
||||
'title' => 'Some Title',
|
||||
'link' => 'http://link.com',
|
||||
'description' => 'description'
|
||||
),
|
||||
'enclosure' => array(
|
||||
'url' => 'http://test.com'
|
||||
),
|
||||
'/item'
|
||||
);
|
||||
$this->assertTags($result, $expected);
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user