You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
cacert-testmgr/external/ZendFramework-1.9.5/tests/Zend/Service/Technorati/WeblogTest.php

278 lines
9.6 KiB
PHP

<?php
/**
* Zend Framework
*
* LICENSE
*
* This source file is subject to the new BSD license that is bundled
* with this package in the file LICENSE.txt.
* It is also available through the world-wide-web at this URL:
* http://framework.zend.com/license/new-bsd
* If you did not receive a copy of the license and are unable to
* obtain it through the world-wide-web, please send an email
* to license@zend.com so we can send you a copy immediately.
*
* @category Zend
* @package Zend_Service_Technorati
* @subpackage UnitTests
* @copyright Copyright (c) 2005-2009 Zend Technologies USA Inc. (http://www.zend.com)
* @license http://framework.zend.com/license/new-bsd New BSD License
* @version $Id: WeblogTest.php 17363 2009-08-03 07:40:18Z bkarwin $
*/
/**
* Test helper
*/
require_once dirname(__FILE__) . DIRECTORY_SEPARATOR .'TestCase.php';
/**
* @see Zend_Service_Technorati_Weblog
*/
require_once 'Zend/Service/Technorati/Weblog.php';
/**
* @category Zend
* @package Zend_Service_Technorati
* @subpackage UnitTests
* @copyright Copyright (c) 2005-2009 Zend Technologies USA Inc. (http://www.zend.com)
* @license http://framework.zend.com/license/new-bsd New BSD License
* @group Zend_Service
* @group Zend_Service_Technorati
*/
class Zend_Service_Technorati_WeblogTest extends Zend_Service_Technorati_TestCase
{
public function setUp()
{
$this->domElement = self::getTestFileElementAsDom('TestWeblog.xml', '//weblog');
}
public function testConstruct()
{
$this->_testConstruct('Zend_Service_Technorati_Weblog', array($this->domElement));
}
public function testConstructThrowsExceptionWithInvalidDom()
{
$this->_testConstructThrowsExceptionWithInvalidDom('Zend_Service_Technorati_Weblog', 'DOMElement');
}
public function testWeblog()
{
$weblog = new Zend_Service_Technorati_Weblog($this->domElement);
// check name
$this->assertEquals('Roby Web World Italia', $weblog->getName());
// check URL
$this->assertEquals(Zend_Uri::factory('http://robyww.blogspot.com'), $weblog->getUrl());
// check Atom Url
$this->assertEquals(Zend_Uri::factory('http://robyww.blogspot.com/feeds/posts/atom'), $weblog->getAtomUrl());
// check RSS Url
$this->assertEquals(Zend_Uri::factory('http://robyww.blogspot.com/feeds/posts/rss'), $weblog->getRssUrl());
// check inbound blogs
$this->assertEquals(71, $weblog->getInboundBlogs());
// check inbound links
$this->assertEquals(103, $weblog->getInboundLinks());
// check last update
$this->assertEquals(new Zend_Date('2007-11-11 08:47:26 GMT'), $weblog->getLastUpdate());
// check rank
$this->assertEquals(93473, $weblog->getRank());
// check authors
$var = $weblog->getAuthors();
$this->assertType('array', $var);
$this->assertEquals(1, sizeof($var));
// check photo
$this->assertEquals(false, $weblog->hasPhoto());
// check lat and lon
$this->assertNull($weblog->getLat());
$this->assertNull($weblog->getLon());
}
public function testWeblogWithTwoAuthors()
{
$domElement = self::getTestFileElementAsDom('TestWeblogTwoAuthors.xml', '//weblog');
$weblog = new Zend_Service_Technorati_Weblog($domElement);
$authors = $weblog->getAuthors();
// check whether $authors is an array with valid length
$this->assertType('array', $authors);
$this->assertEquals(2, sizeof($authors));
// check first author
$author = $authors[0];
$this->assertType('Zend_Service_Technorati_Author', $author);
$this->assertEquals('rfilippini', $author->getUsername());
// check second author, be sure it's not the first one
$author = $authors[1];
$this->assertType('Zend_Service_Technorati_Author', $author);
$this->assertEquals('Rinzi', $author->getUsername());
}
public function testSetGet()
{
$weblog = new Zend_Service_Technorati_Weblog($this->domElement);
// check name
$set = 'foo';
$get = $weblog->setName($set)->getName();
$this->assertType('string', $get);
$this->assertEquals($set, $get);
// check URL
$set = Zend_Uri::factory('http://www.simonecarletti.com/');
$get = $weblog->setUrl($set)->getUrl();
$this->assertType('Zend_Uri_Http', $get);
$this->assertEquals($set, $get);
$set = 'http://www.simonecarletti.com/';
$get = $weblog->setUrl($set)->getUrl();
$this->assertType('Zend_Uri_Http', $get);
$this->assertEquals(Zend_Uri::factory($set), $get);
$set = 'http:::/foo';
try {
$weblog->setUrl($set);
$this->fail('Expected Zend_Service_Technorati_Exception not thrown');
} catch(Zend_Service_Technorati_Exception $e) {
$this->assertContains("Invalid URI", $e->getMessage());
}
// check Atom URL
$set = Zend_Uri::factory('http://www.simonecarletti.com/');
$get = $weblog->setAtomUrl($set)->getAtomUrl();
$this->assertType('Zend_Uri_Http', $get);
$this->assertEquals($set, $get);
$set = 'http://www.simonecarletti.com/';
$get = $weblog->setAtomUrl($set)->getAtomUrl();
$this->assertType('Zend_Uri_Http', $get);
$this->assertEquals(Zend_Uri::factory($set), $get);
$set = 'http:::/foo';
try {
$weblog->setAtomUrl($set);
$this->fail('Expected Zend_Service_Technorati_Exception not thrown');
} catch(Zend_Service_Technorati_Exception $e) {
$this->assertContains("Invalid URI", $e->getMessage());
}
// check RSS Url
$set = Zend_Uri::factory('http://www.simonecarletti.com/');
$get = $weblog->setRssUrl($set)->getRssUrl();
$this->assertType('Zend_Uri_Http', $get);
$this->assertEquals($set, $get);
$set = 'http://www.simonecarletti.com/';
$get = $weblog->setRssUrl($set)->getRssUrl();
$this->assertType('Zend_Uri_Http', $get);
$this->assertEquals(Zend_Uri::factory($set), $get);
$set = 'http:::/foo';
try {
$weblog->setRssUrl($set);
$this->fail('Expected Zend_Service_Technorati_Exception not thrown');
} catch(Zend_Service_Technorati_Exception $e) {
$this->assertContains("Invalid URI", $e->getMessage());
}
// check inbound blogs
$set = rand();
$get = $weblog->setInboundBlogs($set)->getInboundBlogs();
$this->assertType('integer', $get);
$this->assertEquals($set, $get);
$set = (string) rand();
$get = $weblog->setInboundBlogs($set)->getInboundBlogs();
$this->assertType('integer', $get);
$this->assertEquals((int) $set, $get);
// check inbound links
$set = rand();
$get = $weblog->setInboundLinks($set)->getInboundLinks();
$this->assertType('integer', $get);
$this->assertEquals((int) $set, $get);
$set = (string) rand();
$get = $weblog->setInboundLinks($set)->getInboundLinks();
$this->assertType('integer', $get);
$this->assertEquals((int) $set, $get);
// last update
$set = '2007-11-11 08:47:26 GMT';
$get = $weblog->setLastUpdate($set)->getLastUpdate();
$this->assertType('Zend_Date', $get);
$this->assertEquals(new Zend_Date($set), $get);
/* not supported
$set = time();
$get = $weblog->setLastUpdate($set)->getLastUpdate();
$this->assertType('integer', $get);
$this->assertEquals($set, $get); */
$set = '200ty';
try {
$weblog->setLastUpdate($set);
$this->fail('Expected Zend_Service_Technorati_Exception not thrown');
} catch(Zend_Service_Technorati_Exception $e) {
$this->assertContains("valid Date/Time", $e->getMessage());
}
// check rank
$set = rand();
$get = $weblog->setRank($set)->getRank();
$this->assertType('integer', $get);
$this->assertEquals((int) $set, $get);
$set = (string) rand();
$get = $weblog->setRank($set)->getRank();
$this->assertType('integer', $get);
$this->assertEquals((int) $set, $get);
// check hasPhoto
$set = false;
$get = $weblog->setHasPhoto($set)->hasPhoto();
$this->assertType('boolean', $get);
$this->assertEquals($set, $get);
$set = 0;
$get = $weblog->setHasPhoto($set)->hasPhoto();
$this->assertType('boolean', $get);
$this->assertEquals((bool) $set, $get);
// check lat
$set = 1.3;
$get = $weblog->setLat($set)->getLat();
$this->assertType('float', $get);
$this->assertEquals($set, $get);
$set = '1.3';
$get = $weblog->setLat($set)->getLat();
$this->assertType('float', $get);
$this->assertEquals((float) $set, $get);
// check lon
$set = 1.3;
$get = $weblog->setLon($set)->getLon();
$this->assertType('float', $get);
$this->assertEquals($set, $get);
$set = '1.3';
$get = $weblog->setLon($set)->getLon();
$this->assertType('float', $get);
$this->assertEquals((float) $set, $get);
}
}