| Current File : //opt/RZphp72/includes/test/XML_Feed_Parser/tests/atomValues.php |
<?php
require_once 'XML_Feed_Parser_TestCase.php';
class atomValues extends XML_Feed_Parser_TestCase
{
function setUp()
{
$sample_dir = XML_Feed_Parser_TestCase::getSampleDir();
$this->file = file_get_contents($sample_dir . DIRECTORY_SEPARATOR . 'atom10-example2.xml');
$this->feed = new XML_Feed_Parser($this->file);
$this->entry = $this->feed->getEntryByOffset(0);
}
function test_feedNumberItems()
{
$value = 1;
$this->assertEquals($value, $this->feed->numberEntries);
}
function test_FeedTitle()
{
$value = 'dive into mark';
$this->assertEquals($value, $this->feed->title);
}
function test_feedSubtitle()
{
$value = 'A <em>lot</em> of effort
went into making this effortless';
$content = trim($this->feed->subtitle);
$content = preg_replace('/\t/', ' ', $content);
$content = preg_replace('/( )+/', ' ', $content);
$this->assertEquals($content, $value);
}
function test_feedUpdated()
{
$value = strtotime('2005-07-31T12:29:29Z');
$this->assertEquals($this->feed->updated, $value);
}
function test_feedId()
{
$value = 'tag:example.org,2003:3';
$this->assertEquals($this->feed->id, $value);
}
function test_feedRights()
{
$value = 'Copyright (c) 2003, Mark Pilgrim';
$this->assertEquals($this->feed->rights, $value);
}
function test_feedLinkPlain()
{
$value = 'http://example.org/';
$this->assertEquals($this->feed->link, $value);
}
function test_feedLinkAttributes()
{
$value = 'self';
$link = $this->feed->link(0, 'rel', array('type' => 'application/atom+xml'));
$this->assertEquals($link, $value);
}
function test_feedGenerator()
{
$value = 'Example Toolkit';
$this->assertEquals($value, trim($this->feed->generator));
}
function test_entryTitle()
{
$value = 'Atom draft-07 snapshot';
$this->assertEquals($value, trim($this->entry->title));
}
function test_entryLink()
{
$value = 'http://example.org/2005/04/02/atom';
$this->assertEquals($value, trim($this->entry->link));
}
function test_entryId()
{
$value = 'tag:example.org,2003:3.2397';
$this->assertEquals($value, trim($this->entry->id));
}
function test_entryUpdated()
{
$value = strtotime('2005-07-31T12:29:29Z');
$this->assertEquals($value, $this->entry->updated);
}
function test_entryPublished()
{
$value = strtotime('2003-12-13T08:29:29-04:00');
$this->assertEquals($value, $this->entry->published);
}
function test_entryContent()
{
$value = '<p><i>[Update: The Atom draft is finished.]</i></p>';
$content = trim($this->entry->content);
$content = preg_replace('/\t/', ' ', $content);
$content = preg_replace('/( )+/', ' ', $content);
$this->assertEquals($value, $content);
}
function test_entryAuthorURL()
{
$value = 'http://example.org/';
$name = $this->entry->author(false, array('param' => 'uri'));
$this->assertEquals($value, $name);
}
function test_entryAuthorName()
{
$value = 'Mark Pilgrim (f8dy@example.com)';
$this->assertEquals($value, $this->entry->author);
}
function test_entryContributor()
{
$value = 'Sam Ruby';
$this->assertEquals($value, $this->entry->contributor);
}
function test_entryContributorOffset()
{
$value = 'Joe Gregorio';
$this->assertEquals($value, $this->entry->contributor(1));
}
# According to RFC4287 section 4.2.7.2:
# [..]If the 'rel' attribute is not present, the link element MUST be
# interpreted as if the link relation type is "alternate".
function test_getsLinkWithoutRel()
{
$source = '<?xml version="1.0" ?>
<entry xmlns="http://www.w3.org/2005/Atom">
<link href="http://example.org/2005/04/02/atom" />
</entry>
';
$feed = new XML_Feed_Parser($source);
$entry = $feed->getEntryByOffset(0);
// Output
$this->assertEquals( "http://example.org/2005/04/02/atom",
$entry->link(0, 'href', array('rel'=>'alternate')));
}
function test_htmlUnencoding() {
$source = '<entry xmlns="http://www.w3.org/2005/Atom">
...
<summary type="html">
<P>The &lt;EM&gt; tag emphasizes the content.</P>
</summary>
</entry>';
$atom = new XML_Feed_Parser($source);
$this->assertEquals("<P>The <EM> tag emphasizes the content.</P>",
trim($atom->getEntryByOffset(0)->summary));
}
# According to RFC4287 section 4.2.7.2:
# The value "alternate" signifies that the IRI in the value of the
# href attribute identifies an alternate version of the resource
# described by the containing element.
function test_getAlternativeLinkForItem()
{
$source = '<?xml version="1.0" ?>
<entry xmlns="http://www.w3.org/2005/Atom">
<link rel="replies" href="http://example.org/2005/04/02/atom/comments" />
<link rel="edit" href="http://example.org/2005/04/02/atom/edit"/>
<link rel="self" href="http://example.org/2005/04/02/atom/self"/>
<link rel="alternate" href="http://example.org/2005/04/02/atom" />
</entry>
';
$feed = new XML_Feed_Parser($source);
$entry = $feed->getEntryByOffset(0);
// Output
$this->assertEquals( "http://example.org/2005/04/02/atom",
$entry->link(0, 'href', array()));
}
}
?>