diff options
| author | Horus3 | 2014-02-24 16:42:14 +0100 |
|---|---|---|
| committer | Horus3 | 2014-02-24 16:42:14 +0100 |
| commit | 06f945f27840b53e57795dadbc38e76f7e11ab1c (patch) | |
| tree | 689d5c7f4ffa15460c7e90f47c6a7dd59ce4e8bd /zend/tests/Zend/Gdata/YouTube | |
| download | random-06f945f27840b53e57795dadbc38e76f7e11ab1c.tar.gz | |
init
Diffstat (limited to 'zend/tests/Zend/Gdata/YouTube')
51 files changed, 8674 insertions, 0 deletions
diff --git a/zend/tests/Zend/Gdata/YouTube/ActivityEntryTest.php b/zend/tests/Zend/Gdata/YouTube/ActivityEntryTest.php new file mode 100644 index 0000000..5f925d7 --- /dev/null +++ b/zend/tests/Zend/Gdata/YouTube/ActivityEntryTest.php @@ -0,0 +1,153 @@ +<?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_Gdata_YouTube + * @subpackage UnitTests + * @copyright Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com) + * @license http://framework.zend.com/license/new-bsd New BSD License + * @version $Id $ + */ + +require_once 'Zend/Gdata/YouTube/ActivityEntry.php'; +require_once 'Zend/Gdata/YouTube.php'; + +/** + * @category Zend + * @package Zend_Gdata_YouTube + * @subpackage UnitTests + * @copyright Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com) + * @license http://framework.zend.com/license/new-bsd New BSD License + * @group Zend_Gdata + * @group Zend_Gdata_YouTube + */ +class Zend_Gdata_YouTube_ActivityEntryTest extends PHPUnit_Framework_TestCase +{ + + public function setUp() { + $this->entryText = file_get_contents( + 'Zend/Gdata/YouTube/_files/ActivityEntryDataSample1.xml', + true); + $this->entry = new Zend_Gdata_YouTube_ActivityEntry(); + $this->entry->setMajorProtocolVersion(2); + } + + private function verifyAllSamplePropertiesAreCorrect ($activityEntry) { + $this->assertEquals( + 'tag:youtube.com,2008:event:Z2RweXRob24xMTIzNDMwMDAyMzI5NTQ2N' . + 'zg2MA%3D%3D', + $activityEntry->id->text); + $this->assertEquals('2009-01-16T09:13:49.000-08:00', + $activityEntry->updated->text); + $this->assertEquals( + 'http://gdata.youtube.com/schemas/2007/userevents.cat', + $activityEntry->category[0]->scheme); + $this->assertEquals('video_favorited', + $activityEntry->category[0]->term); + $this->assertEquals('http://schemas.google.com/g/2005#kind', + $activityEntry->category[1]->scheme); + $this->assertEquals('http://gdata.youtube.com/schemas/2007#userEvent', + $activityEntry->category[1]->term); + $this->assertEquals('tayzonzay has favorited a video', + $activityEntry->title->text);; + + $this->assertEquals('self', $activityEntry->getLink('self')->rel); + $this->assertEquals('application/atom+xml', + $activityEntry->getLink('self')->type); + $this->assertEquals( + 'http://gdata.youtube.com/feeds/api/events/VGF5Wm9uZGF5MzEyaIl2' . + 'MTMxOTcxMDk3NzQ5MzM%3D?v=2', + $activityEntry->getLink('self')->href); + + $this->assertEquals('alternate', + $activityEntry->getLink('alternate')->rel); + $this->assertEquals('text/html', + $activityEntry->getLink('alternate')->type); + $this->assertEquals('http://www.youtube.com', + $activityEntry->getLink('alternate')->href); + + $this->assertEquals('http://gdata.youtube.com/schemas/2007#video', + $activityEntry->getLink( + 'http://gdata.youtube.com/schemas/2007#video')->rel); + $this->assertEquals('application/atom+xml', $activityEntry->getLink( + 'http://gdata.youtube.com/schemas/2007#video')->type); + $this->assertEquals( + 'http://gdata.youtube.com/feeds/api/videos/z3U0kuLH974?v=2', + $activityEntry->getLink( + 'http://gdata.youtube.com/schemas/2007#video')->href); + + $this->assertEquals('tayzonzay', $activityEntry->author[0]->name->text); + $this->assertEquals( + 'http://gdata.youtube.com/feeds/api/users/tayzonzay', + $activityEntry->author[0]->uri->text); + } + + public function testEmptyEntryShouldHaveNoExtensionElements() { + $this->assertTrue(is_array($this->entry->extensionElements)); + $this->assertTrue(count($this->entry->extensionElements) == 0); + } + + public function testEmptyEntryShouldHaveNoExtensionAttributes() { + $this->assertTrue(is_array($this->entry->extensionAttributes)); + $this->assertTrue(count($this->entry->extensionAttributes) == 0); + } + + public function testSampleEntryShouldHaveNoExtensionElements() { + $this->entry->transferFromXML($this->entryText); + $this->assertTrue(is_array($this->entry->extensionElements)); + $this->assertTrue(count($this->entry->extensionElements) == 0); + } + + public function testSampleEntryShouldHaveNoExtensionAttributes() { + $this->entry->transferFromXML($this->entryText); + $this->assertTrue(is_array($this->entry->extensionAttributes)); + $this->assertTrue(count($this->entry->extensionAttributes) == 0); + } + + public function testEmptyActivityEntryToAndFromStringShouldMatch() { + $entryXml = $this->entry->saveXML(); + $newActivityEntry = new Zend_Gdata_YouTube_ActivityEntry(); + $newActivityEntry->transferFromXML($entryXml); + $newActivityEntryXml = $newActivityEntry->saveXML(); + $this->assertTrue($entryXml == $newActivityEntryXml); + } + + public function testSamplePropertiesAreCorrect () { + $this->entry->transferFromXML($this->entryText); + $this->verifyAllSamplePropertiesAreCorrect($this->entry); + } + + public function testHelperMethods() { + $this->entry->transferFromXML($this->entryText); + $this->assertEquals('z3U0kuLH974', + $this->entry->getVideoId()->getText()); + $this->assertEquals('foo', + $this->entry->getUsername()->getText()); + $this->assertEquals('2', + $this->entry->getRatingValue()); + $this->assertEquals('video_favorited', + $this->entry->getActivityType()); + } + + public function testConvertActivityEntryToAndFromString() { + $this->entry->transferFromXML($this->entryText); + $entryXml = $this->entry->saveXML(); + $newActivityEntry = new Zend_Gdata_YouTube_ActivityEntry(); + $newActivityEntry->transferFromXML($entryXml); + $this->verifyAllSamplePropertiesAreCorrect($newActivityEntry); + $newActivityEntryXml = $newActivityEntry->saveXML(); + $this->assertEquals($entryXml, $newActivityEntryXml); + } + +} diff --git a/zend/tests/Zend/Gdata/YouTube/ActivityFeedTest.php b/zend/tests/Zend/Gdata/YouTube/ActivityFeedTest.php new file mode 100644 index 0000000..ae70798 --- /dev/null +++ b/zend/tests/Zend/Gdata/YouTube/ActivityFeedTest.php @@ -0,0 +1,149 @@ +<?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_Gdata_YouTube + * @subpackage UnitTests + * @copyright Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com) + * @license http://framework.zend.com/license/new-bsd New BSD License + * @version $Id $ + */ + +require_once 'Zend/Gdata/YouTube/ActivityFeed.php'; +require_once 'Zend/Gdata/YouTube.php'; + +/** + * @category Zend + * @package Zend_Gdata_YouTube + * @subpackage UnitTests + * @copyright Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com) + * @license http://framework.zend.com/license/new-bsd New BSD License + * @group Zend_Gdata + * @group Zend_Gdata_YouTube + */ +class Zend_Gdata_YouTube_ActivityFeedTest extends PHPUnit_Framework_TestCase +{ + + public function setUp() { + $this->feedText = file_get_contents( + 'Zend/Gdata/YouTube/_files/ActivityFeedDataSample1.xml', + true); + $this->feed = new Zend_Gdata_YouTube_ActivityFeed(); + $this->feed->setMajorProtocolVersion(2); + } + + private function verifyAllSamplePropertiesAreCorrect ($activityFeed) { + $this->assertEquals('2009-01-28T09:13:49.000-08:00', + $activityFeed->updated->text); + $this->assertEquals( + 'http://schemas.google.com/g/2005#kind', + $activityFeed->category[0]->scheme); + $this->assertEquals('http://gdata.youtube.com/schemas/2007#userEvent', + $activityFeed->category[0]->term); + $this->assertEquals('Activity of tayzonzay', + $activityFeed->title->text);; + + $this->assertEquals('self', $activityFeed->getLink('self')->rel); + $this->assertEquals('application/atom+xml', + $activityFeed->getLink('self')->type); + $this->assertEquals( + 'http://gdata.youtube.com/feeds/api/events?author=gdpython' . + '&start-index=1&max-results=25&v=2', + $activityFeed->getLink('self')->href); + $this->assertEquals('http://schemas.google.com/g/2005#feed', + $activityFeed->getLink( + 'http://schemas.google.com/g/2005#feed')->rel); + $this->assertEquals('application/atom+xml', + $activityFeed->getLink( + 'http://schemas.google.com/g/2005#feed')->type); + $this->assertEquals('http://gdata.youtube.com/feeds/api/events?v=2', + $activityFeed->getLink( + 'http://schemas.google.com/g/2005#feed')->href); + $this->assertEquals('http://schemas.google.com/g/2005#batch', + $activityFeed->getLink( + 'http://schemas.google.com/g/2005#batch')->rel); + $this->assertEquals('application/atom+xml', + $activityFeed->getLink( + 'http://schemas.google.com/g/2005#batch')->type); + $this->assertEquals( + 'application/atom+xml', + $activityFeed->getLink( + 'http://schemas.google.com/g/2005#batch')->type); + $this->assertEquals('service', + $activityFeed->getLink('service')->rel); + $this->assertEquals('application/atomsvc+xml', + $activityFeed->getLink('service')->type); + $this->assertEquals( + 'http://gdata.youtube.com/feeds/api/events?alt=atom-service&v=2', + $activityFeed->getLink('service')->href); + + $this->assertEquals('YouTube', $activityFeed->author[0]->name->text); + $this->assertEquals('http://www.youtube.com/', + $activityFeed->author[0]->uri->text); + $this->assertEquals(12, $activityFeed->totalResults->text); + $this->assertEquals(1, $activityFeed->startIndex->text); + $this->assertEquals(25, $activityFeed->itemsPerPage->text); + } + + public function testEmptyEntryShouldHaveNoExtensionElements() { + $this->assertTrue(is_array($this->feed->extensionElements)); + $this->assertEquals(0, count($this->feed->extensionElements)); + } + + public function testEmptyEntryShouldHaveNoExtensionAttributes() { + $this->assertTrue(is_array($this->feed->extensionAttributes)); + $this->assertEquals(0, count($this->feed->extensionAttributes)); + } + + public function testSampleEntryShouldHaveNoExtensionElements() { + $this->feed->transferFromXML($this->feedText); + $this->assertTrue(is_array($this->feed->extensionElements)); + $this->assertEquals(0, count($this->feed->extensionElements)); + } + + public function testSampleEntryShouldHaveNoExtensionAttributes() { + $this->feed->transferFromXML($this->feedText); + $this->assertTrue(is_array($this->feed->extensionAttributes)); + $this->assertEquals(0, count($this->feed->extensionAttributes)); + } + + public function testEmptyActivityFeedToAndFromStringShouldMatch() { + $entryXml = $this->feed->saveXML(); + $newActivityFeed = new Zend_Gdata_YouTube_ActivityFeed(); + $newActivityFeed->transferFromXML($entryXml); + $newActivityFeedXml = $newActivityFeed->saveXML(); + $this->assertTrue($entryXml == $newActivityFeedXml); + } + + public function testSamplePropertiesAreCorrect () { + $this->feed->transferFromXML($this->feedText); + $this->verifyAllSamplePropertiesAreCorrect($this->feed); + } + + public function testConvertActivityFeedToAndFromString() { + $this->feed->transferFromXML($this->feedText); + $entryXml = $this->feed->saveXML(); + $newActivityFeed = new Zend_Gdata_YouTube_ActivityFeed(); + $newActivityFeed->transferFromXML($entryXml); + $this->verifyAllSamplePropertiesAreCorrect($newActivityFeed); + $newActivityFeedXml = $newActivityFeed->saveXML(); + $this->assertEquals($entryXml, $newActivityFeedXml); + } + + public function testEntryCanBeRetrieved() { + $this->feed->transferFromXML($this->feedText); + $this->assertTrue(count($this->feed->entries) > 0); + } + +} diff --git a/zend/tests/Zend/Gdata/YouTube/CommentEntryTest.php b/zend/tests/Zend/Gdata/YouTube/CommentEntryTest.php new file mode 100644 index 0000000..7ffad58 --- /dev/null +++ b/zend/tests/Zend/Gdata/YouTube/CommentEntryTest.php @@ -0,0 +1,107 @@ +<?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_Gdata_YouTube + * @subpackage UnitTests + * @copyright Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com) + * @license http://framework.zend.com/license/new-bsd New BSD License + * @version $Id $ + */ + +require_once 'Zend/Gdata/YouTube/CommentEntry.php'; +require_once 'Zend/Gdata/YouTube.php'; + +/** + * @category Zend + * @package Zend_Gdata_YouTube + * @subpackage UnitTests + * @copyright Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com) + * @license http://framework.zend.com/license/new-bsd New BSD License + * @group Zend_Gdata + * @group Zend_Gdata_YouTube + */ +class Zend_Gdata_YouTube_CommentEntryTest extends PHPUnit_Framework_TestCase +{ + + public function setUp() { + $this->entryText = file_get_contents( + 'Zend/Gdata/YouTube/_files/CommentEntryDataSample1.xml', + true); + $this->entry = new Zend_Gdata_YouTube_CommentEntry(); + } + + private function verifyAllSamplePropertiesAreCorrect ($commentEntry) { + $this->assertEquals('http://gdata.youtube.com/feeds/videos/Lnio-pqLPgg/comments/CE0314DEBFFC9052', + $commentEntry->id->text); + $this->assertEquals('2007-09-02T18:00:04.000-07:00', $commentEntry->updated->text); + $this->assertEquals('http://schemas.google.com/g/2005#kind', $commentEntry->category[0]->scheme); + $this->assertEquals('http://gdata.youtube.com/schemas/2007#comment', $commentEntry->category[0]->term); + $this->assertEquals('text', $commentEntry->title->type); + $this->assertEquals('how to turn ...', $commentEntry->title->text);; + $this->assertEquals('text', $commentEntry->content->type); + $this->assertEquals('how to turn rejection and heartbreak into something positive is the big mystery of life but you\'re managed to turn it to your advantage with a beautiful song. Who was she?', $commentEntry->content->text);; + $this->assertEquals('self', $commentEntry->getLink('self')->rel); + $this->assertEquals('application/atom+xml', $commentEntry->getLink('self')->type); + $this->assertEquals('http://gdata.youtube.com/feeds/videos/Lnio-pqLPgg/comments/CE0314DEBFFC9052', $commentEntry->getLink('self')->href); + $this->assertEquals('reneemathome', $commentEntry->author[0]->name->text); + $this->assertEquals('http://gdata.youtube.com/feeds/users/reneemathome', $commentEntry->author[0]->uri->text); + } + + public function testEmptyEntryShouldHaveNoExtensionElements() { + $this->assertTrue(is_array($this->entry->extensionElements)); + $this->assertTrue(count($this->entry->extensionElements) == 0); + } + + public function testEmptyEntryShouldHaveNoExtensionAttributes() { + $this->assertTrue(is_array($this->entry->extensionAttributes)); + $this->assertTrue(count($this->entry->extensionAttributes) == 0); + } + + public function testSampleEntryShouldHaveNoExtensionElements() { + $this->entry->transferFromXML($this->entryText); + $this->assertTrue(is_array($this->entry->extensionElements)); + $this->assertTrue(count($this->entry->extensionElements) == 0); + } + + public function testSampleEntryShouldHaveNoExtensionAttributes() { + $this->entry->transferFromXML($this->entryText); + $this->assertTrue(is_array($this->entry->extensionAttributes)); + $this->assertTrue(count($this->entry->extensionAttributes) == 0); + } + + public function testEmptyCommentEntryToAndFromStringShouldMatch() { + $entryXml = $this->entry->saveXML(); + $newCommentEntry = new Zend_Gdata_YouTube_CommentEntry(); + $newCommentEntry->transferFromXML($entryXml); + $newCommentEntryXml = $newCommentEntry->saveXML(); + $this->assertTrue($entryXml == $newCommentEntryXml); + } + + public function testSamplePropertiesAreCorrect () { + $this->entry->transferFromXML($this->entryText); + $this->verifyAllSamplePropertiesAreCorrect($this->entry); + } + + public function testConvertCommentEntryToAndFromString() { + $this->entry->transferFromXML($this->entryText); + $entryXml = $this->entry->saveXML(); + $newCommentEntry = new Zend_Gdata_YouTube_CommentEntry(); + $newCommentEntry->transferFromXML($entryXml); + $this->verifyAllSamplePropertiesAreCorrect($newCommentEntry); + $newCommentEntryXml = $newCommentEntry->saveXML(); + $this->assertEquals($entryXml, $newCommentEntryXml); + } + +} diff --git a/zend/tests/Zend/Gdata/YouTube/CommentFeedTest.php b/zend/tests/Zend/Gdata/YouTube/CommentFeedTest.php new file mode 100644 index 0000000..2da13f4 --- /dev/null +++ b/zend/tests/Zend/Gdata/YouTube/CommentFeedTest.php @@ -0,0 +1,109 @@ +<?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_Gdata_YouTube + * @subpackage UnitTests + * @copyright Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com) + * @license http://framework.zend.com/license/new-bsd New BSD License + * @version $Id $ + */ + +require_once 'Zend/Gdata/YouTube/CommentFeed.php'; +require_once 'Zend/Gdata/YouTube.php'; + +/** + * @category Zend + * @package Zend_Gdata_YouTube + * @subpackage UnitTests + * @copyright Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com) + * @license http://framework.zend.com/license/new-bsd New BSD License + * @group Zend_Gdata + * @group Zend_Gdata_YouTube + */ +class Zend_Gdata_YouTube_CommentFeedTest extends PHPUnit_Framework_TestCase +{ + + public function setUp() { + $this->feedText = file_get_contents( + 'Zend/Gdata/YouTube/_files/CommentFeedDataSample1.xml', + true); + $this->feed = new Zend_Gdata_YouTube_CommentFeed(); + } + + private function verifyAllSamplePropertiesAreCorrect ($commentFeed) { + $this->assertEquals('http://gdata.youtube.com/feeds/videos/Lnio-pqLPgg/comments', + $commentFeed->id->text); + $this->assertEquals('2007-09-21T02:32:55.032Z', $commentFeed->updated->text); + $this->assertEquals('http://schemas.google.com/g/2005#kind', $commentFeed->category[0]->scheme); + $this->assertEquals('http://gdata.youtube.com/schemas/2007#comment', $commentFeed->category[0]->term); + $this->assertEquals('http://www.youtube.com/img/pic_youtubelogo_123x63.gif', $commentFeed->logo->text); + $this->assertEquals('text', $commentFeed->title->type); + $this->assertEquals('Comments on \'"That Girl" - Original Song - Acoustic Version\'', $commentFeed->title->text);; + $this->assertEquals('self', $commentFeed->getLink('self')->rel); + $this->assertEquals('application/atom+xml', $commentFeed->getLink('self')->type); + $this->assertEquals('http://gdata.youtube.com/feeds/videos/Lnio-pqLPgg/comments?start-index=1&max-results=4', $commentFeed->getLink('self')->href); + $this->assertEquals('YouTube', $commentFeed->author[0]->name->text); + $this->assertEquals('http://www.youtube.com/', $commentFeed->author[0]->uri->text); + $this->assertEquals(100, $commentFeed->totalResults->text); + $this->assertEquals(1, $commentFeed->startIndex->text); + $this->assertEquals(4, $commentFeed->itemsPerPage->text); + } + + public function testEmptyEntryShouldHaveNoExtensionElements() { + $this->assertTrue(is_array($this->feed->extensionElements)); + $this->assertTrue(count($this->feed->extensionElements) == 0); + } + + public function testEmptyEntryShouldHaveNoExtensionAttributes() { + $this->assertTrue(is_array($this->feed->extensionAttributes)); + $this->assertTrue(count($this->feed->extensionAttributes) == 0); + } + + public function testSampleEntryShouldHaveNoExtensionElements() { + $this->feed->transferFromXML($this->feedText); + $this->assertTrue(is_array($this->feed->extensionElements)); + $this->assertTrue(count($this->feed->extensionElements) == 0); + } + + public function testSampleEntryShouldHaveNoExtensionAttributes() { + $this->feed->transferFromXML($this->feedText); + $this->assertTrue(is_array($this->feed->extensionAttributes)); + $this->assertTrue(count($this->feed->extensionAttributes) == 0); + } + + public function testEmptyCommentFeedToAndFromStringShouldMatch() { + $entryXml = $this->feed->saveXML(); + $newCommentFeed = new Zend_Gdata_YouTube_CommentFeed(); + $newCommentFeed->transferFromXML($entryXml); + $newCommentFeedXml = $newCommentFeed->saveXML(); + $this->assertTrue($entryXml == $newCommentFeedXml); + } + + public function testSamplePropertiesAreCorrect () { + $this->feed->transferFromXML($this->feedText); + $this->verifyAllSamplePropertiesAreCorrect($this->feed); + } + + public function testConvertCommentFeedToAndFromString() { + $this->feed->transferFromXML($this->feedText); + $entryXml = $this->feed->saveXML(); + $newCommentFeed = new Zend_Gdata_YouTube_CommentFeed(); + $newCommentFeed->transferFromXML($entryXml); + $this->verifyAllSamplePropertiesAreCorrect($newCommentFeed); + $newCommentFeedXml = $newCommentFeed->saveXML(); + $this->assertEquals($entryXml, $newCommentFeedXml); + } + +} diff --git a/zend/tests/Zend/Gdata/YouTube/ContactEntryTest.php b/zend/tests/Zend/Gdata/YouTube/ContactEntryTest.php new file mode 100644 index 0000000..23b461a --- /dev/null +++ b/zend/tests/Zend/Gdata/YouTube/ContactEntryTest.php @@ -0,0 +1,109 @@ +<?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_Gdata_YouTube + * @subpackage UnitTests + * @copyright Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com) + * @license http://framework.zend.com/license/new-bsd New BSD License + * @version $Id $ + */ + +require_once 'Zend/Gdata/YouTube/ContactEntry.php'; +require_once 'Zend/Gdata/YouTube.php'; + +/** + * @category Zend + * @package Zend_Gdata_YouTube + * @subpackage UnitTests + * @copyright Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com) + * @license http://framework.zend.com/license/new-bsd New BSD License + * @group Zend_Gdata + * @group Zend_Gdata_YouTube + */ +class Zend_Gdata_YouTube_ContactEntryTest extends PHPUnit_Framework_TestCase +{ + + public function setUp() { + $this->entryText = file_get_contents( + 'Zend/Gdata/YouTube/_files/ContactEntryDataSample1.xml', + true); + $this->entry = new Zend_Gdata_YouTube_ContactEntry(); + } + + private function verifyAllSamplePropertiesAreCorrect ($contactEntry) { + $this->assertEquals('http://gdata.youtube.com/feeds/users/davidchoimusic/contacts/testuser', + $contactEntry->id->text); + $this->assertEquals('2007-09-21T02:44:41.134Z', $contactEntry->updated->text); + $this->assertEquals('http://schemas.google.com/g/2005#kind', $contactEntry->category[0]->scheme); + $this->assertEquals('http://gdata.youtube.com/schemas/2007#friend', $contactEntry->category[0]->term); + $this->assertEquals('http://gdata.youtube.com/schemas/2007/contact.cat', $contactEntry->category[1]->scheme); + $this->assertEquals('Friends', $contactEntry->category[1]->term); + $this->assertEquals('text', $contactEntry->title->type); + $this->assertEquals('testuser', $contactEntry->title->text);; + $this->assertEquals('self', $contactEntry->getLink('self')->rel); + $this->assertEquals('application/atom+xml', $contactEntry->getLink('self')->type); + $this->assertEquals('http://gdata.youtube.com/feeds/users/davidchoimusic/contacts/testuser', $contactEntry->getLink('self')->href); + $this->assertEquals('davidchoimusic', $contactEntry->author[0]->name->text); + $this->assertEquals('http://gdata.youtube.com/feeds/users/davidchoimusic', $contactEntry->author[0]->uri->text); + $this->assertEquals('testuser', $contactEntry->username->text); + $this->assertEquals('accepted', $contactEntry->status->text); + } + + public function testEmptyEntryShouldHaveNoExtensionElements() { + $this->assertTrue(is_array($this->entry->extensionElements)); + $this->assertTrue(count($this->entry->extensionElements) == 0); + } + + public function testEmptyEntryShouldHaveNoExtensionAttributes() { + $this->assertTrue(is_array($this->entry->extensionAttributes)); + $this->assertTrue(count($this->entry->extensionAttributes) == 0); + } + + public function testSampleEntryShouldHaveNoExtensionElements() { + $this->entry->transferFromXML($this->entryText); + $this->assertTrue(is_array($this->entry->extensionElements)); + $this->assertTrue(count($this->entry->extensionElements) == 0); + } + + public function testSampleEntryShouldHaveNoExtensionAttributes() { + $this->entry->transferFromXML($this->entryText); + $this->assertTrue(is_array($this->entry->extensionAttributes)); + $this->assertTrue(count($this->entry->extensionAttributes) == 0); + } + + public function testEmptyContactEntryToAndFromStringShouldMatch() { + $entryXml = $this->entry->saveXML(); + $newContactEntry = new Zend_Gdata_YouTube_ContactEntry(); + $newContactEntry->transferFromXML($entryXml); + $newContactEntryXml = $newContactEntry->saveXML(); + $this->assertTrue($entryXml == $newContactEntryXml); + } + + public function testSamplePropertiesAreCorrect () { + $this->entry->transferFromXML($this->entryText); + $this->verifyAllSamplePropertiesAreCorrect($this->entry); + } + + public function testConvertContactEntryToAndFromString() { + $this->entry->transferFromXML($this->entryText); + $entryXml = $this->entry->saveXML(); + $newContactEntry = new Zend_Gdata_YouTube_ContactEntry(); + $newContactEntry->transferFromXML($entryXml); + $this->verifyAllSamplePropertiesAreCorrect($newContactEntry); + $newContactEntryXml = $newContactEntry->saveXML(); + $this->assertEquals($entryXml, $newContactEntryXml); + } + +} diff --git a/zend/tests/Zend/Gdata/YouTube/ContactFeedTest.php b/zend/tests/Zend/Gdata/YouTube/ContactFeedTest.php new file mode 100644 index 0000000..e561daf --- /dev/null +++ b/zend/tests/Zend/Gdata/YouTube/ContactFeedTest.php @@ -0,0 +1,109 @@ +<?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_Gdata_YouTube + * @subpackage UnitTests + * @copyright Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com) + * @license http://framework.zend.com/license/new-bsd New BSD License + * @version $Id $ + */ + +require_once 'Zend/Gdata/YouTube/ContactFeed.php'; +require_once 'Zend/Gdata/YouTube.php'; + +/** + * @category Zend + * @package Zend_Gdata_YouTube + * @subpackage UnitTests + * @copyright Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com) + * @license http://framework.zend.com/license/new-bsd New BSD License + * @group Zend_Gdata + * @group Zend_Gdata_YouTube + */ +class Zend_Gdata_YouTube_ContactFeedTest extends PHPUnit_Framework_TestCase +{ + + public function setUp() { + $this->feedText = file_get_contents( + 'Zend/Gdata/YouTube/_files/ContactFeedDataSample1.xml', + true); + $this->feed = new Zend_Gdata_YouTube_ContactFeed(); + } + + private function verifyAllSamplePropertiesAreCorrect ($contactFeed) { + $this->assertEquals('http://gdata.youtube.com/feeds/users/davidchoimusic/contacts', + $contactFeed->id->text); + $this->assertEquals('2007-09-21T02:44:41.135Z', $contactFeed->updated->text); + $this->assertEquals('http://schemas.google.com/g/2005#kind', $contactFeed->category[0]->scheme); + $this->assertEquals('http://gdata.youtube.com/schemas/2007#friend', $contactFeed->category[0]->term); + $this->assertEquals('http://www.youtube.com/img/pic_youtubelogo_123x63.gif', $contactFeed->logo->text); + $this->assertEquals('text', $contactFeed->title->type); + $this->assertEquals('davidchoimusic\'s Contacts', $contactFeed->title->text);; + $this->assertEquals('self', $contactFeed->getLink('self')->rel); + $this->assertEquals('application/atom+xml', $contactFeed->getLink('self')->type); + $this->assertEquals('http://gdata.youtube.com/feeds/users/davidchoimusic/contacts?start-index=1&max-results=5', $contactFeed->getLink('self')->href); + $this->assertEquals('davidchoimusic', $contactFeed->author[0]->name->text); + $this->assertEquals('http://gdata.youtube.com/feeds/users/davidchoimusic', $contactFeed->author[0]->uri->text); + $this->assertEquals(1558, $contactFeed->totalResults->text); + $this->assertEquals(1, $contactFeed->startIndex->text); + $this->assertEquals(5, $contactFeed->itemsPerPage->text); + } + + public function testEmptyEntryShouldHaveNoExtensionElements() { + $this->assertTrue(is_array($this->feed->extensionElements)); + $this->assertTrue(count($this->feed->extensionElements) == 0); + } + + public function testEmptyEntryShouldHaveNoExtensionAttributes() { + $this->assertTrue(is_array($this->feed->extensionAttributes)); + $this->assertTrue(count($this->feed->extensionAttributes) == 0); + } + + public function testSampleEntryShouldHaveNoExtensionElements() { + $this->feed->transferFromXML($this->feedText); + $this->assertTrue(is_array($this->feed->extensionElements)); + $this->assertTrue(count($this->feed->extensionElements) == 0); + } + + public function testSampleEntryShouldHaveNoExtensionAttributes() { + $this->feed->transferFromXML($this->feedText); + $this->assertTrue(is_array($this->feed->extensionAttributes)); + $this->assertTrue(count($this->feed->extensionAttributes) == 0); + } + + public function testEmptyContactFeedToAndFromStringShouldMatch() { + $entryXml = $this->feed->saveXML(); + $newContactFeed = new Zend_Gdata_YouTube_ContactFeed(); + $newContactFeed->transferFromXML($entryXml); + $newContactFeedXml = $newContactFeed->saveXML(); + $this->assertTrue($entryXml == $newContactFeedXml); + } + + public function testSamplePropertiesAreCorrect () { + $this->feed->transferFromXML($this->feedText); + $this->verifyAllSamplePropertiesAreCorrect($this->feed); + } + + public function testConvertContactFeedToAndFromString() { + $this->feed->transferFromXML($this->feedText); + $entryXml = $this->feed->saveXML(); + $newContactFeed = new Zend_Gdata_YouTube_ContactFeed(); + $newContactFeed->transferFromXML($entryXml); + $this->verifyAllSamplePropertiesAreCorrect($newContactFeed); + $newContactFeedXml = $newContactFeed->saveXML(); + $this->assertEquals($entryXml, $newContactFeedXml); + } + +} diff --git a/zend/tests/Zend/Gdata/YouTube/InboxEntryTest.php b/zend/tests/Zend/Gdata/YouTube/InboxEntryTest.php new file mode 100644 index 0000000..c4b2e5e --- /dev/null +++ b/zend/tests/Zend/Gdata/YouTube/InboxEntryTest.php @@ -0,0 +1,217 @@ +<?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_Gdata_YouTube + * @subpackage UnitTests + * @copyright Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com) + * @license http://framework.zend.com/license/new-bsd New BSD License + * @version $Id $ + */ + +require_once 'Zend/Gdata/YouTube/InboxEntry.php'; +require_once 'Zend/Gdata/YouTube.php'; + +/** + * @category Zend + * @package Zend_Gdata_YouTube + * @subpackage UnitTests + * @copyright Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com) + * @license http://framework.zend.com/license/new-bsd New BSD License + * @group Zend_Gdata + * @group Zend_Gdata_YouTube + */ +class Zend_Gdata_YouTube_InboxEntryTest extends PHPUnit_Framework_TestCase +{ + + public function setUp() { + $this->entryText = file_get_contents( + 'Zend/Gdata/YouTube/_files/InboxEntryDataSample1.xml', + true); + $this->v2entryText = file_get_contents( + 'Zend/Gdata/YouTube/_files/' . + 'InboxEntryDataSampleV2.xml', + true); + + $this->entry = new Zend_Gdata_YouTube_InboxEntry(); + } + + private function verifyAllSamplePropertiesAreCorrect ($InboxEntry) { + $this->assertEquals( + 'http://gdata.youtube.com/feeds/api/users/andyland74/' . + 'inbox/ffb9a5f32cd5f55', + $InboxEntry->id->text); + $this->assertEquals('http://schemas.google.com/g/2005#kind', + $InboxEntry->category[0]->scheme); + $this->assertEquals( + 'http://gdata.youtube.com/schemas/2007#videoMessage', + $InboxEntry->category[0]->term); + $this->assertEquals('andyland74sFriend sent you a video!', + $InboxEntry->title->text);; + $this->assertEquals('self', + $InboxEntry->getLink('self')->rel); + $this->assertEquals('application/atom+xml', + $InboxEntry->getLink('self')->type); + $this->assertEquals( + 'http://gdata.youtube.com/feeds/api/users/andyland74/' . + 'inbox/ffb9a5f32cd5f55', + $InboxEntry->getLink('self')->href); + $this->assertEquals('andyland74sFriend', + $InboxEntry->author[0]->name->text); + $this->assertEquals( + 'http://gdata.youtube.com/feeds/api/users/andyland74sFriend', + $InboxEntry->author[0]->uri->text); + $this->assertEquals( + 'Check out this video!', + $InboxEntry->getDescription()->text); + } + + public function verifyAllSamplePropertiesAreCorrectV2( + $InboxEntry) { + $this->assertEquals( + 'tag:youtube,2008:user:andyland74:inbox:D_uaXzLRX1U', + $InboxEntry->id->text); + $this->assertEquals('2008-06-10T13:55:32.000-07:00', + $InboxEntry->published->text); + $this->assertEquals('2008-06-10T13:55:32.000-07:00', + $InboxEntry->updated->text); + $this->assertEquals( + 'http://schemas.google.com/g/2005#kind', + $InboxEntry->category[0]->scheme); + $this->assertEquals( + 'http://gdata.youtube.com/schemas/2007#videoMessage', + $InboxEntry->category[0]->term); + $this->assertEquals( + 'http://gdata.youtube.com/schemas/2007/keywords.cat', + $InboxEntry->category[1]->scheme); + $this->assertEquals( + 'surfing', + $InboxEntry->category[1]->term); + $this->assertEquals( + 'http://gdata.youtube.com/schemas/2007/categories.cat', + $InboxEntry->category[2]->scheme); + $this->assertEquals( + 'People', + $InboxEntry->category[2]->term); + $this->assertEquals('self', + $InboxEntry->getLink('self')->rel); + $this->assertEquals('application/atom+xml', + $InboxEntry->getLink('self')->type); + $this->assertEquals( + 'http://gdata.youtube.com/feeds/api/users/andyland74/' . + 'inbox/ffb9a5f32cd5f55?v=2', + $InboxEntry->getLink('self')->href); + $this->assertEquals('related', + $InboxEntry->getLink('related')->rel); + $this->assertEquals('application/atom+xml', + $InboxEntry->getLink('related')->type); + $this->assertEquals( + 'http://gdata.youtube.com/feeds/api/videos/jXE6G9CYcJs?v=2', + $InboxEntry->getLink('related')->href); + $this->assertEquals('alternate', + $InboxEntry->getLink('alternate')->rel); + $this->assertEquals('text/html', + $InboxEntry->getLink('alternate')->type); + $this->assertEquals( + 'http://www.youtube.com/watch?v=jXE6G9CYcJs', + $InboxEntry->getLink('alternate')->href); + $this->assertEquals('andyland74sFriend', + $InboxEntry->author[0]->name->text); + $this->assertEquals( + 'http://gdata.youtube.com/feeds/api/users/andyland74sFriend', + $InboxEntry->author[0]->uri->text); + $this->assertEquals(877, $InboxEntry->getRating()->numRaters); + $this->assertEquals( + 'http://gdata.youtube.com/feeds/api/videos/jXE6G9CYcJs/comments', + $InboxEntry->getComments()->getFeedLink()->getHref()); + $this->assertEquals(286355, + $InboxEntry->getStatistics()->getViewCount()); + } + + public function testEmptyEntryShouldHaveNoExtensionElements() { + $this->assertTrue(is_array($this->entry->extensionElements)); + $this->assertEquals(0, count($this->entry->extensionElements)); + } + + public function testEmptyEntryShouldHaveNoExtensionAttributes() { + $this->assertTrue(is_array($this->entry->extensionAttributes)); + $this->assertEquals(0, count($this->entry->extensionAttributes)); + } + + public function testSampleEntryShouldHaveNoExtensionElements() { + $this->entry->transferFromXML($this->entryText); + $this->assertTrue(is_array($this->entry->extensionElements)); + $this->assertEquals(0, count($this->entry->extensionElements)); + } + + public function testSampleEntryShouldHaveNoExtensionAttributes() { + $this->entry->transferFromXML($this->entryText); + $this->assertTrue(is_array($this->entry->extensionAttributes)); + $this->assertEquals(0, count($this->entry->extensionAttributes)); + } + + public function testSampleEntryShouldHaveNoExtensionElementsV2() { + $this->entry->setMajorProtocolVersion(2); + $this->entry->transferFromXML($this->v2entryText); + $this->assertTrue(is_array($this->entry->extensionElements)); + $this->assertEquals(0, count($this->entry->extensionElements)); + } + + public function testSampleEntryShouldHaveNoExtensionAttributesV2() { + $this->entry->setMajorProtocolVersion(2); + $this->entry->transferFromXML($this->v2entryText); + $this->assertTrue(is_array($this->entry->extensionAttributes)); + $this->assertEquals(0, count($this->entry->extensionAttributes)); + } + + public function testEmptyInboxEntryToAndFromStringShouldMatch() { + $entryXml = $this->entry->saveXML(); + $newInboxEntry = new Zend_Gdata_YouTube_InboxEntry(); + $newInboxEntry->transferFromXML($entryXml); + $newInboxEntryXml = $newInboxEntry->saveXML(); + $this->assertTrue($entryXml == $newInboxEntryXml); + } + + public function testEmptyInboxEntryToAndFromStringShouldMatchV2() { + $this->entry->transferFromXML($this->v2entryText); + $entryXml = $this->entry->saveXML(); + $newInboxEntry = new Zend_Gdata_YouTube_InboxEntry(); + $newInboxEntry->transferFromXML($entryXml); + $newInboxEntry->setMajorProtocolVersion(2); + $newInboxEntryXml = $newInboxEntry->saveXML(); + $this->assertTrue($entryXml == $newInboxEntryXml); + } + + public function testSamplePropertiesAreCorrect () { + $this->entry->transferFromXML($this->entryText); + $this->verifyAllSamplePropertiesAreCorrect($this->entry); + } + + public function testSamplePropertiesAreCorrectV2 () { + $this->entry->setMajorProtocolVersion(2); + $this->entry->transferFromXML($this->v2entryText); + $this->verifyAllSamplePropertiesAreCorrectV2($this->entry); + } + + public function testConvertInboxEntryToAndFromString() { + $this->entry->transferFromXML($this->entryText); + $entryXml = $this->entry->saveXML(); + $newInboxEntry = new Zend_Gdata_YouTube_InboxEntry(); + $newInboxEntry->transferFromXML($entryXml); + $this->verifyAllSamplePropertiesAreCorrect($newInboxEntry); + $newInboxEntryXml = $newInboxEntry->saveXML(); + $this->assertEquals($entryXml, $newInboxEntryXml); + } + +} diff --git a/zend/tests/Zend/Gdata/YouTube/InboxFeedTest.php b/zend/tests/Zend/Gdata/YouTube/InboxFeedTest.php new file mode 100644 index 0000000..a7a63cd --- /dev/null +++ b/zend/tests/Zend/Gdata/YouTube/InboxFeedTest.php @@ -0,0 +1,182 @@ +<?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_Gdata_YouTube + * @subpackage UnitTests + * @copyright Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com) + * @license http://framework.zend.com/license/new-bsd New BSD License + * @version $Id $ + */ + +require_once 'Zend/Gdata/YouTube/InboxFeed.php'; +require_once 'Zend/Gdata/YouTube.php'; + +/** + * @category Zend + * @package Zend_Gdata_YouTube + * @subpackage UnitTests + * @copyright Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com) + * @license http://framework.zend.com/license/new-bsd New BSD License + * @group Zend_Gdata + * @group Zend_Gdata_YouTube + */ +class Zend_Gdata_YouTube_InboxFeedTest extends PHPUnit_Framework_TestCase +{ + + public function setUp() { + $this->feedText = file_get_contents( + 'Zend/Gdata/YouTube/_files/InboxFeedDataSample1.xml', + true); + $this->V2feedText = file_get_contents( + 'Zend/Gdata/YouTube/_files/InboxFeedDataSampleV2.xml', + true); + $this->feed = new Zend_Gdata_YouTube_InboxFeed(); + } + + private function verifyAllSamplePropertiesAreCorrect ($inboxFeed) { + $this->assertEquals('http://gdata.youtube.com/feeds/api/users/' . + 'default/inbox', + $inboxFeed->id->text); + $this->assertEquals('2008-06-10T20:55:40.271Z', + $inboxFeed->updated->text); + $this->assertEquals('http://schemas.google.com/g/2005#kind', + $inboxFeed->category[0]->scheme); + $this->assertEquals( + 'http://gdata.youtube.com/schemas/2007#videoMessage', + $inboxFeed->category[0]->term); + $this->assertEquals( + 'http://www.youtube.com/img/pic_youtubelogo_123x63.gif', + $inboxFeed->logo->text); + $this->assertEquals('text', $inboxFeed->title->type); + $this->assertEquals('Inbox of andyland74', + $inboxFeed->title->text);; + $this->assertEquals('self', $inboxFeed->getLink('self')->rel); + $this->assertEquals('application/atom+xml', + $inboxFeed->getLink('self')->type); + $this->assertEquals( + 'http://gdata.youtube.com/feeds/api/users/andyland74/inbox?...', + $inboxFeed->getLink('self')->href); + $this->assertEquals('andyland74', $inboxFeed->author[0]->name->text); + $this->assertEquals( + 'http://gdata.youtube.com/feeds/api/users/andyland74', + $inboxFeed->author[0]->uri->text); + $this->assertEquals(1, $inboxFeed->totalResults->text); + } + + private function verifyAllSamplePropertiesAreCorrectV2 ($inboxFeed) { + $this->assertEquals('tag:youtube,2008:user:andyland74:inbox', + $inboxFeed->id->text); + $this->assertEquals('2008-07-21T17:54:30.236Z', + $inboxFeed->updated->text); + $this->assertEquals('http://schemas.google.com/g/2005#kind', + $inboxFeed->category[0]->scheme); + $this->assertEquals( + 'http://gdata.youtube.com/schemas/2007#videoMessage', + $inboxFeed->category[0]->term); + $this->assertEquals( + 'http://www.youtube.com/img/pic_youtubelogo_123x63.gif', + $inboxFeed->logo->text); + $this->assertEquals('Inbox of andyland74', + $inboxFeed->title->text);; + $this->assertEquals('andyland74', + $inboxFeed->author[0]->name->text); + $this->assertEquals( + 'http://gdata.youtube.com/feeds/api/users/andyland74', + $inboxFeed->author[0]->uri->text); + $this->assertEquals('self', $inboxFeed->getLink('self')->rel); + $this->assertEquals('application/atom+xml', + $inboxFeed->getLink('self')->type); + $this->assertEquals( + 'http://gdata.youtube.com/feeds/api/users/andyland74/inbox?...', + $inboxFeed->getLink('self')->href); + $this->assertEquals('alternate', $inboxFeed->getLink('alternate')->rel); + $this->assertEquals('text/html', + $inboxFeed->getLink('alternate')->type); + $this->assertEquals( + 'http://www.youtube.com/my_messages?folder=inbox&filter=videos', + $inboxFeed->getLink('alternate')->href); + $this->assertEquals('service', $inboxFeed->getLink('service')->rel); + $this->assertEquals('application/atomsvc+xml', + $inboxFeed->getLink('service')->type); + $this->assertEquals( + 'http://gdata.youtube.com/feeds/api/users/andyland74/inbox?' . + 'alt=...', + $inboxFeed->getLink('service')->href); + + } + + public function testEmptyEntryShouldHaveNoExtensionElements() { + $this->assertTrue(is_array($this->feed->extensionElements)); + $this->assertEquals(0, count($this->feed->extensionElements)); + } + + public function testEmptyEntryShouldHaveNoExtensionAttributes() { + $this->assertTrue(is_array($this->feed->extensionAttributes)); + $this->assertEquals(0, count($this->feed->extensionAttributes)); + } + + public function testSampleEntryShouldHaveNoExtensionElements() { + $this->feed->transferFromXML($this->feedText); + $this->assertTrue(is_array($this->feed->extensionElements)); + $this->assertEquals(0, count($this->feed->extensionElements)); + } + + public function testSampleEntryShouldHaveNoExtensionAttributes() { + $this->feed->transferFromXML($this->feedText); + $this->assertTrue(is_array($this->feed->extensionAttributes)); + $this->assertEquals(0, count($this->feed->extensionAttributes)); + } + + public function testEmptyInboxFeedToAndFromStringShouldMatch() { + $feedXml = $this->feed->saveXML(); + $newInboxFeed = new Zend_Gdata_YouTube_InboxFeed(); + $newInboxFeed->transferFromXML($feedXml); + $newInboxFeedXml = $newInboxFeed->saveXML(); + $this->assertTrue($feedXml == $newInboxFeedXml); + } + + public function testSamplePropertiesAreCorrect () { + $this->feed->transferFromXML($this->feedText); + $this->verifyAllSamplePropertiesAreCorrect($this->feed); + } + + public function testSamplePropertiesAreCorrectV2 () { + $this->feed->transferFromXML($this->V2feedText); + $this->verifyAllSamplePropertiesAreCorrectV2($this->feed); + } + + public function testConvertInboxFeedToAndFromString() { + $this->feed->transferFromXML($this->feedText); + $feedXml = $this->feed->saveXML(); + $newInboxFeed = new Zend_Gdata_YouTube_InboxFeed(); + $newInboxFeed->transferFromXML($feedXml); + $this->verifyAllSamplePropertiesAreCorrect($newInboxFeed); + $newInboxFeedXml = $newInboxFeed->saveXML(); + $this->assertEquals($feedXml, $newInboxFeedXml); + } + + public function testConvertInboxFeedToAndFromStringV2() { + $this->feed->setMajorProtocolVersion(2); + $this->feed->transferFromXML($this->V2feedText); + $feedXml = $this->feed->saveXML(); + $newInboxFeed = new Zend_Gdata_YouTube_InboxFeed(); + $newInboxFeed->transferFromXML($feedXml); + $newInboxFeed->setMajorProtocolVersion(2); + $this->verifyAllSamplePropertiesAreCorrectV2($newInboxFeed); + $newInboxFeedXml = $newInboxFeed->saveXML(); + $this->assertEquals($feedXml, $newInboxFeedXml); + } + +} diff --git a/zend/tests/Zend/Gdata/YouTube/PlaylistListEntryTest.php b/zend/tests/Zend/Gdata/YouTube/PlaylistListEntryTest.php new file mode 100644 index 0000000..34e1069 --- /dev/null +++ b/zend/tests/Zend/Gdata/YouTube/PlaylistListEntryTest.php @@ -0,0 +1,239 @@ +<?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_Gdata_YouTube + * @subpackage UnitTests + * @copyright Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com) + * @license http://framework.zend.com/license/new-bsd New BSD License + * @version $Id $ + */ + +require_once 'Zend/Gdata/YouTube/PlaylistListEntry.php'; +require_once 'Zend/Gdata/YouTube.php'; + +/** + * @category Zend + * @package Zend_Gdata_YouTube + * @subpackage UnitTests + * @copyright Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com) + * @license http://framework.zend.com/license/new-bsd New BSD License + * @group Zend_Gdata + * @group Zend_Gdata_YouTube + */ +class Zend_Gdata_YouTube_PlaylistListEntryTest extends PHPUnit_Framework_TestCase +{ + + public function setUp() { + $this->entryText = file_get_contents( + 'Zend/Gdata/YouTube/_files/PlaylistListEntryDataSample1.xml', + true); + $this->v2entryText = file_get_contents( + 'Zend/Gdata/YouTube/_files/PlaylistListEntryDataSampleV2.xml', + true); + $this->entry = new Zend_Gdata_YouTube_PlaylistListEntry(); + } + + private function verifyAllSamplePropertiesAreCorrect ($playlistListEntry) { + $this->assertEquals('http://gdata.youtube.com/feeds/users/testuser/playlists/46A2F8C9B36B6FE7', + $playlistListEntry->id->text); + $this->assertEquals('2007-09-20T13:42:19.000-07:00', $playlistListEntry->updated->text); + $this->assertEquals('http://gdata.youtube.com/schemas/2007/tags.cat', $playlistListEntry->category[0]->scheme); + $this->assertEquals('music', $playlistListEntry->category[0]->term); + $this->assertEquals('http://schemas.google.com/g/2005#kind', $playlistListEntry->category[1]->scheme); + $this->assertEquals('http://gdata.youtube.com/schemas/2007#playlistLink', $playlistListEntry->category[1]->term); + $this->assertEquals('text', $playlistListEntry->title->type); + $this->assertEquals('YouTube Musicians', $playlistListEntry->title->text);; + $this->assertEquals('text', $playlistListEntry->content->type); + $this->assertEquals('Music from talented people on YouTube.', $playlistListEntry->content->text);; + $this->assertEquals('self', $playlistListEntry->getLink('self')->rel); + $this->assertEquals('application/atom+xml', $playlistListEntry->getLink('self')->type); + $this->assertEquals('http://gdata.youtube.com/feeds/users/testuser/playlists/46A2F8C9B36B6FE7', $playlistListEntry->getLink('self')->href); + $this->assertEquals('testuser', $playlistListEntry->author[0]->name->text); + $this->assertEquals('http://gdata.youtube.com/feeds/users/testuser', $playlistListEntry->author[0]->uri->text); + $this->assertEquals('Music from talented people on YouTube.', $playlistListEntry->description->text); + $this->assertEquals('http://gdata.youtube.com/feeds/playlists/46A2F8C9B36B6FE7', $playlistListEntry->getPlaylistVideoFeedUrl()); + $this->assertEquals('http://gdata.youtube.com/feeds/playlists/46A2F8C9B36B6FE7', $playlistListEntry->feedLink[0]->href); + $this->assertEquals('http://gdata.youtube.com/schemas/2007#playlist', $playlistListEntry->feedLink[0]->rel); + } + + private function verifyAllSamplePropertiesAreCorrectV2 ($playlistListEntry) { + $this->assertEquals('tag:youtube.com,2008:user:googledevelopers:playlist:8E2186857EE27746', + $playlistListEntry->id->text); + $this->assertEquals('2008-12-10T09:56:03.000Z', $playlistListEntry->updated->text); + $this->assertEquals('2007-08-23T21:48:43.000Z', $playlistListEntry->published->text); + $this->assertEquals('http://schemas.google.com/g/2005#kind', $playlistListEntry->category[0]->scheme); + $this->assertEquals('http://gdata.youtube.com/schemas/2007#playlistLink', $playlistListEntry->category[0]->term); + $this->assertEquals('http://schemas.google.com/g/2005#kind', $playlistListEntry->category[0]->scheme); + $this->assertEquals('Non-google Interviews', $playlistListEntry->title->text); + $this->assertEquals('This playlist contains interviews with people outside of Google.', $playlistListEntry->summary->text); + + $this->assertEquals('self', $playlistListEntry->getLink('self')->rel); + $this->assertEquals('http://gdata.youtube.com/feeds/api/users/googledevelopers/playlists/8E2186857EE27746?v=2', $playlistListEntry->getLink('self')->href); + $this->assertEquals('application/atom+xml', $playlistListEntry->getLink('self')->type); + $this->assertEquals('alternate', $playlistListEntry->getLink('alternate')->rel); + $this->assertEquals('http://www.youtube.com/view_play_list?p=8E2186857EE27746', $playlistListEntry->getLink('alternate')->href); + $this->assertEquals('text/html', $playlistListEntry->getLink('alternate')->type); + $this->assertEquals('related', $playlistListEntry->getLink('related')->rel); + $this->assertEquals('http://gdata.youtube.com/feeds/api/users/googledevelopers?v=2', $playlistListEntry->getLink('related')->href); + $this->assertEquals('application/atom+xml', $playlistListEntry->getLink('related')->type); + $this->assertEquals('googledevelopers', $playlistListEntry->author[0]->name->text); + $this->assertEquals('http://gdata.youtube.com/feeds/api/users/googledevelopers', $playlistListEntry->author[0]->uri->text); + + $this->assertEquals('8E2186857EE27746', $playlistListEntry->getPlaylistId()->text); + $this->assertEquals('1', $playlistListEntry->getCountHint()->text); + + $this->assertEquals('application/atom+xml;type=feed', $playlistListEntry->getContent()->getType()); + $this->assertEquals('http://gdata.youtube.com/feeds/api/playlists/8E2186857EE27746?v=2', $playlistListEntry->getContent()->getSrc()); + } + + public function testEmptyEntryShouldHaveNoExtensionElements() { + $this->assertTrue(is_array($this->entry->extensionElements)); + $this->assertEquals(0, count($this->entry->extensionElements)); + } + + public function testEmptyEntryShouldHaveNoExtensionAttributes() { + $this->assertTrue(is_array($this->entry->extensionAttributes)); + $this->assertEquals(0, count($this->entry->extensionAttributes)); + } + + public function testSampleEntryShouldHaveNoExtensionElements() { + $this->entry->transferFromXML($this->entryText); + $this->assertTrue(is_array($this->entry->extensionElements)); + $this->assertEquals(0, count($this->entry->extensionElements)); + } + + public function testSampleEntryShouldHaveNoExtensionAttributes() { + $this->entry->transferFromXML($this->entryText); + $this->assertTrue(is_array($this->entry->extensionAttributes)); + $this->assertEquals(0, count($this->entry->extensionAttributes)); + } + + public function testEmptyPlaylistListEntryToAndFromStringShouldMatch() { + $entryXml = $this->entry->saveXML(); + $newPlaylistListEntry = new Zend_Gdata_YouTube_PlaylistListEntry(); + $newPlaylistListEntry->transferFromXML($entryXml); + $newPlaylistListEntryXml = $newPlaylistListEntry->saveXML(); + $this->assertTrue($entryXml == $newPlaylistListEntryXml); + } + + public function testSampleEntryShouldHaveNoExtensionElementsV2() { + $this->entry->transferFromXML($this->entryText); + $this->entry->setMajorProtocolVersion(2); + $this->assertTrue(is_array($this->entry->extensionElements)); + $this->assertEquals(0, count($this->entry->extensionElements)); + } + + public function testSampleEntryShouldHaveNoExtensionAttributesV2() { + $this->entry->transferFromXML($this->entryText); + $this->entry->setMajorProtocolVersion(2); + $this->assertTrue(is_array($this->entry->extensionAttributes)); + $this->assertEquals(0, count($this->entry->extensionAttributes)); + } + + public function testGetFeedLinkReturnsAllStoredEntriesWhenUsedWithNoParameters() { + // Prepare test data + $entry1 = new Zend_Gdata_Extension_FeedLink(); + $entry1->rel = "first"; + $entry1->href= "foo"; + $entry2 = new Zend_Gdata_Extension_FeedLink(); + $entry2->rel = "second"; + $entry2->href= "bar"; + $data = array($entry1, $entry2); + + // Load test data and run test + $this->entry->feedLink = $data; + $this->assertEquals(2, count($this->entry->feedLink)); + } + + public function testGetFeedLinkCanReturnEntriesByRelValue() { + // Prepare test data + $entry1 = new Zend_Gdata_Extension_FeedLink(); + $entry1->rel = "first"; + $entry1->href= "foo"; + $entry2 = new Zend_Gdata_Extension_FeedLink(); + $entry2->rel = "second"; + $entry2->href= "bar"; + $data = array($entry1, $entry2); + + // Load test data and run test + $this->entry->feedLink = $data; + $this->assertEquals($entry1, $this->entry->getFeedLink('first')); + $this->assertEquals($entry2, $this->entry->getFeedLink('second')); + } + + public function testSamplePropertiesAreCorrect () { + $this->entry->transferFromXML($this->entryText); + $this->verifyAllSamplePropertiesAreCorrect($this->entry); + } + + public function testSamplePropertiesAreCorrectV2 () { + $this->entry->transferFromXML($this->v2entryText); + $this->entry->setMajorProtocolVersion(2); + $this->verifyAllSamplePropertiesAreCorrectV2($this->entry); + } + + public function testConvertPlaylistListEntryToAndFromStringV2() { + $this->entry->transferFromXML($this->v2entryText); + $entryXml = $this->entry->saveXML(); + $newPlaylistListEntry = new Zend_Gdata_YouTube_PlaylistListEntry(); + $newPlaylistListEntry->transferFromXML($entryXml); + $newPlaylistListEntry->setMajorProtocolVersion(2); + $this->verifyAllSamplePropertiesAreCorrectV2($newPlaylistListEntry); + $newPlaylistListEntryXml = $newPlaylistListEntry->saveXML(); + $this->assertEquals($entryXml, $newPlaylistListEntryXml); + } + + public function testConvertPlaylistListEntryToAndFromString() { + $this->entry->transferFromXML($this->entryText); + $entryXml = $this->entry->saveXML(); + $newPlaylistListEntry = new Zend_Gdata_YouTube_PlaylistListEntry(); + $newPlaylistListEntry->transferFromXML($entryXml); + $this->verifyAllSamplePropertiesAreCorrect($newPlaylistListEntry); + $newPlaylistListEntryXml = $newPlaylistListEntry->saveXML(); + $this->assertEquals($entryXml, $newPlaylistListEntryXml); + } + + public function testGettingCountHintOnV1EntryShouldThrowException() { + $exceptionCaught = false; + $this->entry->transferFromXML($this->entryText); + try { + $this->entry->getCountHint(); + } catch (Zend_Gdata_App_VersionException $e) { + $exceptionCaught = true; + } + $this->assertTrue($exceptionCaught, 'Calling getCountHint on a v1 ' . + 'playlistListEntry should throw an exception'); + } + + public function testGettingPlaylistIdOnV1EntryShouldThrowException() { + $exceptionCaught = false; + $this->entry->transferFromXML($this->entryText); + try { + $this->entry->getPlaylistId(); + } catch (Zend_Gdata_App_VersionException $e) { + $exceptionCaught = true; + } + $this->assertTrue($exceptionCaught, 'Calling getPlaylistId on a v1 ' . + 'playlistListEntry should throw an exception'); + } + + public function testGetPlaylistVideoFeedUrlWorksInV2() { + $this->entry->transferFromXML($this->v2entryText); + $this->entry->setMajorProtocolVersion(2); + $this->assertEquals( + 'http://gdata.youtube.com/feeds/api/playlists/8E2186857EE27746?v=2', + $this->entry->getPlaylistVideoFeedUrl()); + } +} diff --git a/zend/tests/Zend/Gdata/YouTube/PlaylistListFeedTest.php b/zend/tests/Zend/Gdata/YouTube/PlaylistListFeedTest.php new file mode 100644 index 0000000..477f19b --- /dev/null +++ b/zend/tests/Zend/Gdata/YouTube/PlaylistListFeedTest.php @@ -0,0 +1,171 @@ +<?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_Gdata_YouTube + * @subpackage UnitTests + * @copyright Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com) + * @license http://framework.zend.com/license/new-bsd New BSD License + * @version $Id $ + */ + +require_once 'Zend/Gdata/YouTube/PlaylistListFeed.php'; +require_once 'Zend/Gdata/YouTube.php'; + +/** + * @category Zend + * @package Zend_Gdata_YouTube + * @subpackage UnitTests + * @copyright Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com) + * @license http://framework.zend.com/license/new-bsd New BSD License + * @group Zend_Gdata + * @group Zend_Gdata_YouTube + */ +class Zend_Gdata_YouTube_PlaylistListFeedTest extends PHPUnit_Framework_TestCase +{ + + public function setUp() { + $this->feedText = file_get_contents( + 'Zend/Gdata/YouTube/_files/PlaylistListFeedDataSample1.xml', + true); + $this->V2feedText = file_get_contents( + 'Zend/Gdata/YouTube/_files/PlaylistListFeedDataSampleV2.xml', + true); + + $this->feed = new Zend_Gdata_YouTube_PlaylistListFeed(); + } + + private function verifyAllSamplePropertiesAreCorrect ($playlistListFeed) { + $this->assertEquals('http://gdata.youtube.com/feeds/users/testuser/playlists', + $playlistListFeed->id->text); + $this->assertEquals('2007-09-20T20:59:47.530Z', $playlistListFeed->updated->text); + $this->assertEquals('http://schemas.google.com/g/2005#kind', $playlistListFeed->category[0]->scheme); + $this->assertEquals('http://gdata.youtube.com/schemas/2007#playlistLink', $playlistListFeed->category[0]->term); + $this->assertEquals('http://www.youtube.com/img/pic_youtubelogo_123x63.gif', $playlistListFeed->logo->text); + $this->assertEquals('text', $playlistListFeed->title->type); + $this->assertEquals('testuser\'s Playlists', $playlistListFeed->title->text);; + $this->assertEquals('self', $playlistListFeed->getLink('self')->rel); + $this->assertEquals('application/atom+xml', $playlistListFeed->getLink('self')->type); + $this->assertEquals('http://gdata.youtube.com/feeds/users/testuser/playlists?start-index=1&max-results=25', $playlistListFeed->getLink('self')->href); + $this->assertEquals('testuser', $playlistListFeed->author[0]->name->text); + $this->assertEquals('http://gdata.youtube.com/feeds/users/testuser', $playlistListFeed->author[0]->uri->text); + $this->assertEquals(2, $playlistListFeed->totalResults->text); + } + + private function verifyAllSamplePropertiesAreCorrectV2 ($playlistListFeed) { + $this->assertEquals('tag:youtube.com,2008:user:GoogleDevelopers:playlists', + $playlistListFeed->id->text); + $this->assertEquals('2008-12-10T09:56:03.000Z', + $playlistListFeed->updated->text); + $this->assertEquals('http://schemas.google.com/g/2005#kind', + $playlistListFeed->category[0]->scheme); + $this->assertEquals( + 'http://gdata.youtube.com/schemas/2007#playlistLink', + $playlistListFeed->category[0]->term); + $this->assertEquals( + 'http://www.youtube.com/img/pic_youtubelogo_123x63.gif', + $playlistListFeed->logo->text); + $this->assertEquals('Playlists of GoogleDevelopers', + $playlistListFeed->title->text);; + $this->assertEquals('self', $playlistListFeed->getLink('self')->rel); + $this->assertEquals('application/atom+xml', + $playlistListFeed->getLink('self')->type); + $this->assertEquals( + 'http://gdata.youtube.com/feeds/api/users/GoogleDevelopers/' . + 'playlists?start-index=1&max-results=25&v=2', + $playlistListFeed->getLink('self')->href); + $this->assertEquals('GoogleDevelopers', + $playlistListFeed->author[0]->name->text); + $this->assertEquals('http://gdata.youtube.com/feeds/api/users/' . + 'googledevelopers', $playlistListFeed->author[0]->uri->text); + $this->assertEquals(70, $playlistListFeed->totalResults->text); + } + + public function testEmptyEntryShouldHaveNoExtensionElements() { + $this->assertTrue(is_array($this->feed->extensionElements)); + $this->assertEquals(0, count($this->feed->extensionElements)); + } + + public function testEmptyEntryShouldHaveNoExtensionAttributes() { + $this->assertTrue(is_array($this->feed->extensionAttributes)); + $this->assertEquals(0, count($this->feed->extensionAttributes)); + } + + public function testSampleEntryShouldHaveNoExtensionElements() { + $this->feed->transferFromXML($this->feedText); + $this->assertTrue(is_array($this->feed->extensionElements)); + $this->assertEquals(0, count($this->feed->extensionElements)); + } + + public function testSampleEntryShouldHaveNoExtensionAttributes() { + $this->feed->transferFromXML($this->feedText); + $this->assertTrue(is_array($this->feed->extensionAttributes)); + $this->assertEquals(0, count($this->feed->extensionAttributes)); + } + + public function testSampleEntryShouldHaveNoExtensionElementsV2() { + $this->feed->setMajorProtocolVersion(2); + $this->feed->transferFromXML($this->V2feedText); + $this->assertTrue(is_array($this->feed->extensionElements)); + $this->assertEquals(0, count($this->feed->extensionElements)); + } + + public function testSampleEntryShouldHaveNoExtensionAttributesV2() { + $this->feed->setMajorProtocolVersion(2); + $this->feed->transferFromXML($this->V2feedText); + $this->assertTrue(is_array($this->feed->extensionAttributes)); + $this->assertEquals(0, count($this->feed->extensionAttributes)); + } + + public function testEmptyPlaylistListFeedToAndFromStringShouldMatch() { + $feedXml = $this->feed->saveXML(); + $newPlaylistListFeed = new Zend_Gdata_YouTube_PlaylistListFeed(); + $newPlaylistListFeed->transferFromXML($feedXml); + $newPlaylistListFeedXml = $newPlaylistListFeed->saveXML(); + $this->assertTrue($feedXml == $newPlaylistListFeedXml); + } + + public function testEmptyPlaylistListFeedToAndFromStringShouldMatchV2() { + $this->feed->setMajorProtocolVersion(2); + $this->feed->transferFromXML($this->V2feedText); + $feedXml = $this->feed->saveXML(); + $newPlaylistListFeed = new Zend_Gdata_YouTube_PlaylistListFeed(); + $newPlaylistListFeed->transferFromXML($feedXml); + $newPlaylistListFeed->setMajorProtocolVersion(2); + $newPlaylistListFeedXml = $newPlaylistListFeed->saveXML(); + $this->assertTrue($feedXml == $newPlaylistListFeedXml); + } + + public function testSamplePropertiesAreCorrect () { + $this->feed->transferFromXML($this->feedText); + $this->verifyAllSamplePropertiesAreCorrect($this->feed); + } + + public function testSamplePropertiesAreCorrectV2 () { + $this->feed->setMajorProtocolVersion(2); + $this->feed->transferFromXML($this->V2feedText); + $this->verifyAllSamplePropertiesAreCorrectV2($this->feed); + } + + public function testConvertPlaylistListFeedToAndFromString() { + $this->feed->transferFromXML($this->feedText); + $entryXml = $this->feed->saveXML(); + $newPlaylistListFeed = new Zend_Gdata_YouTube_PlaylistListFeed(); + $newPlaylistListFeed->transferFromXML($entryXml); + $this->verifyAllSamplePropertiesAreCorrect($newPlaylistListFeed); + $newPlaylistListFeedXml = $newPlaylistListFeed->saveXML(); + $this->assertEquals($entryXml, $newPlaylistListFeedXml); + } + +} diff --git a/zend/tests/Zend/Gdata/YouTube/PlaylistVideoEntryTest.php b/zend/tests/Zend/Gdata/YouTube/PlaylistVideoEntryTest.php new file mode 100644 index 0000000..c6ffd65 --- /dev/null +++ b/zend/tests/Zend/Gdata/YouTube/PlaylistVideoEntryTest.php @@ -0,0 +1,356 @@ +<?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_Gdata_YouTube + * @subpackage UnitTests + * @copyright Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com) + * @license http://framework.zend.com/license/new-bsd New BSD License + * @version $Id $ + */ + +require_once 'Zend/Gdata/YouTube/PlaylistVideoEntry.php'; +require_once 'Zend/Gdata/YouTube.php'; + +/** + * @category Zend + * @package Zend_Gdata_YouTube + * @subpackage UnitTests + * @copyright Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com) + * @license http://framework.zend.com/license/new-bsd New BSD License + * @group Zend_Gdata + * @group Zend_Gdata_YouTube + */ +class Zend_Gdata_YouTube_PlaylistVideoEntryTest extends PHPUnit_Framework_TestCase +{ + + public function setUp() { + $this->entryText = file_get_contents( + 'Zend/Gdata/YouTube/_files/PlaylistVideoEntryDataSample1.xml', + true); + $this->V2entryText = file_get_contents( + 'Zend/Gdata/YouTube/_files/PlaylistVideoEntryDataSampleV2.xml', + true); + $this->entry = new Zend_Gdata_YouTube_PlaylistVideoEntry(); + } + + private function verifyAllSamplePropertiesAreCorrect ($playlistVideoEntry) { + $this->assertEquals('http://gdata.youtube.com/feeds/playlists/46A2F8C9B36B6FE7/efb9b9a8dd4c2b21', + $playlistVideoEntry->id->text); + $this->assertEquals('2007-09-20T22:56:57.061Z', $playlistVideoEntry->updated->text); + $this->assertEquals('http://schemas.google.com/g/2005#kind', $playlistVideoEntry->category[0]->scheme); + $this->assertEquals('http://gdata.youtube.com/schemas/2007#playlist', $playlistVideoEntry->category[0]->term); + $this->assertEquals('text', $playlistVideoEntry->title->type); + $this->assertEquals('"Crazy (Gnarles Barkley)" - Acoustic Cover', $playlistVideoEntry->title->text);; + $this->assertEquals('html', $playlistVideoEntry->content->type); + $this->assertEquals('self', $playlistVideoEntry->getLink('self')->rel); + $this->assertEquals('application/atom+xml', $playlistVideoEntry->getLink('self')->type); + $this->assertEquals('http://gdata.youtube.com/feeds/playlists/46A2F8C9B36B6FE7/efb9b9a8dd4c2b21', $playlistVideoEntry->getLink('self')->href); + $this->assertEquals('davidchoimusic', $playlistVideoEntry->author[0]->name->text); + $this->assertEquals('http://gdata.youtube.com/feeds/users/davidchoimusic', $playlistVideoEntry->author[0]->uri->text); + $mediaGroup = $playlistVideoEntry->mediaGroup; + + $this->assertEquals('plain', $mediaGroup->title->type); + $this->assertEquals('"Crazy (Gnarles Barkley)" - Acoustic Cover', $mediaGroup->title->text); + $this->assertEquals('plain', $mediaGroup->description->type); + $this->assertEquals('Gnarles Barkley acoustic cover http://www.myspace.com/davidchoimusic', $mediaGroup->description->text); + $this->assertEquals('music, singing, gnarls, barkley, acoustic, cover', $mediaGroup->keywords->text); + $this->assertEquals(255, $mediaGroup->duration->seconds); + $this->assertEquals('Music', $mediaGroup->category[0]->label); + $this->assertEquals('http://gdata.youtube.com/schemas/2007/categories.cat', $mediaGroup->category[0]->scheme); + $this->assertEquals('video', $mediaGroup->content[0]->medium); + $this->assertEquals('http://www.youtube.com/v/UMFI1hdm96E', $mediaGroup->content[0]->url); + $this->assertEquals('application/x-shockwave-flash', $mediaGroup->content[0]->type); + $this->assertEquals('true', $mediaGroup->content[0]->isDefault); + $this->assertEquals('full', $mediaGroup->content[0]->expression); + $this->assertEquals(255, $mediaGroup->content[0]->duration); + $this->assertEquals(5, $mediaGroup->content[0]->format); + + $this->assertEquals('http://img.youtube.com/vi/UMFI1hdm96E/2.jpg', $mediaGroup->thumbnail[0]->url); + $this->assertEquals(97, $mediaGroup->thumbnail[0]->height); + $this->assertEquals(130, $mediaGroup->thumbnail[0]->width); + $this->assertEquals('00:02:07.500', $mediaGroup->thumbnail[0]->time); + $this->assertEquals('http://img.youtube.com/vi/UMFI1hdm96E/1.jpg', $mediaGroup->thumbnail[1]->url); + $this->assertEquals(97, $mediaGroup->thumbnail[1]->height); + $this->assertEquals(130, $mediaGroup->thumbnail[1]->width); + $this->assertEquals('00:01:03.750', $mediaGroup->thumbnail[1]->time); + $this->assertEquals('http://img.youtube.com/vi/UMFI1hdm96E/3.jpg', $mediaGroup->thumbnail[2]->url); + $this->assertEquals(97, $mediaGroup->thumbnail[2]->height); + $this->assertEquals(130, $mediaGroup->thumbnail[2]->width); + $this->assertEquals('00:03:11.250', $mediaGroup->thumbnail[2]->time); + $this->assertEquals('http://img.youtube.com/vi/UMFI1hdm96E/0.jpg', $mediaGroup->thumbnail[3]->url); + $this->assertEquals(240, $mediaGroup->thumbnail[3]->height); + $this->assertEquals(320, $mediaGroup->thumbnail[3]->width); + $this->assertEquals('00:02:07.500', $mediaGroup->thumbnail[3]->time); + + $this->assertEquals(113321, $playlistVideoEntry->statistics->viewCount); + $this->assertEquals(1, $playlistVideoEntry->rating->min); + $this->assertEquals(5, $playlistVideoEntry->rating->max); + $this->assertEquals(1005, $playlistVideoEntry->rating->numRaters); + $this->assertEquals(4.77, $playlistVideoEntry->rating->average); + $this->assertEquals(1, $playlistVideoEntry->position->text); + $this->assertEquals('http://gdata.youtube.com/feeds/videos/UMFI1hdm96E/comments', $playlistVideoEntry->comments->feedLink->href); + } + + private function verifyAllSamplePropertiesAreCorrectV2 ($playlistVideoEntry) { + $this->assertEquals( + 'tag:youtube.com,2008:playlist:4E6265CEF8BAA793:579617126485907C', + $playlistVideoEntry->id->text); + $this->assertEquals('2008-12-16T18:32:03.434Z', + $playlistVideoEntry->updated->text); + $this->assertEquals( + 'http://gdata.youtube.com/schemas/2007/keywords.cat', + $playlistVideoEntry->category[0]->scheme); + $this->assertEquals('dynamite', $playlistVideoEntry->category[0]->term); + $this->assertEquals( + 'http://gdata.youtube.com/schemas/2007/categories.cat', + $playlistVideoEntry->category[1]->scheme); + $this->assertEquals('News', $playlistVideoEntry->category[1]->term); + $this->assertEquals('News & Politics', + $playlistVideoEntry->category[1]->getLabel()); + $this->assertEquals( + 'http://schemas.google.com/g/2005#kind', + $playlistVideoEntry->category[2]->scheme); + $this->assertEquals('http://gdata.youtube.com/schemas/2007#playlist', + $playlistVideoEntry->category[2]->term); + $this->assertEquals('Paris Police Find Dynamite in Department Store', + $playlistVideoEntry->title->text);; + + $this->assertEquals('alternate', + $playlistVideoEntry->getLink('alternate')->rel); + $this->assertEquals('text/html', + $playlistVideoEntry->getLink('alternate')->type); + $this->assertEquals( + 'http://www.youtube.com/watch?v=Lur391T5ApY', + $playlistVideoEntry->getLink('alternate')->href); + + $this->assertEquals( + 'http://gdata.youtube.com/schemas/2007#video.responses', + $playlistVideoEntry->getLink( + 'http://gdata.youtube.com/schemas/2007#video.responses')->rel); + $this->assertEquals('application/atom+xml', + $playlistVideoEntry->getLink( + 'http://gdata.youtube.com/schemas/2007#video.responses')->type); + $this->assertEquals( + 'http://gdata.youtube.com/feeds/api/videos/Lur391T5ApY/' . + 'responses?v=2', + $playlistVideoEntry->getLink( + 'http://gdata.youtube.com/schemas/2007#video.responses')->href); + + $this->assertEquals( + 'http://gdata.youtube.com/schemas/2007#mobile', + $playlistVideoEntry->getLink( + 'http://gdata.youtube.com/schemas/2007#mobile')->rel); + $this->assertEquals('text/html', + $playlistVideoEntry->getLink( + 'http://gdata.youtube.com/schemas/2007#mobile')->type); + $this->assertEquals( + 'http://m.youtube.com/details?v=Lur391T5ApY', + $playlistVideoEntry->getLink( + 'http://gdata.youtube.com/schemas/2007#mobile')->href); + + $this->assertEquals('related', + $playlistVideoEntry->getLink('related')->rel); + $this->assertEquals('application/atom+xml', + $playlistVideoEntry->getLink('related')->type); + $this->assertEquals( + 'http://gdata.youtube.com/feeds/api/videos/Lur391T5ApY?v=2', + $playlistVideoEntry->getLink('related')->href); + + $this->assertEquals('self', + $playlistVideoEntry->getLink('self')->rel); + $this->assertEquals('application/atom+xml', + $playlistVideoEntry->getLink('self')->type); + $this->assertEquals( + 'http://gdata.youtube.com/feeds/api/playlists/4E6265CEF8BAA793/' . + '579617126485907C?v=2', + $playlistVideoEntry->getLink('self')->href); + + $this->assertEquals('zfgdata', + $playlistVideoEntry->author[0]->name->text); + $this->assertEquals( + 'http://gdata.youtube.com/feeds/api/users/zfgdata', + $playlistVideoEntry->author[0]->uri->text); + + $mediaGroup = $playlistVideoEntry->mediaGroup; + + $this->assertEquals('plain', $mediaGroup->title->type); + $this->assertEquals('Paris Police Find', + $mediaGroup->title->text); + $this->assertEquals('plain', $mediaGroup->description->type); + $this->assertEquals('French police found.', + $mediaGroup->description->text); + $this->assertEquals( + 'department, dynamite, explosives, find', + $mediaGroup->keywords->text); + $this->assertEquals(67, $mediaGroup->duration->seconds); + $this->assertEquals('News & Politics', + $mediaGroup->category[0]->label); + $this->assertEquals( + 'http://gdata.youtube.com/schemas/2007/categories.cat', + $mediaGroup->category[0]->scheme); + $this->assertEquals('video', $mediaGroup->content[0]->medium); + $this->assertEquals( + 'http://www.youtube.com/v/Lur391T5ApY&f=gdata_playlists', + $mediaGroup->content[0]->url); + $this->assertEquals('application/x-shockwave-flash', + $mediaGroup->content[0]->type); + $this->assertEquals('video', + $mediaGroup->content[0]->medium); + $this->assertEquals('true', $mediaGroup->content[0]->isDefault); + $this->assertEquals('full', $mediaGroup->content[0]->expression); + $this->assertEquals(67, $mediaGroup->content[0]->duration); + $this->assertEquals(5, $mediaGroup->content[0]->format); + + $this->assertEquals('http://i.ytimg.com/vi/Lur391T5ApY/2.jpg', + $mediaGroup->thumbnail[0]->url); + $this->assertEquals(97, $mediaGroup->thumbnail[0]->height); + $this->assertEquals(130, $mediaGroup->thumbnail[0]->width); + $this->assertEquals('00:00:33.500', $mediaGroup->thumbnail[0]->time); + $this->assertEquals('http://i.ytimg.com/vi/Lur391T5ApY/1.jpg', + $mediaGroup->thumbnail[1]->url); + $this->assertEquals(97, $mediaGroup->thumbnail[1]->height); + $this->assertEquals(130, $mediaGroup->thumbnail[1]->width); + $this->assertEquals('00:00:16.750', $mediaGroup->thumbnail[1]->time); + $this->assertEquals('http://i.ytimg.com/vi/Lur391T5ApY/3.jpg', + $mediaGroup->thumbnail[2]->url); + $this->assertEquals(97, $mediaGroup->thumbnail[2]->height); + $this->assertEquals(130, $mediaGroup->thumbnail[2]->width); + $this->assertEquals('00:00:50.250', $mediaGroup->thumbnail[2]->time); + $this->assertEquals('http://i.ytimg.com/vi/Lur391T5ApY/hqdefault.jpg', + $mediaGroup->thumbnail[3]->url); + $this->assertEquals(360, $mediaGroup->thumbnail[3]->height); + $this->assertEquals(480, $mediaGroup->thumbnail[3]->width); + $this->assertEquals('2008-12-16T17:01:42.000Z', + $mediaGroup->getUploaded()->text); + $this->assertEquals('AssociatedPress', + $mediaGroup->getMediaCredit()->text); + $this->assertEquals('uploader', + $mediaGroup->getMediaCredit()->role); + $this->assertEquals('urn:youtube', + $mediaGroup->getMediaCredit()->scheme); + $this->assertEquals('partner', + $mediaGroup->getMediaCredit()->getYTtype()); + $players = $mediaGroup->getPlayer(); + $this->assertEquals('http://www.youtube.com/watch?v=Lur391T5ApY', + $players[0]->url); + + $this->assertEquals(271, $playlistVideoEntry->statistics->viewCount); + $this->assertEquals(1, $playlistVideoEntry->rating->min); + $this->assertEquals(5, $playlistVideoEntry->rating->max); + $this->assertEquals(5, $playlistVideoEntry->rating->numRaters); + $this->assertEquals(4.20, $playlistVideoEntry->rating->average); + $this->assertEquals(1, $playlistVideoEntry->position->text); + $this->assertEquals( + 'http://gdata.youtube.com/feeds/api/videos/Lur391T5ApY/comments?v=2', + $playlistVideoEntry->comments->feedLink->href); + $this->assertEquals(4, + $playlistVideoEntry->comments->feedLink->countHint); + $this->assertEquals('New York, NY', + $playlistVideoEntry->getLocation()->text); + $this->assertEquals('2008-12-16', + $playlistVideoEntry->getRecorded()->text); + $this->assertEquals('Lur391T5ApY', + $playlistVideoEntry->getVideoId()); + + } + + public function testEmptyEntryShouldHaveNoExtensionElements() { + $this->assertTrue(is_array($this->entry->extensionElements)); + $this->assertTrue(count($this->entry->extensionElements) == 0); + } + + public function testEmptyEntryShouldHaveNoExtensionAttributes() { + $this->assertTrue(is_array($this->entry->extensionAttributes)); + $this->assertTrue(count($this->entry->extensionAttributes) == 0); + } + + public function testSampleEntryShouldHaveNoExtensionElements() { + $this->entry->transferFromXML($this->entryText); + $this->assertTrue(is_array($this->entry->extensionElements)); + $this->assertTrue(count($this->entry->extensionElements) == 0); + } + + public function testSampleEntryShouldHaveNoExtensionAttributes() { + $this->entry->transferFromXML($this->entryText); + $this->assertTrue(is_array($this->entry->extensionAttributes)); + $this->assertTrue(count($this->entry->extensionAttributes) == 0); + } + + public function testSampleEntryShouldHaveNoExtensionElementsV2() { + $this->entry->setMajorProtocolVersion(2); + $this->entry->transferFromXML($this->V2entryText); + $this->assertTrue(is_array($this->entry->extensionElements)); + $this->assertTrue(count($this->entry->extensionElements) == 0); + } + + public function testSampleEntryShouldHaveNoExtensionAttributesV2() { + $this->entry->setMajorProtocolVersion(2); + $this->entry->transferFromXML($this->V2entryText); + $this->assertTrue(is_array($this->entry->extensionAttributes)); + $this->assertTrue(count($this->entry->extensionAttributes) == 0); + } + + public function testEmptyPlaylistVideoEntryToAndFromStringShouldMatch() { + $entryXml = $this->entry->saveXML(); + $newPlaylistVideoEntry = new Zend_Gdata_YouTube_PlaylistVideoEntry(); + $newPlaylistVideoEntry->transferFromXML($entryXml); + $newPlaylistVideoEntryXml = $newPlaylistVideoEntry->saveXML(); + $this->assertTrue($entryXml == $newPlaylistVideoEntryXml); + } + + public function testEmptyPlaylistVideoEntryToAndFromStringShouldMatchV2() { + $this->entry->setMajorProtocolVersion(2); + $entryXml = $this->entry->saveXML(); + $newPlaylistVideoEntry = new Zend_Gdata_YouTube_PlaylistVideoEntry(); + $newPlaylistVideoEntry->setMajorProtocolVersion(2); + $newPlaylistVideoEntry->transferFromXML($entryXml); + $newPlaylistVideoEntryXml = $newPlaylistVideoEntry->saveXML(); + $this->assertTrue($entryXml == $newPlaylistVideoEntryXml); + } + + public function testSamplePropertiesAreCorrect () { + $this->entry->transferFromXML($this->entryText); + $this->verifyAllSamplePropertiesAreCorrect($this->entry); + } + + public function testSamplePropertiesAreCorrectV2 () { + $this->entry->setMajorProtocolVersion(2); + $this->entry->transferFromXML($this->V2entryText); + $this->verifyAllSamplePropertiesAreCorrectV2($this->entry); + } + + public function testConvertPlaylistVideoEntryToAndFromString() { + $this->entry->transferFromXML($this->entryText); + $entryXml = $this->entry->saveXML(); + $newPlaylistVideoEntry = new Zend_Gdata_YouTube_PlaylistVideoEntry(); + $newPlaylistVideoEntry->transferFromXML($entryXml); + $this->verifyAllSamplePropertiesAreCorrect($newPlaylistVideoEntry); + $newPlaylistVideoEntryXml = $newPlaylistVideoEntry->saveXML(); + $this->assertEquals($entryXml, $newPlaylistVideoEntryXml); + } + + public function testConvertPlaylistVideoEntryToAndFromStringV2() { + $this->entry->setMajorProtocolVersion(2); + $this->entry->transferFromXML($this->V2entryText); + $entryXml = $this->entry->saveXML(); + $newPlaylistVideoEntry = new Zend_Gdata_YouTube_PlaylistVideoEntry(); + $newPlaylistVideoEntry->setMajorProtocolVersion(2); + $newPlaylistVideoEntry->transferFromXML($entryXml); + $this->verifyAllSamplePropertiesAreCorrectV2($newPlaylistVideoEntry); + $newPlaylistVideoEntryXml = $newPlaylistVideoEntry->saveXML(); + $this->assertEquals($entryXml, $newPlaylistVideoEntryXml); + } + +} diff --git a/zend/tests/Zend/Gdata/YouTube/PlaylistVideoFeedTest.php b/zend/tests/Zend/Gdata/YouTube/PlaylistVideoFeedTest.php new file mode 100644 index 0000000..d145656 --- /dev/null +++ b/zend/tests/Zend/Gdata/YouTube/PlaylistVideoFeedTest.php @@ -0,0 +1,112 @@ +<?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_Gdata_YouTube + * @subpackage UnitTests + * @copyright Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com) + * @license http://framework.zend.com/license/new-bsd New BSD License + * @version $Id $ + */ + +require_once 'Zend/Gdata/YouTube/PlaylistVideoFeed.php'; +require_once 'Zend/Gdata/YouTube.php'; + +/** + * @category Zend + * @package Zend_Gdata_YouTube + * @subpackage UnitTests + * @copyright Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com) + * @license http://framework.zend.com/license/new-bsd New BSD License + * @group Zend_Gdata + * @group Zend_Gdata_YouTube + */ +class Zend_Gdata_YouTube_PlaylistVideoFeedTest extends PHPUnit_Framework_TestCase +{ + + public function setUp() { + $this->feedText = file_get_contents( + 'Zend/Gdata/YouTube/_files/PlaylistVideoFeedDataSample1.xml', + true); + $this->feed = new Zend_Gdata_YouTube_PlaylistVideoFeed(); + } + + private function verifyAllSamplePropertiesAreCorrect ($playlistVideoFeed) { + $this->assertEquals('http://gdata.youtube.com/feeds/playlists/46A2F8C9B36B6FE7', + $playlistVideoFeed->id->text); + $this->assertEquals('2007-09-20T13:42:19.000-07:00', $playlistVideoFeed->updated->text); + $this->assertEquals('http://schemas.google.com/g/2005#kind', $playlistVideoFeed->category[0]->scheme); + $this->assertEquals('http://gdata.youtube.com/schemas/2007#playlist', $playlistVideoFeed->category[0]->term); + $this->assertEquals('http://gdata.youtube.com/schemas/2007/tags.cat', $playlistVideoFeed->category[1]->scheme); + $this->assertEquals('music', $playlistVideoFeed->category[1]->term); + $this->assertEquals('http://www.youtube.com/img/pic_youtubelogo_123x63.gif', $playlistVideoFeed->logo->text); + $this->assertEquals('text', $playlistVideoFeed->title->type); + $this->assertEquals('YouTube Musicians', $playlistVideoFeed->title->text);; + $this->assertEquals('self', $playlistVideoFeed->getLink('self')->rel); + $this->assertEquals('application/atom+xml', $playlistVideoFeed->getLink('self')->type); + $this->assertEquals('http://gdata.youtube.com/feeds/playlists/46A2F8C9B36B6FE7?start-index=1&max-results=25', $playlistVideoFeed->getLink('self')->href); + $this->assertEquals('testuser', $playlistVideoFeed->author[0]->name->text); + $this->assertEquals('http://gdata.youtube.com/feeds/users/testuser', $playlistVideoFeed->author[0]->uri->text); + $this->assertEquals(13, $playlistVideoFeed->totalResults->text); + $this->assertEquals(13, count($playlistVideoFeed->entry)); + $entries = $playlistVideoFeed->entry; + $this->assertEquals(1, $entries[0]->getPosition()->getText()); + } + + public function testEmptyEntryShouldHaveNoExtensionElements() { + $this->assertTrue(is_array($this->feed->extensionElements)); + $this->assertTrue(count($this->feed->extensionElements) == 0); + } + + public function testEmptyEntryShouldHaveNoExtensionAttributes() { + $this->assertTrue(is_array($this->feed->extensionAttributes)); + $this->assertTrue(count($this->feed->extensionAttributes) == 0); + } + + public function testSampleEntryShouldHaveNoExtensionElements() { + $this->feed->transferFromXML($this->feedText); + $this->assertTrue(is_array($this->feed->extensionElements)); + $this->assertTrue(count($this->feed->extensionElements) == 0); + } + + public function testSampleEntryShouldHaveNoExtensionAttributes() { + $this->feed->transferFromXML($this->feedText); + $this->assertTrue(is_array($this->feed->extensionAttributes)); + $this->assertTrue(count($this->feed->extensionAttributes) == 0); + } + + public function testEmptyPlaylistVideoFeedToAndFromStringShouldMatch() { + $entryXml = $this->feed->saveXML(); + $newPlaylistVideoFeed = new Zend_Gdata_YouTube_PlaylistVideoFeed(); + $newPlaylistVideoFeed->transferFromXML($entryXml); + $newPlaylistVideoFeedXml = $newPlaylistVideoFeed->saveXML(); + $this->assertTrue($entryXml == $newPlaylistVideoFeedXml); + } + + public function testSamplePropertiesAreCorrect () { + $this->feed->transferFromXML($this->feedText); + $this->verifyAllSamplePropertiesAreCorrect($this->feed); + } + + public function testConvertPlaylistVideoFeedToAndFromString() { + $this->feed->transferFromXML($this->feedText); + $feedXml = $this->feed->saveXML(); + $newPlaylistVideoFeed = new Zend_Gdata_YouTube_PlaylistVideoFeed(); + $newPlaylistVideoFeed->transferFromXML($feedXml); + $this->verifyAllSamplePropertiesAreCorrect($newPlaylistVideoFeed); + $newPlaylistVideoFeedXml = $newPlaylistVideoFeed->saveXML(); + $this->assertEquals($feedXml, $newPlaylistVideoFeedXml); + } + +} diff --git a/zend/tests/Zend/Gdata/YouTube/SubscriptionEntryTest.php b/zend/tests/Zend/Gdata/YouTube/SubscriptionEntryTest.php new file mode 100644 index 0000000..a6e065b --- /dev/null +++ b/zend/tests/Zend/Gdata/YouTube/SubscriptionEntryTest.php @@ -0,0 +1,332 @@ +<?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_Gdata_YouTube + * @subpackage UnitTests + * @copyright Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com) + * @license http://framework.zend.com/license/new-bsd New BSD License + * @version $Id $ + */ + +require_once 'Zend/Gdata/YouTube/SubscriptionEntry.php'; +require_once 'Zend/Gdata/YouTube.php'; + +/** + * @category Zend + * @package Zend_Gdata_YouTube + * @subpackage UnitTests + * @copyright Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com) + * @license http://framework.zend.com/license/new-bsd New BSD License + * @group Zend_Gdata + * @group Zend_Gdata_YouTube + */ +class Zend_Gdata_YouTube_SubscriptionEntryTest extends PHPUnit_Framework_TestCase +{ + + public function setUp() { + $this->entryText = file_get_contents( + 'Zend/Gdata/YouTube/_files/SubscriptionEntryDataSample1.xml', + true); + $this->v2entryText_channel = file_get_contents( + 'Zend/Gdata/YouTube/_files/' . + 'SubscriptionEntryDataSample_channelV2.xml', + true); + $this->v2entryText_playlist = file_get_contents( + 'Zend/Gdata/YouTube/_files/' . + 'SubscriptionEntryDataSample_playlistV2.xml', + true); + $this->v2entryText_favorites = file_get_contents( + 'Zend/Gdata/YouTube/_files/' . + 'SubscriptionEntryDataSample_favoritesV2.xml', + true); + $this->v2entryText_query = file_get_contents( + 'Zend/Gdata/YouTube/_files/' . + 'SubscriptionEntryDataSample_queryV2.xml', + true); + + $this->entry = new Zend_Gdata_YouTube_SubscriptionEntry(); + } + + private function verifyAllSamplePropertiesAreCorrect ($subscriptionListEntry) { + $this->assertEquals( + 'http://gdata.youtube.com/feeds/users/testuser/' . + 'subscriptions/35bbde297dba88db', + $subscriptionListEntry->id->text); + $this->assertEquals('2007-03-02T11:58:22.000-08:00', + $subscriptionListEntry->updated->text); + $this->assertEquals( + 'http://gdata.youtube.com/schemas/2007/subscriptiontypes.cat', + $subscriptionListEntry->category[1]->scheme); + $this->assertEquals('publisher', + $subscriptionListEntry->category[1]->term); + $this->assertEquals('http://schemas.google.com/g/2005#kind', + $subscriptionListEntry->category[0]->scheme); + $this->assertEquals( + 'http://gdata.youtube.com/schemas/2007#subscription', + $subscriptionListEntry->category[0]->term); + $this->assertEquals('text', $subscriptionListEntry->title->type); + $this->assertEquals('Videos published by : BBC', + $subscriptionListEntry->title->text);; + $this->assertEquals('self', + $subscriptionListEntry->getLink('self')->rel); + $this->assertEquals('application/atom+xml', + $subscriptionListEntry->getLink('self')->type); + $this->assertEquals( + 'http://gdata.youtube.com/feeds/users/testuser/' . + 'subscriptions/35bbde297dba88db', + $subscriptionListEntry->getLink('self')->href); + $this->assertEquals('testuser', + $subscriptionListEntry->author[0]->name->text); + $this->assertEquals('http://gdata.youtube.com/feeds/users/testuser', + $subscriptionListEntry->author[0]->uri->text); + $this->assertEquals('http://gdata.youtube.com/feeds/users/BBC/uploads', + $subscriptionListEntry->feedLink[0]->href); + $this->assertEquals('697', + $subscriptionListEntry->feedLink[0]->countHint); + $this->assertEquals( + 'http://gdata.youtube.com/schemas/2007#user.uploads', + $subscriptionListEntry->feedLink[0]->rel); + } + + public function verifyAllSamplePropertiesAreCorrectV2( + $subscriptionListEntry) { + $this->assertEquals( + 'tag:youtube.com,2008:user:googledevelopers:subscription:' . + 'Z1Lm-S9gkRQ', + $subscriptionListEntry->id->text); + $this->assertEquals('2007-11-16T15:15:17.000-08:00', + $subscriptionListEntry->published->text); + $this->assertEquals('2007-11-16T15:15:17.000-08:00', + $subscriptionListEntry->updated->text); + $this->assertEquals( + 'http://gdata.youtube.com/schemas/2007/subscriptiontypes.cat', + $subscriptionListEntry->category[0]->scheme); + $this->assertEquals('channel', + $subscriptionListEntry->category[0]->term); + $this->assertEquals('http://schemas.google.com/g/2005#kind', + $subscriptionListEntry->category[1]->scheme); + $this->assertEquals( + 'http://gdata.youtube.com/schemas/2007#subscription', + $subscriptionListEntry->category[1]->term); + + $this->assertEquals('self', + $subscriptionListEntry->getLink('self')->rel); + $this->assertEquals('application/atom+xml', + $subscriptionListEntry->getLink('self')->type); + $this->assertEquals( + 'http://gdata.youtube.com/feeds/api/users/googledevelopers/' . + 'subscriptions/Z1Lm-S9gkRQ?v=2', + $subscriptionListEntry->getLink('self')->href); + $this->assertEquals('related', + $subscriptionListEntry->getLink('related')->rel); + $this->assertEquals('application/atom+xml', + $subscriptionListEntry->getLink('related')->type); + $this->assertEquals( + 'http://gdata.youtube.com/feeds/api/users/googledevelopers?v=2', + $subscriptionListEntry->getLink('related')->href); + $this->assertEquals('alternate', + $subscriptionListEntry->getLink('alternate')->rel); + $this->assertEquals('text/html', + $subscriptionListEntry->getLink('alternate')->type); + $this->assertEquals( + 'http://www.youtube.com/profile_videos?user=androiddevelopers', + $subscriptionListEntry->getLink('alternate')->href); + $this->assertEquals('GoogleDevelopers', + $subscriptionListEntry->author[0]->name->text); + $this->assertEquals( + 'http://gdata.youtube.com/feeds/api/users/googledevelopers', + $subscriptionListEntry->author[0]->uri->text); + $this->assertEquals('androiddevelopers', + $subscriptionListEntry->getUsername()->text); + $this->assertEquals('50', + $subscriptionListEntry->getCountHint()->text); + $thumbnail = $subscriptionListEntry->getMediaThumbnail(); + $this->assertTrue( + $thumbnail instanceof Zend_Gdata_Media_Extension_MediaThumbnail); + $this->assertTrue($thumbnail->getUrl() != null); + $this->assertEquals( + 'http://gdata.youtube.com/feeds/api/users/' . + 'androiddevelopers/uploads?v=2', + $subscriptionListEntry->getContent()->getSrc()); + } + + public function testEmptyEntryShouldHaveNoExtensionElements() { + $this->assertTrue(is_array($this->entry->extensionElements)); + $this->assertTrue(count($this->entry->extensionElements) == 0); + } + + public function testEmptyEntryShouldHaveNoExtensionAttributes() { + $this->assertTrue(is_array($this->entry->extensionAttributes)); + $this->assertTrue(count($this->entry->extensionAttributes) == 0); + } + + public function testSampleEntryShouldHaveNoExtensionElements() { + $this->entry->transferFromXML($this->entryText); + $this->assertTrue(is_array($this->entry->extensionElements)); + $this->assertTrue(count($this->entry->extensionElements) == 0); + } + + public function testSampleEntryShouldHaveNoExtensionAttributes() { + $this->entry->transferFromXML($this->entryText); + $this->assertTrue(is_array($this->entry->extensionAttributes)); + $this->assertTrue(count($this->entry->extensionAttributes) == 0); + } + + public function testSampleEntryShouldHaveNoExtensionElementsV2() { + $this->entry->transferFromXML($this->v2entryText_channel); + $this->assertTrue(is_array($this->entry->extensionElements)); + $this->assertTrue(count($this->entry->extensionElements) == 0); + } + + public function testSampleEntryShouldHaveNoExtensionAttributesV2() { + $this->entry->transferFromXML($this->v2entryText_channel); + $this->assertTrue(is_array($this->entry->extensionAttributes)); + $this->assertTrue(count($this->entry->extensionAttributes) == 0); + } + + public function testEmptySubscriptionEntryToAndFromStringShouldMatch() { + $entryXml = $this->entry->saveXML(); + $newSubscriptionEntry = new Zend_Gdata_YouTube_SubscriptionEntry(); + $newSubscriptionEntry->transferFromXML($entryXml); + $newSubscriptionEntryXml = $newSubscriptionEntry->saveXML(); + $this->assertTrue($entryXml == $newSubscriptionEntryXml); + } + + public function testEmptySubscriptionEntryToAndFromStringShouldMatchV2() { + $this->entry->transferFromXML($this->v2entryText_channel); + $entryXml = $this->entry->saveXML(); + $newSubscriptionEntry = new Zend_Gdata_YouTube_SubscriptionEntry(); + $newSubscriptionEntry->transferFromXML($entryXml); + $newSubscriptionEntry->setMajorProtocolVersion(2); + $newSubscriptionEntryXml = $newSubscriptionEntry->saveXML(); + $this->assertTrue($entryXml == $newSubscriptionEntryXml); + } + + public function testGetFeedLinkReturnsAllStoredEntriesWhenUsedWithNoParameters() { + // Prepare test data + $entry1 = new Zend_Gdata_Extension_FeedLink(); + $entry1->rel = "first"; + $entry1->href= "foo"; + $entry2 = new Zend_Gdata_Extension_FeedLink(); + $entry2->rel = "second"; + $entry2->href= "bar"; + $data = array($entry1, $entry2); + + // Load test data and run test + $this->entry->feedLink = $data; + $this->assertEquals(2, count($this->entry->feedLink)); + } + + public function testGetFeedLinkCanReturnEntriesByRelValue() { + // Prepare test data + $entry1 = new Zend_Gdata_Extension_FeedLink(); + $entry1->rel = "first"; + $entry1->href= "foo"; + $entry2 = new Zend_Gdata_Extension_FeedLink(); + $entry2->rel = "second"; + $entry2->href= "bar"; + $data = array($entry1, $entry2); + + // Load test data and run test + $this->entry->feedLink = $data; + $this->assertEquals($entry1, $this->entry->getFeedLink('first')); + $this->assertEquals($entry2, $this->entry->getFeedLink('second')); + } + + public function testSamplePropertiesAreCorrect () { + $this->entry->transferFromXML($this->entryText); + $this->verifyAllSamplePropertiesAreCorrect($this->entry); + } + + public function testSamplePropertiesAreCorrectV2 () { + $this->entry->transferFromXML($this->v2entryText_channel); + $this->entry->setMajorProtocolVersion(2); + $this->verifyAllSamplePropertiesAreCorrectV2($this->entry); + } + + public function testConvertSubscriptionEntryToAndFromString() { + $this->entry->transferFromXML($this->entryText); + $entryXml = $this->entry->saveXML(); + $newSubscriptionEntry = new Zend_Gdata_YouTube_SubscriptionEntry(); + $newSubscriptionEntry->transferFromXML($entryXml); + $this->verifyAllSamplePropertiesAreCorrect($newSubscriptionEntry); + $newSubscriptionEntryXml = $newSubscriptionEntry->saveXML(); + $this->assertEquals($entryXml, $newSubscriptionEntryXml); + } + + public function testExceptionThrownInChannelSubscription() { + $this->entry->transferFromXML($this->entryText); + $exceptionCaught = false; + try { + $this->entry->getCountHint(); + } catch (Zend_Gdata_App_VersionException $e) { + $exceptionCaught = true; + } + $this->assertTrue($exceptionCaught, 'Expected a VersionException on ' . + 'calling getCountHint() on a v1 subscription entry.'); + } + + public function testChannelSubscriptionFunctionalityV2() { + $this->entry->transferFromXML($this->v2entryText_channel); + $this->assertEquals('androiddevelopers', + $this->entry->getUsername()->text); + $categories = $this->entry->getCategory(); + foreach($categories as $category) { + if ($category->getScheme() == + 'http://gdata.youtube.com/schemas/2007/subscriptiontypes.cat') { + $this->assertEquals('channel', $category->getTerm()); + } + } + } + + public function testPlaylistSubscriptionFunctionalityV2() { + $this->entry->transferFromXML($this->v2entryText_playlist); + $this->entry->setMajorProtocolVersion(2); + $this->assertEquals('From Google Engineers', + $this->entry->getPlaylistTitle()->text); + $this->assertEquals('4AE5C0D23C2EB82D', + $this->entry->getPlaylistId()->text); + $categories = $this->entry->getCategory(); + foreach($categories as $category) { + if ($category->getScheme() == + 'http://gdata.youtube.com/schemas/2007/subscriptiontypes.cat') { + $this->assertEquals('playlist', $category->getTerm()); + } + } + } + + public function testFavoritesSubscriptionFunctionalityV2() { + $this->entry->transferFromXML($this->v2entryText_favorites); + $categories = $this->entry->getCategory(); + foreach($categories as $category) { + if ($category->getScheme() == + 'http://gdata.youtube.com/schemas/2007/subscriptiontypes.cat') { + $this->assertEquals('favorites', $category->getTerm()); + } + } + } + + public function testQuerySubscriptionFunctionalityV2() { + $this->entry->transferFromXML($this->v2entryText_query); + $categories = $this->entry->getCategory(); + foreach($categories as $category) { + if ($category->getScheme() == + 'http://gdata.youtube.com/schemas/2007/subscriptiontypes.cat') { + $this->assertEquals('query', $category->getTerm()); + } + } + } + +} diff --git a/zend/tests/Zend/Gdata/YouTube/SubscriptionFeedTest.php b/zend/tests/Zend/Gdata/YouTube/SubscriptionFeedTest.php new file mode 100644 index 0000000..c357721 --- /dev/null +++ b/zend/tests/Zend/Gdata/YouTube/SubscriptionFeedTest.php @@ -0,0 +1,178 @@ +<?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_Gdata_YouTube + * @subpackage UnitTests + * @copyright Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com) + * @license http://framework.zend.com/license/new-bsd New BSD License + * @version $Id $ + */ + +require_once 'Zend/Gdata/YouTube/SubscriptionFeed.php'; +require_once 'Zend/Gdata/YouTube.php'; + +/** + * @category Zend + * @package Zend_Gdata_YouTube + * @subpackage UnitTests + * @copyright Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com) + * @license http://framework.zend.com/license/new-bsd New BSD License + * @group Zend_Gdata + * @group Zend_Gdata_YouTube + */ +class Zend_Gdata_YouTube_SubscriptionFeedTest extends PHPUnit_Framework_TestCase +{ + + public function setUp() { + $this->feedText = file_get_contents( + 'Zend/Gdata/YouTube/_files/SubscriptionFeedDataSample1.xml', + true); + $this->V2feedText = file_get_contents( + 'Zend/Gdata/YouTube/_files/SubscriptionFeedDataSampleV2.xml', + true); + $this->feed = new Zend_Gdata_YouTube_SubscriptionFeed(); + } + + private function verifyAllSamplePropertiesAreCorrect ($subscriptionFeed) { + $this->assertEquals('http://gdata.youtube.com/feeds/users/testuser/subscriptions', + $subscriptionFeed->id->text); + $this->assertEquals('2007-09-20T22:12:45.193Z', $subscriptionFeed->updated->text); + $this->assertEquals('http://schemas.google.com/g/2005#kind', $subscriptionFeed->category[0]->scheme); + $this->assertEquals('http://gdata.youtube.com/schemas/2007#subscription', $subscriptionFeed->category[0]->term); + $this->assertEquals('http://www.youtube.com/img/pic_youtubelogo_123x63.gif', $subscriptionFeed->logo->text); + $this->assertEquals('text', $subscriptionFeed->title->type); + $this->assertEquals('testuser\'s Subscriptions', $subscriptionFeed->title->text);; + $this->assertEquals('self', $subscriptionFeed->getLink('self')->rel); + $this->assertEquals('application/atom+xml', $subscriptionFeed->getLink('self')->type); + $this->assertEquals('http://gdata.youtube.com/feeds/users/testuser/subscriptions?start-index=1&max-results=25', $subscriptionFeed->getLink('self')->href); + $this->assertEquals('testuser', $subscriptionFeed->author[0]->name->text); + $this->assertEquals('http://gdata.youtube.com/feeds/users/testuser', $subscriptionFeed->author[0]->uri->text); + $this->assertEquals(3, $subscriptionFeed->totalResults->text); + } + + private function verifyAllSamplePropertiesAreCorrectV2 ($subscriptionFeed) { + $this->assertEquals('tag:youtube.com,2008:user:zfgdata:subscriptions', + $subscriptionFeed->id->text); + $this->assertEquals('2007-09-20T21:01:13.000-07:00', + $subscriptionFeed->updated->text); + $this->assertEquals('http://schemas.google.com/g/2005#kind', + $subscriptionFeed->category[0]->scheme); + $this->assertEquals( + 'http://gdata.youtube.com/schemas/2007#subscription', + $subscriptionFeed->category[0]->term); + $this->assertEquals( + 'http://www.youtube.com/img/pic_youtubelogo_123x63.gif', + $subscriptionFeed->logo->text); + $this->assertEquals('Subscriptions of zfgdata', + $subscriptionFeed->title->text);; + $this->assertEquals('zfgdata', + $subscriptionFeed->author[0]->name->text); + $this->assertEquals('http://gdata.youtube.com/feeds/api/users/zfgdata', + $subscriptionFeed->author[0]->uri->text); + // fail because of opensearch issue TODO jhartman -> fix once trevor commits his fix + //$this->assertEquals(3, $subscriptionFeed->totalResults->text); + + $this->assertEquals('self', $subscriptionFeed->getLink('self')->rel); + $this->assertEquals('application/atom+xml', + $subscriptionFeed->getLink('self')->type); + $this->assertEquals( + 'http://gdata.youtube.com/feeds/api/users/zfgdata/subscriptions' . + '?start-index=1&max-results=25&v=2', + $subscriptionFeed->getLink('self')->href); + $this->assertEquals('related', $subscriptionFeed->getLink('related')->rel); + $this->assertEquals('application/atom+xml', + $subscriptionFeed->getLink('related')->type); + $this->assertEquals( + 'http://gdata.youtube.com/feeds/api/users/zfgdata?v=2', + $subscriptionFeed->getLink('related')->href); + $this->assertEquals('alternate', $subscriptionFeed->getLink('alternate')->rel); + $this->assertEquals('text/html', + $subscriptionFeed->getLink('alternate')->type); + $this->assertEquals( + 'http://www.youtube.com/profile_subscriptions?user=zfgdata', + $subscriptionFeed->getLink('alternate')->href); + $this->assertEquals('service', $subscriptionFeed->getLink('service')->rel); + $this->assertEquals('application/atomsvc+xml', + $subscriptionFeed->getLink('service')->type); + $this->assertEquals( + 'http://gdata.youtube.com/feeds/api/users/zfgdata/subscriptions?' . + 'alt=atom-service&v=2', + $subscriptionFeed->getLink('service')->href); + + } + + public function testEmptyEntryShouldHaveNoExtensionElements() { + $this->assertTrue(is_array($this->feed->extensionElements)); + $this->assertEquals(0, count($this->feed->extensionElements)); + } + + public function testEmptyEntryShouldHaveNoExtensionAttributes() { + $this->assertTrue(is_array($this->feed->extensionAttributes)); + $this->assertEquals(0, count($this->feed->extensionAttributes)); + } + + public function testSampleEntryShouldHaveNoExtensionElements() { + $this->feed->transferFromXML($this->feedText); + $this->assertTrue(is_array($this->feed->extensionElements)); + $this->assertEquals(0, count($this->feed->extensionElements)); + } + + public function testSampleEntryShouldHaveNoExtensionAttributes() { + $this->feed->transferFromXML($this->feedText); + $this->assertTrue(is_array($this->feed->extensionAttributes)); + $this->assertEquals(0, count($this->feed->extensionAttributes)); + } + + public function testEmptySubscriptionFeedToAndFromStringShouldMatch() { + $feedXml = $this->feed->saveXML(); + $newSubscriptionFeed = new Zend_Gdata_YouTube_SubscriptionFeed(); + $newSubscriptionFeed->transferFromXML($feedXml); + $newSubscriptionFeedXml = $newSubscriptionFeed->saveXML(); + $this->assertTrue($feedXml == $newSubscriptionFeedXml); + } + + public function testSamplePropertiesAreCorrect () { + $this->feed->transferFromXML($this->feedText); + $this->verifyAllSamplePropertiesAreCorrect($this->feed); + } + + public function testSamplePropertiesAreCorrectV2 () { + $this->feed->transferFromXML($this->V2feedText); + $this->verifyAllSamplePropertiesAreCorrectV2($this->feed); + } + + public function testConvertSubscriptionFeedToAndFromString() { + $this->feed->transferFromXML($this->feedText); + $feedXml = $this->feed->saveXML(); + $newSubscriptionFeed = new Zend_Gdata_YouTube_SubscriptionFeed(); + $newSubscriptionFeed->transferFromXML($feedXml); + $this->verifyAllSamplePropertiesAreCorrect($newSubscriptionFeed); + $newSubscriptionFeedXml = $newSubscriptionFeed->saveXML(); + $this->assertEquals($feedXml, $newSubscriptionFeedXml); + } + + public function testConvertSubscriptionFeedToAndFromStringV2() { + $this->feed->transferFromXML($this->V2feedText); + $this->feed->setMajorProtocolVersion(2); + $feedXml = $this->feed->saveXML(); + $newSubscriptionFeed = new Zend_Gdata_YouTube_SubscriptionFeed(); + $newSubscriptionFeed->transferFromXML($feedXml); + $newSubscriptionFeed->setMajorProtocolVersion(2); + $this->verifyAllSamplePropertiesAreCorrectV2($newSubscriptionFeed); + $newSubscriptionFeedXml = $newSubscriptionFeed->saveXML(); + $this->assertEquals($feedXml, $newSubscriptionFeedXml); + } + +} diff --git a/zend/tests/Zend/Gdata/YouTube/UserProfileEntryTest.php b/zend/tests/Zend/Gdata/YouTube/UserProfileEntryTest.php new file mode 100644 index 0000000..645b125 --- /dev/null +++ b/zend/tests/Zend/Gdata/YouTube/UserProfileEntryTest.php @@ -0,0 +1,253 @@ +<?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_Gdata_YouTube + * @subpackage UnitTests + * @copyright Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com) + * @license http://framework.zend.com/license/new-bsd New BSD License + * @version $Id $ + */ + +require_once 'Zend/Gdata/YouTube/UserProfileEntry.php'; +require_once 'Zend/Gdata/YouTube.php'; + +/** + * @category Zend + * @package Zend_Gdata_YouTube + * @subpackage UnitTests + * @copyright Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com) + * @license http://framework.zend.com/license/new-bsd New BSD License + * @group Zend_Gdata + * @group Zend_Gdata_YouTube + */ +class Zend_Gdata_YouTube_UserProfileEntryTest extends PHPUnit_Framework_TestCase +{ + + public function setUp() { + $this->entryText = file_get_contents( + 'Zend/Gdata/YouTube/_files/UserProfileEntryDataSample1.xml', + true); + $this->V2entryText = file_get_contents( + 'Zend/Gdata/YouTube/_files/UserProfileEntryDataSampleV2.xml', + true); + $this->entry = new Zend_Gdata_YouTube_UserProfileEntry(); + } + + private function verifyAllSamplePropertiesAreCorrect ($userProfileEntry) { + $this->assertEquals('http://gdata.youtube.com/feeds/users/darcy', + $userProfileEntry->id->text); + $this->assertEquals('2007-08-13T12:37:03.000-07:00', $userProfileEntry->updated->text); + $this->assertEquals('http://schemas.google.com/g/2005#kind', $userProfileEntry->category[0]->scheme); + $this->assertEquals('http://gdata.youtube.com/schemas/2007#userProfile', $userProfileEntry->category[0]->term); + $this->assertEquals('text', $userProfileEntry->title->type); + $this->assertEquals('Darcy', $userProfileEntry->title->text);; + $this->assertEquals('self', $userProfileEntry->getLink('self')->rel); + $this->assertEquals('application/atom+xml', $userProfileEntry->getLink('self')->type); + $this->assertEquals('http://gdata.youtube.com/feeds/users/darcy', $userProfileEntry->getLink('self')->href); + $this->assertEquals('Fitzwilliam Darcy', $userProfileEntry->author[0]->name->text); + $this->assertEquals(32, $userProfileEntry->age->text); + $this->assertEquals('darcy', $userProfileEntry->username->text); + $this->assertEquals('A person of great interest', $userProfileEntry->description->text); + $this->assertEquals('Pride and Prejudice', $userProfileEntry->books->text); + $this->assertEquals('Self employed', $userProfileEntry->company->text); + $this->assertEquals('Reading, arguing with Liz', $userProfileEntry->hobbies->text); + $this->assertEquals('Steventon', $userProfileEntry->hometown->text); + $this->assertEquals('Longbourn in Hertfordshire, Pemberley in Derbyshire', $userProfileEntry->location->text); + $this->assertEquals('Pride and Prejudice, 2005', $userProfileEntry->movies->text); + $this->assertEquals('Air Con Varizzioni, The Pleasure of the Town', $userProfileEntry->music->text); + $this->assertEquals('Gentleman', $userProfileEntry->occupation->text); + $this->assertEquals('Home schooling', $userProfileEntry->school->text); + $this->assertEquals('m', $userProfileEntry->gender->text); + $this->assertEquals('taken', $userProfileEntry->relationship->text); + $this->assertEquals('http://gdata.youtube.com/feeds/users/darcy', $userProfileEntry->author[0]->uri->text); + $this->assertEquals('http://gdata.youtube.com/feeds/users/darcy/favorites', $userProfileEntry->feedLink[0]->href); + $this->assertEquals('http://gdata.youtube.com/schemas/2007#user.favorites', $userProfileEntry->feedLink[0]->rel); + $this->assertEquals('http://gdata.youtube.com/feeds/users/darcy/contacts', $userProfileEntry->feedLink[1]->href); + $this->assertEquals('http://gdata.youtube.com/schemas/2007#user.contacts', $userProfileEntry->feedLink[1]->rel); + $this->assertEquals('http://gdata.youtube.com/feeds/users/darcy/inbox', $userProfileEntry->feedLink[2]->href); + $this->assertEquals('http://gdata.youtube.com/schemas/2007#user.inbox', $userProfileEntry->feedLink[2]->rel); + $this->assertEquals('http://gdata.youtube.com/feeds/users/darcy/playlists', $userProfileEntry->feedLink[3]->href); + $this->assertEquals('http://gdata.youtube.com/schemas/2007#user.playlists', $userProfileEntry->feedLink[3]->rel); + $this->assertEquals('http://gdata.youtube.com/feeds/users/darcy/subscriptions', $userProfileEntry->feedLink[4]->href); + $this->assertEquals('http://gdata.youtube.com/schemas/2007#user.subscriptions', $userProfileEntry->feedLink[4]->rel); + $this->assertEquals('http://gdata.youtube.com/feeds/users/darcy/uploads', $userProfileEntry->feedLink[5]->href); + $this->assertEquals('http://gdata.youtube.com/schemas/2007#user.uploads', $userProfileEntry->feedLink[5]->rel); + } + + private function verifyAllSamplePropertiesAreCorrectV2 ($userProfileEntry) { + $this->assertEquals('tag:youtube.com,2008:user:zfgdata', + $userProfileEntry->id->text); + $this->assertEquals('2008-12-15T13:30:56.000-08:00', + $userProfileEntry->updated->text); + $this->assertEquals( + 'http://gdata.youtube.com/schemas/2007/channeltypes.cat', + $userProfileEntry->category[0]->scheme); + $this->assertEquals( + 'Standard', + $userProfileEntry->category[0]->term); + $this->assertEquals('zfgdata Channel', + $userProfileEntry->title->text);; + $this->assertEquals('self', $userProfileEntry->getLink('self')->rel); + $this->assertEquals("I'm a lonely test account, with little to do " . + "but sit\naround and wait for people to use me. I get bored in " . + "between\nreleases and often sleep to pass the time. Please use " . + "me more\noften, as I love to show off my talent in breaking " . + "your\ncode.", $userProfileEntry->getAboutMe()->text); + $this->assertEquals('88', + $userProfileEntry->getStatistics()->getViewCount()); + $thumbnail = $userProfileEntry->getThumbnail(); + $this->assertTrue( + $thumbnail instanceof Zend_Gdata_Media_Extension_MediaThumbnail); + $this->assertTrue($thumbnail->getUrl() != null); + $this->assertEquals('TestAccount', + $userProfileEntry->getLastName()->text); + $this->assertEquals('Lonely', + $userProfileEntry->getFirstName()->text); + } + + public function testEmptyEntryShouldHaveNoExtensionElements() { + $this->assertTrue(is_array($this->entry->extensionElements)); + $this->assertEquals(0, count($this->entry->extensionElements)); + } + + public function testEmptyEntryShouldHaveNoExtensionAttributes() { + $this->assertTrue(is_array($this->entry->extensionAttributes)); + $this->assertEquals(0, count($this->entry->extensionAttributes)); + } + + public function testSampleEntryShouldHaveNoExtensionElements() { + $this->entry->transferFromXML($this->entryText); + $this->assertTrue(is_array($this->entry->extensionElements)); + $this->assertEquals(0, count($this->entry->extensionElements)); + } + + public function testSampleEntryShouldHaveNoExtensionAttributes() { + $this->entry->transferFromXML($this->entryText); + $this->assertTrue(is_array($this->entry->extensionAttributes)); + $this->assertEquals(0, count($this->entry->extensionAttributes)); + } + + public function testSampleEntryShouldHaveNoExtensionElementsV2() { + $this->entry->transferFromXML($this->V2entryText); + $this->assertTrue(is_array($this->entry->extensionElements)); + $this->assertEquals(0, count($this->entry->extensionElements)); + } + + public function testSampleEntryShouldHaveNoExtensionAttributesV2() { + $this->entry->transferFromXML($this->V2entryText); + $this->assertTrue(is_array($this->entry->extensionAttributes)); + $this->assertEquals(0, count($this->entry->extensionAttributes)); + } + + public function testEmptyUserProfileEntryToAndFromStringShouldMatch() { + $entryXml = $this->entry->saveXML(); + $newUserProfileEntry = new Zend_Gdata_YouTube_UserProfileEntry(); + $newUserProfileEntry->transferFromXML($entryXml); + $newUserProfileEntryXml = $newUserProfileEntry->saveXML(); + $this->assertTrue($entryXml == $newUserProfileEntryXml); + } + + public function testEmptyUserProfileEntryToAndFromStringShouldMatchV2() { + $this->entry->setMajorProtocolVersion(2); + $entryXml = $this->entry->saveXML(); + $newUserProfileEntry = new Zend_Gdata_YouTube_UserProfileEntry(); + $newUserProfileEntry->setMajorProtocolVersion(2); + $newUserProfileEntry->transferFromXML($entryXml); + $newUserProfileEntryXml = $newUserProfileEntry->saveXML(); + $this->assertTrue($entryXml == $newUserProfileEntryXml); + } + + public function testGetFeedLinkReturnsAllStoredEntriesWhenUsedWithNoParameters() { + // Prepare test data + $entry1 = new Zend_Gdata_Extension_FeedLink(); + $entry1->rel = "first"; + $entry1->href= "foo"; + $entry2 = new Zend_Gdata_Extension_FeedLink(); + $entry2->rel = "second"; + $entry2->href= "bar"; + $data = array($entry1, $entry2); + + // Load test data and run test + $this->entry->feedLink = $data; + $this->assertEquals(2, count($this->entry->feedLink)); + } + + public function testGetFeedLinkCanReturnEntriesByRelValue() { + // Prepare test data + $entry1 = new Zend_Gdata_Extension_FeedLink(); + $entry1->rel = "first"; + $entry1->href= "foo"; + $entry2 = new Zend_Gdata_Extension_FeedLink(); + $entry2->rel = "second"; + $entry2->href= "bar"; + $data = array($entry1, $entry2); + + // Load test data and run test + $this->entry->feedLink = $data; + $this->assertEquals($entry1, $this->entry->getFeedLink('first')); + $this->assertEquals($entry2, $this->entry->getFeedLink('second')); + } + + public function testSamplePropertiesAreCorrect () { + $this->entry->transferFromXML($this->entryText); + $this->verifyAllSamplePropertiesAreCorrect($this->entry); + } + + public function testSamplePropertiesAreCorrectV2 () { + $this->entry->transferFromXML($this->V2entryText); + $this->entry->setMajorProtocolVersion(2); + $this->verifyAllSamplePropertiesAreCorrectV2($this->entry); + } + + public function testConvertUserProfileEntryToAndFromString() { + $this->entry->transferFromXML($this->entryText); + $entryXml = $this->entry->saveXML(); + $newUserProfileEntry = new Zend_Gdata_YouTube_UserProfileEntry(); + $newUserProfileEntry->transferFromXML($entryXml); + $this->verifyAllSamplePropertiesAreCorrect($newUserProfileEntry); + $newUserProfileEntryXml = $newUserProfileEntry->saveXML(); + $this->assertEquals($entryXml, $newUserProfileEntryXml); + } + + public function testConvertUserProfileEntryToAndFromStringV2() { + $this->entry->transferFromXML($this->V2entryText); + $entryXml = $this->entry->saveXML(); + $newUserProfileEntry = new Zend_Gdata_YouTube_UserProfileEntry(); + $newUserProfileEntry->setMajorProtocolVersion(2); + $newUserProfileEntry->transferFromXML($entryXml); + $this->verifyAllSamplePropertiesAreCorrectV2($newUserProfileEntry); + $newUserProfileEntryXml = $newUserProfileEntry->saveXML(); + $this->assertEquals($entryXml, $newUserProfileEntryXml); + } + + public function testYTStatisticsInUserProfileEntryV2() { + $this->entry->transferFromXML($this->V2entryText); + $this->entry->setMajorProtocolVersion(2); + $statistics = $this->entry->getStatistics(); + $this->assertEquals(14, $statistics->getVideoWatchCount()); + $this->assertEquals(88, $statistics->getViewCount()); + $this->assertEquals(12, $statistics->getSubscriberCount()); + $this->assertEquals('2008-12-15T14:56:57.000-08:00', + $statistics->getLastWebAccess()); + + // test __toString() + $this->assertEquals('View Count=88 VideoWatchCount=14 ' . + 'SubscriberCount=12 LastWebAccess=2008-12-15T14:56:57.000-08:00 ' . + 'FavoriteCount=', + sprintf("%s", $statistics)); + + } + +} diff --git a/zend/tests/Zend/Gdata/YouTube/VideoEntryTest.php b/zend/tests/Zend/Gdata/YouTube/VideoEntryTest.php new file mode 100644 index 0000000..132bc29 --- /dev/null +++ b/zend/tests/Zend/Gdata/YouTube/VideoEntryTest.php @@ -0,0 +1,767 @@ +<?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_Gdata_YouTube + * @subpackage UnitTests + * @copyright Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com) + * @license http://framework.zend.com/license/new-bsd New BSD License + * @version $Id: VideoEntryTest.php 24593 2012-01-05 20:35:02Z matthew $ + */ + +require_once 'Zend/Gdata/YouTube/VideoEntry.php'; +require_once 'Zend/Gdata/YouTube/Extension/State.php'; +require_once 'Zend/Gdata/YouTube.php'; + +/** + * @category Zend + * @package Zend_Gdata_YouTube + * @subpackage UnitTests + * @copyright Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com) + * @license http://framework.zend.com/license/new-bsd New BSD License + * @group Zend_Gdata + * @group Zend_Gdata_YouTube + */ +class Zend_Gdata_YouTube_VideoEntryTest extends PHPUnit_Framework_TestCase +{ + + public function setUp() { + $this->entryText = file_get_contents( + 'Zend/Gdata/YouTube/_files/VideoEntryDataSample1.xml', + true); + $this->privateEntryText = file_get_contents( + 'Zend/Gdata/YouTube/_files/VideoEntryDataSamplePrivate.xml', + true); + $this->v2EntryText = file_get_contents( + 'Zend/Gdata/YouTube/_files/VideoEntryDataSampleV2.xml', + true); + $this->entry = new Zend_Gdata_YouTube_VideoEntry(); + } + + private function createRandomString() { + $randomString = ''; + for ($x = 0; $x < 10; $x++) { + $randomCharacter = chr(rand(97,122)); + $randomString .= $randomCharacter; + } + return $randomString; + } + + private function verifyAllSamplePropertiesAreCorrect ($videoEntry) { + $this->assertEquals('http://gdata.youtube.com/feeds/videos/UMFI1hdm96E', + $videoEntry->id->text); + $this->assertEquals('UMFI1hdm96E', $videoEntry->getVideoId()); + $this->assertEquals('2007-01-07T01:50:15.000Z', $videoEntry->updated->text); + $this->assertEquals('http://schemas.google.com/g/2005#kind', $videoEntry->category[0]->scheme); + $this->assertEquals('http://gdata.youtube.com/schemas/2007#video', $videoEntry->category[0]->term); + $this->assertEquals('http://gdata.youtube.com/schemas/2007/keywords.cat', $videoEntry->category[1]->scheme); + $this->assertEquals('barkley', $videoEntry->category[1]->term); + $this->assertEquals('http://gdata.youtube.com/schemas/2007/keywords.cat', $videoEntry->category[2]->scheme); + $this->assertEquals('singing', $videoEntry->category[2]->term); + $this->assertEquals('http://gdata.youtube.com/schemas/2007/keywords.cat', $videoEntry->category[3]->scheme); + $this->assertEquals('acoustic', $videoEntry->category[3]->term); + $this->assertEquals('http://gdata.youtube.com/schemas/2007/keywords.cat', $videoEntry->category[4]->scheme); + $this->assertEquals('cover', $videoEntry->category[4]->term); + $this->assertEquals('http://gdata.youtube.com/schemas/2007/categories.cat', $videoEntry->category[5]->scheme); + $this->assertEquals('Music', $videoEntry->category[5]->term); + $this->assertEquals('Music', $videoEntry->category[5]->label); + $this->assertEquals('http://gdata.youtube.com/schemas/2007/keywords.cat', $videoEntry->category[6]->scheme); + $this->assertEquals('gnarls', $videoEntry->category[6]->term); + $this->assertEquals('http://gdata.youtube.com/schemas/2007/keywords.cat', $videoEntry->category[7]->scheme); + $this->assertEquals('music', $videoEntry->category[7]->term); + + $this->assertEquals('text', $videoEntry->title->type); + $this->assertEquals('"Crazy (Gnarles Barkley)" - Acoustic Cover', $videoEntry->title->text);; + $this->assertEquals('html', $videoEntry->content->type); + $this->assertEquals('self', $videoEntry->getLink('self')->rel); + $this->assertEquals('application/atom+xml', $videoEntry->getLink('self')->type); + $this->assertEquals('http://gdata.youtube.com/feeds/videos/UMFI1hdm96E', $videoEntry->getLink('self')->href); + $this->assertEquals('text/html', $videoEntry->getLink('alternate')->type); + $this->assertEquals('http://www.youtube.com/watch?v=UMFI1hdm96E', $videoEntry->getLink('alternate')->href); + $this->assertEquals('application/atom+xml', $videoEntry->getLink('http://gdata.youtube.com/schemas/2007#video.responses')->type); + $this->assertEquals('http://gdata.youtube.com/feeds/videos/UMFI1hdm96E/responses', $videoEntry->getLink('http://gdata.youtube.com/schemas/2007#video.responses')->href); + $this->assertEquals('application/atom+xml', $videoEntry->getLink('http://gdata.youtube.com/schemas/2007#video.related')->type); + $this->assertEquals('http://gdata.youtube.com/feeds/videos/UMFI1hdm96E/related', $videoEntry->getLink('http://gdata.youtube.com/schemas/2007#video.related')->href); + $this->assertEquals('davidchoimusic', $videoEntry->author[0]->name->text); + $this->assertEquals('http://gdata.youtube.com/feeds/users/davidchoimusic', $videoEntry->author[0]->uri->text); + $mediaGroup = $videoEntry->mediaGroup; + + $this->assertEquals('plain', $mediaGroup->title->type); + $this->assertEquals('"Crazy (Gnarles Barkley)" - Acoustic Cover', $mediaGroup->title->text); + $this->assertEquals('plain', $mediaGroup->description->type); + $this->assertEquals('Gnarles Barkley acoustic cover http://www.myspace.com/davidchoimusic', $mediaGroup->description->text); + $this->assertEquals('music, singing, gnarls, barkley, acoustic, cover', $mediaGroup->keywords->text); + $this->assertEquals(255, $mediaGroup->duration->seconds); + $this->assertEquals('Music', $mediaGroup->category[0]->label); + $this->assertEquals('http://gdata.youtube.com/schemas/2007/categories.cat', $mediaGroup->category[0]->scheme); + $this->assertEquals('http://gdata.youtube.com/schemas/2007/developertags.cat', $mediaGroup->category[1]->scheme); + $this->assertEquals('DeveloperTag1', $mediaGroup->category[1]->text); + $this->assertEquals('video', $mediaGroup->content[0]->medium); + $this->assertEquals('http://www.youtube.com/v/UMFI1hdm96E', $mediaGroup->content[0]->url); + $this->assertEquals('application/x-shockwave-flash', $mediaGroup->content[0]->type); + $this->assertEquals('true', $mediaGroup->content[0]->isDefault); + $this->assertEquals('full', $mediaGroup->content[0]->expression); + $this->assertEquals(255, $mediaGroup->content[0]->duration); + $this->assertEquals(5, $mediaGroup->content[0]->format); + $this->assertEquals('http://www.youtube.com/watch?v=UMFI1hdm96E', $mediaGroup->player[0]->url); + + $this->assertEquals('http://img.youtube.com/vi/UMFI1hdm96E/2.jpg', $mediaGroup->thumbnail[0]->url); + $this->assertEquals(97, $mediaGroup->thumbnail[0]->height); + $this->assertEquals(130, $mediaGroup->thumbnail[0]->width); + $this->assertEquals('00:02:07.500', $mediaGroup->thumbnail[0]->time); + $this->assertEquals('http://img.youtube.com/vi/UMFI1hdm96E/1.jpg', $mediaGroup->thumbnail[1]->url); + $this->assertEquals(97, $mediaGroup->thumbnail[1]->height); + $this->assertEquals(130, $mediaGroup->thumbnail[1]->width); + $this->assertEquals('00:01:03.750', $mediaGroup->thumbnail[1]->time); + $this->assertEquals('http://img.youtube.com/vi/UMFI1hdm96E/3.jpg', $mediaGroup->thumbnail[2]->url); + $this->assertEquals(97, $mediaGroup->thumbnail[2]->height); + $this->assertEquals(130, $mediaGroup->thumbnail[2]->width); + $this->assertEquals('00:03:11.250', $mediaGroup->thumbnail[2]->time); + $this->assertEquals('http://img.youtube.com/vi/UMFI1hdm96E/0.jpg', $mediaGroup->thumbnail[3]->url); + $this->assertEquals(240, $mediaGroup->thumbnail[3]->height); + $this->assertEquals(320, $mediaGroup->thumbnail[3]->width); + $this->assertEquals('00:02:07.500', $mediaGroup->thumbnail[3]->time); + $this->assertNull($mediaGroup->private); + + $this->assertEquals(113321, $videoEntry->statistics->viewCount); + $this->assertEquals(1, $videoEntry->rating->min); + $this->assertEquals(5, $videoEntry->rating->max); + $this->assertEquals(1005, $videoEntry->rating->numRaters); + $this->assertEquals(4.77, $videoEntry->rating->average); + $this->assertEquals('http://gdata.youtube.com/feeds/videos/UMFI1hdm96E/comments', $videoEntry->comments->feedLink->href); + + $this->assertEquals('37.398529052734375 -122.0635986328125', $videoEntry->where->point->pos->text); + $this->assertEquals('2008-09-25', $videoEntry->getVideoRecorded()); + } + + private function verifyAllPrivateSamplePropertiesAreCorrect ($videoEntry) { + $this->assertEquals('http://gdata.youtube.com/feeds/videos/UMFI1hdm96E', + $videoEntry->id->text); + $this->assertEquals('UMFI1hdm96E', $videoEntry->getVideoId()); + $this->assertEquals('2007-01-07T01:50:15.000Z', $videoEntry->updated->text); + $this->assertEquals('http://schemas.google.com/g/2005#kind', $videoEntry->category[0]->scheme); + $this->assertEquals('http://gdata.youtube.com/schemas/2007#video', $videoEntry->category[0]->term); + $this->assertEquals('http://gdata.youtube.com/schemas/2007/keywords.cat', $videoEntry->category[1]->scheme); + $this->assertEquals('barkley', $videoEntry->category[1]->term); + $this->assertEquals('http://gdata.youtube.com/schemas/2007/keywords.cat', $videoEntry->category[2]->scheme); + $this->assertEquals('singing', $videoEntry->category[2]->term); + $this->assertEquals('http://gdata.youtube.com/schemas/2007/keywords.cat', $videoEntry->category[3]->scheme); + $this->assertEquals('acoustic', $videoEntry->category[3]->term); + $this->assertEquals('http://gdata.youtube.com/schemas/2007/keywords.cat', $videoEntry->category[4]->scheme); + $this->assertEquals('cover', $videoEntry->category[4]->term); + $this->assertEquals('http://gdata.youtube.com/schemas/2007/categories.cat', $videoEntry->category[5]->scheme); + $this->assertEquals('Music', $videoEntry->category[5]->term); + $this->assertEquals('Music', $videoEntry->category[5]->label); + $this->assertEquals('http://gdata.youtube.com/schemas/2007/keywords.cat', $videoEntry->category[6]->scheme); + $this->assertEquals('gnarls', $videoEntry->category[6]->term); + $this->assertEquals('http://gdata.youtube.com/schemas/2007/keywords.cat', $videoEntry->category[7]->scheme); + $this->assertEquals('music', $videoEntry->category[7]->term); + + $this->assertEquals('text', $videoEntry->title->type); + $this->assertEquals('"Crazy (Gnarles Barkley)" - Acoustic Cover', $videoEntry->title->text);; + $this->assertEquals('html', $videoEntry->content->type); + $this->assertEquals('self', $videoEntry->getLink('self')->rel); + $this->assertEquals('application/atom+xml', $videoEntry->getLink('self')->type); + $this->assertEquals('http://gdata.youtube.com/feeds/videos/UMFI1hdm96E', $videoEntry->getLink('self')->href); + $this->assertEquals('text/html', $videoEntry->getLink('alternate')->type); + $this->assertEquals('http://www.youtube.com/watch?v=UMFI1hdm96E', $videoEntry->getLink('alternate')->href); + $this->assertEquals('application/atom+xml', $videoEntry->getLink('http://gdata.youtube.com/schemas/2007#video.responses')->type); + $this->assertEquals('http://gdata.youtube.com/feeds/videos/UMFI1hdm96E/responses', $videoEntry->getLink('http://gdata.youtube.com/schemas/2007#video.responses')->href); + $this->assertEquals('application/atom+xml', $videoEntry->getLink('http://gdata.youtube.com/schemas/2007#video.related')->type); + $this->assertEquals('http://gdata.youtube.com/feeds/videos/UMFI1hdm96E/related', $videoEntry->getLink('http://gdata.youtube.com/schemas/2007#video.related')->href); + $this->assertEquals('davidchoimusic', $videoEntry->author[0]->name->text); + $this->assertEquals('http://gdata.youtube.com/feeds/users/davidchoimusic', $videoEntry->author[0]->uri->text); + $mediaGroup = $videoEntry->mediaGroup; + + $this->assertEquals('plain', $mediaGroup->title->type); + $this->assertEquals('"Crazy (Gnarles Barkley)" - Acoustic Cover', $mediaGroup->title->text); + $this->assertEquals('plain', $mediaGroup->description->type); + $this->assertEquals('Gnarles Barkley acoustic cover http://www.myspace.com/davidchoimusic', $mediaGroup->description->text); + $this->assertEquals('music, singing, gnarls, barkley, acoustic, cover', $mediaGroup->keywords->text); + $this->assertEquals(255, $mediaGroup->duration->seconds); + + $this->assertEquals('Music', $mediaGroup->category[0]->label); + $this->assertEquals('http://gdata.youtube.com/schemas/2007/categories.cat', $mediaGroup->category[0]->scheme); + $this->assertEquals('http://gdata.youtube.com/schemas/2007/developertags.cat', $mediaGroup->category[1]->scheme); + $this->assertEquals('DeveloperTag1', $mediaGroup->category[1]->text); + $this->assertEquals('video', $mediaGroup->content[0]->medium); + $this->assertEquals('http://www.youtube.com/v/UMFI1hdm96E', $mediaGroup->content[0]->url); + $this->assertEquals('application/x-shockwave-flash', $mediaGroup->content[0]->type); + $this->assertEquals('true', $mediaGroup->content[0]->isDefault); + $this->assertEquals('full', $mediaGroup->content[0]->expression); + $this->assertEquals(255, $mediaGroup->content[0]->duration); + $this->assertEquals(5, $mediaGroup->content[0]->format); + $this->assertEquals('http://www.youtube.com/watch?v=UMFI1hdm96E', $mediaGroup->player[0]->url); + + $this->assertEquals('http://img.youtube.com/vi/UMFI1hdm96E/2.jpg', $mediaGroup->thumbnail[0]->url); + $this->assertEquals(97, $mediaGroup->thumbnail[0]->height); + $this->assertEquals(130, $mediaGroup->thumbnail[0]->width); + $this->assertEquals('00:02:07.500', $mediaGroup->thumbnail[0]->time); + $this->assertEquals('http://img.youtube.com/vi/UMFI1hdm96E/1.jpg', $mediaGroup->thumbnail[1]->url); + $this->assertEquals(97, $mediaGroup->thumbnail[1]->height); + $this->assertEquals(130, $mediaGroup->thumbnail[1]->width); + $this->assertEquals('00:01:03.750', $mediaGroup->thumbnail[1]->time); + $this->assertEquals('http://img.youtube.com/vi/UMFI1hdm96E/3.jpg', $mediaGroup->thumbnail[2]->url); + $this->assertEquals(97, $mediaGroup->thumbnail[2]->height); + $this->assertEquals(130, $mediaGroup->thumbnail[2]->width); + $this->assertEquals('00:03:11.250', $mediaGroup->thumbnail[2]->time); + $this->assertEquals('http://img.youtube.com/vi/UMFI1hdm96E/0.jpg', $mediaGroup->thumbnail[3]->url); + $this->assertEquals(240, $mediaGroup->thumbnail[3]->height); + $this->assertEquals(320, $mediaGroup->thumbnail[3]->width); + $this->assertEquals('00:02:07.500', $mediaGroup->thumbnail[3]->time); + $this->assertTrue($mediaGroup->private instanceof Zend_Gdata_YouTube_Extension_Private); + + $this->assertEquals(113321, $videoEntry->statistics->viewCount); + $this->assertEquals(1, $videoEntry->rating->min); + $this->assertEquals(5, $videoEntry->rating->max); + $this->assertEquals(1005, $videoEntry->rating->numRaters); + $this->assertEquals(4.77, $videoEntry->rating->average); + $this->assertEquals('http://gdata.youtube.com/feeds/videos/UMFI1hdm96E/comments', $videoEntry->comments->feedLink->href); + + $this->assertEquals('37.398529052734375 -122.0635986328125', $videoEntry->where->point->pos->text); + $this->assertEquals('2008-09-25', $videoEntry->getVideoRecorded()); + } + + public function verifyAllV2SamplePropertiesAreCorrect($videoEntry) { + $this->assertEquals('tag:youtube.com,2008:video:UMFI1hdm96E', + $videoEntry->id->text); + $this->assertEquals('UMFI1hdm96E', $videoEntry->getVideoId()); + $this->assertEquals('2008-12-08T04:04:33.000Z', $videoEntry->updated->text); + + $this->assertEquals('http://gdata.youtube.com/schemas/2007/keywords.cat', $videoEntry->category[0]->scheme); + $this->assertEquals('cover', $videoEntry->category[0]->term); + $this->assertEquals('http://gdata.youtube.com/schemas/2007/keywords.cat', $videoEntry->category[1]->scheme); + $this->assertEquals('acoustic', $videoEntry->category[1]->term); + $this->assertEquals('http://gdata.youtube.com/schemas/2007/keywords.cat', $videoEntry->category[2]->scheme); + $this->assertEquals('gnarls', $videoEntry->category[2]->term); + $this->assertEquals('http://schemas.google.com/g/2005#kind', $videoEntry->category[3]->scheme); + $this->assertEquals('http://gdata.youtube.com/schemas/2007#video', $videoEntry->category[3]->term); + $this->assertEquals('http://gdata.youtube.com/schemas/2007/keywords.cat', $videoEntry->category[4]->scheme); + $this->assertEquals('barkley', $videoEntry->category[4]->term); + $this->assertEquals('http://gdata.youtube.com/schemas/2007/keywords.cat', $videoEntry->category[5]->scheme); + $this->assertEquals('music', $videoEntry->category[5]->term); + $this->assertEquals('http://gdata.youtube.com/schemas/2007/keywords.cat', $videoEntry->category[6]->scheme); + $this->assertEquals('singing', $videoEntry->category[6]->term); + $this->assertEquals('http://gdata.youtube.com/schemas/2007/categories.cat', $videoEntry->category[7]->scheme); + $this->assertEquals('Music', $videoEntry->category[7]->term); + + $this->assertEquals('text', $videoEntry->title->type); + $this->assertEquals('"Crazy (Gnarles Barkley)" - Acoustic Cover', $videoEntry->title->text);; + $this->assertEquals('application/x-shockwave-flash', $videoEntry->content->type); + $this->assertEquals('self', $videoEntry->getLink('self')->rel); + $this->assertEquals('application/atom+xml', $videoEntry->getLink('self')->type); + $this->assertEquals('http://gdata.youtube.com/feeds/api/videos/UMFI1hdm96E?v=2', $videoEntry->getLink('self')->href); + $this->assertEquals('text/html', $videoEntry->getLink('alternate')->type); + $this->assertEquals('http://www.youtube.com/watch?v=UMFI1hdm96E', $videoEntry->getLink('alternate')->href); + $this->assertEquals('application/atom+xml', $videoEntry->getLink('http://gdata.youtube.com/schemas/2007#video.responses')->type); + $this->assertEquals('http://gdata.youtube.com/feeds/api/videos/UMFI1hdm96E/responses?v=2', $videoEntry->getLink('http://gdata.youtube.com/schemas/2007#video.responses')->href); + $this->assertEquals('application/atom+xml', $videoEntry->getLink('http://gdata.youtube.com/schemas/2007#video.related')->type); + $this->assertEquals('http://gdata.youtube.com/feeds/api/videos/UMFI1hdm96E/related?v=2', $videoEntry->getLink('http://gdata.youtube.com/schemas/2007#video.related')->href); + $this->assertEquals('davidchoimusic', $videoEntry->author[0]->name->text); + $this->assertEquals('http://gdata.youtube.com/feeds/api/users/davidchoimusic', $videoEntry->author[0]->uri->text); + + $mediaGroup = $videoEntry->mediaGroup; + + $this->assertEquals('UMFI1hdm96E', $mediaGroup->getVideoId()->text); + $this->assertEquals('plain', $mediaGroup->title->type); + $this->assertEquals('"Crazy (Gnarles Barkley)" - Acoustic Cover', $mediaGroup->title->text); + $this->assertEquals('plain', $mediaGroup->description->type); + $this->assertEquals('Gnarles Barkley acoustic cover http://www.myspace.com/davidchoimusic', $mediaGroup->description->text); + $this->assertEquals('acoustic, barkley, cover, gnarls, music, singing', $mediaGroup->keywords->text); + $this->assertEquals(255, $mediaGroup->duration->seconds); + + $this->assertEquals('http://gdata.youtube.com/schemas/2007/developertags.cat', $mediaGroup->category[0]->scheme); + $this->assertEquals('DeveloperTag1', $mediaGroup->category[0]->text); + $this->assertEquals('http://gdata.youtube.com/schemas/2007/categories.cat', $mediaGroup->category[1]->scheme); + $this->assertEquals('Music', $mediaGroup->category[1]->text); + $this->assertEquals('video', $mediaGroup->content[0]->medium); + $this->assertEquals('http://www.youtube.com/v/UMFI1hdm96E&f=gdata_videos', $mediaGroup->content[0]->url); + $this->assertEquals('application/x-shockwave-flash', $mediaGroup->content[0]->type); + $this->assertEquals('true', $mediaGroup->content[0]->isDefault); + $this->assertEquals('full', $mediaGroup->content[0]->expression); + $this->assertEquals(255, $mediaGroup->content[0]->duration); + $this->assertEquals(5, $mediaGroup->content[0]->format); + $this->assertEquals('http://www.youtube.com/watch?v=UMFI1hdm96E', $mediaGroup->player[0]->url); + + $this->assertEquals('HK,TW', $mediaGroup->getMediaRating()->getCountry()); + $this->assertEquals(1, $mediaGroup->getMediaRating()->text); + $this->assertEquals('http://gdata.youtube.com/schemas/2007#mediarating', + $mediaGroup->getMediaRating()->getScheme()); + + $this->assertEquals('http://i.ytimg.com/vi/UMFI1hdm96E/2.jpg', $mediaGroup->thumbnail[0]->url); + $this->assertEquals(97, $mediaGroup->thumbnail[0]->height); + $this->assertEquals(130, $mediaGroup->thumbnail[0]->width); + $this->assertEquals('00:02:07.500', $mediaGroup->thumbnail[0]->time); + $this->assertEquals('http://i.ytimg.com/vi/UMFI1hdm96E/1.jpg', $mediaGroup->thumbnail[1]->url); + $this->assertEquals(97, $mediaGroup->thumbnail[1]->height); + $this->assertEquals(130, $mediaGroup->thumbnail[1]->width); + $this->assertEquals('00:01:03.750', $mediaGroup->thumbnail[1]->time); + $this->assertEquals('http://i.ytimg.com/vi/UMFI1hdm96E/3.jpg', $mediaGroup->thumbnail[2]->url); + $this->assertEquals(97, $mediaGroup->thumbnail[2]->height); + $this->assertEquals(130, $mediaGroup->thumbnail[2]->width); + $this->assertEquals('00:03:11.250', $mediaGroup->thumbnail[2]->time); + $this->assertEquals('http://i.ytimg.com/vi/UMFI1hdm96E/0.jpg', $mediaGroup->thumbnail[3]->url); + $this->assertEquals(240, $mediaGroup->thumbnail[3]->height); + $this->assertEquals(320, $mediaGroup->thumbnail[3]->width); + $this->assertEquals('00:02:07.500', $mediaGroup->thumbnail[3]->time); + + $this->assertEquals(267971, $videoEntry->statistics->viewCount); + $this->assertEquals(1, $videoEntry->rating->min); + $this->assertEquals(5, $videoEntry->rating->max); + $this->assertEquals(2062, $videoEntry->rating->numRaters); + $this->assertEquals(4.74, $videoEntry->rating->average); + $this->assertEquals('http://gdata.youtube.com/feeds/api/videos/UMFI1hdm96E/comments?v=2', $videoEntry->comments->feedLink->href); + + $this->assertEquals('37.398529052734375 -122.0635986328125', $videoEntry->where->point->pos->text); + $this->assertEquals('2008-09-25', $videoEntry->getVideoRecorded()); + + + + } + + public function testGetVideoId() { + $videoEntry = new Zend_Gdata_YouTube_VideoEntry(); + + // assert valid ID + $videoEntry->id = new Zend_Gdata_App_Extension_Id('http://gdata.youtube.com/feeds/videos/ABCDEFG12AB'); + $this->assertEquals('ABCDEFG12AB', $videoEntry->getVideoId()); + } + + public function testGetVideoIdV2() { + $v2VideoEntry = new Zend_Gdata_YouTube_VideoEntry(); + $v2VideoEntry->setMajorProtocolVersion(2); + + $v2MediaGroup = new Zend_Gdata_YouTube_Extension_MediaGroup(); + $v2MediaGroup->setVideoId( + new Zend_Gdata_YouTube_Extension_VideoId('UMFI1hdm96E')); + + $v2VideoEntry->setMediaGroup($v2MediaGroup); + + $this->assertEquals('UMFI1hdm96E', $v2VideoEntry->getVideoId()); + } + + public function testGetVideoIdException() { + + $exceptionCaught = false; + $videoEntry = new Zend_Gdata_YouTube_VideoEntry(); + + // use invalid ID + $videoEntry->id = new Zend_Gdata_App_Extension_Id('adfadfasf'); + + try { + $videoEntry->getVideoId(); + + } catch (Zend_Gdata_App_Exception $e) { + $exceptionCaught = true; + } + + $this->assertTrue($exceptionCaught, 'Expected exception not caught: ' . + 'Zend_Gdata_AppException'); + } + + public function testGetVersionExceptionOnGetRacy() { + $videoEntry = new Zend_Gdata_YouTube_VideoEntry(); + $videoEntry->setMajorProtocolVersion(2); + + $exceptionCaught = false; + + try { + $videoEntry->getRacy(); + } catch (Zend_Gdata_App_VersionException $e) { + $exceptionCaught = true; + } + + $this->assertTrue($exceptionCaught, 'Expected exception not caught: ' . + 'Zend_Gdata_App_VersionException'); + } + + public function testGetVersionExceptionOnSetRacy() { + $videoEntry = new Zend_Gdata_YouTube_VideoEntry(); + $videoEntry->setMajorProtocolVersion(2); + + $exceptionCaught = false; + + try { + $videoEntry->getRacy(); + } catch (Zend_Gdata_App_VersionException $e) { + $exceptionCaught = true; + } + + $this->assertTrue($exceptionCaught, 'Expected exception not caught: ' . + 'Zend_Gdata_App_VersionException'); + } + + public function testEmptyEntryShouldHaveNoExtensionElements() { + $this->assertTrue(is_array($this->entry->extensionElements)); + $this->assertTrue(count($this->entry->extensionElements) == 0); + } + + public function testEmptyEntryShouldHaveNoExtensionAttributes() { + $this->assertTrue(is_array($this->entry->extensionAttributes)); + $this->assertTrue(count($this->entry->extensionAttributes) == 0); + } + + public function testSampleEntryShouldHaveNoExtensionElements() { + $this->entry->transferFromXML($this->entryText); + $this->assertTrue(is_array($this->entry->extensionElements)); + $this->assertTrue(count($this->entry->extensionElements) == 0); + } + + public function testSampleEntryShouldHaveNoExtensionAttributes() { + $this->entry->transferFromXML($this->entryText); + $this->assertTrue(is_array($this->entry->extensionAttributes)); + $this->assertTrue(count($this->entry->extensionAttributes) == 0); + } + + public function testSampleEntryShouldHaveNoExtensionElementsV2() { + $this->entry->transferFromXML($this->v2EntryText); + $this->assertTrue(is_array($this->entry->extensionElements)); + $this->assertTrue(count($this->entry->extensionElements) == 0); + } + + public function testSampleEntryShouldHaveNoExtensionAttributesV2() { + $this->entry->transferFromXML($this->v2EntryText); + $this->assertTrue(is_array($this->entry->extensionAttributes)); + $this->assertTrue(count($this->entry->extensionAttributes) == 0); + } + + public function testEmptyVideoEntryToAndFromStringShouldMatch() { + $entryXml = $this->entry->saveXML(); + $newVideoEntry = new Zend_Gdata_YouTube_VideoEntry(); + $newVideoEntry->transferFromXML($entryXml); + $newVideoEntryXml = $newVideoEntry->saveXML(); + $this->assertTrue($entryXml == $newVideoEntryXml); + } + + public function testSamplePropertiesAreCorrect () { + $this->entry->transferFromXML($this->entryText); + $this->verifyAllSamplePropertiesAreCorrect($this->entry); + } + + public function testPrivateSamplePropertiesAreCorrect () { + $this->entry->transferFromXML($this->privateEntryText); + $this->verifyAllPrivateSamplePropertiesAreCorrect($this->entry); + } + + public function testV2SamplePropertiesAreCorrect() { + $this->entry->transferFromXML($this->v2EntryText); + $this->entry->setMajorProtocolVersion(2); + $this->verifyAllV2SamplePropertiesAreCorrect($this->entry); + } + + public function testGetVideoTitle() { + $this->entry->transferFromXML($this->entryText); + $videoEntry = $this->entry; + $this->assertEquals('"Crazy (Gnarles Barkley)" - Acoustic Cover', $videoEntry->getVideoTitle()); + + $newEntry = new Zend_Gdata_YouTube_VideoEntry(); + $this->assertEquals(null, $newEntry->getVideoTitle()); + } + + public function testSetVideoTitle() { + $this->entry->transferFromXML($this->entryText); + $videoEntry = $this->entry; + $newTitle = 'My New Title'; + $videoEntry->setVideoTitle($newTitle); + $this->assertEquals($videoEntry->getVideoTitle(), $newTitle); + } + + public function testGetVideoDescription() { + $this->entry->transferFromXML($this->entryText); + $videoEntry = $this->entry; + $this->assertEquals('Gnarles Barkley acoustic cover http://www.myspace.com/davidchoimusic', $videoEntry->getVideoDescription()); + + $newEntry = new Zend_Gdata_YouTube_VideoEntry(); + $this->assertEquals(null, $newEntry->getVideoDescription()); + } + + public function testSetVideoDescription() { + $this->entry->transferFromXML($this->entryText); + $videoEntry = $this->entry; + $newDescription = 'My New Description'; + $videoEntry->setVideoDescription($newDescription); + $this->assertEquals($videoEntry->getVideoDescription(), $newDescription); + } + + public function testGetVideoWatchPageUrl() { + $this->entry->transferFromXML($this->entryText); + $videoEntry = $this->entry; + $this->assertEquals('http://www.youtube.com/watch?v=UMFI1hdm96E', $videoEntry->getVideoWatchPageUrl()); + + $newEntry = new Zend_Gdata_YouTube_VideoEntry(); + $this->assertEquals(null, $newEntry->getVideoWatchPageUrl()); + } + + public function testGetVideoThumbnails() { + $this->entry->transferFromXML($this->entryText); + $videoEntry = $this->entry; + + $mediaThumbnails1 = $videoEntry->getMediaGroup()->getThumbnail(); + $mediaThumbnails2 = $videoEntry->getVideoThumbnails(); + + $this->assertEquals(count($mediaThumbnails1), count($mediaThumbnails2)); + + $foundThumbnail = false; + foreach ($mediaThumbnails2 as $thumbnail) { + if ($thumbnail['url'] == 'http://img.youtube.com/vi/UMFI1hdm96E/1.jpg') { + $foundThumbnail = true; + $this->assertEquals(97, $thumbnail['height']); + $this->assertEquals(130, $thumbnail['width']); + $this->assertEquals('00:01:03.750', $thumbnail['time']); + } + } + $this->assertTrue($foundThumbnail); + + $newEntry = new Zend_Gdata_YouTube_VideoEntry(); + $this->assertEquals(array(), $newEntry->getVideoThumbnails()); + } + + public function testGetVideoTags() { + $this->entry->transferFromXML($this->entryText); + $videoEntry = $this->entry; + + $keywords = $videoEntry->getMediaGroup()->getKeywords(); + + $keywordsString = (string) $keywords; + + if (strlen(trim($keywordsString)) > 0) { + $keywordArray = preg_split('/(, *)|,/', $keywordsString); + } + + $tagArray = $videoEntry->getVideoTags(); + $this->assertEquals(count($keywordArray), count($tagArray)); + foreach ($keywordArray as $keyword) { + $this->assertTrue(in_array($keyword, $tagArray)); + } + foreach ($tagArray as $tag) { + $this->assertTrue(in_array($tag, $keywordArray)); + } + + $newEntry = new Zend_Gdata_YouTube_VideoEntry(); + $this->assertEquals(array(), $newEntry->getVideoTags()); + } + + public function testSetVideoTags() { + $this->entry->transferFromXML($this->entryText); + $videoEntry = $this->entry; + + $newKeywordsString = $this->createRandomString() + . ', ' . $this->createRandomString(); + $videoEntry->setVideoTags($newKeywordsString); + + if (strlen(trim($newKeywordsString)) > 0) { + $keywordArray = preg_split('/(, *)|,/', $newKeywordsString); + } + + $tagArray = $videoEntry->getVideoTags(); + $this->assertEquals(count($keywordArray), count($tagArray)); + + foreach ($keywordArray as $keyword) { + $this->assertTrue(in_array($keyword, $tagArray)); + } + + foreach ($tagArray as $tag) { + $this->assertTrue(in_array($tag, $keywordArray)); + } + + $newEntry = new Zend_Gdata_YouTube_VideoEntry(); + $this->assertEquals(array(), $newEntry->getVideoTags()); + } + + public function testGetVideoDeveloperTags() { + $this->entry->transferFromXML($this->entryText); + $videoEntry = $this->entry; + + $categories = $videoEntry->getMediaGroup()->getCategory(); + $developerTagsArrayFromMediaGroup = null; + foreach($categories as $category) { + if ($category->getScheme() == 'http://gdata.youtube.com/schemas/2007/developertags.cat') { + $developerTagsArrayFromMediaGroup[] = $category->getText(); + } + } + + $developerTagsArray = $videoEntry->getVideoDeveloperTags(); + + $this->assertEquals(count($developerTagsArrayFromMediaGroup), count($developerTagsArray)); + foreach ($developerTagsArrayFromMediaGroup as $devTagMG) { + $this->assertTrue(in_array($devTagMG, $developerTagsArrayFromMediaGroup)); + } + foreach ($developerTagsArray as $devTag) { + $this->assertTrue(in_array($devTag, $developerTagsArray)); + } + } + + public function testSetVideoDeveloperTags() { + $this->entry->transferFromXML($this->entryText); + $videoEntry = $this->entry; + $existingDevTags = $videoEntry->getVideoDeveloperTags(); + + $newDeveloperTags = array( + $this->createRandomString(), + $this->createRandomString()); + + $videoEntry->setVideoDeveloperTags($newDeveloperTags); + $newAndOldDeveloperTags = array_merge($newDeveloperTags, $existingDevTags); + $developerTagsArray = $videoEntry->getVideoDeveloperTags(); + $this->assertEquals(count($newAndOldDeveloperTags), count($developerTagsArray)); + + foreach($developerTagsArray as $developerTagOnEntry) { + $this->assertTrue(in_array($developerTagOnEntry, $newAndOldDeveloperTags)); + } + } + + public function testGetFlashPlayerUrl() { + $this->entry->transferFromXML($this->entryText); + $videoEntry = $this->entry; + $this->assertEquals('http://www.youtube.com/v/UMFI1hdm96E', $videoEntry->getFlashPlayerUrl()); + + $newEntry = new Zend_Gdata_YouTube_VideoEntry(); + $this->assertEquals(null, $newEntry->getFlashPlayerUrl()); + } + + public function testGetVideoDuration() { + $this->entry->transferFromXML($this->entryText); + $videoEntry = $this->entry; + $this->assertEquals(255, $videoEntry->getVideoDuration()); + + $newEntry = new Zend_Gdata_YouTube_VideoEntry(); + $this->assertEquals(null, $newEntry->getVideoDuration()); + } + + public function testGetVideoViewCount() { + $this->entry->transferFromXML($this->entryText); + $videoEntry = $this->entry; + $this->assertEquals(113321, $videoEntry->getVideoViewCount()); + + $newEntry = new Zend_Gdata_YouTube_VideoEntry(); + $this->assertEquals(null, $newEntry->getVideoViewCount()); + } + + public function testGetVideoGeoLocation() { + $this->entry->transferFromXML($this->entryText); + $videoEntry = $this->entry; + $geoLocation = $videoEntry->getVideoGeoLocation(); + $this->assertEquals('37.398529052734375', $geoLocation['latitude']); + $this->assertEquals('-122.0635986328125', $geoLocation['longitude']); + + $newEntry = new Zend_Gdata_YouTube_VideoEntry(); + $this->assertEquals(null, $newEntry->getVideoGeoLocation()); + } + + public function testGetVideoRatingInfo() { + $this->entry->transferFromXML($this->entryText); + $videoEntry = $this->entry; + + $ratingInfo = $videoEntry->getVideoRatingInfo(); + + $this->assertEquals(4.77, $ratingInfo['average']); + $this->assertEquals(1005, $ratingInfo['numRaters']); + + $newEntry = new Zend_Gdata_YouTube_VideoEntry(); + $this->assertEquals(null, $newEntry->getVideoRatingInfo()); + } + + public function testGetVideoCategory() { + $this->entry->transferFromXML($this->entryText); + $videoEntry = $this->entry; + $this->assertEquals('Music', $videoEntry->getVideoCategory()); + + $newEntry = new Zend_Gdata_YouTube_VideoEntry(); + $this->assertEquals(null, $newEntry->getVideoCategory()); + } + + public function testSetVideoCategory() { + $this->entry->transferFromXML($this->entryText); + $videoEntry = $this->entry; + $newCategory = 'Comedy'; + $videoEntry->setVideoCategory($newCategory); + $this->assertEquals($videoEntry->getVideoCategory(), $newCategory); + } + + public function testConvertVideoEntryToAndFromString() { + $this->entry->transferFromXML($this->entryText); + $entryXml = $this->entry->saveXML(); + $newVideoEntry = new Zend_Gdata_YouTube_VideoEntry(); + $newVideoEntry->transferFromXML($entryXml); + $this->verifyAllSamplePropertiesAreCorrect($newVideoEntry); + $newVideoEntryXml = $newVideoEntry->saveXML(); + $this->assertEquals($entryXml, $newVideoEntryXml); + } + + public function testNoEmbed() { + $this->entry->transferFromXML($this->entryText); + $videoEntry = $this->entry; + $this->assertNotEquals(null, $videoEntry->getNoEmbed()); + } + + public function testVideoState() { + $this->entry->transferFromXML($this->entryText); + $videoEntry = $this->entry; + + $videoState = $videoEntry->getVideoState(); + $this->assertTrue($videoState instanceof Zend_Gdata_YouTube_Extension_State); + + $this->assertEquals('rejected', $videoState->getName()); + $this->assertEquals('inappropriate', $videoState->getReasonCode()); + $this->assertEquals('http://www.youtube.com/t/community_guidelines', $videoState->getHelpUrl()); + $this->assertEquals('The content of this video may violate the terms of use.', + $videoState->getText()); + } + + public function testVideoPrivate() { + $this->entry->transferFromXml($this->privateEntryText); + $videoEntry = $this->entry; + + $this->assertTrue($videoEntry->isVideoPrivate()); + } + + public function testSetVideoPrivate() { + $this->entry->transferFromXml($this->entryText); + $videoEntry = $this->entry; + $videoEntry->setVideoPrivate(); + + $this->assertTrue($videoEntry->isVideoPrivate()); + } + + public function testSetVideoPublic() { + $this->entry->transferFromXml($this->privateEntryText); + $videoEntry = $this->entry; + $videoEntry->setVideoPublic(); + + $this->assertFalse($videoEntry->isVideoPrivate()); + } + + public function testRetrieveCommentsFeedUrl() { + $this->entry->transferFromXML($this->entryText); + $commentsFeedUrl = $this->entry->getVideoCommentFeedUrl(); + $this->assertEquals($commentsFeedUrl, + 'http://gdata.youtube.com/feeds/videos/UMFI1hdm96E/comments'); + } + + public function testAddVideoEntryRating() + { + $this->entry->transferFromXML($this->entryText); + $ratingValue = 2; + $entryWithRating = $this->entry->setVideoRating($ratingValue); + $this->assertTrue( + $entryWithRating instanceof Zend_Gdata_YouTube_VideoEntry); + + $rating = $entryWithRating->getRating(); + $this->assertTrue( + $rating instanceof Zend_Gdata_Extension_Rating); + + $this->assertEquals($rating->getValue(), $ratingValue); + } + +} diff --git a/zend/tests/Zend/Gdata/YouTube/VideoFeedTest.php b/zend/tests/Zend/Gdata/YouTube/VideoFeedTest.php new file mode 100644 index 0000000..f7cea0c --- /dev/null +++ b/zend/tests/Zend/Gdata/YouTube/VideoFeedTest.php @@ -0,0 +1,109 @@ +<?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_Gdata_YouTube + * @subpackage UnitTests + * @copyright Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com) + * @license http://framework.zend.com/license/new-bsd New BSD License + * @version $Id $ + */ + +require_once 'Zend/Gdata/YouTube/VideoFeed.php'; +require_once 'Zend/Gdata/YouTube.php'; + +/** + * @category Zend + * @package Zend_Gdata_YouTube + * @subpackage UnitTests + * @copyright Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com) + * @license http://framework.zend.com/license/new-bsd New BSD License + * @group Zend_Gdata + * @group Zend_Gdata_YouTube + */ +class Zend_Gdata_YouTube_VideoFeedTest extends PHPUnit_Framework_TestCase +{ + + public function setUp() { + $this->feedText = file_get_contents( + 'Zend/Gdata/YouTube/_files/VideoFeedDataSample1.xml', + true); + $this->feed = new Zend_Gdata_YouTube_VideoFeed(); + } + + private function verifyAllSamplePropertiesAreCorrect ($videoFeed) { + $this->assertEquals('http://gdata.youtube.com/feeds/users/davidchoimusic/uploads', + $videoFeed->id->text); + $this->assertEquals('2007-09-21T02:27:22.638Z', $videoFeed->updated->text); + $this->assertEquals('http://schemas.google.com/g/2005#kind', $videoFeed->category[0]->scheme); + $this->assertEquals('http://gdata.youtube.com/schemas/2007#video', $videoFeed->category[0]->term); + $this->assertEquals('http://www.youtube.com/img/pic_youtubelogo_123x63.gif', $videoFeed->logo->text); + $this->assertEquals('text', $videoFeed->title->type); + $this->assertEquals('Davidchoimusic\'s Videos', $videoFeed->title->text);; + $this->assertEquals('self', $videoFeed->getLink('self')->rel); + $this->assertEquals('application/atom+xml', $videoFeed->getLink('self')->type); + $this->assertEquals('http://gdata.youtube.com/feeds/users/davidchoimusic/uploads?start-index=1&max-results=5', $videoFeed->getLink('self')->href); + $this->assertEquals('davidchoimusic', $videoFeed->author[0]->name->text); + $this->assertEquals('http://gdata.youtube.com/feeds/users/davidchoimusic', $videoFeed->author[0]->uri->text); + $this->assertEquals(54, $videoFeed->totalResults->text); + $this->assertEquals(1, $videoFeed->startIndex->text); + $this->assertEquals(5, $videoFeed->itemsPerPage->text); + } + + public function testEmptyEntryShouldHaveNoExtensionElements() { + $this->assertTrue(is_array($this->feed->extensionElements)); + $this->assertTrue(count($this->feed->extensionElements) == 0); + } + + public function testEmptyEntryShouldHaveNoExtensionAttributes() { + $this->assertTrue(is_array($this->feed->extensionAttributes)); + $this->assertTrue(count($this->feed->extensionAttributes) == 0); + } + + public function testSampleEntryShouldHaveNoExtensionElements() { + $this->feed->transferFromXML($this->feedText); + $this->assertTrue(is_array($this->feed->extensionElements)); + $this->assertTrue(count($this->feed->extensionElements) == 0); + } + + public function testSampleEntryShouldHaveNoExtensionAttributes() { + $this->feed->transferFromXML($this->feedText); + $this->assertTrue(is_array($this->feed->extensionAttributes)); + $this->assertTrue(count($this->feed->extensionAttributes) == 0); + } + + public function testEmptyVideoFeedToAndFromStringShouldMatch() { + $entryXml = $this->feed->saveXML(); + $newVideoFeed = new Zend_Gdata_YouTube_VideoFeed(); + $newVideoFeed->transferFromXML($entryXml); + $newVideoFeedXml = $newVideoFeed->saveXML(); + $this->assertTrue($entryXml == $newVideoFeedXml); + } + + public function testSamplePropertiesAreCorrect () { + $this->feed->transferFromXML($this->feedText); + $this->verifyAllSamplePropertiesAreCorrect($this->feed); + } + + public function testConvertVideoFeedToAndFromString() { + $this->feed->transferFromXML($this->feedText); + $entryXml = $this->feed->saveXML(); + $newVideoFeed = new Zend_Gdata_YouTube_VideoFeed(); + $newVideoFeed->transferFromXML($entryXml); + $this->verifyAllSamplePropertiesAreCorrect($newVideoFeed); + $newVideoFeedXml = $newVideoFeed->saveXML(); + $this->assertEquals($entryXml, $newVideoFeedXml); + } + +} diff --git a/zend/tests/Zend/Gdata/YouTube/VideoQueryTest.php b/zend/tests/Zend/Gdata/YouTube/VideoQueryTest.php new file mode 100644 index 0000000..e119e0a --- /dev/null +++ b/zend/tests/Zend/Gdata/YouTube/VideoQueryTest.php @@ -0,0 +1,277 @@ +<?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_Gdata_YouTube + * @subpackage UnitTests + * @copyright Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com) + * @license http://framework.zend.com/license/new-bsd New BSD License + * @version $Id $ + */ + +require_once 'Zend/Gdata/YouTube/VideoQuery.php'; +require_once 'Zend/Gdata/YouTube.php'; + +/** + * @category Zend + * @package Zend_Gdata_YouTube + * @subpackage UnitTests + * @copyright Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com) + * @license http://framework.zend.com/license/new-bsd New BSD License + * @group Zend_Gdata + * @group Zend_Gdata_YouTube + */ +class Zend_Gdata_YouTube_VideoQueryTest extends PHPUnit_Framework_TestCase +{ + + public function testQueryStringConstruction() + { + $yt = new Zend_Gdata_YouTube(); + $query = $yt->newVideoQuery(); + $query->setOrderBy('viewCount'); + $query->setVideoQuery('foobar'); + $expectedString = '?orderby=viewCount&vq=foobar'; + $this->assertEquals($expectedString, $query->getQueryString()); + } + + public function testQueryStringConstructionV2() + { + $yt = new Zend_Gdata_YouTube(); + $query = $yt->newVideoQuery(); + $query->setOrderBy('viewCount'); + $query->setVideoQuery('version2'); + $expectedString = '?orderby=viewCount&q=version2'; + $this->assertEquals($expectedString, $query->getQueryString(2)); + } + + public function testSafeSearchQueryV2() + { + $yt = new Zend_Gdata_YouTube(); + $query = $yt->newVideoQuery(); + $exceptionCaught = false; + $query->setRacy('include'); + try { + $query->getQueryString(2); + } catch (Zend_Gdata_App_VersionException $e) { + $exceptionCaught = true; + } + $this->assertTrue($exceptionCaught, 'Zend_Gdata_App_VersionException' . + ' expected but not found'); + } + + public function testLocationRadiusV1() + { + $yt = new Zend_Gdata_YouTube(); + $query = $yt->newVideoQuery(); + $exceptionCaught = false; + $query->setLocationRadius('1km'); + try { + $query->getQueryString(1); + } catch (Zend_Gdata_App_VersionException $e) { + $exceptionCaught = true; + } + $this->assertTrue($exceptionCaught, 'Zend_Gdata_App_VersionException' . + ' expected but not found'); + } + + public function testLocationV2() + { + $yt = new Zend_Gdata_YouTube(); + $query = $yt->newVideoQuery(); + $query->setLocation('-37.122,122.01'); + $expectedString = '?location=-37.122%2C122.01'; + $this->assertEquals($expectedString, $query->getQueryString(2)); + } + + public function testLocationExceptionOnNonNumericV2() + { + $yt = new Zend_Gdata_YouTube(); + $query = $yt->newVideoQuery(); + $exceptionCaught = false; + + try { + $query->setLocation('mars'); + } catch (Zend_Gdata_App_InvalidArgumentException $e) { + $exceptionCaught = true; + } + + $this->assertTrue($exceptionCaught, 'Expected Zend_Gdata_App_' . + 'IllegalArgumentException when using alpha in setLocation'); + } + + public function testLocationExceptionOnOnlyOneCoordinateV2() + { + $yt = new Zend_Gdata_YouTube(); + $query = $yt->newVideoQuery(); + $exceptionCaught = false; + + try { + $query->setLocation('-25.001'); + } catch (Zend_Gdata_App_InvalidArgumentException $e) { + $exceptionCaught = true; + } + + $this->assertTrue($exceptionCaught, 'Expected Zend_Gdata_App_' . + 'IllegalArgumentException when using only 1 coordinate ' . + 'in setLocation'); + } + + public function testUploaderExceptionOnInvalidV2() + { + $yt = new Zend_Gdata_YouTube(); + $query = $yt->newVideoQuery(); + $exceptionCaught = false; + + try { + $query->setUploader('invalid'); + } catch (Zend_Gdata_App_InvalidArgumentException $e) { + $exceptionCaught = true; + } + + $this->assertTrue($exceptionCaught, 'Expected Zend_Gdata_App_' . + 'IllegalArgumentException when using invalid string in ' . + 'setUploader.'); + } + + public function testProjectionPresentInV2Query() + { + $yt = new Zend_Gdata_YouTube(); + $query = $yt->newVideoQuery(); + $query->setVideoQuery('foo'); + $expectedString = 'https://gdata.youtube.com/feeds/api/videos?q=foo'; + $this->assertEquals($expectedString, $query->getQueryUrl(2)); + } + + public function testSafeSearchParametersInV2() + { + $yt = new Zend_Gdata_YouTube(); + $query = $yt->newVideoQuery(); + $exceptionCaught = false; + try { + $query->setSafeSearch('invalid'); + } catch (Zend_Gdata_App_InvalidArgumentException $e) { + $exceptionCaught = true; + } + $this->assertTrue($exceptionCaught, 'Expected Zend_Gdata_App_' . + 'InvalidArgumentException when using invalid value for ' . + 'safeSearch.'); + } + + /** + * @group ZF-8720 + * @expectedException Zend_Gdata_App_InvalidArgumentException + */ + public function testVideoQuerySetLocationException() + { + $yt = new Zend_Gdata_YouTube(); + $query = $yt->newVideoQuery(); + $location = 'foobar'; + $this->assertNull($query->setLocation($location)); + } + + /** + * @group ZF-8720 + * @expectedException Zend_Gdata_App_InvalidArgumentException + */ + public function testVideoQuerySetLocationExceptionV2() + { + $yt = new Zend_Gdata_YouTube(); + $query = $yt->newVideoQuery(); + $location = '-100x,-200y'; + $this->assertNull($query->setLocation($location)); + } + + /** + * @group ZF-8720 + * @expectedException Zend_Gdata_App_InvalidArgumentException + */ + public function testVideoQuerySetLocationExceptionV3() + { + $yt = new Zend_Gdata_YouTube(); + $query = $yt->newVideoQuery(); + $location = '-100x,-200y!'; + $this->assertNull($query->setLocation($location)); + } + + /** + * @group ZF-8720 + */ + public function testQueryExclamationMarkRemoveBug() + { + $yt = new Zend_Gdata_YouTube(); + $query = $yt->newVideoQuery(); + + $location = '37.42307,-122.08427'; + $this->assertNull($query->setLocation($location)); + $this->assertEquals($location, $query->getLocation()); + + $location = '37.42307,-122.08427!'; + $this->assertNull($query->setLocation($location)); + $this->assertEquals($location, $query->getLocation()); + } + + /** + * @group ZF-12500 + */ + public function testQueryUrlForFeedTypRelated() + { + $yt = new Zend_Gdata_YouTube(); + + // Query + $query = $yt->newVideoQuery(); + $query->setFeedType('related', 'foo'); + + // Test + $this->assertSame( + 'https://gdata.youtube.com/feeds/api/videos/foo/related', + $query->getQueryUrl() + ); + } + + /** + * @group ZF-12500 + */ + public function testQueryUrlForFeedTypResponses() + { + $yt = new Zend_Gdata_YouTube(); + + // Query + $query = $yt->newVideoQuery(); + $query->setFeedType('responses', 'foo'); + + // Test + $this->assertSame( + 'https://gdata.youtube.com/feeds/api/videos/foo/responses', + $query->getQueryUrl() + ); + } + + /** + * @group ZF-12500 + */ + public function testQueryUrlForFeedTypComments() + { + $yt = new Zend_Gdata_YouTube(); + + // Query + $query = $yt->newVideoQuery(); + $query->setFeedType('comments', 'foo'); + + // Test + $this->assertSame( + 'https://gdata.youtube.com/feeds/api/videos/foo/comments', + $query->getQueryUrl() + ); + } +} diff --git a/zend/tests/Zend/Gdata/YouTube/_files/ActivityEntryDataSample1.xml b/zend/tests/Zend/Gdata/YouTube/_files/ActivityEntryDataSample1.xml new file mode 100644 index 0000000..a975d7d --- /dev/null +++ b/zend/tests/Zend/Gdata/YouTube/_files/ActivityEntryDataSample1.xml @@ -0,0 +1,23 @@ +<?xml version='1.0' encoding='UTF-8'?> +<entry xmlns='http://www.w3.org/2005/Atom' xmlns:yt='http://gdata.youtube.com/schemas/2007' xmlns:gd='http://schemas.google.com/g/2005' gd:etag='W/"D0EGSH47eCp7ImA9WxRQQEg."'> + <id>tag:youtube.com,2008:event:Z2RweXRob24xMTIzNDMwMDAyMzI5NTQ2Nzg2MA%3D%3D</id> + <updated>2009-01-16T09:13:49.000-08:00</updated> + <category scheme='http://gdata.youtube.com/schemas/2007/userevents.cat' + term='video_favorited'/> + <category scheme='http://schemas.google.com/g/2005#kind' + term='http://gdata.youtube.com/schemas/2007#userEvent'/> + <title>tayzonzay has favorited a video</title> + <link rel='alternate' type='text/html' href='http://www.youtube.com'/> + <link rel='http://gdata.youtube.com/schemas/2007#video' + type='application/atom+xml' + href='http://gdata.youtube.com/feeds/api/videos/z3U0kuLH974?v=2'/> + <link rel='self' type='application/atom+xml' + href='http://gdata.youtube.com/feeds/api/events/VGF5Wm9uZGF5MzEyaIl2MTMxOTcxMDk3NzQ5MzM%3D?v=2'/> + <author> + <name>tayzonzay</name> + <uri>http://gdata.youtube.com/feeds/api/users/tayzonzay</uri> + </author> + <yt:videoid>z3U0kuLH974</yt:videoid> + <yt:username>foo</yt:username> + <gd:rating min='1' max='5' value='2' /> +</entry>
\ No newline at end of file diff --git a/zend/tests/Zend/Gdata/YouTube/_files/ActivityFeedDataSample1.xml b/zend/tests/Zend/Gdata/YouTube/_files/ActivityFeedDataSample1.xml new file mode 100644 index 0000000..5e25ddb --- /dev/null +++ b/zend/tests/Zend/Gdata/YouTube/_files/ActivityFeedDataSample1.xml @@ -0,0 +1,47 @@ +<?xml version='1.0' encoding='UTF-8'?> +<feed xmlns='http://www.w3.org/2005/Atom' + xmlns:openSearch='http://a9.com/-/spec/opensearch/1.1/' + xmlns:gml='http://www.opengis.net/gml' + xmlns:georss='http://www.georss.org/georss' + xmlns:media='http://search.yahoo.com/mrss/' + xmlns:batch='http://schemas.google.com/gdata/batch' + xmlns:yt='http://gdata.youtube.com/schemas/2007' + xmlns:gd='http://schemas.google.com/g/2005' + gd:etag='W/"D0EGSH47eCp7ImA9WxRVGEg."'> + <updated>2009-01-28T09:13:49.000-08:00</updated> +<link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://gdata.youtube.com/feeds/api/events?v=2'/><link rel='http://schemas.google.com/g/2005#batch' type='application/atom+xml' href='http://gdata.youtube.com/feeds/api/events/batch?v=2'/><link rel='self' type='application/atom+xml' href='http://gdata.youtube.com/feeds/api/events?author=gdpython&start-index=1&max-results=25&v=2'/><link rel='service' type='application/atomsvc+xml' href='http://gdata.youtube.com/feeds/api/events?alt=atom-service&v=2'/> + + + + <category scheme='http://schemas.google.com/g/2005#kind' + term='http://gdata.youtube.com/schemas/2007#userEvent'/> + <title>Activity of tayzonzay</title> + <logo>http://www.youtube.com/img/pic_youtubelogo_123x63.gif</logo> + <author> + <name>YouTube</name> + <uri>http://www.youtube.com/</uri> + </author> + <generator version='2.0' uri='http://gdata.youtube.com/'>YouTube data API</generator> + <openSearch:totalResults>12</openSearch:totalResults> + <openSearch:startIndex>1</openSearch:startIndex> + <openSearch:itemsPerPage>25</openSearch:itemsPerPage> + <entry gd:etag='W/"D0EGSH47eCp7ImA9WxRQQEg."'> + <updated>2009-01-16T09:13:49.000-08:00</updated> + <category scheme='http://gdata.youtube.com/schemas/2007/userevents.cat' + term='video_favorited'/> + <category scheme='http://schemas.google.com/g/2005#kind' + term='http://gdata.youtube.com/schemas/2007#userEvent'/> + <title>tayzonzay has favorited a video</title> + <link rel='alternate' type='text/html' href='http://www.youtube.com'/> + <link rel='http://gdata.youtube.com/schemas/2007#video' + type='application/atom+xml' + href='http://gdata.youtube.com/feeds/api/videos/z3U0kuLH974?v=2'/> + <link rel='self' type='application/atom+xml' + href='http://gdata.youtube.com/feeds/api/events/VGF5Wm9uZGF5MzEyaIl2MTMxOTcxMDk3NzQ5MzM%3D?v=2'/> + <author> + <name>tayzonzay</name> + <uri>http://gdata.youtube.com/feeds/api/users/tayzonzay</uri> + </author> + <yt:videoid>z3U0kuLH974</yt:videoid> + </entry> +</feed>
\ No newline at end of file diff --git a/zend/tests/Zend/Gdata/YouTube/_files/CommentEntryDataSample1.xml b/zend/tests/Zend/Gdata/YouTube/_files/CommentEntryDataSample1.xml new file mode 100644 index 0000000..f36f905 --- /dev/null +++ b/zend/tests/Zend/Gdata/YouTube/_files/CommentEntryDataSample1.xml @@ -0,0 +1,20 @@ +<?xml version='1.0' encoding='utf-8'?> +<entry xmlns='http://www.w3.org/2005/Atom'> + <id>http://gdata.youtube.com/feeds/videos/Lnio-pqLPgg/comments/CE0314DEBFFC9052</id> + <published>2007-09-02T18:00:04.000-07:00</published> + <updated>2007-09-02T18:00:04.000-07:00</updated> + <category scheme='http://schemas.google.com/g/2005#kind' + term='http://gdata.youtube.com/schemas/2007#comment' /> + <title type='text'>how to turn ...</title> + <content type='text'>how to turn rejection and heartbreak into something positive is the big mystery of life but you're managed to turn it to your advantage with a beautiful song. Who was she?</content> + <link rel='related' type='application/atom+xml' + href='http://gdata.youtube.com/feeds/videos/Lnio-pqLPgg' /> + <link rel='alternate' type='text/html' + href='http://www.youtube.com/watch?v=Lnio-pqLPgg' /> + <link rel='self' type='application/atom+xml' + href='http://gdata.youtube.com/feeds/videos/Lnio-pqLPgg/comments/CE0314DEBFFC9052' /> + <author> + <name>reneemathome</name> + <uri>http://gdata.youtube.com/feeds/users/reneemathome</uri> + </author> +</entry> diff --git a/zend/tests/Zend/Gdata/YouTube/_files/CommentFeedDataSample1.xml b/zend/tests/Zend/Gdata/YouTube/_files/CommentFeedDataSample1.xml new file mode 100644 index 0000000..d865ed0 --- /dev/null +++ b/zend/tests/Zend/Gdata/YouTube/_files/CommentFeedDataSample1.xml @@ -0,0 +1,112 @@ +<?xml version='1.0' encoding='utf-8'?> +<feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/'> + <id>http://gdata.youtube.com/feeds/videos/Lnio-pqLPgg/comments</id> + <updated>2007-09-21T02:32:55.032Z</updated> + <category scheme='http://schemas.google.com/g/2005#kind' + term='http://gdata.youtube.com/schemas/2007#comment' /> + <title type='text'>Comments on '"That Girl" - Original Song - Acoustic Version'</title> + <logo> http://www.youtube.com/img/pic_youtubelogo_123x63.gif</logo> + <link rel='related' type='application/atom+xml' + href='http://gdata.youtube.com/feeds/videos/Lnio-pqLPgg' /> + <link rel='alternate' type='text/html' + href='http://www.youtube.com/watch?v=Lnio-pqLPgg' /> + <link rel='http://schemas.google.com/g/2005#feed' + type='application/atom+xml' + href='http://gdata.youtube.com/feeds/videos/Lnio-pqLPgg/comments' /> + <link rel='self' type='application/atom+xml' + href='http://gdata.youtube.com/feeds/videos/Lnio-pqLPgg/comments?start-index=1&max-results=4' /> + <link rel='next' type='application/atom+xml' + href='http://gdata.youtube.com/feeds/videos/Lnio-pqLPgg/comments?start-index=6&max-results=4' /> + <author> + <name>YouTube</name> + <uri>http://www.youtube.com/</uri> + </author> + <generator version='beta' uri='http://gdata.youtube.com/'>YouTube data API</generator> + <openSearch:totalResults>100</openSearch:totalResults> + <openSearch:startIndex>1</openSearch:startIndex> + <openSearch:itemsPerPage>4</openSearch:itemsPerPage> + <entry> + <id> + http://gdata.youtube.com/feeds/videos/Lnio-pqLPgg/comments/CE0314DEBFFC9052</id> + <published>2007-09-02T18:00:04.000-07:00</published> + <updated>2007-09-02T18:00:04.000-07:00</updated> + <category scheme='http://schemas.google.com/g/2005#kind' + term='http://gdata.youtube.com/schemas/2007#comment' /> + <title type='text'>how to turn ...</title> + <content type='text'>how to turn rejection and heartbreak into + something positive is the big mystery of life but you're + managed to turn it to your advantage with a beautiful song. Who + was she?</content> + <link rel='related' type='application/atom+xml' + href='http://gdata.youtube.com/feeds/videos/Lnio-pqLPgg' /> + <link rel='alternate' type='text/html' + href='http://www.youtube.com/watch?v=Lnio-pqLPgg' /> + <link rel='self' type='application/atom+xml' + href='http://gdata.youtube.com/feeds/videos/Lnio-pqLPgg/comments/CE0314DEBFFC9052' /> + <author> + <name>reneemathome</name> + <uri>http://gdata.youtube.com/feeds/users/reneemathome</uri> + </author> + </entry> + <entry> + <id> + http://gdata.youtube.com/feeds/videos/Lnio-pqLPgg/comments/405F5D8E73538763</id> + <published>2007-09-02T20:51:52.000-07:00</published> + <updated>2007-09-02T20:51:52.000-07:00</updated> + <category scheme='http://schemas.google.com/g/2005#kind' + term='http://gdata.youtube.com/schemas/2007#comment' /> + <title type='text'>The stars are ...</title> + <content type='text'>The stars are flying... Make something + with this!!!:)</content> + <link rel='related' type='application/atom+xml' + href='http://gdata.youtube.com/feeds/videos/Lnio-pqLPgg' /> + <link rel='alternate' type='text/html' + href='http://www.youtube.com/watch?v=Lnio-pqLPgg' /> + <link rel='self' type='application/atom+xml' + href='http://gdata.youtube.com/feeds/videos/Lnio-pqLPgg/comments/405F5D8E73538763' /> + <author> + <name>minoujill</name> + <uri>http://gdata.youtube.com/feeds/users/minoujill</uri> + </author> + </entry> + <entry> + <id> + http://gdata.youtube.com/feeds/videos/Lnio-pqLPgg/comments/DA7550644FFCF2EC</id> + <published>2007-09-02T22:22:27.000-07:00</published> + <updated>2007-09-02T22:22:27.000-07:00</updated> + <category scheme='http://schemas.google.com/g/2005#kind' + term='http://gdata.youtube.com/schemas/2007#comment' /> + <title type='text'>awesome song!</title> + <content type='text'>awesome song!</content> + <link rel='related' type='application/atom+xml' + href='http://gdata.youtube.com/feeds/videos/Lnio-pqLPgg' /> + <link rel='alternate' type='text/html' + href='http://www.youtube.com/watch?v=Lnio-pqLPgg' /> + <link rel='self' type='application/atom+xml' + href='http://gdata.youtube.com/feeds/videos/Lnio-pqLPgg/comments/DA7550644FFCF2EC' /> + <author> + <name>beeGoaTee</name> + <uri>http://gdata.youtube.com/feeds/users/beeGoaTee</uri> + </author> + </entry> + <entry> + <id> + http://gdata.youtube.com/feeds/videos/Lnio-pqLPgg/comments/B99ACB2520430E90</id> + <published>2007-09-03T10:46:45.000-07:00</published> + <updated>2007-09-03T10:46:45.000-07:00</updated> + <category scheme='http://schemas.google.com/g/2005#kind' + term='http://gdata.youtube.com/schemas/2007#comment' /> + <title type='text'>This is GOOD!!</title> + <content type='text'>This is GOOD!!</content> + <link rel='related' type='application/atom+xml' + href='http://gdata.youtube.com/feeds/videos/Lnio-pqLPgg' /> + <link rel='alternate' type='text/html' + href='http://www.youtube.com/watch?v=Lnio-pqLPgg' /> + <link rel='self' type='application/atom+xml' + href='http://gdata.youtube.com/feeds/videos/Lnio-pqLPgg/comments/B99ACB2520430E90' /> + <author> + <name>Grosh62</name> + <uri>http://gdata.youtube.com/feeds/users/Grosh62</uri> + </author> + </entry> +</feed> diff --git a/zend/tests/Zend/Gdata/YouTube/_files/ContactEntryDataSample1.xml b/zend/tests/Zend/Gdata/YouTube/_files/ContactEntryDataSample1.xml new file mode 100644 index 0000000..e375401 --- /dev/null +++ b/zend/tests/Zend/Gdata/YouTube/_files/ContactEntryDataSample1.xml @@ -0,0 +1,26 @@ +<?xml version='1.0' encoding='utf-8'?> +<entry xmlns='http://www.w3.org/2005/Atom' +xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' +xmlns:yt='http://gdata.youtube.com/schemas/2007'> + <id>http://gdata.youtube.com/feeds/users/davidchoimusic/contacts/testuser</id> + <published>1970-01-14T04:17:17.804-08:00</published> + <updated>2007-09-21T02:44:41.134Z</updated> + <category scheme='http://schemas.google.com/g/2005#kind' + term='http://gdata.youtube.com/schemas/2007#friend' /> + <category scheme='http://gdata.youtube.com/schemas/2007/contact.cat' + term='Friends' /> + <title type='text'>testuser</title> + <link rel='related' type='application/atom+xml' + href='http://gdata.youtube.com/feeds/users/testuser' /> + <link rel='alternate' type='text/html' + href='http://www.youtube.com/profile?user=testuser' /> + <link rel='self' type='application/atom+xml' + href='http://gdata.youtube.com/feeds/users/davidchoimusic/contacts/testuser' /> + <author> + <name>davidchoimusic</name> + <uri> + http://gdata.youtube.com/feeds/users/davidchoimusic</uri> + </author> + <yt:username>testuser</yt:username> + <yt:status>accepted</yt:status> +</entry> diff --git a/zend/tests/Zend/Gdata/YouTube/_files/ContactFeedDataSample1.xml b/zend/tests/Zend/Gdata/YouTube/_files/ContactFeedDataSample1.xml new file mode 100644 index 0000000..23c9010 --- /dev/null +++ b/zend/tests/Zend/Gdata/YouTube/_files/ContactFeedDataSample1.xml @@ -0,0 +1,51 @@ +<?xml version='1.0' encoding='utf-8'?> +<feed xmlns='http://www.w3.org/2005/Atom' +xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' +xmlns:yt='http://gdata.youtube.com/schemas/2007'> + <id>http://gdata.youtube.com/feeds/users/davidchoimusic/contacts</id> + <updated>2007-09-21T02:44:41.135Z</updated> + <category scheme='http://schemas.google.com/g/2005#kind' + term='http://gdata.youtube.com/schemas/2007#friend' /> + <title type='text'>davidchoimusic's Contacts</title> + <logo>http://www.youtube.com/img/pic_youtubelogo_123x63.gif</logo> + <link rel='alternate' type='text/html' + href='http://www.youtube.com/profile_friends?user=davidchoimusic' /> + <link rel='http://schemas.google.com/g/2005#feed' + type='application/atom+xml' + href='http://gdata.youtube.com/feeds/users/davidchoimusic/contacts' /> + <link rel='self' type='application/atom+xml' + href='http://gdata.youtube.com/feeds/users/davidchoimusic/contacts?start-index=1&max-results=5' /> + <link rel='next' type='application/atom+xml' + href='http://gdata.youtube.com/feeds/users/davidchoimusic/contacts?start-index=6&max-results=5' /> + <author> + <name>davidchoimusic</name> + <uri>http://gdata.youtube.com/feeds/users/davidchoimusic</uri> + </author> + <generator version='beta' uri='http://gdata.youtube.com/'>YouTube data API</generator> + <openSearch:totalResults>1558</openSearch:totalResults> + <openSearch:startIndex>1</openSearch:startIndex> + <openSearch:itemsPerPage>5</openSearch:itemsPerPage> + <entry> + <id>http://gdata.youtube.com/feeds/users/davidchoimusic/contacts/testuser</id> + <published>1970-01-14T04:17:17.804-08:00</published> + <updated>2007-09-21T02:44:41.134Z</updated> + <category scheme='http://schemas.google.com/g/2005#kind' + term='http://gdata.youtube.com/schemas/2007#friend' /> + <category scheme='http://gdata.youtube.com/schemas/2007/contact.cat' + term='Friends' /> + <title type='text'>testuser</title> + <link rel='related' type='application/atom+xml' + href='http://gdata.youtube.com/feeds/users/testuser' /> + <link rel='alternate' type='text/html' + href='http://www.youtube.com/profile?user=testuser' /> + <link rel='self' type='application/atom+xml' + href='http://gdata.youtube.com/feeds/users/davidchoimusic/contacts/testuser' /> + <author> + <name>davidchoimusic</name> + <uri> + http://gdata.youtube.com/feeds/users/davidchoimusic</uri> + </author> + <yt:username>testuser</yt:username> + <yt:status>accepted</yt:status> + </entry> +</feed> diff --git a/zend/tests/Zend/Gdata/YouTube/_files/FormUploadTokenResponseSample.xml b/zend/tests/Zend/Gdata/YouTube/_files/FormUploadTokenResponseSample.xml new file mode 100644 index 0000000..5dfb1f8 --- /dev/null +++ b/zend/tests/Zend/Gdata/YouTube/_files/FormUploadTokenResponseSample.xml @@ -0,0 +1 @@ +<response><url>http://uploads.gdata.youtube.com/action/FormDataUpload/AIwbF1_JjEQ9cGTjEAd5FKwV42SeNWJexmc5y7XR-eFj24uqbqU6NRcxKJW_4R-sYISLxQ</url><token>AIwbFAQ21fImpR2iYPaFnfuCvfbCB3qBxl5qXiZlpH3lfkungiSPoyw1iOM1gFB6Nx-wmY-kjprNT3qtdp7LJCLfngn11Ne_X9Jd44Vz8AzygtEtaDGyib5tnri0O0-V5pwcAPCHIJurOMsOpA2zInW8V8qHk2S2LheXfTXVbqc0Li9iCBpsoBGbykYU0moNoyGAaKRbSBD0oPnCv6v9Rll5Zjvivi2hQt-Br2JDb9wVeLv3qyAFaeyN6X6k32RyaAHs_n8d8d_oSriQmvS8g1HxSCS4dnoGL7tafQ4SBqnrQEb-hxFeu1ZrAwCLv</token></response> diff --git a/zend/tests/Zend/Gdata/YouTube/_files/InboxEntryDataSample1.xml b/zend/tests/Zend/Gdata/YouTube/_files/InboxEntryDataSample1.xml new file mode 100644 index 0000000..6007c66 --- /dev/null +++ b/zend/tests/Zend/Gdata/YouTube/_files/InboxEntryDataSample1.xml @@ -0,0 +1,82 @@ +<?xml version='1.0' encoding='UTF-8'?> +<entry xmlns='http://www.w3.org/2005/Atom' + xmlns:gml='http://www.opengis.net/gml' + xmlns:georss='http://www.georss.org/georss' + xmlns:media='http://search.yahoo.com/mrss/' + xmlns:yt='http://gdata.youtube.com/schemas/2007' + xmlns:gd='http://schemas.google.com/g/2005'> + <id> + http://gdata.youtube.com/feeds/api/users/andyland74/inbox/ffb9a5f32cd5f55 + </id> + <published>2008-06-10T13:55:32.000-07:00</published> + <category scheme='http://schemas.google.com/g/2005#kind' + term='http://gdata.youtube.com/schemas/2007#videoMessage'/> + <title type='text'>andyland74sFriend sent you a video!</title> + <content type='text'>Check out this video!</content> + <link rel='alternate' type='text/html' + href='http://www.youtube.com/watch?v=jXE6G9CYcJs'/> + <link + rel='http://gdata.youtube.com/schemas/2007#video.responses' + type='application/atom+xml' + href='http://gdata.youtube.com/feeds/api/videos/jXE6G9CYcJs/responses'/> + <link rel='http://gdata.youtube.com/schemas/2007#video.ratings' + type='application/atom+xml' + href='http://gdata.youtube.com/feeds/api/videos/jXE6G9CYcJs/ratings'/> + <link rel='http://gdata.youtube.com/schemas/2007#video.complaints' + type='application/atom+xml' + href='http://gdata.youtube.com/feeds/api/videos/jXE6G9CYcJs/complaints'/> + <link rel='http://gdata.youtube.com/schemas/2007#video.related' + type='application/atom+xml' + href='http://gdata.youtube.com/feeds/api/videos/jXE6G9CYcJs/related'/> + <link rel='related' type='application/atom+xml' + href='http://gdata.youtube.com/feeds/api/videos/jXE6G9CYcJs'/> + <link rel='self' type='application/atom+xml' + href='http://gdata.youtube.com/feeds/api/users/andyland74/inbox/ffb9a5f32cd5f55'/> + <link rel='edit' type='application/atom+xml' + href='http://gdata.youtube.com/feeds/api/users/andyland74/inbox/ffb9a5f32cd5f55'/> + <author> + <name>andyland74sFriend</name> + <uri> + http://gdata.youtube.com/feeds/api/users/andyland74sFriend + </uri> + </author> + <media:group> + <media:title type='plain'>Learning the ABCs</media:title> + <media:description type='plain'> + A great method for teaching kids the alphabet. + </media:description> + <media:keywords>alphabet, teaching, children</media:keywords> + <yt:duration seconds='202'/> + <media:category label='Education' + scheme='http://gdata.youtube.com/schemas/2007/categories.cat'> + Education</media:category> + <media:content url='http://www.youtube.com/v/jXE6G9CYcJs' + type='application/x-shockwave-flash' medium='video' + isDefault='true' expression='full' duration='202' yt:format='5'/> + <media:content + url='rtsp://rtsp2.youtube.com/ChoLENyDSANFEgGDA==/0/0/0/video.3gp' + type='video/3gpp' medium='video' expression='full' + duration='202' yt:format='1'/> + <media:content + url='rtsp://rtsp2.youtube.com/ChoLENyESARFEgGDA==/0/0/0/video.3gp' + type='video/3gpp' medium='video' expression='full' + duration='202' yt:format='6'/> + <media:player url='http://www.youtube.com/watch?v=jXE6G9CYcJs'/> + <media:thumbnail url='http://img.youtube.com/vi/jXE6G9CYcJs/2.jpg' + height='97' width='130' time='00:01:41'/> + <media:thumbnail url='http://img.youtube.com/vi/jXE6G9CYcJs/1.jpg' + height='97' width='130' time='00:00:50.500'/> + <media:thumbnail url='http://img.youtube.com/vi/jXE6G9CYcJs/3.jpg' + height='97' width='130' time='00:02:31.500'/> + <media:thumbnail url='http://img.youtube.com/vi/jXE6G9CYcJs/0.jpg' + height='240' width='320' time='00:01:41'/> + </media:group> + <yt:statistics viewCount='56620' favoriteCount='67'/> + <gd:rating min='1' max='5' numRaters='372' average='3.93'/> + <gd:comments> + <gd:feedLink + href='http://gdata.youtube.com/feeds/api/videos/jXE6G9CYcJs/comments' + countHint='481'/> + </gd:comments> + <yt:description>Check out this video!</yt:description> + </entry>
\ No newline at end of file diff --git a/zend/tests/Zend/Gdata/YouTube/_files/InboxEntryDataSampleV2.xml b/zend/tests/Zend/Gdata/YouTube/_files/InboxEntryDataSampleV2.xml new file mode 100644 index 0000000..d2d17b8 --- /dev/null +++ b/zend/tests/Zend/Gdata/YouTube/_files/InboxEntryDataSampleV2.xml @@ -0,0 +1,88 @@ +<?xml version='1.0' encoding='UTF-8'?> +<entry xmlns='http://www.w3.org/2005/Atom' + xmlns:gml='http://www.opengis.net/gml' + xmlns:georss='http://www.georss.org/georss' + xmlns:media='http://search.yahoo.com/mrss/' + xmlns:yt='http://gdata.youtube.com/schemas/2007' + xmlns:gd='http://schemas.google.com/g/2005' + gd:etag='W/"C0QHQ347eCp7ImA9WxdQEU4."'> + <id>tag:youtube,2008:user:andyland74:inbox:D_uaXzLRX1U</id> + <published>2008-06-10T13:55:32.000-07:00</published> + <updated>2008-06-10T13:55:32.000-07:00</updated> + <app:edited + xmlns:app='http://www.w3.org/2007/app'>2008-06-10T20:55:32.000Z</app:edited> + <category scheme='http://schemas.google.com/g/2005#kind' + term='http://gdata.youtube.com/schemas/2007#videoMessage'/> + <category scheme='http://gdata.youtube.com/schemas/2007/keywords.cat' + term='surfing'/> + <category scheme='http://gdata.youtube.com/schemas/2007/categories.cat' + term='People' label='People & Blogs'/> + <title>andyland74sFriend sent you a video!</title> + <summary>Check out this video!</summary> + <link rel='alternate' type='text/html' + href='http://www.youtube.com/watch?v=jXE6G9CYcJs'/> + <link rel='http://gdata.youtube.com/schemas/2007#video.responses' + type='application/atom+xml' + href='http://gdata.youtube.com/feeds/api/videos/jXE6G9CYcJs/responses?v=2'/> + <link rel='http://gdata.youtube.com/schemas/2007#video.ratings' + type='application/atom+xml' + href='http://gdata.youtube.com/feeds/api/videos/jXE6G9CYcJs/ratings?v=2'/> + <link rel='http://gdata.youtube.com/schemas/2007#video.complaints' + type='application/atom+xml' + href='http://gdata.youtube.com/feeds/api/videos/jXE6G9CYcJs/complaints?v=2'/> + <link rel='http://gdata.youtube.com/schemas/2007#mobile' + type='text/html' href='http://m.youtube.com/details?v=jXE6G9CYcJs'/> + <link rel='http://gdata.youtube.com/schemas/2007#video.related' + type='application/atom+xml' + href='http://gdata.youtube.com/feeds/api/videos/jXE6G9CYcJs/related?v=2'/> + <link rel='related' type='application/atom+xml' + href='http://gdata.youtube.com/feeds/api/videos/jXE6G9CYcJs?v=2'/> + <link rel='self' type='application/atom+xml' + href='http://gdata.youtube.com/feeds/api/users/andyland74/inbox/ffb9a5f32cd5f55?v=2'/> + <link rel='edit' type='application/atom+xml' + href='http://gdata.youtube.com/feeds/api/users/andyland74/inbox/ffb9a5f32cd5f55?v=2'/> + <author> + <name>andyland74sFriend</name> + <uri>http://gdata.youtube.com/feeds/api/users/andyland74sFriend</uri> + </author> + <media:group> + <media:title type='plain'>Learning the ABCs</media:title> + <media:description type='plain'> + A great method for teaching kids the alphabet. + </media:description> + <media:keywords>alphabet, teaching, children</media:keywords> + <yt:duration seconds='202'/> + <yt:videoid>jXE6G9CYcJs</yt:videoid> + <media:credit role='uploader' scheme='urn:youtube'>andyland74sFriend</media:credit> + <media:category label='Education' + scheme='http://gdata.youtube.com/schemas/2007/categories.cat'> + Education</media:category> + <media:content url='http://www.youtube.com/v/jXE6G9CYcJs' + type='application/x-shockwave-flash' medium='video' isDefault='true' + expression='full' duration='202' yt:format='5'/> + <media:content + url='rtsp://rtsp2.youtube.com/ChoLENySANFEgGDA==/0/0/0/video.3gp' + type='video/3gpp' medium='video' expression='full' + duration='202' yt:format='1'/> + <media:content + url='rtsp://rtsp2.youtube.com/ChoLENySARFEgGDA==/0/0/0/video.3gp' + type='video/3gpp' medium='video' expression='full' + duration='202' yt:format='6'/> + <media:player url='http://www.youtube.com/watch?v=jXE6G9CYcJs'/> + <media:thumbnail url='http://img.youtube.com/vi/jXE6G9CYcJs/2.jpg' + height='97' width='130' time='00:01:41'/> + <media:thumbnail url='http://img.youtube.com/vi/jXE6G9CYcJs/1.jpg' + height='97' width='130' time='00:00:50.500'/> + <media:thumbnail url='http://img.youtube.com/vi/jXE6G9CYcJs/3.jpg' + height='97' width='130' time='00:02:31.500'/> + <media:thumbnail url='http://img.youtube.com/vi/jXE6G9CYcJs/0.jpg' + height='240' width='320' time='00:01:41'/> + </media:group> + <yt:statistics viewCount='286355' favoriteCount='201'/> + <gd:rating min='1' max='5' numRaters='877' average='3.88'/> + <gd:comments> + <gd:feedLink + href='http://gdata.youtube.com/feeds/api/videos/jXE6G9CYcJs/comments' + countHint='1088'/> + </gd:comments> +</entry>
\ No newline at end of file diff --git a/zend/tests/Zend/Gdata/YouTube/_files/InboxFeedDataSample1.xml b/zend/tests/Zend/Gdata/YouTube/_files/InboxFeedDataSample1.xml new file mode 100755 index 0000000..99374f1 --- /dev/null +++ b/zend/tests/Zend/Gdata/YouTube/_files/InboxFeedDataSample1.xml @@ -0,0 +1,107 @@ +<?xml version='1.0' encoding='UTF-8'?> +<feed xmlns='http://www.w3.org/2005/Atom' + xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' + xmlns:gml='http://www.opengis.net/gml' + xmlns:georss='http://www.georss.org/georss' + xmlns:media='http://search.yahoo.com/mrss/' + xmlns:yt='http://gdata.youtube.com/schemas/2007' + xmlns:gd='http://schemas.google.com/g/2005'> + <id>http://gdata.youtube.com/feeds/api/users/default/inbox</id> + <updated>2008-06-10T20:55:40.271Z</updated> + <category scheme='http://schemas.google.com/g/2005#kind' + term='http://gdata.youtube.com/schemas/2007#videoMessage'/> + <title type='text'>Inbox of andyland74</title> + <logo>http://www.youtube.com/img/pic_youtubelogo_123x63.gif</logo> + <link rel='alternate' type='text/html' + href='http://www.youtube.com/my_messages?folder=inbox&filter=videos'/> + <link rel='http://schemas.google.com/g/2005#feed' + type='application/atom+xml' + href='http://gdata.youtube.com/feeds/api/users/andyland74/inbox'/> + <link rel='self' type='application/atom+xml' + href='http://gdata.youtube.com/feeds/api/users/andyland74/inbox?...'/> + <author> + <name>andyland74</name> + <uri>http://gdata.youtube.com/feeds/api/users/andyland74</uri> + </author> + <generator version='beta' + uri='http://gdata.youtube.com/'>YouTube data API</generator> + <openSearch:totalResults>1</openSearch:totalResults> + <openSearch:startIndex>1</openSearch:startIndex> + <openSearch:itemsPerPage>25</openSearch:itemsPerPage> + <entry> + <id> + http://gdata.youtube.com/feeds/api/users/andyland74/inbox/ffb9a5f32cd5f55 + </id> + <published>2008-06-10T13:55:32.000-07:00</published> + <category scheme='http://schemas.google.com/g/2005#kind' + term='http://gdata.youtube.com/schemas/2007#videoMessage'/> + <title type='text'>andyland74sFriend sent you a video!</title> + <content type='text'>Check out this video!</content> + <link rel='alternate' type='text/html' + href='http://www.youtube.com/watch?v=jXE6G9CYcJs'/> + <link + rel='http://gdata.youtube.com/schemas/2007#video.responses' + type='application/atom+xml' + href='http://gdata.youtube.com/feeds/api/videos/jXE6G9CYcJs/responses'/> + <link rel='http://gdata.youtube.com/schemas/2007#video.ratings' + type='application/atom+xml' + href='http://gdata.youtube.com/feeds/api/videos/jXE6G9CYcJs/ratings'/> + <link rel='http://gdata.youtube.com/schemas/2007#video.complaints' + type='application/atom+xml' + href='http://gdata.youtube.com/feeds/api/videos/jXE6G9CYcJs/complaints'/> + <link rel='http://gdata.youtube.com/schemas/2007#video.related' + type='application/atom+xml' + href='http://gdata.youtube.com/feeds/api/videos/jXE6G9CYcJs/related'/> + <link rel='related' type='application/atom+xml' + href='http://gdata.youtube.com/feeds/api/videos/jXE6G9CYcJs'/> + <link rel='self' type='application/atom+xml' + href='http://gdata.youtube.com/feeds/api/users/andyland74/inbox/ffb9a5f32cd5f55'/> + <link rel='edit' type='application/atom+xml' + href='http://gdata.youtube.com/feeds/api/users/andyland74/inbox/ffb9a5f32cd5f55'/> + <author> + <name>andyland74sFriend</name> + <uri> + http://gdata.youtube.com/feeds/api/users/andyland74sFriend + </uri> + </author> + <media:group> + <media:title type='plain'>Learning the ABCs</media:title> + <media:description type='plain'> + A great method for teaching kids the alphabet. + </media:description> + <media:keywords>alphabet, teaching, children</media:keywords> + <yt:duration seconds='202'/> + <media:category label='Education' + scheme='http://gdata.youtube.com/schemas/2007/categories.cat'> + Education</media:category> + <media:content url='http://www.youtube.com/v/jXE6G9CYcJs' + type='application/x-shockwave-flash' medium='video' + isDefault='true' expression='full' duration='202' yt:format='5'/> + <media:content + url='rtsp://rtsp2.youtube.com/ChoLENyDSANFEgGDA==/0/0/0/video.3gp' + type='video/3gpp' medium='video' expression='full' + duration='202' yt:format='1'/> + <media:content + url='rtsp://rtsp2.youtube.com/ChoLENyESARFEgGDA==/0/0/0/video.3gp' + type='video/3gpp' medium='video' expression='full' + duration='202' yt:format='6'/> + <media:player url='http://www.youtube.com/watch?v=jXE6G9CYcJs'/> + <media:thumbnail url='http://img.youtube.com/vi/jXE6G9CYcJs/2.jpg' + height='97' width='130' time='00:01:41'/> + <media:thumbnail url='http://img.youtube.com/vi/jXE6G9CYcJs/1.jpg' + height='97' width='130' time='00:00:50.500'/> + <media:thumbnail url='http://img.youtube.com/vi/jXE6G9CYcJs/3.jpg' + height='97' width='130' time='00:02:31.500'/> + <media:thumbnail url='http://img.youtube.com/vi/jXE6G9CYcJs/0.jpg' + height='240' width='320' time='00:01:41'/> + </media:group> + <yt:statistics viewCount='56620' favoriteCount='67'/> + <gd:rating min='1' max='5' numRaters='372' average='3.93'/> + <gd:comments> + <gd:feedLink + href='http://gdata.youtube.com/feeds/api/videos/jXE6G9CYcJs/comments' + countHint='481'/> + </gd:comments> + <yt:description>Check out this video!</yt:description> + </entry> +</feed>
\ No newline at end of file diff --git a/zend/tests/Zend/Gdata/YouTube/_files/InboxFeedDataSampleV2.xml b/zend/tests/Zend/Gdata/YouTube/_files/InboxFeedDataSampleV2.xml new file mode 100755 index 0000000..57f0b47 --- /dev/null +++ b/zend/tests/Zend/Gdata/YouTube/_files/InboxFeedDataSampleV2.xml @@ -0,0 +1,119 @@ +<?xml version='1.0' encoding='UTF-8'?> +<feed xmlns='http://www.w3.org/2005/Atom' + xmlns:openSearch='http://a9.com/-/spec/opensearch/1.1/' + xmlns:gml='http://www.opengis.net/gml' + xmlns:georss='http://www.georss.org/georss' + xmlns:media='http://search.yahoo.com/mrss/' + xmlns:batch='http://schemas.google.com/gdata/batch' + xmlns:yt='http://gdata.youtube.com/schemas/2007' + xmlns:gd='http://schemas.google.com/g/2005' + gd:etag='W/"C0QHQ347eCp7ImA9WxdQEU4."'> + <id>tag:youtube,2008:user:andyland74:inbox</id> + <updated>2008-07-21T17:54:30.236Z</updated> + <category scheme='http://schemas.google.com/g/2005#kind' + term='http://gdata.youtube.com/schemas/2007#videoMessage'/> + <title>Inbox of andyland74</title> + <logo>http://www.youtube.com/img/pic_youtubelogo_123x63.gif</logo> + <link rel='alternate' type='text/html' + href='http://www.youtube.com/my_messages?folder=inbox&filter=videos'/> + <link rel='http://schemas.google.com/g/2005#feed' + type='application/atom+xml' + href='http://gdata.youtube.com/feeds/api/users/andyland74/inbox?v=2'/> + <link rel='http://schemas.google.com/g/2005#batch' + type='application/atom+xml' + href='http://gdata.youtube.com/feeds/api/users/andyland74/inbox/batch?v=2'/> + <link rel='self' type='application/atom+xml' + href='http://gdata.youtube.com/feeds/api/users/andyland74/inbox?...'/> + <link rel='service' type='application/atomsvc+xml' + href='http://gdata.youtube.com/feeds/api/users/andyland74/inbox?alt=...'/> + <author> + <name>andyland74</name> + <uri>http://gdata.youtube.com/feeds/api/users/andyland74</uri> + </author> + <generator version='2.0' + uri='http://gdata.youtube.com/'>YouTube data API</generator> + <openSearch:totalResults>1</openSearch:totalResults> + <openSearch:startIndex>1</openSearch:startIndex> + <openSearch:itemsPerPage>25</openSearch:itemsPerPage> + <entry gd:etag='W/"C0QHQ347eCp7ImA9WxdQEU4."'> + <id>tag:youtube,2008:user:andyland74:inbox:D_uaXzLRX1U</id> + <published>2008-06-10T13:55:32.000-07:00</published> + <updated>2008-06-10T13:55:32.000-07:00</updated> + <app:edited + xmlns:app='http://www.w3.org/2007/app'>2008-06-10T20:55:32.000Z</app:edited> + <category scheme='http://schemas.google.com/g/2005#kind' + term='http://gdata.youtube.com/schemas/2007#videoMessage'/> + <category scheme='http://gdata.youtube.com/schemas/2007/keywords.cat' + term='surfing'/> + <category scheme='http://gdata.youtube.com/schemas/2007/categories.cat' + term='People' label='People & Blogs'/> + <title>andyland74sFriend sent you a video!</title> + <summary>Check out this video!</summary> + <link rel='alternate' type='text/html' + href='http://www.youtube.com/watch?v=jXE6G9CYcJs'/> + <link rel='http://gdata.youtube.com/schemas/2007#video.responses' + type='application/atom+xml' + href='http://gdata.youtube.com/feeds/api/videos/jXE6G9CYcJs/responses?v=2'/> + <link rel='http://gdata.youtube.com/schemas/2007#video.ratings' + type='application/atom+xml' + href='http://gdata.youtube.com/feeds/api/videos/jXE6G9CYcJs/ratings?v=2'/> + <link rel='http://gdata.youtube.com/schemas/2007#video.complaints' + type='application/atom+xml' + href='http://gdata.youtube.com/feeds/api/videos/jXE6G9CYcJs/complaints?v=2'/> + <link rel='http://gdata.youtube.com/schemas/2007#mobile' + type='text/html' href='http://m.youtube.com/details?v=jXE6G9CYcJs'/> + <link rel='http://gdata.youtube.com/schemas/2007#video.related' + type='application/atom+xml' + href='http://gdata.youtube.com/feeds/api/videos/jXE6G9CYcJs/related?v=2'/> + <link rel='related' type='application/atom+xml' + href='http://gdata.youtube.com/feeds/api/videos/jXE6G9CYcJs?v=2'/> + <link rel='self' type='application/atom+xml' + href='http://gdata.youtube.com/feeds/api/users/andyland74/inbox/ffb9a5f32cd5f55?v=2'/> + <link rel='edit' type='application/atom+xml' + href='http://gdata.youtube.com/feeds/api/users/andyland74/inbox/ffb9a5f32cd5f55?v=2'/> + <author> + <name>andyland74sFriend</name> + <uri>http://gdata.youtube.com/feeds/api/users/andyland74sFriend</uri> + </author> + <media:group> + <media:title type='plain'>Learning the ABCs</media:title> + <media:description type='plain'> + A great method for teaching kids the alphabet. + </media:description> + <media:keywords>alphabet, teaching, children</media:keywords> + <yt:duration seconds='202'/> + <yt:videoid>jXE6G9CYcJs</yt:videoid> + <media:credit role='uploader' scheme='urn:youtube'>andyland74sFriend</media:credit> + <media:category label='Education' + scheme='http://gdata.youtube.com/schemas/2007/categories.cat'> + Education</media:category> + <media:content url='http://www.youtube.com/v/jXE6G9CYcJs' + type='application/x-shockwave-flash' medium='video' isDefault='true' + expression='full' duration='202' yt:format='5'/> + <media:content + url='rtsp://rtsp2.youtube.com/ChoLENySANFEgGDA==/0/0/0/video.3gp' + type='video/3gpp' medium='video' expression='full' + duration='202' yt:format='1'/> + <media:content + url='rtsp://rtsp2.youtube.com/ChoLENySARFEgGDA==/0/0/0/video.3gp' + type='video/3gpp' medium='video' expression='full' + duration='202' yt:format='6'/> + <media:player url='http://www.youtube.com/watch?v=jXE6G9CYcJs'/> + <media:thumbnail url='http://img.youtube.com/vi/jXE6G9CYcJs/2.jpg' + height='97' width='130' time='00:01:41'/> + <media:thumbnail url='http://img.youtube.com/vi/jXE6G9CYcJs/1.jpg' + height='97' width='130' time='00:00:50.500'/> + <media:thumbnail url='http://img.youtube.com/vi/jXE6G9CYcJs/3.jpg' + height='97' width='130' time='00:02:31.500'/> + <media:thumbnail url='http://img.youtube.com/vi/jXE6G9CYcJs/0.jpg' + height='240' width='320' time='00:01:41'/> + </media:group> + <yt:statistics viewCount='286355' favoriteCount='201'/> + <gd:rating min='1' max='5' numRaters='877' average='3.88'/> + <gd:comments> + <gd:feedLink + href='http://gdata.youtube.com/feeds/api/videos/jXE6G9CYcJs/comments' + countHint='1088'/> + </gd:comments> + </entry> +</feed> diff --git a/zend/tests/Zend/Gdata/YouTube/_files/PlaylistListEntryDataSample1.xml b/zend/tests/Zend/Gdata/YouTube/_files/PlaylistListEntryDataSample1.xml new file mode 100644 index 0000000..2beed6c --- /dev/null +++ b/zend/tests/Zend/Gdata/YouTube/_files/PlaylistListEntryDataSample1.xml @@ -0,0 +1,30 @@ +<?xml version='1.0' encoding='utf-8'?> +<entry xmlns='http://www.w3.org/2005/Atom' +xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' +xmlns:media='http://search.yahoo.com/mrss/' +xmlns:gd='http://schemas.google.com/g/2005' +xmlns:yt='http://gdata.youtube.com/schemas/2007'> + <id> + http://gdata.youtube.com/feeds/users/testuser/playlists/46A2F8C9B36B6FE7</id> + <published>2007-01-29T22:42:12.000-08:00</published> + <updated>2007-09-20T13:42:19.000-07:00</updated> + <category scheme='http://gdata.youtube.com/schemas/2007/tags.cat' + term='music' /> + <category scheme='http://schemas.google.com/g/2005#kind' + term='http://gdata.youtube.com/schemas/2007#playlistLink' /> + <title type='text'>YouTube Musicians</title> + <content type='text'>Music from talented people on YouTube.</content> + <link rel='alternate' type='text/html' + href='http://www.youtube.com/view_play_list?p=46A2F8C9B36B6FE7' /> + <link rel='related' type='application/atom+xml' + href='http://gdata.youtube.com/feeds/users/testuser' /> + <link rel='self' type='application/atom+xml' + href='http://gdata.youtube.com/feeds/users/testuser/playlists/46A2F8C9B36B6FE7' /> + <author> + <name>testuser</name> + <uri>http://gdata.youtube.com/feeds/users/testuser</uri> + </author> + <yt:description>Music from talented people on YouTube.</yt:description> + <gd:feedLink rel='http://gdata.youtube.com/schemas/2007#playlist' + href='http://gdata.youtube.com/feeds/playlists/46A2F8C9B36B6FE7' /> +</entry> diff --git a/zend/tests/Zend/Gdata/YouTube/_files/PlaylistListEntryDataSampleV2.xml b/zend/tests/Zend/Gdata/YouTube/_files/PlaylistListEntryDataSampleV2.xml new file mode 100644 index 0000000..44cae2d --- /dev/null +++ b/zend/tests/Zend/Gdata/YouTube/_files/PlaylistListEntryDataSampleV2.xml @@ -0,0 +1,16 @@ +<?xml version='1.0' encoding='UTF-8'?> +<entry xmlns='http://www.w3.org/2005/Atom' xmlns:media='http://search.yahoo.com/mrss/' xmlns:yt='http://gdata.youtube.com/schemas/2007' xmlns:gd='http://schemas.google.com/g/2005' gd:etag='W/"CE4CQn47eCp7ImA9WxRbGU0."'> +<id>tag:youtube.com,2008:user:googledevelopers:playlist:8E2186857EE27746</id> +<published>2007-08-23T21:48:43.000Z</published> +<updated>2008-12-10T09:56:03.000Z</updated> +<category scheme='http://schemas.google.com/g/2005#kind' term='http://gdata.youtube.com/schemas/2007#playlistLink'/> +<title>Non-google Interviews</title> +<summary>This playlist contains interviews with people outside of Google.</summary> +<content type='application/atom+xml;type=feed' src='http://gdata.youtube.com/feeds/api/playlists/8E2186857EE27746?v=2'/> +<link rel='related' type='application/atom+xml' href='http://gdata.youtube.com/feeds/api/users/googledevelopers?v=2'/> +<link rel='alternate' type='text/html' href='http://www.youtube.com/view_play_list?p=8E2186857EE27746'/> +<link rel='self' type='application/atom+xml' href='http://gdata.youtube.com/feeds/api/users/googledevelopers/playlists/8E2186857EE27746?v=2'/> +<author><name>googledevelopers</name><uri>http://gdata.youtube.com/feeds/api/users/googledevelopers</uri></author> +<yt:playlistId>8E2186857EE27746</yt:playlistId> +<yt:countHint>1</yt:countHint> +</entry>
\ No newline at end of file diff --git a/zend/tests/Zend/Gdata/YouTube/_files/PlaylistListFeedDataSample1.xml b/zend/tests/Zend/Gdata/YouTube/_files/PlaylistListFeedDataSample1.xml new file mode 100644 index 0000000..e18908e --- /dev/null +++ b/zend/tests/Zend/Gdata/YouTube/_files/PlaylistListFeedDataSample1.xml @@ -0,0 +1,79 @@ +<?xml version='1.0' encoding='utf-8'?> +<feed xmlns='http://www.w3.org/2005/Atom' +xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' +xmlns:media='http://search.yahoo.com/mrss/' +xmlns:gd='http://schemas.google.com/g/2005' +xmlns:yt='http://gdata.youtube.com/schemas/2007'> + <id>http://gdata.youtube.com/feeds/users/testuser/playlists</id> + <updated>2007-09-20T20:59:47.530Z</updated> + <category scheme='http://schemas.google.com/g/2005#kind' + term='http://gdata.youtube.com/schemas/2007#playlistLink' /> + <title type='text'>testuser's Playlists</title> + <logo>http://www.youtube.com/img/pic_youtubelogo_123x63.gif</logo> + <link rel='alternate' type='text/html' + href='http://www.youtube.com/profile_play_list?user=testuser' /> + <link rel='related' type='application/atom+xml' + href='http://gdata.youtube.com/feeds/users/testuser' /> + <link rel='http://schemas.google.com/g/2005#feed' + type='application/atom+xml' + href='http://gdata.youtube.com/feeds/users/testuser/playlists' /> + <link rel='self' type='application/atom+xml' + href='http://gdata.youtube.com/feeds/users/testuser/playlists?start-index=1&max-results=25' /> + <author> + <name>testuser</name> + <uri>http://gdata.youtube.com/feeds/users/testuser</uri> + </author> + <generator version='beta' uri='http://gdata.youtube.com/'>YouTube + data API</generator> + <openSearch:totalResults>2</openSearch:totalResults> + <openSearch:startIndex>1</openSearch:startIndex> + <openSearch:itemsPerPage>25</openSearch:itemsPerPage> + <entry> + <id> + http://gdata.youtube.com/feeds/users/testuser/playlists/A0F668D93B388F99</id> + <published>2007-01-17T14:13:22.000-08:00</published> + <updated>2007-02-04T21:56:42.000-08:00</updated> + <category scheme='http://schemas.google.com/g/2005#kind' + term='http://gdata.youtube.com/schemas/2007#playlistLink' /> + <title type='text'>Korean/Chinese Playlist</title> + <content type='text'>Testing characters</content> + <link rel='alternate' type='text/html' + href='http://www.youtube.com/view_play_list?p=A0F668D93B388F99' /> + <link rel='related' type='application/atom+xml' + href='http://gdata.youtube.com/feeds/users/testuser' /> + <link rel='self' type='application/atom+xml' + href='http://gdata.youtube.com/feeds/users/testuser/playlists/A0F668D93B388F99' /> + <author> + <name>testuser</name> + <uri>http://gdata.youtube.com/feeds/users/testuser</uri> + </author> + <yt:description>Testing characters</yt:description> + <gd:feedLink rel='http://gdata.youtube.com/schemas/2007#playlist' + href='http://gdata.youtube.com/feeds/playlists/A0F668D93B388F99' /> + </entry> + <entry> + <id> + http://gdata.youtube.com/feeds/users/testuser/playlists/46A2F8C9B36B6FE7</id> + <published>2007-01-29T22:42:12.000-08:00</published> + <updated>2007-09-20T13:42:19.000-07:00</updated> + <category scheme='http://gdata.youtube.com/schemas/2007/tags.cat' + term='music' /> + <category scheme='http://schemas.google.com/g/2005#kind' + term='http://gdata.youtube.com/schemas/2007#playlistLink' /> + <title type='text'>YouTube Musicians</title> + <content type='text'>Music from talented people on YouTube.</content> + <link rel='alternate' type='text/html' + href='http://www.youtube.com/view_play_list?p=46A2F8C9B36B6FE7' /> + <link rel='related' type='application/atom+xml' + href='http://gdata.youtube.com/feeds/users/testuser' /> + <link rel='self' type='application/atom+xml' + href='http://gdata.youtube.com/feeds/users/testuser/playlists/46A2F8C9B36B6FE7' /> + <author> + <name>testuser</name> + <uri>http://gdata.youtube.com/feeds/users/testuser</uri> + </author> + <yt:description>Music from talented people on YouTube.</yt:description> + <gd:feedLink rel='http://gdata.youtube.com/schemas/2007#playlist' + href='http://gdata.youtube.com/feeds/playlists/46A2F8C9B36B6FE7' /> + </entry> +</feed> diff --git a/zend/tests/Zend/Gdata/YouTube/_files/PlaylistListFeedDataSampleV2.xml b/zend/tests/Zend/Gdata/YouTube/_files/PlaylistListFeedDataSampleV2.xml new file mode 100644 index 0000000..3a0d148 --- /dev/null +++ b/zend/tests/Zend/Gdata/YouTube/_files/PlaylistListFeedDataSampleV2.xml @@ -0,0 +1,553 @@ +<?xml version='1.0' encoding='UTF-8'?> +<feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearch/1.1/' xmlns:media='http://search.yahoo.com/mrss/' xmlns:batch='http://schemas.google.com/gdata/batch' xmlns:yt='http://gdata.youtube.com/schemas/2007' xmlns:gd='http://schemas.google.com/g/2005' gd:etag='W/"CE4CQn47eCp7ImA9WxRbGU0."'> + <id>tag:youtube.com,2008:user:GoogleDevelopers:playlists</id> + <updated>2008-12-10T09:56:03.000Z</updated> + <category scheme='http://schemas.google.com/g/2005#kind' term='http://gdata.youtube.com/schemas/2007#playlistLink'/> + <title>Playlists of GoogleDevelopers</title> + <logo>http://www.youtube.com/img/pic_youtubelogo_123x63.gif</logo> + <link rel='related' type='application/atom+xml' href='http://gdata.youtube.com/feeds/api/users/googledevelopers?v=2'/> + <link rel='alternate' type='text/html' href='http://www.youtube.com/profile_play_list?user=GoogleDevelopers'/> + <link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://gdata.youtube.com/feeds/api/users/GoogleDevelopers/playlists?v=2'/> + <link rel='http://schemas.google.com/g/2005#batch' type='application/atom+xml' href='http://gdata.youtube.com/feeds/api/users/GoogleDevelopers/playlists/batch?v=2'/> + <link rel='self' type='application/atom+xml' href='http://gdata.youtube.com/feeds/api/users/GoogleDevelopers/playlists?start-index=1&max-results=25&v=2'/> + <link rel='service' type='application/atomsvc+xml' href='http://gdata.youtube.com/feeds/api/users/GoogleDevelopers/playlists?alt=atom-service&v=2'/> + <link rel='next' type='application/atom+xml' href='http://gdata.youtube.com/feeds/api/users/GoogleDevelopers/playlists?start-index=26&max-results=25&v=2'/> + <author> + <name>GoogleDevelopers</name> + <uri>http://gdata.youtube.com/feeds/api/users/googledevelopers</uri> + </author> + <generator version='2.0' uri='http://gdata.youtube.com/'>YouTube data API</generator> + <openSearch:totalResults>70</openSearch:totalResults> +<openSearch:startIndex>1</openSearch:startIndex> + <openSearch:itemsPerPage>25</openSearch:itemsPerPage> + <entry gd:etag='W/"CE4CQn47eCp7ImA9WxRbGU0."'> + <id>tag:youtube.com,2008:user:GoogleDevelopers:playlist:8E2186857EE27746</id> + <published>2007-08-23T21:48:43.000Z</published> + <updated>2008-12-10T09:56:03.000Z</updated> + <category scheme='http://schemas.google.com/g/2005#kind' term='http://gdata.youtube.com/schemas/2007#playlistLink'/> + <title>Non-google Interviews</title> + <summary>This playlist contains interviews with people outside of Google.</summary> + <content type='application/atom+xml;type=feed' src='http://gdata.youtube.com/feeds/api/playlists/8E2186857EE27746?v=2'/> + <link rel='related' type='application/atom+xml' href='http://gdata.youtube.com/feeds/api/users/googledevelopers?v=2'/> + <link rel='alternate' type='text/html' href='http://www.youtube.com/view_play_list?p=8E2186857EE27746'/> + <link rel='self' type='application/atom+xml' href='http://gdata.youtube.com/feeds/api/users/GoogleDevelopers/playlists/8E2186857EE27746?v=2'/> + <author> +<name>GoogleDevelopers</name> +<uri>http://gdata.youtube.com/feeds/api/users/googledevelopers</uri> +</author> + <yt:playlistId>8E2186857EE27746</yt:playlistId> + <yt:countHint>1</yt:countHint> + </entry> + <entry gd:etag='W/"DkUDQn47eCp7ImA9WxRaEE0."'> + <id>tag:youtube.com,2008:user:GoogleDevelopers:playlist:4AE5C0D23C2EB82D</id> + <published>2007-08-23T21:50:19.000Z</published> + <updated>2008-12-11T14:04:33.000Z</updated> + <category scheme='http://schemas.google.com/g/2005#kind' term='http://gdata.youtube.com/schemas/2007#playlistLink'/> + <category scheme='http://gdata.youtube.com/schemas/2007/tags.cat' term='engineers'/> + <category scheme='http://gdata.youtube.com/schemas/2007/tags.cat' term='google'/> + <title>From Google Engineers</title> + <summary>These videos are interviews straight from the horses mouth... the Google teams themselves.</summary> + <content type='application/atom+xml;type=feed' src='http://gdata.youtube.com/feeds/api/playlists/4AE5C0D23C2EB82D?v=2'/> + <link rel='related' type='application/atom+xml' href='http://gdata.youtube.com/feeds/api/users/googledevelopers?v=2'/> + <link rel='alternate' type='text/html' href='http://www.youtube.com/view_play_list?p=4AE5C0D23C2EB82D'/> + <link rel='self' type='application/atom+xml' href='http://gdata.youtube.com/feeds/api/users/GoogleDevelopers/playlists/4AE5C0D23C2EB82D?v=2'/> + <author> +<name>GoogleDevelopers</name> +<uri>http://gdata.youtube.com/feeds/api/users/googledevelopers</uri> +</author> + <yt:playlistId>4AE5C0D23C2EB82D</yt:playlistId> + <yt:countHint>5</yt:countHint> + </entry> + <entry gd:etag='W/"DUEDQn47eCp7ImA9WxRaEU0."'> + <id>tag:youtube.com,2008:user:GoogleDevelopers:playlist:2C63610CE65A92B9</id> + <published>2007-08-28T16:11:35.000Z</published> + <updated>2008-12-12T18:47:53.000Z</updated> + <category scheme='http://schemas.google.com/g/2005#kind' term='http://gdata.youtube.com/schemas/2007#playlistLink'/> + <category scheme='http://gdata.youtube.com/schemas/2007/tags.cat' term='googlecodeforeducators'/> + <category scheme='http://gdata.youtube.com/schemas/2007/tags.cat' term='googlecode'/> + <category scheme='http://gdata.youtube.com/schemas/2007/tags.cat' term='google'/> + <title>Google Code For Educators</title> + <summary>Videos from Google Code For Educators</summary> + <content type='application/atom+xml;type=feed' src='http://gdata.youtube.com/feeds/api/playlists/2C63610CE65A92B9?v=2'/> + <link rel='related' type='application/atom+xml' href='http://gdata.youtube.com/feeds/api/users/googledevelopers?v=2'/> + <link rel='alternate' type='text/html' href='http://www.youtube.com/view_play_list?p=2C63610CE65A92B9'/> + <link rel='self' type='application/atom+xml' href='http://gdata.youtube.com/feeds/api/users/GoogleDevelopers/playlists/2C63610CE65A92B9?v=2'/> + <author> +<name>GoogleDevelopers</name> +<uri>http://gdata.youtube.com/feeds/api/users/googledevelopers</uri> +</author> + <yt:playlistId>2C63610CE65A92B9</yt:playlistId> + <yt:countHint>5</yt:countHint> + </entry> + <entry gd:etag='W/"CE4CRH47eCp7ImA9WxRbF0o."'> + <id>tag:youtube.com,2008:user:GoogleDevelopers:playlist:D9740C0183D07BE6</id> + <published>2007-08-30T00:03:01.000Z</published> + <updated>2008-12-08T21:49:25.000Z</updated> + <category scheme='http://schemas.google.com/g/2005#kind' term='http://gdata.youtube.com/schemas/2007#playlistLink'/> + <category scheme='http://gdata.youtube.com/schemas/2007/tags.cat' term='offline'/> + <category scheme='http://gdata.youtube.com/schemas/2007/tags.cat' term='gears'/> + <category scheme='http://gdata.youtube.com/schemas/2007/tags.cat' term='google'/> + <title>Gears</title> + <summary>All videos related to Gears</summary> + <content type='application/atom+xml;type=feed' src='http://gdata.youtube.com/feeds/api/playlists/D9740C0183D07BE6?v=2'/> + <link rel='related' type='application/atom+xml' href='http://gdata.youtube.com/feeds/api/users/googledevelopers?v=2'/> + <link rel='alternate' type='text/html' href='http://www.youtube.com/view_play_list?p=D9740C0183D07BE6'/> + <link rel='self' type='application/atom+xml' href='http://gdata.youtube.com/feeds/api/users/GoogleDevelopers/playlists/D9740C0183D07BE6?v=2'/> + <author> +<name>GoogleDevelopers</name> +<uri>http://gdata.youtube.com/feeds/api/users/googledevelopers</uri> +</author> + <yt:playlistId>D9740C0183D07BE6</yt:playlistId> + <yt:countHint>10</yt:countHint> + </entry> + <entry gd:etag='W/"DUAFQn47eCp7ImA9WxRaEU0."'> + <id>tag:youtube.com,2008:user:GoogleDevelopers:playlist:3A74996A44A8FA83</id> + <published>2007-10-12T22:26:05.000Z</published> + <updated>2008-12-12T18:48:33.000Z</updated> +<category scheme='http://gdata.youtube.com/schemas/2007/tags.cat' term='googlesummerofcode'/> +<category scheme='http://schemas.google.com/g/2005#kind' term='http://gdata.youtube.com/schemas/2007#playlistLink'/> +<category scheme='http://gdata.youtube.com/schemas/2007/tags.cat' term='summerofcode'/> +<category scheme='http://gdata.youtube.com/schemas/2007/tags.cat' term='google'/> +<title>Google Summer of Code</title> +<summary>The Google Summer of Code is an annual program in which Google awards stipends to students who successfully complete a free software / open-source coding project during the summer. This playlist contains videos that touch on the Summer of Code.</summary> +<content type='application/atom+xml;type=feed' src='http://gdata.youtube.com/feeds/api/playlists/3A74996A44A8FA83?v=2'/> +<link rel='related' type='application/atom+xml' href='http://gdata.youtube.com/feeds/api/users/googledevelopers?v=2'/> +<link rel='alternate' type='text/html' href='http://www.youtube.com/view_play_list?p=3A74996A44A8FA83'/> +<link rel='self' type='application/atom+xml' href='http://gdata.youtube.com/feeds/api/users/GoogleDevelopers/playlists/3A74996A44A8FA83?v=2'/> +<author> +<name>GoogleDevelopers</name> +<uri>http://gdata.youtube.com/feeds/api/users/googledevelopers</uri> +</author> +<yt:playlistId>3A74996A44A8FA83</yt:playlistId> +<yt:countHint>2</yt:countHint> +</entry> +<entry gd:etag='W/"A0AMRX47eCp7ImA9WxRbGU0."'> +<id>tag:youtube.com,2008:user:GoogleDevelopers:playlist:0559F3902CC876AE</id> +<published>2007-10-15T22:04:22.000Z</published> +<updated>2008-12-10T11:49:44.000Z</updated> +<category scheme='http://gdata.youtube.com/schemas/2007/tags.cat' term='mashup'/> +<category scheme='http://schemas.google.com/g/2005#kind' term='http://gdata.youtube.com/schemas/2007#playlistLink'/> +<category scheme='http://gdata.youtube.com/schemas/2007/tags.cat' term='editor'/> +<category scheme='http://gdata.youtube.com/schemas/2007/tags.cat' term='gme'/> +<category scheme='http://gdata.youtube.com/schemas/2007/tags.cat' term='google'/> +<title>Google Mashup Editor</title> +<summary>Videos related to the Google Mashup Editor</summary> +<content type='application/atom+xml;type=feed' src='http://gdata.youtube.com/feeds/api/playlists/0559F3902CC876AE?v=2'/> +<link rel='related' type='application/atom+xml' href='http://gdata.youtube.com/feeds/api/users/googledevelopers?v=2'/> +<link rel='alternate' type='text/html' href='http://www.youtube.com/view_play_list?p=0559F3902CC876AE'/> +<link rel='self' type='application/atom+xml' href='http://gdata.youtube.com/feeds/api/users/GoogleDevelopers/playlists/0559F3902CC876AE?v=2'/> +<author> +<name>GoogleDevelopers</name> +<uri>http://gdata.youtube.com/feeds/api/users/googledevelopers</uri> +</author> +<yt:playlistId>0559F3902CC876AE</yt:playlistId> +<yt:countHint>2</yt:countHint> +</entry> +<entry gd:etag='W/"A0IMQH47eCp7ImA9WxRbFkg."'> +<id>tag:youtube.com,2008:user:GoogleDevelopers:playlist:327240CFB48BEC5D</id> +<published>2007-10-15T22:16:04.000Z</published> +<updated>2008-12-07T14:19:41.000Z</updated> +<category scheme='http://gdata.youtube.com/schemas/2007/tags.cat' term='widgets'/> +<category scheme='http://gdata.youtube.com/schemas/2007/tags.cat' term='components'/> +<category scheme='http://schemas.google.com/g/2005#kind' term='http://gdata.youtube.com/schemas/2007#playlistLink'/> +<category scheme='http://gdata.youtube.com/schemas/2007/tags.cat' term='google'/> +<category scheme='http://gdata.youtube.com/schemas/2007/tags.cat' term='gadgets'/> +<title>Google Gadgets</title> +<summary>Content on all types of gadgets (desktop, igoogle, and embedable!)</summary> +<content type='application/atom+xml;type=feed' src='http://gdata.youtube.com/feeds/api/playlists/327240CFB48BEC5D?v=2'/> +<link rel='related' type='application/atom+xml' href='http://gdata.youtube.com/feeds/api/users/googledevelopers?v=2'/> +<link rel='alternate' type='text/html' href='http://www.youtube.com/view_play_list?p=327240CFB48BEC5D'/> +<link rel='self' type='application/atom+xml' href='http://gdata.youtube.com/feeds/api/users/GoogleDevelopers/playlists/327240CFB48BEC5D?v=2'/> +<author> +<name>GoogleDevelopers</name> +<uri>http://gdata.youtube.com/feeds/api/users/googledevelopers</uri> +</author> +<yt:playlistId>327240CFB48BEC5D</yt:playlistId> +<yt:countHint>4</yt:countHint> +</entry> +<entry gd:etag='W/"AkENRn47eCp7ImA9WxRbGUw."'> +<id>tag:youtube.com,2008:user:GoogleDevelopers:playlist:EC7C82F4E9ACC351</id> +<published>2007-10-15T22:17:03.000Z</published> +<updated>2008-12-10T14:18:17.000Z</updated> +<category scheme='http://gdata.youtube.com/schemas/2007/tags.cat' term='earth'/> +<category scheme='http://schemas.google.com/g/2005#kind' term='http://gdata.youtube.com/schemas/2007#playlistLink'/> +<category scheme='http://gdata.youtube.com/schemas/2007/tags.cat' term='maps'/> +<category scheme='http://gdata.youtube.com/schemas/2007/tags.cat' term='kml'/> +<category scheme='http://gdata.youtube.com/schemas/2007/tags.cat' term='geo'/> +<category scheme='http://gdata.youtube.com/schemas/2007/tags.cat' term='google'/> +<title>Google Maps and Earth</title> +<summary>All things Geo</summary> +<content type='application/atom+xml;type=feed' src='http://gdata.youtube.com/feeds/api/playlists/EC7C82F4E9ACC351?v=2'/> +<link rel='related' type='application/atom+xml' href='http://gdata.youtube.com/feeds/api/users/googledevelopers?v=2'/> +<link rel='alternate' type='text/html' href='http://www.youtube.com/view_play_list?p=EC7C82F4E9ACC351'/> +<link rel='self' type='application/atom+xml' href='http://gdata.youtube.com/feeds/api/users/GoogleDevelopers/playlists/EC7C82F4E9ACC351?v=2'/> +<author> +<name>GoogleDevelopers</name> +<uri>http://gdata.youtube.com/feeds/api/users/googledevelopers</uri> +</author> +<yt:playlistId>EC7C82F4E9ACC351</yt:playlistId> +<yt:countHint>16</yt:countHint> +</entry> +<entry gd:etag='W/"DE8GQ347eCp7ImA9WxRbFE8."'> +<id>tag:youtube.com,2008:user:GoogleDevelopers:playlist:968FABA11F2EDEA1</id> +<published>2007-10-15T22:18:00.000Z</published> +<updated>2008-12-04T21:40:22.000Z</updated> +<category scheme='http://gdata.youtube.com/schemas/2007/tags.cat' term='toolkit'/> +<category scheme='http://schemas.google.com/g/2005#kind' term='http://gdata.youtube.com/schemas/2007#playlistLink'/> +<category scheme='http://gdata.youtube.com/schemas/2007/tags.cat' term='ajax'/> +<category scheme='http://gdata.youtube.com/schemas/2007/tags.cat' term='gwt'/> +<category scheme='http://gdata.youtube.com/schemas/2007/tags.cat' term='web'/> +<category scheme='http://gdata.youtube.com/schemas/2007/tags.cat' term='google'/> +<title>Google Web Toolkit</title> +<summary>Content on the Google Web Toolkit</summary> +<content type='application/atom+xml;type=feed' src='http://gdata.youtube.com/feeds/api/playlists/968FABA11F2EDEA1?v=2'/> +<link rel='related' type='application/atom+xml' href='http://gdata.youtube.com/feeds/api/users/googledevelopers?v=2'/> +<link rel='alternate' type='text/html' href='http://www.youtube.com/view_play_list?p=968FABA11F2EDEA1'/> +<link rel='self' type='application/atom+xml' href='http://gdata.youtube.com/feeds/api/users/GoogleDevelopers/playlists/968FABA11F2EDEA1?v=2'/> +<author> +<name>GoogleDevelopers</name> +<uri>http://gdata.youtube.com/feeds/api/users/googledevelopers</uri> +</author> +<yt:playlistId>968FABA11F2EDEA1</yt:playlistId> +<yt:countHint>34</yt:countHint> +</entry> +<entry gd:etag='W/"Ck8EQX47eCp7ImA9WxRaEU0."'> +<id>tag:youtube.com,2008:user:GoogleDevelopers:playlist:E6DE6EC9A373AF57</id> +<published>2007-10-15T22:20:18.000Z</published> +<updated>2008-12-12T16:53:20.000Z</updated> +<category scheme='http://gdata.youtube.com/schemas/2007/tags.cat' term='gdata'/> +<category scheme='http://schemas.google.com/g/2005#kind' term='http://gdata.youtube.com/schemas/2007#playlistLink'/> +<category scheme='http://gdata.youtube.com/schemas/2007/tags.cat' term='apis'/> +<category scheme='http://gdata.youtube.com/schemas/2007/tags.cat' term='data'/> +<category scheme='http://gdata.youtube.com/schemas/2007/tags.cat' term='youtubeapis'/> +<category scheme='http://gdata.youtube.com/schemas/2007/tags.cat' term='google'/> +<title>Google Data APIs</title> +<summary>All things related to Google Data APIs</summary> +<content type='application/atom+xml;type=feed' src='http://gdata.youtube.com/feeds/api/playlists/E6DE6EC9A373AF57?v=2'/> +<link rel='related' type='application/atom+xml' href='http://gdata.youtube.com/feeds/api/users/googledevelopers?v=2'/> +<link rel='alternate' type='text/html' href='http://www.youtube.com/view_play_list?p=E6DE6EC9A373AF57'/> +<link rel='self' type='application/atom+xml' href='http://gdata.youtube.com/feeds/api/users/GoogleDevelopers/playlists/E6DE6EC9A373AF57?v=2'/> +<author> +<name>GoogleDevelopers</name> +<uri>http://gdata.youtube.com/feeds/api/users/googledevelopers</uri> +</author> +<yt:playlistId>E6DE6EC9A373AF57</yt:playlistId> +<yt:countHint>24</yt:countHint> +</entry> +<entry gd:etag='W/"C0AERX47eCp7ImA9WxRaEUw."'> +<id>tag:youtube.com,2008:user:GoogleDevelopers:playlist:CCAE880913CAFE9B</id> +<published>2007-10-15T22:24:17.000Z</published> +<updated>2008-12-12T19:55:04.000Z</updated> +<category scheme='http://schemas.google.com/g/2005#kind' term='http://gdata.youtube.com/schemas/2007#playlistLink'/> +<category scheme='http://gdata.youtube.com/schemas/2007/tags.cat' term='adsense'/> +<category scheme='http://gdata.youtube.com/schemas/2007/tags.cat' term='advertising'/> +<category scheme='http://gdata.youtube.com/schemas/2007/tags.cat' term='ads'/> +<category scheme='http://gdata.youtube.com/schemas/2007/tags.cat' term='google'/> +<title>AdSense APIs</title> +<summary>Content related to our ad APIs</summary> +<content type='application/atom+xml;type=feed' src='http://gdata.youtube.com/feeds/api/playlists/CCAE880913CAFE9B?v=2'/> +<link rel='related' type='application/atom+xml' href='http://gdata.youtube.com/feeds/api/users/googledevelopers?v=2'/> +<link rel='alternate' type='text/html' href='http://www.youtube.com/view_play_list?p=CCAE880913CAFE9B'/> +<link rel='self' type='application/atom+xml' href='http://gdata.youtube.com/feeds/api/users/GoogleDevelopers/playlists/CCAE880913CAFE9B?v=2'/> +<author> +<name>GoogleDevelopers</name> +<uri>http://gdata.youtube.com/feeds/api/users/googledevelopers</uri> +</author> +<yt:playlistId>CCAE880913CAFE9B</yt:playlistId> +<yt:countHint>1</yt:countHint> +</entry> +<entry gd:etag='W/"C0IBQ347eCp7ImA9WxRbF0Q."'> +<id>tag:youtube.com,2008:user:GoogleDevelopers:playlist:72CF07D200AA2AFA</id> +<published>2007-10-17T18:36:51.000Z</published> +<updated>2008-12-09T02:59:12.000Z</updated> +<category scheme='http://gdata.youtube.com/schemas/2007/tags.cat' term='youtube'/> +<category scheme='http://schemas.google.com/g/2005#kind' term='http://gdata.youtube.com/schemas/2007#playlistLink'/> +<category scheme='http://gdata.youtube.com/schemas/2007/tags.cat' term='apis'/> +<title>YouTube</title> +<summary>Content related to YouTube APIs</summary> +<content type='application/atom+xml;type=feed' src='http://gdata.youtube.com/feeds/api/playlists/72CF07D200AA2AFA?v=2'/> +<link rel='related' type='application/atom+xml' href='http://gdata.youtube.com/feeds/api/users/googledevelopers?v=2'/> +<link rel='alternate' type='text/html' href='http://www.youtube.com/view_play_list?p=72CF07D200AA2AFA'/> +<link rel='self' type='application/atom+xml' href='http://gdata.youtube.com/feeds/api/users/GoogleDevelopers/playlists/72CF07D200AA2AFA?v=2'/> +<author> +<name>GoogleDevelopers</name> +<uri>http://gdata.youtube.com/feeds/api/users/googledevelopers</uri> +</author> +<yt:playlistId>72CF07D200AA2AFA</yt:playlistId> +<yt:countHint>18</yt:countHint> +</entry> +<entry gd:etag='W/"CE4DQ347eCp7ImA9WxRbGU0."'> +<id>tag:youtube.com,2008:user:GoogleDevelopers:playlist:BC2ECF70FE499266</id> +<published>2007-10-17T18:38:13.000Z</published> +<updated>2008-12-10T09:56:12.000Z</updated> +<category scheme='http://schemas.google.com/g/2005#kind' term='http://gdata.youtube.com/schemas/2007#playlistLink'/> +<category scheme='http://gdata.youtube.com/schemas/2007/tags.cat' term='opensource'/> +<title>Open Source at Google</title> +<summary>Content related to open source.</summary> +<content type='application/atom+xml;type=feed' src='http://gdata.youtube.com/feeds/api/playlists/BC2ECF70FE499266?v=2'/> +<link rel='related' type='application/atom+xml' href='http://gdata.youtube.com/feeds/api/users/googledevelopers?v=2'/> +<link rel='alternate' type='text/html' href='http://www.youtube.com/view_play_list?p=BC2ECF70FE499266'/> +<link rel='self' type='application/atom+xml' href='http://gdata.youtube.com/feeds/api/users/GoogleDevelopers/playlists/BC2ECF70FE499266?v=2'/> +<author> +<name>GoogleDevelopers</name> +<uri>http://gdata.youtube.com/feeds/api/users/googledevelopers</uri> +</author> +<yt:playlistId>BC2ECF70FE499266</yt:playlistId> +<yt:countHint>8</yt:countHint> +</entry> +<entry gd:etag='W/"CkYEQX47eCp7ImA9WxRbEEs."'> +<id>tag:youtube.com,2008:user:GoogleDevelopers:playlist:79B6967AC7A09B42</id> +<published>2007-10-17T18:40:07.000Z</published> +<updated>2008-11-30T15:48:20.000Z</updated> +<category scheme='http://schemas.google.com/g/2005#kind' term='http://gdata.youtube.com/schemas/2007#playlistLink'/> +<category scheme='http://gdata.youtube.com/schemas/2007/tags.cat' term='search'/> +<category scheme='http://gdata.youtube.com/schemas/2007/tags.cat' term='apis'/> +<title>Google Search</title> +<summary>Content released to Search APIs</summary> +<content type='application/atom+xml;type=feed' src='http://gdata.youtube.com/feeds/api/playlists/79B6967AC7A09B42?v=2'/> +<link rel='related' type='application/atom+xml' href='http://gdata.youtube.com/feeds/api/users/googledevelopers?v=2'/> +<link rel='alternate' type='text/html' href='http://www.youtube.com/view_play_list?p=79B6967AC7A09B42'/> +<link rel='self' type='application/atom+xml' href='http://gdata.youtube.com/feeds/api/users/GoogleDevelopers/playlists/79B6967AC7A09B42?v=2'/> +<author> +<name>GoogleDevelopers</name> +<uri>http://gdata.youtube.com/feeds/api/users/googledevelopers</uri> +</author> +<yt:playlistId>79B6967AC7A09B42</yt:playlistId> +<yt:countHint>2</yt:countHint> +</entry> +<entry gd:etag='W/"DEUGQX47eCp7ImA9WxRaEE0."'> +<id>tag:youtube.com,2008:user:GoogleDevelopers:playlist:DA15B72EA2633F26</id> +<published>2007-10-17T18:41:25.000Z</published> +<updated>2008-12-11T14:37:00.000Z</updated> +<category scheme='http://schemas.google.com/g/2005#kind' term='http://gdata.youtube.com/schemas/2007#playlistLink'/> +<category scheme='http://gdata.youtube.com/schemas/2007/tags.cat' term='ajax'/> +<category scheme='http://gdata.youtube.com/schemas/2007/tags.cat' term='apis'/> +<title>Google AJAX APIs</title> +<summary>Content related to the various Ajax APIs</summary> +<content type='application/atom+xml;type=feed' src='http://gdata.youtube.com/feeds/api/playlists/DA15B72EA2633F26?v=2'/> +<link rel='related' type='application/atom+xml' href='http://gdata.youtube.com/feeds/api/users/googledevelopers?v=2'/> +<link rel='alternate' type='text/html' href='http://www.youtube.com/view_play_list?p=DA15B72EA2633F26'/> +<link rel='self' type='application/atom+xml' href='http://gdata.youtube.com/feeds/api/users/GoogleDevelopers/playlists/DA15B72EA2633F26?v=2'/> +<author> +<name>GoogleDevelopers</name> +<uri>http://gdata.youtube.com/feeds/api/users/googledevelopers</uri> +</author> +<yt:playlistId>DA15B72EA2633F26</yt:playlistId> +<yt:countHint>5</yt:countHint> +</entry> +<entry gd:etag='W/"DUEDRH47eCp7ImA9WxRaEU0."'> +<id>tag:youtube.com,2008:user:GoogleDevelopers:playlist:18E9C145F20ED640</id> +<published>2007-10-17T18:42:21.000Z</published> +<updated>2008-12-12T18:47:55.000Z</updated> +<category scheme='http://schemas.google.com/g/2005#kind' term='http://gdata.youtube.com/schemas/2007#playlistLink'/> +<category scheme='http://gdata.youtube.com/schemas/2007/tags.cat' term='mobile'/> +<title>Google Mobile</title> +<summary>Content related to mobile development and Google</summary> +<content type='application/atom+xml;type=feed' src='http://gdata.youtube.com/feeds/api/playlists/18E9C145F20ED640?v=2'/> +<link rel='related' type='application/atom+xml' href='http://gdata.youtube.com/feeds/api/users/googledevelopers?v=2'/> +<link rel='alternate' type='text/html' href='http://www.youtube.com/view_play_list?p=18E9C145F20ED640'/> +<link rel='self' type='application/atom+xml' href='http://gdata.youtube.com/feeds/api/users/GoogleDevelopers/playlists/18E9C145F20ED640?v=2'/> +<author> +<name>GoogleDevelopers</name> +<uri>http://gdata.youtube.com/feeds/api/users/googledevelopers</uri> +</author> +<yt:playlistId>18E9C145F20ED640</yt:playlistId> +<yt:countHint>1</yt:countHint> +</entry> +<entry gd:etag='W/"DUAFR347eCp7ImA9WxRaEU0."'> +<id>tag:youtube.com,2008:user:GoogleDevelopers:playlist:74D78B3235613DCB</id> +<published>2007-10-17T18:44:32.000Z</published> +<updated>2008-12-12T18:48:36.000Z</updated> +<category scheme='http://schemas.google.com/g/2005#kind' term='http://gdata.youtube.com/schemas/2007#playlistLink'/> +<category scheme='http://gdata.youtube.com/schemas/2007/tags.cat' term='gmail'/> +<title>Gmail</title> +<summary>Content related to the Gmail product.</summary> +<content type='application/atom+xml;type=feed' src='http://gdata.youtube.com/feeds/api/playlists/74D78B3235613DCB?v=2'/> +<link rel='related' type='application/atom+xml' href='http://gdata.youtube.com/feeds/api/users/googledevelopers?v=2'/> +<link rel='alternate' type='text/html' href='http://www.youtube.com/view_play_list?p=74D78B3235613DCB'/> +<link rel='self' type='application/atom+xml' href='http://gdata.youtube.com/feeds/api/users/GoogleDevelopers/playlists/74D78B3235613DCB?v=2'/> +<author> +<name>GoogleDevelopers</name> +<uri>http://gdata.youtube.com/feeds/api/users/googledevelopers</uri> +</author> +<yt:playlistId>74D78B3235613DCB</yt:playlistId> +<yt:countHint>1</yt:countHint> +</entry> +<entry gd:etag='W/"DUAGQX47eCp7ImA9WxRaEU0."'> +<id>tag:youtube.com,2008:user:GoogleDevelopers:playlist:7F19205748B0A698</id> +<published>2007-10-19T18:45:08.000Z</published> +<updated>2008-12-12T18:48:40.000Z</updated> +<category scheme='http://schemas.google.com/g/2005#kind' term='http://gdata.youtube.com/schemas/2007#playlistLink'/> +<category scheme='http://gdata.youtube.com/schemas/2007/tags.cat' term='api'/> +<category scheme='http://gdata.youtube.com/schemas/2007/tags.cat' term='base'/> +<category scheme='http://gdata.youtube.com/schemas/2007/tags.cat' term='googlebase'/> +<title>Google Base</title> +<summary>Content related to the Google Base product</summary> +<content type='application/atom+xml;type=feed' src='http://gdata.youtube.com/feeds/api/playlists/7F19205748B0A698?v=2'/> +<link rel='related' type='application/atom+xml' href='http://gdata.youtube.com/feeds/api/users/googledevelopers?v=2'/> +<link rel='alternate' type='text/html' href='http://www.youtube.com/view_play_list?p=7F19205748B0A698'/> +<link rel='self' type='application/atom+xml' href='http://gdata.youtube.com/feeds/api/users/GoogleDevelopers/playlists/7F19205748B0A698?v=2'/> +<author> +<name>GoogleDevelopers</name> +<uri>http://gdata.youtube.com/feeds/api/users/googledevelopers</uri> +</author> +<yt:playlistId>7F19205748B0A698</yt:playlistId> +<yt:countHint>2</yt:countHint> +</entry> +<entry gd:etag='W/"D0MHR347eCp7ImA9WxRbE08."'> +<id>tag:youtube.com,2008:user:GoogleDevelopers:playlist:59127FA00275EB77</id> +<published>2007-10-29T19:26:57.000Z</published> +<updated>2008-12-03T17:30:36.000Z</updated> +<category scheme='http://schemas.google.com/g/2005#kind' term='http://gdata.youtube.com/schemas/2007#playlistLink'/> +<category scheme='http://gdata.youtube.com/schemas/2007/tags.cat' term='feedburner'/> +<title>FeedBurner</title> +<summary>FeedBurner API videos</summary> +<content type='application/atom+xml;type=feed' src='http://gdata.youtube.com/feeds/api/playlists/59127FA00275EB77?v=2'/> +<link rel='related' type='application/atom+xml' href='http://gdata.youtube.com/feeds/api/users/googledevelopers?v=2'/> +<link rel='alternate' type='text/html' href='http://www.youtube.com/view_play_list?p=59127FA00275EB77'/> +<link rel='self' type='application/atom+xml' href='http://gdata.youtube.com/feeds/api/users/GoogleDevelopers/playlists/59127FA00275EB77?v=2'/> +<author> +<name>GoogleDevelopers</name> +<uri>http://gdata.youtube.com/feeds/api/users/googledevelopers</uri> +</author> +<yt:playlistId>59127FA00275EB77</yt:playlistId> +<yt:countHint>1</yt:countHint> +</entry> +<entry gd:etag='W/"A0QGSX47eCp7ImA9WxRbGUU."'> +<id>tag:youtube.com,2008:user:GoogleDevelopers:playlist:A31A1098FDE85663</id> +<published>2007-10-29T23:52:25.000Z</published> +<updated>2008-12-11T09:55:28.000Z</updated> +<category scheme='http://schemas.google.com/g/2005#kind' term='http://gdata.youtube.com/schemas/2007#playlistLink'/> +<category scheme='http://gdata.youtube.com/schemas/2007/tags.cat' term='apps'/> +<title>Google Apps</title> +<summary>Google Apps User Videos</summary> +<content type='application/atom+xml;type=feed' src='http://gdata.youtube.com/feeds/api/playlists/A31A1098FDE85663?v=2'/> +<link rel='related' type='application/atom+xml' href='http://gdata.youtube.com/feeds/api/users/googledevelopers?v=2'/> +<link rel='alternate' type='text/html' href='http://www.youtube.com/view_play_list?p=A31A1098FDE85663'/> +<link rel='self' type='application/atom+xml' href='http://gdata.youtube.com/feeds/api/users/GoogleDevelopers/playlists/A31A1098FDE85663?v=2'/> +<author> +<name>GoogleDevelopers</name> +<uri>http://gdata.youtube.com/feeds/api/users/googledevelopers</uri> +</author> +<yt:playlistId>A31A1098FDE85663</yt:playlistId> +<yt:countHint>3</yt:countHint> +</entry> +<entry gd:etag='W/"DEACQ347eCp7ImA9WxRbFE8."'> +<id>tag:youtube.com,2008:user:GoogleDevelopers:playlist:CF46C525B4C90C17</id> +<published>2007-10-30T01:19:18.000Z</published> +<updated>2008-12-04T21:39:22.000Z</updated> +<category scheme='http://schemas.google.com/g/2005#kind' term='http://gdata.youtube.com/schemas/2007#playlistLink'/> +<category scheme='http://gdata.youtube.com/schemas/2007/tags.cat' term='ajax'/> +<category scheme='http://gdata.youtube.com/schemas/2007/tags.cat' term='feed'/> +<title>Google AJAX Feed API</title> +<summary>AJAX Feed API</summary> +<content type='application/atom+xml;type=feed' src='http://gdata.youtube.com/feeds/api/playlists/CF46C525B4C90C17?v=2'/> +<link rel='related' type='application/atom+xml' href='http://gdata.youtube.com/feeds/api/users/googledevelopers?v=2'/> +<link rel='alternate' type='text/html' href='http://www.youtube.com/view_play_list?p=CF46C525B4C90C17'/> +<link rel='self' type='application/atom+xml' href='http://gdata.youtube.com/feeds/api/users/GoogleDevelopers/playlists/CF46C525B4C90C17?v=2'/> +<author> +<name>GoogleDevelopers</name> +<uri>http://gdata.youtube.com/feeds/api/users/googledevelopers</uri> +</author> +<yt:playlistId>CF46C525B4C90C17</yt:playlistId> +<yt:countHint>2</yt:countHint> +</entry> +<entry gd:etag='W/"DEEMR347eCp7ImA9WxRaEEU."'> +<id>tag:youtube.com,2008:user:GoogleDevelopers:playlist:5F0F046F77B7B62A</id> +<published>2007-11-02T15:29:38.000Z</published> +<updated>2008-12-12T12:58:06.000Z</updated> +<category scheme='http://schemas.google.com/g/2005#kind' term='http://gdata.youtube.com/schemas/2007#playlistLink'/> +<category scheme='http://gdata.youtube.com/schemas/2007/tags.cat' term='opensocial'/> +<title>OpenSocial</title> +<summary>Tutorials on how to build OpenSocial applications, videos from our Campfire One launch as well as interviews with some of our partners: Slide, Ning, Hi5, Plaxo, Flixster, iLike, Salesforce, LinkedIn, RockYou and more.</summary> +<content type='application/atom+xml;type=feed' src='http://gdata.youtube.com/feeds/api/playlists/5F0F046F77B7B62A?v=2'/> +<link rel='related' type='application/atom+xml' href='http://gdata.youtube.com/feeds/api/users/googledevelopers?v=2'/> +<link rel='alternate' type='text/html' href='http://www.youtube.com/view_play_list?p=5F0F046F77B7B62A'/> +<link rel='self' type='application/atom+xml' href='http://gdata.youtube.com/feeds/api/users/GoogleDevelopers/playlists/5F0F046F77B7B62A?v=2'/> +<author> +<name>GoogleDevelopers</name> +<uri>http://gdata.youtube.com/feeds/api/users/googledevelopers</uri> +</author> +<yt:playlistId>5F0F046F77B7B62A</yt:playlistId> +<yt:countHint>48</yt:countHint> +</entry> +<entry gd:etag='W/"AkUAQH47eCp7ImA9WxRaEU0."'> +<id>tag:youtube.com,2008:user:GoogleDevelopers:playlist:586D322B5E2764CF</id> +<published>2007-11-13T19:41:21.000Z</published> +<updated>2008-12-12T18:57:21.000Z</updated> +<category scheme='http://gdata.youtube.com/schemas/2007/tags.cat' term='phone'/> +<category scheme='http://gdata.youtube.com/schemas/2007/tags.cat' term='alliance'/> +<category scheme='http://schemas.google.com/g/2005#kind' term='http://gdata.youtube.com/schemas/2007#playlistLink'/> +<category scheme='http://gdata.youtube.com/schemas/2007/tags.cat' term='handset'/> +<category scheme='http://gdata.youtube.com/schemas/2007/tags.cat' term='android'/> +<category scheme='http://gdata.youtube.com/schemas/2007/tags.cat' term='developers'/> +<category scheme='http://gdata.youtube.com/schemas/2007/tags.cat' term='mobile'/> +<category scheme='http://gdata.youtube.com/schemas/2007/tags.cat' term='google'/> +<title>Android</title> +<summary>Demos and tutorials about the new Android platform.</summary> +<content type='application/atom+xml;type=feed' src='http://gdata.youtube.com/feeds/api/playlists/586D322B5E2764CF?v=2'/> +<link rel='related' type='application/atom+xml' href='http://gdata.youtube.com/feeds/api/users/googledevelopers?v=2'/> +<link rel='alternate' type='text/html' href='http://www.youtube.com/view_play_list?p=586D322B5E2764CF'/> +<link rel='self' type='application/atom+xml' href='http://gdata.youtube.com/feeds/api/users/GoogleDevelopers/playlists/586D322B5E2764CF?v=2'/> +<author> +<name>GoogleDevelopers</name> +<uri>http://gdata.youtube.com/feeds/api/users/googledevelopers</uri> +</author> +<yt:playlistId>586D322B5E2764CF</yt:playlistId> +<yt:countHint>32</yt:countHint> +</entry> +<entry gd:etag='W/"DUEDQ347eCp7ImA9WxRaEU0."'> +<id>tag:youtube.com,2008:user:GoogleDevelopers:playlist:8B1C566EDD2DCB77</id> +<published>2007-11-28T21:45:37.000Z</published> +<updated>2008-12-12T18:47:52.000Z</updated> +<category scheme='http://gdata.youtube.com/schemas/2007/tags.cat' term='Repor'/> +<category scheme='http://gdata.youtube.com/schemas/2007/tags.cat' term='Ning'/> +<category scheme='http://gdata.youtube.com/schemas/2007/tags.cat' term='E-junkie'/> +<category scheme='http://schemas.google.com/g/2005#kind' term='http://gdata.youtube.com/schemas/2007#playlistLink'/> +<category scheme='http://gdata.youtube.com/schemas/2007/tags.cat' term='Flixster'/> +<category scheme='http://gdata.youtube.com/schemas/2007/tags.cat' term='Plaxo'/> +<category scheme='http://gdata.youtube.com/schemas/2007/tags.cat' term='Bleacher'/> +<category scheme='http://gdata.youtube.com/schemas/2007/tags.cat' term='iLike'/> +<category scheme='http://gdata.youtube.com/schemas/2007/tags.cat' term='Qloud'/> +<category scheme='http://gdata.youtube.com/schemas/2007/tags.cat' term='FotoFlexer'/> +<category scheme='http://gdata.youtube.com/schemas/2007/tags.cat' term='interviews'/> +<category scheme='http://gdata.youtube.com/schemas/2007/tags.cat' term='LinkedIn'/> +<category scheme='http://gdata.youtube.com/schemas/2007/tags.cat' term='Hi5'/> +<category scheme='http://gdata.youtube.com/schemas/2007/tags.cat' term='opensocial'/> +<category scheme='http://gdata.youtube.com/schemas/2007/tags.cat' term='Shelfari'/> +<category scheme='http://gdata.youtube.com/schemas/2007/tags.cat' term='Chronus'/> +<title>OpenSocial Interviews</title> +<summary>We brought in a bunch of developers and partners to talk about OpenSocial and demo their stuff :) Big Thanks to Shelfari, E-junkie, Ning, Flixster, Plaxo, iLike, FotoFlexer, LinkedIn, Hi5, Qloud, Bleacher Report, Slide, RockYou, Oberon, Chronus, and Hungry Machine!</summary> +<content type='application/atom+xml;type=feed' src='http://gdata.youtube.com/feeds/api/playlists/8B1C566EDD2DCB77?v=2'/> +<link rel='related' type='application/atom+xml' href='http://gdata.youtube.com/feeds/api/users/googledevelopers?v=2'/> +<link rel='alternate' type='text/html' href='http://www.youtube.com/view_play_list?p=8B1C566EDD2DCB77'/> +<link rel='self' type='application/atom+xml' href='http://gdata.youtube.com/feeds/api/users/GoogleDevelopers/playlists/8B1C566EDD2DCB77?v=2'/> +<author> +<name>GoogleDevelopers</name> +<uri>http://gdata.youtube.com/feeds/api/users/googledevelopers</uri> +</author> +<yt:playlistId>8B1C566EDD2DCB77</yt:playlistId> +<yt:countHint>16</yt:countHint> +</entry> +<entry gd:etag='W/"DUAFR347eCp7ImA9WxRaEU0."'> +<id>tag:youtube.com,2008:user:GoogleDevelopers:playlist:8F1A9670BA923DF3</id> +<published>2007-12-04T18:07:07.000Z</published> +<updated>2008-12-12T18:48:36.000Z</updated> +<category scheme='http://schemas.google.com/g/2005#kind' term='http://gdata.youtube.com/schemas/2007#playlistLink'/> +<category scheme='http://gdata.youtube.com/schemas/2007/tags.cat' term='googlemac'/> +<category scheme='http://gdata.youtube.com/schemas/2007/tags.cat' term='opensource'/> +<category scheme='http://gdata.youtube.com/schemas/2007/tags.cat' term='google'/> +<title>Google Mac</title> +<summary>Content related to Google Mac development, including the Google Mac Playground.</summary> +<content type='application/atom+xml;type=feed' src='http://gdata.youtube.com/feeds/api/playlists/8F1A9670BA923DF3?v=2'/> +<link rel='related' type='application/atom+xml' href='http://gdata.youtube.com/feeds/api/users/googledevelopers?v=2'/> +<link rel='alternate' type='text/html' href='http://www.youtube.com/view_play_list?p=8F1A9670BA923DF3'/> +<link rel='self' type='application/atom+xml' href='http://gdata.youtube.com/feeds/api/users/GoogleDevelopers/playlists/8F1A9670BA923DF3?v=2'/> +<author> +<name>GoogleDevelopers</name> +<uri>http://gdata.youtube.com/feeds/api/users/googledevelopers</uri> +</author> +<yt:playlistId>8F1A9670BA923DF3</yt:playlistId> +<yt:countHint>3</yt:countHint> +</entry> +</feed>
\ No newline at end of file diff --git a/zend/tests/Zend/Gdata/YouTube/_files/PlaylistListVideoEntryDataSampleV2.xml b/zend/tests/Zend/Gdata/YouTube/_files/PlaylistListVideoEntryDataSampleV2.xml new file mode 100644 index 0000000..de65064 --- /dev/null +++ b/zend/tests/Zend/Gdata/YouTube/_files/PlaylistListVideoEntryDataSampleV2.xml @@ -0,0 +1,66 @@ +<?xml version='1.0' encoding='UTF-8'?> +<feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearch/1.1/' xmlns:gml='http://www.opengis.net/gml' xmlns:georss='http://www.georss.org/georss' xmlns:media='http://search.yahoo.com/mrss/' xmlns:batch='http://schemas.google.com/gdata/batch' xmlns:yt='http://gdata.youtube.com/schemas/2007' xmlns:gd='http://schemas.google.com/g/2005' gd:etag='W/"C0AERX47eCp7ImA9WxRaEUw."'> + <id>tag:youtube.com,2008:playlist:CCAE880913CAFE9B</id> + <updated>2008-12-12T19:55:04.000Z</updated> + <category scheme='http://schemas.google.com/g/2005#kind' term='http://gdata.youtube.com/schemas/2007#playlist'/> + <category scheme='http://gdata.youtube.com/schemas/2007/tags.cat' term='adsense'/> + <category scheme='http://gdata.youtube.com/schemas/2007/tags.cat' term='advertising'/> + <category scheme='http://gdata.youtube.com/schemas/2007/tags.cat' term='ads'/> + <category scheme='http://gdata.youtube.com/schemas/2007/tags.cat' term='google'/> + <title>AdSense APIs</title> + <subtitle>Content related to our ad APIs</subtitle> + <logo>http://www.youtube.com/img/pic_youtubelogo_123x63.gif</logo> + <link rel='alternate' type='text/html' href='http://www.youtube.com/view_play_list?p=CCAE880913CAFE9B'/> + <link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://gdata.youtube.com/feeds/api/playlists/CCAE880913CAFE9B?v=2'/> + <link rel='http://schemas.google.com/g/2005#batch' type='application/atom+xml' href='http://gdata.youtube.com/feeds/api/playlists/CCAE880913CAFE9B/batch?v=2'/><link rel='self' type='application/atom+xml' href='http://gdata.youtube.com/feeds/api/playlists/CCAE880913CAFE9B?start-index=1&max-results=25&v=2'/> + <link rel='service' type='application/atomsvc+xml' href='http://gdata.youtube.com/feeds/api/playlists/CCAE880913CAFE9B?alt=atom-service&v=2'/> + <author><name>GoogleDevelopers</name><uri>http://gdata.youtube.com/feeds/api/users/googledevelopers</uri></author> + <generator version='2.0' uri='http://gdata.youtube.com/'>YouTube data API</generator> + <openSearch:totalResults>1</openSearch:totalResults> + <openSearch:startIndex>1</openSearch:startIndex> + <openSearch:itemsPerPage>25</openSearch:itemsPerPage> + <yt:playlistId>CCAE880913CAFE9B</yt:playlistId> + <media:group> + <media:title type='plain'>AdSense APIs</media:title> + <media:description type='plain'>Content related to our ad APIs</media:description> + <media:content url='http://www.youtube.com/ep.swf?id=CCAE880913CAFE9B' type='application/x-shockwave-flash' yt:format='5'/> + </media:group> + <entry gd:etag='W/"C0ADSHg4fSp7ImA9WxRaEUw."'> + <id>tag:youtube.com,2008:playlist:CCAE880913CAFE9B:C63BCCC84EBE64BD</id> + <updated>2008-12-12T19:56:19.635Z</updated> + <category scheme='http://schemas.google.com/g/2005#kind' term='http://gdata.youtube.com/schemas/2007#playlist'/> + <category scheme='http://gdata.youtube.com/schemas/2007/keywords.cat' term='adsense'/> + <category scheme='http://gdata.youtube.com/schemas/2007/keywords.cat' term='google'/> + <category scheme='http://gdata.youtube.com/schemas/2007/categories.cat' term='Howto' label='Howto & Style'/> + <title>Google Developer Day - Brazil - AdSense</title> + <link rel='alternate' type='text/html' href='http://www.youtube.com/watch?v=RTQDqPtErB0'/> + <link rel='http://gdata.youtube.com/schemas/2007#video.responses' type='application/atom+xml' href='http://gdata.youtube.com/feeds/api/videos/RTQDqPtErB0/responses?v=2'/> + <link rel='http://gdata.youtube.com/schemas/2007#video.related' type='application/atom+xml' href='http://gdata.youtube.com/feeds/api/videos/RTQDqPtErB0/related?v=2'/> + <link rel='related' type='application/atom+xml' href='http://gdata.youtube.com/feeds/api/videos/RTQDqPtErB0?v=2'/> + <link rel='self' type='application/atom+xml' href='http://gdata.youtube.com/feeds/api/playlists/CCAE880913CAFE9B/C63BCCC84EBE64BD?v=2'/> + <author><name>GoogleDevelopers</name><uri>http://gdata.youtube.com/feeds/api/users/googledevelopers</uri></author> + <media:group> + <media:title type='plain'>Google Developer Day - Brazil - AdSense</media:title> + <media:description type='plain'>Roberto Grosman - O Google AdSense oferece aos editores de sites, de qualquer tamanho, uma forma rápida e fácil de exibir anúncios Google nas suas páginas de conteúdo e ganhar dinheiro. Os anúncios são relevantes, por que estão relacionados àquilo que os usuários procuram no seu site ou combinam com as características e interesses dos visitantes que o seu conteúdo normalmente atrai. Você pode monetizar e otimizar as suas páginas de conteúdo ao mesmo tempo. Esta palestra tem como objetivo apresentar a ferramenta AdSense e suas vantagens.</media:description> + <media:keywords>adsense, google</media:keywords> + <yt:duration seconds='1491'/> + <yt:videoid>RTQDqPtErB0</yt:videoid> + <yt:uploaded>2007-06-01T14:33:00.000Z</yt:uploaded> + <media:player url='http://www.youtube.com/watch?v=RTQDqPtErB0'/> + <media:credit role='uploader' scheme='urn:youtube'>GoogleDeveloperDay</media:credit> + <media:category label='Howto & Style' scheme='http://gdata.youtube.com/schemas/2007/categories.cat'>Howto</media:category> + <media:content url='http://www.youtube.com/v/RTQDqPtErB0&f=gdata_playlists' type='application/x-shockwave-flash' medium='video' isDefault='true' expression='full' duration='1491' yt:format='5'/> + <media:content url='rtsp://rtsp2.youtube.com/CisLENy73wIaIgkdrET7qAM0RRMYDSANFEgGUg9nZGF0YV9wbGF5bGlzdHMM/0/0/0/video.3gp' type='video/3gpp' medium='video' expression='full' duration='1491' yt:format='1'/> + <media:thumbnail url='http://i.ytimg.com/vi/RTQDqPtErB0/2.jpg' height='97' width='130' time='00:12:25.500'/> + <media:thumbnail url='http://i.ytimg.com/vi/RTQDqPtErB0/1.jpg' height='97' width='130' time='00:06:12.750'/> + <media:thumbnail url='http://i.ytimg.com/vi/RTQDqPtErB0/3.jpg' height='97' width='130' time='00:18:38.250'/> + <media:thumbnail url='http://i.ytimg.com/vi/RTQDqPtErB0/hqdefault.jpg' height='360' width='480'/> + </media:group> + <yt:statistics viewCount='7390' favoriteCount='63'/> + <gd:rating min='1' max='5' numRaters='23' average='4.30'/> + <gd:comments> + <gd:feedLink href='http://gdata.youtube.com/feeds/api/videos/RTQDqPtErB0/comments?v=2' countHint='10'/> + </gd:comments> + <yt:position>1</yt:position> + </entry> +</feed>
\ No newline at end of file diff --git a/zend/tests/Zend/Gdata/YouTube/_files/PlaylistVideoEntryDataSample1.xml b/zend/tests/Zend/Gdata/YouTube/_files/PlaylistVideoEntryDataSample1.xml new file mode 100644 index 0000000..5449374 --- /dev/null +++ b/zend/tests/Zend/Gdata/YouTube/_files/PlaylistVideoEntryDataSample1.xml @@ -0,0 +1,109 @@ +<?xml version='1.0' encoding='utf-8'?> +<entry xmlns='http://www.w3.org/2005/Atom' +xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' +xmlns:media='http://search.yahoo.com/mrss/' +xmlns:gd='http://schemas.google.com/g/2005' +xmlns:yt='http://gdata.youtube.com/schemas/2007'> + <id> + http://gdata.youtube.com/feeds/playlists/46A2F8C9B36B6FE7/efb9b9a8dd4c2b21</id> + <updated>2007-09-20T22:56:57.061Z</updated> + <category scheme='http://schemas.google.com/g/2005#kind' + term='http://gdata.youtube.com/schemas/2007#playlist' /> + <title type='text'>"Crazy (Gnarles Barkley)" - Acoustic Cover</title> + <content type='html'><div style="color: #000000;font-family: + Arial, Helvetica, sans-serif; font-size:12px; font-size: 12px; + width: 555px;"><table cellspacing="0" cellpadding="0" + border="0"><tbody><tr><td width="140" + valign="top" rowspan="2"><div style="border: 1px solid + #999999; margin: 0px 10px 5px 0px;"><a + href="http://www.youtube.com/watch?v=UMFI1hdm96E"><img + alt="" + src="http://img.youtube.com/vi/UMFI1hdm96E/2.jpg"></a></div></td> + <td width="256" valign="top"><div style="font-size: + 12px; font-weight: bold;"><a style="font-size: 15px; + font-weight: bold; font-decoration: none;" + href="http://www.youtube.com/watch?v=UMFI1hdm96E">&quot;Crazy + (Gnarles Barkley)&quot; - Acoustic Cover</a> + <br></div> <div style="font-size: 12px; margin: + 3px 0px;"><span>Gnarles Barkley acoustic cover + http://www.myspace.com/davidchoimusic</span></div></td> + <td style="font-size: 11px; line-height: 1.4em; + padding-left: 20px; padding-top: 1px;" width="146" + valign="top"><div><span style="color: #666666; + font-size: 11px;">From:</span> <a + href="http://www.youtube.com/profile?user=davidchoimusic">davidchoimusic</a></div> + <div><span style="color: #666666; font-size: + 11px;">Views:</span> 113321</div> <div + style="white-space: nowrap;text-align: left"><img + style="border: 0px none; margin: 0px; padding: 0px; + vertical-align: middle; font-size: 11px;" align="top" alt="" + src="http://gdata.youtube.com/static/images/icn_star_full_11x11.gif"> + <img style="border: 0px none; margin: 0px; padding: 0px; + vertical-align: middle; font-size: 11px;" align="top" alt="" + src="http://gdata.youtube.com/static/images/icn_star_full_11x11.gif"> + <img style="border: 0px none; margin: 0px; padding: 0px; + vertical-align: middle; font-size: 11px;" align="top" alt="" + src="http://gdata.youtube.com/static/images/icn_star_full_11x11.gif"> + <img style="border: 0px none; margin: 0px; padding: 0px; + vertical-align: middle; font-size: 11px;" align="top" alt="" + src="http://gdata.youtube.com/static/images/icn_star_full_11x11.gif"> + <img style="border: 0px none; margin: 0px; padding: 0px; + vertical-align: middle; font-size: 11px;" align="top" alt="" + src="http://gdata.youtube.com/static/images/icn_star_half_11x11.gif"></div> + <div style="font-size: 11px;">1005 <span style="color: + #666666; font-size: + 11px;">ratings</span></div></td></tr> + <tr><td><span style="color: #666666; font-size: + 11px;">Time:</span> <span style="color: #000000; + font-size: 11px; font-weight: + bold;">04:15</span></td> <td + style="font-size: 11px; padding-left: 20px;"><span + style="color: #666666; font-size: 11px;">More + in</span> <a + href="http://www.youtube.com/categories_portal?c=10">Music</a></td></tr></tbody></table></div></content> + <link rel='alternate' type='text/html' + href='http://www.youtube.com/watch?v=UMFI1hdm96E' /> + <link rel='http://gdata.youtube.com/schemas/2007#video.responses' + type='application/atom+xml' + href='http://gdata.youtube.com/feeds/videos/UMFI1hdm96E/responses' /> + <link rel='http://gdata.youtube.com/schemas/2007#video.related' + type='application/atom+xml' + href='http://gdata.youtube.com/feeds/videos/UMFI1hdm96E/related' /> + <link rel='related' type='application/atom+xml' + href='http://gdata.youtube.com/feeds/videos/UMFI1hdm96E' /> + <link rel='self' type='application/atom+xml' + href='http://gdata.youtube.com/feeds/playlists/46A2F8C9B36B6FE7/efb9b9a8dd4c2b21' /> + <author> + <name>davidchoimusic</name> + <uri> + http://gdata.youtube.com/feeds/users/davidchoimusic</uri> + </author> + <media:group> + <media:title type='plain'>"Crazy (Gnarles Barkley)" - Acoustic Cover</media:title> + <media:description type='plain'>Gnarles Barkley acoustic cover http://www.myspace.com/davidchoimusic</media:description> + <media:keywords>music, singing, gnarls, barkley, acoustic, cover</media:keywords> + <yt:duration seconds='255' /> + <media:category label='Music' + scheme='http://gdata.youtube.com/schemas/2007/categories.cat'> + Music</media:category> + <media:content url='http://www.youtube.com/v/UMFI1hdm96E' + type='application/x-shockwave-flash' medium='video' + isDefault='true' expression='full' duration='255' + yt:format='5' /> + <media:player url='http://www.youtube.com/watch?v=UMFI1hdm96E' /> + <media:thumbnail url='http://img.youtube.com/vi/UMFI1hdm96E/2.jpg' + height='97' width='130' time='00:02:07.500' /> + <media:thumbnail url='http://img.youtube.com/vi/UMFI1hdm96E/1.jpg' + height='97' width='130' time='00:01:03.750' /> + <media:thumbnail url='http://img.youtube.com/vi/UMFI1hdm96E/3.jpg' + height='97' width='130' time='00:03:11.250' /> + <media:thumbnail url='http://img.youtube.com/vi/UMFI1hdm96E/0.jpg' + height='240' width='320' time='00:02:07.500' /> + </media:group> + <yt:statistics viewCount='113321' /> + <gd:rating min='1' max='5' numRaters='1005' average='4.77' /> + <gd:comments> + <gd:feedLink href='http://gdata.youtube.com/feeds/videos/UMFI1hdm96E/comments' /> + </gd:comments> + <yt:position>1</yt:position> +</entry> diff --git a/zend/tests/Zend/Gdata/YouTube/_files/PlaylistVideoEntryDataSampleV2.xml b/zend/tests/Zend/Gdata/YouTube/_files/PlaylistVideoEntryDataSampleV2.xml new file mode 100644 index 0000000..aeb880c --- /dev/null +++ b/zend/tests/Zend/Gdata/YouTube/_files/PlaylistVideoEntryDataSampleV2.xml @@ -0,0 +1,89 @@ +<?xml version='1.0' encoding='utf-8'?> +<entry xmlns='http://www.w3.org/2005/Atom' +xmlns:gml='http://www.opengis.net/gml' +xmlns:georss='http://www.georss.org/georss' +xmlns:media='http://search.yahoo.com/mrss/' +xmlns:batch='http://schemas.google.com/gdata/batch' +xmlns:yt='http://gdata.youtube.com/schemas/2007' +xmlns:gd='http://schemas.google.com/g/2005' +gd:etag='W/"CEQGQno4fCp7ImA9WxRaFEg."'> +<id> +tag:youtube.com,2008:playlist:4E6265CEF8BAA793:579617126485907C</id> +<updated>2008-12-16T18:32:03.434Z</updated> +<category scheme='http://gdata.youtube.com/schemas/2007/keywords.cat' +term='dynamite' /> +<category scheme='http://gdata.youtube.com/schemas/2007/categories.cat' +term='News' label='News & Politics' /> +<category scheme='http://schemas.google.com/g/2005#kind' +term='http://gdata.youtube.com/schemas/2007#playlist' /> +<category scheme='http://gdata.youtube.com/schemas/2007/keywords.cat' +term='police' /> +<category scheme='http://gdata.youtube.com/schemas/2007/keywords.cat' +term='paris' /> +<category scheme='http://gdata.youtube.com/schemas/2007/keywords.cat' +term='explosives' /> +<category scheme='http://gdata.youtube.com/schemas/2007/keywords.cat' +term='find' /> +<category scheme='http://gdata.youtube.com/schemas/2007/keywords.cat' +term='france' /> +<title>Paris Police Find Dynamite in Department Store</title> +<link rel='alternate' type='text/html' +href='http://www.youtube.com/watch?v=Lur391T5ApY' /> +<link rel='http://gdata.youtube.com/schemas/2007#video.responses' +type='application/atom+xml' +href='http://gdata.youtube.com/feeds/api/videos/Lur391T5ApY/responses?v=2' /> +<link rel='http://gdata.youtube.com/schemas/2007#video.related' +type='application/atom+xml' +href='http://gdata.youtube.com/feeds/api/videos/Lur391T5ApY/related?v=2' /> +<link rel='http://gdata.youtube.com/schemas/2007#mobile' +type='text/html' +href='http://m.youtube.com/details?v=Lur391T5ApY' /> +<link rel='related' type='application/atom+xml' +href='http://gdata.youtube.com/feeds/api/videos/Lur391T5ApY?v=2' /> +<link rel='self' type='application/atom+xml' +href='http://gdata.youtube.com/feeds/api/playlists/4E6265CEF8BAA793/579617126485907C?v=2' /> +<author> +<name>zfgdata</name> +<uri>http://gdata.youtube.com/feeds/api/users/zfgdata</uri> +</author> +<media:group> +<media:title type='plain'>Paris Police Find</media:title> +<media:description type='plain'>French police found.</media:description> +<media:keywords>department, dynamite, explosives, find</media:keywords> +<yt:duration seconds='67' /> +<yt:videoid>Lur391T5ApY</yt:videoid> +<yt:uploaded>2008-12-16T17:01:42.000Z</yt:uploaded> +<media:player url='http://www.youtube.com/watch?v=Lur391T5ApY' /> +<media:credit role='uploader' scheme='urn:youtube' +yt:type='partner'>AssociatedPress</media:credit> +<media:category label='News & Politics' +scheme='http://gdata.youtube.com/schemas/2007/categories.cat'> +News</media:category> +<media:content url='http://www.youtube.com/v/Lur391T5ApY&f=gdata_playlists' +type='application/x-shockwave-flash' medium='video' +isDefault='true' expression='full' duration='67' yt:format='5' /> +<media:content url='rtsp://rtsp2.youtube.com/CisLENy73wIaIgmWAvlU9_fqLhMYDSANFEgGUg9nZGF0YV9wbGF5bGlzdHMM/0/0/0/video.3gp' +type='video/3gpp' medium='video' expression='full' duration='67' +yt:format='1' /> +<media:content url='rtsp://rtsp2.youtube.com/CisLENy73wIaIgmWAvlU9_fqLhMYESARFEgGUg9nZGF0YV9wbGF5bGlzdHMM/0/0/0/video.3gp' +type='video/3gpp' medium='video' expression='full' duration='67' +yt:format='6' /> +<media:thumbnail url='http://i.ytimg.com/vi/Lur391T5ApY/2.jpg' +height='97' width='130' time='00:00:33.500' /> +<media:thumbnail url='http://i.ytimg.com/vi/Lur391T5ApY/1.jpg' +height='97' width='130' time='00:00:16.750' /> +<media:thumbnail url='http://i.ytimg.com/vi/Lur391T5ApY/3.jpg' +height='97' width='130' time='00:00:50.250' /> +<media:thumbnail url='http://i.ytimg.com/vi/Lur391T5ApY/hqdefault.jpg' +height='360' width='480' /> +</media:group> +<yt:statistics viewCount='271' favoriteCount='1' /> +<gd:rating min='1' max='5' numRaters='5' average='4.20' /> +<yt:location>New York, NY</yt:location> +<yt:recorded>2008-12-16</yt:recorded> +<gd:comments> +<gd:feedLink href='http://gdata.youtube.com/feeds/api/videos/Lur391T5ApY/comments?v=2' +countHint='4' /> +</gd:comments> +<yt:position>1</yt:position> +</entry>
\ No newline at end of file diff --git a/zend/tests/Zend/Gdata/YouTube/_files/PlaylistVideoFeedDataSample1.xml b/zend/tests/Zend/Gdata/YouTube/_files/PlaylistVideoFeedDataSample1.xml new file mode 100644 index 0000000..3c47b3e --- /dev/null +++ b/zend/tests/Zend/Gdata/YouTube/_files/PlaylistVideoFeedDataSample1.xml @@ -0,0 +1,1495 @@ +<?xml version='1.0' encoding='utf-8'?> +<feed xmlns='http://www.w3.org/2005/Atom' +xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' +xmlns:media='http://search.yahoo.com/mrss/' +xmlns:gd='http://schemas.google.com/g/2005' +xmlns:yt='http://gdata.youtube.com/schemas/2007'> + <id> + http://gdata.youtube.com/feeds/playlists/46A2F8C9B36B6FE7</id> + <updated>2007-09-20T13:42:19.000-07:00</updated> + <category scheme='http://schemas.google.com/g/2005#kind' + term='http://gdata.youtube.com/schemas/2007#playlist' /> + <category scheme='http://gdata.youtube.com/schemas/2007/tags.cat' + term='music' /> + <title type='text'>YouTube Musicians</title> + <subtitle type='text'>Music from talented people on YouTube.</subtitle> + <logo> + http://www.youtube.com/img/pic_youtubelogo_123x63.gif</logo> + <link rel='alternate' type='text/html' + href='http://www.youtube.com/view_play_list?p=46A2F8C9B36B6FE7' /> + <link rel='http://schemas.google.com/g/2005#feed' + type='application/atom+xml' + href='http://gdata.youtube.com/feeds/playlists/46A2F8C9B36B6FE7' /> + <link rel='self' type='application/atom+xml' + href='http://gdata.youtube.com/feeds/playlists/46A2F8C9B36B6FE7?start-index=1&max-results=25' /> + <author> + <name>testuser</name> + <uri>http://gdata.youtube.com/feeds/users/testuser</uri> + </author> + <generator version='beta' uri='http://gdata.youtube.com/'>YouTube + data API</generator> + <openSearch:totalResults>13</openSearch:totalResults> + <openSearch:startIndex>1</openSearch:startIndex> + <openSearch:itemsPerPage>25</openSearch:itemsPerPage> + <entry> + <id> + http://gdata.youtube.com/feeds/playlists/46A2F8C9B36B6FE7/efb9b9a8dd4c2b21</id> + <updated>2007-09-20T22:56:57.061Z</updated> + <category scheme='http://schemas.google.com/g/2005#kind' + term='http://gdata.youtube.com/schemas/2007#playlist' /> + <title type='text'>"Crazy (Gnarles Barkley)" - Acoustic + Cover</title> + <content type='html'><div style="color: #000000;font-family: + Arial, Helvetica, sans-serif; font-size:12px; font-size: 12px; + width: 555px;"><table cellspacing="0" cellpadding="0" + border="0"><tbody><tr><td width="140" + valign="top" rowspan="2"><div style="border: 1px solid + #999999; margin: 0px 10px 5px 0px;"><a + href="http://www.youtube.com/watch?v=UMFI1hdm96E"><img + alt="" + src="http://img.youtube.com/vi/UMFI1hdm96E/2.jpg"></a></div></td> + <td width="256" valign="top"><div style="font-size: + 12px; font-weight: bold;"><a style="font-size: 15px; + font-weight: bold; font-decoration: none;" + href="http://www.youtube.com/watch?v=UMFI1hdm96E">&quot;Crazy + (Gnarles Barkley)&quot; - Acoustic Cover</a> + <br></div> <div style="font-size: 12px; margin: + 3px 0px;"><span>Gnarles Barkley acoustic cover + http://www.myspace.com/davidchoimusic</span></div></td> + <td style="font-size: 11px; line-height: 1.4em; + padding-left: 20px; padding-top: 1px;" width="146" + valign="top"><div><span style="color: #666666; + font-size: 11px;">From:</span> <a + href="http://www.youtube.com/profile?user=davidchoimusic">davidchoimusic</a></div> + <div><span style="color: #666666; font-size: + 11px;">Views:</span> 113321</div> <div + style="white-space: nowrap;text-align: left"><img + style="border: 0px none; margin: 0px; padding: 0px; + vertical-align: middle; font-size: 11px;" align="top" alt="" + src="http://gdata.youtube.com/static/images/icn_star_full_11x11.gif"> + <img style="border: 0px none; margin: 0px; padding: 0px; + vertical-align: middle; font-size: 11px;" align="top" alt="" + src="http://gdata.youtube.com/static/images/icn_star_full_11x11.gif"> + <img style="border: 0px none; margin: 0px; padding: 0px; + vertical-align: middle; font-size: 11px;" align="top" alt="" + src="http://gdata.youtube.com/static/images/icn_star_full_11x11.gif"> + <img style="border: 0px none; margin: 0px; padding: 0px; + vertical-align: middle; font-size: 11px;" align="top" alt="" + src="http://gdata.youtube.com/static/images/icn_star_full_11x11.gif"> + <img style="border: 0px none; margin: 0px; padding: 0px; + vertical-align: middle; font-size: 11px;" align="top" alt="" + src="http://gdata.youtube.com/static/images/icn_star_half_11x11.gif"></div> + <div style="font-size: 11px;">1005 <span style="color: + #666666; font-size: + 11px;">ratings</span></div></td></tr> + <tr><td><span style="color: #666666; font-size: + 11px;">Time:</span> <span style="color: #000000; + font-size: 11px; font-weight: + bold;">04:15</span></td> <td + style="font-size: 11px; padding-left: 20px;"><span + style="color: #666666; font-size: 11px;">More + in</span> <a + href="http://www.youtube.com/categories_portal?c=10">Music</a></td></tr></tbody></table></div></content> + <link rel='alternate' type='text/html' + href='http://www.youtube.com/watch?v=UMFI1hdm96E' /> + <link rel='http://gdata.youtube.com/schemas/2007#video.responses' + type='application/atom+xml' + href='http://gdata.youtube.com/feeds/videos/UMFI1hdm96E/responses' /> + <link rel='http://gdata.youtube.com/schemas/2007#video.related' + type='application/atom+xml' + href='http://gdata.youtube.com/feeds/videos/UMFI1hdm96E/related' /> + <link rel='related' type='application/atom+xml' + href='http://gdata.youtube.com/feeds/videos/UMFI1hdm96E' /> + <link rel='self' type='application/atom+xml' + href='http://gdata.youtube.com/feeds/playlists/46A2F8C9B36B6FE7/efb9b9a8dd4c2b21' /> + <author> + <name>davidchoimusic</name> + <uri> + http://gdata.youtube.com/feeds/users/davidchoimusic</uri> + </author> + <media:group> + <media:title type='plain'>"Crazy (Gnarles Barkley)" - + Acoustic Cover</media:title> + <media:description type='plain'>Gnarles Barkley acoustic + cover + http://www.myspace.com/davidchoimusic</media:description> + <media:keywords>music, singing, gnarls, barkley, acoustic, + cover</media:keywords> + <yt:duration seconds='255' /> + <media:category label='Music' + scheme='http://gdata.youtube.com/schemas/2007/categories.cat'> + Music</media:category> + <media:content url='http://www.youtube.com/v/UMFI1hdm96E' + type='application/x-shockwave-flash' medium='video' + isDefault='true' expression='full' duration='255' + yt:format='5' /> + <media:player url='http://www.youtube.com/watch?v=UMFI1hdm96E' /> + <media:thumbnail url='http://img.youtube.com/vi/UMFI1hdm96E/2.jpg' + height='97' width='130' time='00:02:07.500' /> + <media:thumbnail url='http://img.youtube.com/vi/UMFI1hdm96E/1.jpg' + height='97' width='130' time='00:01:03.750' /> + <media:thumbnail url='http://img.youtube.com/vi/UMFI1hdm96E/3.jpg' + height='97' width='130' time='00:03:11.250' /> + <media:thumbnail url='http://img.youtube.com/vi/UMFI1hdm96E/0.jpg' + height='240' width='320' time='00:02:07.500' /> + </media:group> + <yt:statistics viewCount='113321' /> + <gd:rating min='1' max='5' numRaters='1005' average='4.77' /> + <gd:comments> + <gd:feedLink href='http://gdata.youtube.com/feeds/videos/UMFI1hdm96E/comments' /> + </gd:comments> + <yt:position>1</yt:position> + </entry> + <entry> + <id> + http://gdata.youtube.com/feeds/playlists/46A2F8C9B36B6FE7/c9d8e923d586c337</id> + <updated>2007-09-20T22:56:57.061Z</updated> + <category scheme='http://schemas.google.com/g/2005#kind' + term='http://gdata.youtube.com/schemas/2007#playlist' /> + <title type='text'>gnals barkley</title> + <content type='html'><div style="color: #000000;font-family: + Arial, Helvetica, sans-serif; font-size:12px; font-size: 12px; + width: 555px;"><table cellspacing="0" cellpadding="0" + border="0"><tbody><tr><td width="140" + valign="top" rowspan="2"><div style="border: 1px solid + #999999; margin: 0px 10px 5px 0px;"><a + href="http://www.youtube.com/watch?v=waQuw1P7VU8"><img + alt="" + src="http://img.youtube.com/vi/waQuw1P7VU8/2.jpg"></a></div></td> + <td width="256" valign="top"><div style="font-size: + 12px; font-weight: bold;"><a style="font-size: 15px; + font-weight: bold; font-decoration: none;" + href="http://www.youtube.com/watch?v=waQuw1P7VU8">gnals + barkley</a> <br></div> <div + style="font-size: 12px; margin: 3px 0px;"><span>Me + singing Crazy by gnarls + barkley</span></div></td> <td + style="font-size: 11px; line-height: 1.4em; padding-left: 20px; + padding-top: 1px;" width="146" + valign="top"><div><span style="color: #666666; + font-size: 11px;">From:</span> <a + href="http://www.youtube.com/profile?user=esmeedenters">esmeedenters</a></div> + <div><span style="color: #666666; font-size: + 11px;">Views:</span> 219224</div> <div + style="white-space: nowrap;text-align: left"><img + style="border: 0px none; margin: 0px; padding: 0px; + vertical-align: middle; font-size: 11px;" align="top" alt="" + src="http://gdata.youtube.com/static/images/icn_star_full_11x11.gif"> + <img style="border: 0px none; margin: 0px; padding: 0px; + vertical-align: middle; font-size: 11px;" align="top" alt="" + src="http://gdata.youtube.com/static/images/icn_star_full_11x11.gif"> + <img style="border: 0px none; margin: 0px; padding: 0px; + vertical-align: middle; font-size: 11px;" align="top" alt="" + src="http://gdata.youtube.com/static/images/icn_star_full_11x11.gif"> + <img style="border: 0px none; margin: 0px; padding: 0px; + vertical-align: middle; font-size: 11px;" align="top" alt="" + src="http://gdata.youtube.com/static/images/icn_star_full_11x11.gif"> + <img style="border: 0px none; margin: 0px; padding: 0px; + vertical-align: middle; font-size: 11px;" align="top" alt="" + src="http://gdata.youtube.com/static/images/icn_star_half_11x11.gif"></div> + <div style="font-size: 11px;">1753 <span style="color: + #666666; font-size: + 11px;">ratings</span></div></td></tr> + <tr><td><span style="color: #666666; font-size: + 11px;">Time:</span> <span style="color: #000000; + font-size: 11px; font-weight: + bold;">02:59</span></td> <td + style="font-size: 11px; padding-left: 20px;"><span + style="color: #666666; font-size: 11px;">More + in</span> <a + href="http://www.youtube.com/categories_portal?c=10">Music</a></td></tr></tbody></table></div></content> + <link rel='alternate' type='text/html' + href='http://www.youtube.com/watch?v=waQuw1P7VU8' /> + <link rel='http://gdata.youtube.com/schemas/2007#video.responses' + type='application/atom+xml' + href='http://gdata.youtube.com/feeds/videos/waQuw1P7VU8/responses' /> + <link rel='http://gdata.youtube.com/schemas/2007#video.related' + type='application/atom+xml' + href='http://gdata.youtube.com/feeds/videos/waQuw1P7VU8/related' /> + <link rel='related' type='application/atom+xml' + href='http://gdata.youtube.com/feeds/videos/waQuw1P7VU8' /> + <link rel='self' type='application/atom+xml' + href='http://gdata.youtube.com/feeds/playlists/46A2F8C9B36B6FE7/c9d8e923d586c337' /> + <author> + <name>esmeedenters</name> + <uri>http://gdata.youtube.com/feeds/users/esmeedenters</uri> + </author> + <media:group> + <media:title type='plain'>gnals barkley</media:title> + <media:description type='plain'>Me singing Crazy by gnarls + barkley</media:description> + <media:keywords>music, singing, gnarls, + barkley</media:keywords> + <yt:duration seconds='179' /> + <media:category label='Music' + scheme='http://gdata.youtube.com/schemas/2007/categories.cat'> + Music</media:category> + <media:content url='http://www.youtube.com/v/waQuw1P7VU8' + type='application/x-shockwave-flash' medium='video' + isDefault='true' expression='full' duration='179' + yt:format='5' /> + <media:player url='http://www.youtube.com/watch?v=waQuw1P7VU8' /> + <media:thumbnail url='http://img.youtube.com/vi/waQuw1P7VU8/2.jpg' + height='97' width='130' time='00:01:29.500' /> + <media:thumbnail url='http://img.youtube.com/vi/waQuw1P7VU8/1.jpg' + height='97' width='130' time='00:00:44.750' /> + <media:thumbnail url='http://img.youtube.com/vi/waQuw1P7VU8/3.jpg' + height='97' width='130' time='00:02:14.250' /> + <media:thumbnail url='http://img.youtube.com/vi/waQuw1P7VU8/0.jpg' + height='240' width='320' time='00:01:29.500' /> + </media:group> + <yt:statistics viewCount='219224' /> + <gd:rating min='1' max='5' numRaters='1753' average='4.73' /> + <gd:comments> + <gd:feedLink href='http://gdata.youtube.com/feeds/videos/waQuw1P7VU8/comments' /> + </gd:comments> + <yt:position>2</yt:position> + </entry> + <entry> + <id> + http://gdata.youtube.com/feeds/playlists/46A2F8C9B36B6FE7/8574b0cf3b5045b9</id> + <updated>2007-09-20T22:56:57.061Z</updated> + <category scheme='http://schemas.google.com/g/2005#kind' + term='http://gdata.youtube.com/schemas/2007#playlist' /> + <title type='text'>Can't take my eyes off of you</title> + <content type='html'><div style="color: #000000;font-family: + Arial, Helvetica, sans-serif; font-size:12px; font-size: 12px; + width: 555px;"><table cellspacing="0" cellpadding="0" + border="0"><tbody><tr><td width="140" + valign="top" rowspan="2"><div style="border: 1px solid + #999999; margin: 0px 10px 5px 0px;"><a + href="http://www.youtube.com/watch?v=xjidkN6kleU"><img + alt="" + src="http://img.youtube.com/vi/xjidkN6kleU/2.jpg"></a></div></td> + <td width="256" valign="top"><div style="font-size: + 12px; font-weight: bold;"><a style="font-size: 15px; + font-weight: bold; font-decoration: none;" + href="http://www.youtube.com/watch?v=xjidkN6kleU">Can&#39;t + take my eyes off of you</a> <br></div> + <div style="font-size: 12px; margin: 3px + 0px;"><span>Lauryn Hill Cover - Can&#39;t take my + eyes off of you. my way--- a good + way?</span></div></td> <td + style="font-size: 11px; line-height: 1.4em; padding-left: 20px; + padding-top: 1px;" width="146" + valign="top"><div><span style="color: #666666; + font-size: 11px;">From:</span> <a + href="http://www.youtube.com/profile?user=munilicious">munilicious</a></div> + <div><span style="color: #666666; font-size: + 11px;">Views:</span> 12968</div> <div + style="white-space: nowrap;text-align: left"><img + style="border: 0px none; margin: 0px; padding: 0px; + vertical-align: middle; font-size: 11px;" align="top" alt="" + src="http://gdata.youtube.com/static/images/icn_star_full_11x11.gif"> + <img style="border: 0px none; margin: 0px; padding: 0px; + vertical-align: middle; font-size: 11px;" align="top" alt="" + src="http://gdata.youtube.com/static/images/icn_star_full_11x11.gif"> + <img style="border: 0px none; margin: 0px; padding: 0px; + vertical-align: middle; font-size: 11px;" align="top" alt="" + src="http://gdata.youtube.com/static/images/icn_star_full_11x11.gif"> + <img style="border: 0px none; margin: 0px; padding: 0px; + vertical-align: middle; font-size: 11px;" align="top" alt="" + src="http://gdata.youtube.com/static/images/icn_star_half_11x11.gif"> + <img style="border: 0px none; margin: 0px; padding: 0px; + vertical-align: middle; font-size: 11px;" align="top" alt="" + src="http://gdata.youtube.com/static/images/icn_star_empty_11x11.gif"></div> + <div style="font-size: 11px;">34 <span style="color: + #666666; font-size: + 11px;">ratings</span></div></td></tr> + <tr><td><span style="color: #666666; font-size: + 11px;">Time:</span> <span style="color: #000000; + font-size: 11px; font-weight: + bold;">02:18</span></td> <td + style="font-size: 11px; padding-left: 20px;"><span + style="color: #666666; font-size: 11px;">More + in</span> <a + href="http://www.youtube.com/categories_portal?c=10">Music</a></td></tr></tbody></table></div></content> + <link rel='alternate' type='text/html' + href='http://www.youtube.com/watch?v=xjidkN6kleU' /> + <link rel='http://gdata.youtube.com/schemas/2007#video.responses' + type='application/atom+xml' + href='http://gdata.youtube.com/feeds/videos/xjidkN6kleU/responses' /> + <link rel='http://gdata.youtube.com/schemas/2007#video.related' + type='application/atom+xml' + href='http://gdata.youtube.com/feeds/videos/xjidkN6kleU/related' /> + <link rel='related' type='application/atom+xml' + href='http://gdata.youtube.com/feeds/videos/xjidkN6kleU' /> + <link rel='self' type='application/atom+xml' + href='http://gdata.youtube.com/feeds/playlists/46A2F8C9B36B6FE7/8574b0cf3b5045b9' /> + <author> + <name>munilicious</name> + <uri>http://gdata.youtube.com/feeds/users/munilicious</uri> + </author> + <media:group> + <media:title type='plain'>Can't take my eyes off of + you</media:title> + <media:description type='plain'>Lauryn Hill Cover - Can't + take my eyes off of you. my way--- a good + way?</media:description> + <media:keywords>Lauryn, Hill, Can't, take, my, eyes, off, of, + you</media:keywords> + <yt:duration seconds='138' /> + <media:category label='Music' + scheme='http://gdata.youtube.com/schemas/2007/categories.cat'> + Music</media:category> + <media:player url='http://www.youtube.com/watch?v=xjidkN6kleU' /> + <media:thumbnail url='http://img.youtube.com/vi/xjidkN6kleU/2.jpg' + height='97' width='130' time='00:01:09' /> + <media:thumbnail url='http://img.youtube.com/vi/xjidkN6kleU/1.jpg' + height='97' width='130' time='00:00:34.500' /> + <media:thumbnail url='http://img.youtube.com/vi/xjidkN6kleU/3.jpg' + height='97' width='130' time='00:01:43.500' /> + <media:thumbnail url='http://img.youtube.com/vi/xjidkN6kleU/0.jpg' + height='240' width='320' time='00:01:09' /> + </media:group> + <yt:statistics viewCount='12968' /> + <yt:noembed /> + <gd:rating min='1' max='5' numRaters='34' average='3.85' /> + <gd:comments> + <gd:feedLink href='http://gdata.youtube.com/feeds/videos/xjidkN6kleU/comments' /> + </gd:comments> + <yt:position>3</yt:position> + </entry> + <entry> + <id> + http://gdata.youtube.com/feeds/playlists/46A2F8C9B36B6FE7/6d42a26a97a53c78</id> + <updated>2007-09-20T22:56:57.062Z</updated> + <category scheme='http://schemas.google.com/g/2005#kind' + term='http://gdata.youtube.com/schemas/2007#playlist' /> + <title type='text'>hanging by a moment (cover)</title> + <content type='html'><div style="color: #000000;font-family: + Arial, Helvetica, sans-serif; font-size:12px; font-size: 12px; + width: 555px;"><table cellspacing="0" cellpadding="0" + border="0"><tbody><tr><td width="140" + valign="top" rowspan="2"><div style="border: 1px solid + #999999; margin: 0px 10px 5px 0px;"><a + href="http://www.youtube.com/watch?v=MOxExzhhW0c"><img + alt="" + src="http://img.youtube.com/vi/MOxExzhhW0c/2.jpg"></a></div></td> + <td width="256" valign="top"><div style="font-size: + 12px; font-weight: bold;"><a style="font-size: 15px; + font-weight: bold; font-decoration: none;" + href="http://www.youtube.com/watch?v=MOxExzhhW0c">hanging by + a moment (cover)</a> <br></div> <div + style="font-size: 12px; margin: 3px 0px;"><span>my + sister(guitar) and me jamming + lifehouse</span></div></td> <td + style="font-size: 11px; line-height: 1.4em; padding-left: 20px; + padding-top: 1px;" width="146" + valign="top"><div><span style="color: #666666; + font-size: 11px;">From:</span> <a + href="http://www.youtube.com/profile?user=lauwarm">lauwarm</a></div> + <div><span style="color: #666666; font-size: + 11px;">Views:</span> 7186</div> <div + style="white-space: nowrap;text-align: left"><img + style="border: 0px none; margin: 0px; padding: 0px; + vertical-align: middle; font-size: 11px;" align="top" alt="" + src="http://gdata.youtube.com/static/images/icn_star_full_11x11.gif"> + <img style="border: 0px none; margin: 0px; padding: 0px; + vertical-align: middle; font-size: 11px;" align="top" alt="" + src="http://gdata.youtube.com/static/images/icn_star_full_11x11.gif"> + <img style="border: 0px none; margin: 0px; padding: 0px; + vertical-align: middle; font-size: 11px;" align="top" alt="" + src="http://gdata.youtube.com/static/images/icn_star_full_11x11.gif"> + <img style="border: 0px none; margin: 0px; padding: 0px; + vertical-align: middle; font-size: 11px;" align="top" alt="" + src="http://gdata.youtube.com/static/images/icn_star_full_11x11.gif"> + <img style="border: 0px none; margin: 0px; padding: 0px; + vertical-align: middle; font-size: 11px;" align="top" alt="" + src="http://gdata.youtube.com/static/images/icn_star_empty_11x11.gif"></div> + <div style="font-size: 11px;">24 <span style="color: + #666666; font-size: + 11px;">ratings</span></div></td></tr> + <tr><td><span style="color: #666666; font-size: + 11px;">Time:</span> <span style="color: #000000; + font-size: 11px; font-weight: + bold;">00:30</span></td> <td + style="font-size: 11px; padding-left: 20px;"><span + style="color: #666666; font-size: 11px;">More + in</span> <a + href="http://www.youtube.com/categories_portal?c=10">Music</a></td></tr></tbody></table></div></content> + <link rel='alternate' type='text/html' + href='http://www.youtube.com/watch?v=MOxExzhhW0c' /> + <link rel='http://gdata.youtube.com/schemas/2007#video.responses' + type='application/atom+xml' + href='http://gdata.youtube.com/feeds/videos/MOxExzhhW0c/responses' /> + <link rel='http://gdata.youtube.com/schemas/2007#video.related' + type='application/atom+xml' + href='http://gdata.youtube.com/feeds/videos/MOxExzhhW0c/related' /> + <link rel='related' type='application/atom+xml' + href='http://gdata.youtube.com/feeds/videos/MOxExzhhW0c' /> + <link rel='self' type='application/atom+xml' + href='http://gdata.youtube.com/feeds/playlists/46A2F8C9B36B6FE7/6d42a26a97a53c78' /> + <author> + <name>lauwarm</name> + <uri>http://gdata.youtube.com/feeds/users/lauwarm</uri> + </author> + <media:group> + <media:title type='plain'>hanging by a moment + (cover)</media:title> + <media:description type='plain'>my sister(guitar) and me + jamming lifehouse</media:description> + <media:keywords>lifehouse, hanging, by, moment, cover, + acoustic</media:keywords> + <yt:duration seconds='30' /> + <media:category label='Music' + scheme='http://gdata.youtube.com/schemas/2007/categories.cat'> + Music</media:category> + <media:content url='http://www.youtube.com/v/MOxExzhhW0c' + type='application/x-shockwave-flash' medium='video' + isDefault='true' expression='full' duration='30' + yt:format='5' /> + <media:player url='http://www.youtube.com/watch?v=MOxExzhhW0c' /> + <media:thumbnail url='http://img.youtube.com/vi/MOxExzhhW0c/2.jpg' + height='97' width='130' time='00:00:15' /> + <media:thumbnail url='http://img.youtube.com/vi/MOxExzhhW0c/1.jpg' + height='97' width='130' time='00:00:07.500' /> + <media:thumbnail url='http://img.youtube.com/vi/MOxExzhhW0c/3.jpg' + height='97' width='130' time='00:00:22.500' /> + <media:thumbnail url='http://img.youtube.com/vi/MOxExzhhW0c/0.jpg' + height='240' width='320' time='00:00:15' /> + </media:group> + <yt:statistics viewCount='7186' /> + <gd:rating min='1' max='5' numRaters='24' average='4.21' /> + <gd:comments> + <gd:feedLink href='http://gdata.youtube.com/feeds/videos/MOxExzhhW0c/comments' /> + </gd:comments> + <yt:position>4</yt:position> + </entry> + <entry> + <id> + http://gdata.youtube.com/feeds/playlists/46A2F8C9B36B6FE7/f78779d50b24db79</id> + <updated>2007-09-20T22:56:57.062Z</updated> + <category scheme='http://schemas.google.com/g/2005#kind' + term='http://gdata.youtube.com/schemas/2007#playlist' /> + <title type='text'>I'LL BE-MEN'S OCTET (ACAPELLA)</title> + <content type='html'><div style="color: #000000;font-family: + Arial, Helvetica, sans-serif; font-size:12px; font-size: 12px; + width: 555px;"><table cellspacing="0" cellpadding="0" + border="0"><tbody><tr><td width="140" + valign="top" rowspan="2"><div style="border: 1px solid + #999999; margin: 0px 10px 5px 0px;"><a + href="http://www.youtube.com/watch?v=_KHqQc1nn_0"><img + alt="" + src="http://img.youtube.com/vi/_KHqQc1nn_0/2.jpg"></a></div></td> + <td width="256" valign="top"><div style="font-size: + 12px; font-weight: bold;"><a style="font-size: 15px; + font-weight: bold; font-decoration: none;" + href="http://www.youtube.com/watch?v=_KHqQc1nn_0">I&#39;LL + BE-MEN&#39;S OCTET (ACAPELLA)</a> + <br></div> <div style="font-size: 12px; margin: + 3px 0px;"><span>UC BERKELEY&#39;S MEN&#39;S + OCTET (ACAPELLA)</span></div></td> <td + style="font-size: 11px; line-height: 1.4em; padding-left: 20px; + padding-top: 1px;" width="146" + valign="top"><div><span style="color: #666666; + font-size: 11px;">From:</span> <a + href="http://www.youtube.com/profile?user=boredom">boredom</a></div> + <div><span style="color: #666666; font-size: + 11px;">Views:</span> 46416</div> <div + style="white-space: nowrap;text-align: left"><img + style="border: 0px none; margin: 0px; padding: 0px; + vertical-align: middle; font-size: 11px;" align="top" alt="" + src="http://gdata.youtube.com/static/images/icn_star_full_11x11.gif"> + <img style="border: 0px none; margin: 0px; padding: 0px; + vertical-align: middle; font-size: 11px;" align="top" alt="" + src="http://gdata.youtube.com/static/images/icn_star_full_11x11.gif"> + <img style="border: 0px none; margin: 0px; padding: 0px; + vertical-align: middle; font-size: 11px;" align="top" alt="" + src="http://gdata.youtube.com/static/images/icn_star_full_11x11.gif"> + <img style="border: 0px none; margin: 0px; padding: 0px; + vertical-align: middle; font-size: 11px;" align="top" alt="" + src="http://gdata.youtube.com/static/images/icn_star_full_11x11.gif"> + <img style="border: 0px none; margin: 0px; padding: 0px; + vertical-align: middle; font-size: 11px;" align="top" alt="" + src="http://gdata.youtube.com/static/images/icn_star_half_11x11.gif"></div> + <div style="font-size: 11px;">116 <span style="color: + #666666; font-size: + 11px;">ratings</span></div></td></tr> + <tr><td><span style="color: #666666; font-size: + 11px;">Time:</span> <span style="color: #000000; + font-size: 11px; font-weight: + bold;">04:06</span></td> <td + style="font-size: 11px; padding-left: 20px;"><span + style="color: #666666; font-size: 11px;">More + in</span> <a + href="http://www.youtube.com/categories_portal?c=10">Music</a></td></tr></tbody></table></div></content> + <link rel='alternate' type='text/html' + href='http://www.youtube.com/watch?v=_KHqQc1nn_0' /> + <link rel='http://gdata.youtube.com/schemas/2007#video.responses' + type='application/atom+xml' + href='http://gdata.youtube.com/feeds/videos/_KHqQc1nn_0/responses' /> + <link rel='http://gdata.youtube.com/schemas/2007#video.related' + type='application/atom+xml' + href='http://gdata.youtube.com/feeds/videos/_KHqQc1nn_0/related' /> + <link rel='related' type='application/atom+xml' + href='http://gdata.youtube.com/feeds/videos/_KHqQc1nn_0' /> + <link rel='self' type='application/atom+xml' + href='http://gdata.youtube.com/feeds/playlists/46A2F8C9B36B6FE7/f78779d50b24db79' /> + <author> + <name>boredom</name> + <uri>http://gdata.youtube.com/feeds/users/boredom</uri> + </author> + <media:group> + <media:title type='plain'>I'LL BE-MEN'S OCTET + (ACAPELLA)</media:title> + <media:description type='plain'>UC BERKELEY'S MEN'S OCTET + (ACAPELLA)</media:description> + <media:keywords>ACAPELLA, berkeley, octet</media:keywords> + <yt:duration seconds='246' /> + <media:category label='Music' + scheme='http://gdata.youtube.com/schemas/2007/categories.cat'> + Music</media:category> + <media:content url='http://www.youtube.com/v/_KHqQc1nn_0' + type='application/x-shockwave-flash' medium='video' + isDefault='true' expression='full' duration='246' + yt:format='5' /> + <media:player url='http://www.youtube.com/watch?v=_KHqQc1nn_0' /> + <media:thumbnail url='http://img.youtube.com/vi/_KHqQc1nn_0/2.jpg' + height='97' width='130' time='00:02:03' /> + <media:thumbnail url='http://img.youtube.com/vi/_KHqQc1nn_0/1.jpg' + height='97' width='130' time='00:01:01.500' /> + <media:thumbnail url='http://img.youtube.com/vi/_KHqQc1nn_0/3.jpg' + height='97' width='130' time='00:03:04.500' /> + <media:thumbnail url='http://img.youtube.com/vi/_KHqQc1nn_0/0.jpg' + height='240' width='320' time='00:02:03' /> + </media:group> + <yt:statistics viewCount='46416' /> + <gd:rating min='1' max='5' numRaters='116' average='4.65' /> + <gd:comments> + <gd:feedLink href='http://gdata.youtube.com/feeds/videos/_KHqQc1nn_0/comments' /> + </gd:comments> + <yt:position>5</yt:position> + </entry> + <entry> + <id> + http://gdata.youtube.com/feeds/playlists/46A2F8C9B36B6FE7/d5fead6a034eb51c</id> + <updated>2007-09-20T22:56:57.062Z</updated> + <category scheme='http://schemas.google.com/g/2005#kind' + term='http://gdata.youtube.com/schemas/2007#playlist' /> + <title type='text'>Kiss the Girl</title> + <content type='html'><div style="color: #000000;font-family: + Arial, Helvetica, sans-serif; font-size:12px; font-size: 12px; + width: 555px;"><table cellspacing="0" cellpadding="0" + border="0"><tbody><tr><td width="140" + valign="top" rowspan="2"><div style="border: 1px solid + #999999; margin: 0px 10px 5px 0px;"><a + href="http://www.youtube.com/watch?v=EV1_qPBuDt8"><img + alt="" + src="http://img.youtube.com/vi/EV1_qPBuDt8/2.jpg"></a></div></td> + <td width="256" valign="top"><div style="font-size: + 12px; font-weight: bold;"><a style="font-size: 15px; + font-weight: bold; font-decoration: none;" + href="http://www.youtube.com/watch?v=EV1_qPBuDt8">Kiss the + Girl</a> <br></div> <div style="font-size: + 12px; margin: 3px 0px;"><span>Alma College&#39;s + Scots on the Rocks sing their acapella rendition of Kiss the + Girl from the Little + Mermaid</span></div></td> <td + style="font-size: 11px; line-height: 1.4em; padding-left: 20px; + padding-top: 1px;" width="146" + valign="top"><div><span style="color: #666666; + font-size: 11px;">From:</span> <a + href="http://www.youtube.com/profile?user=cmorris">cmorris</a></div> + <div><span style="color: #666666; font-size: + 11px;">Views:</span> 37218</div> <div + style="white-space: nowrap;text-align: left"><img + style="border: 0px none; margin: 0px; padding: 0px; + vertical-align: middle; font-size: 11px;" align="top" alt="" + src="http://gdata.youtube.com/static/images/icn_star_full_11x11.gif"> + <img style="border: 0px none; margin: 0px; padding: 0px; + vertical-align: middle; font-size: 11px;" align="top" alt="" + src="http://gdata.youtube.com/static/images/icn_star_full_11x11.gif"> + <img style="border: 0px none; margin: 0px; padding: 0px; + vertical-align: middle; font-size: 11px;" align="top" alt="" + src="http://gdata.youtube.com/static/images/icn_star_full_11x11.gif"> + <img style="border: 0px none; margin: 0px; padding: 0px; + vertical-align: middle; font-size: 11px;" align="top" alt="" + src="http://gdata.youtube.com/static/images/icn_star_full_11x11.gif"> + <img style="border: 0px none; margin: 0px; padding: 0px; + vertical-align: middle; font-size: 11px;" align="top" alt="" + src="http://gdata.youtube.com/static/images/icn_star_half_11x11.gif"></div> + <div style="font-size: 11px;">312 <span style="color: + #666666; font-size: + 11px;">ratings</span></div></td></tr> + <tr><td><span style="color: #666666; font-size: + 11px;">Time:</span> <span style="color: #000000; + font-size: 11px; font-weight: + bold;">03:16</span></td> <td + style="font-size: 11px; padding-left: 20px;"><span + style="color: #666666; font-size: 11px;">More + in</span> <a + href="http://www.youtube.com/categories_portal?c=10">Music</a></td></tr></tbody></table></div></content> + <link rel='alternate' type='text/html' + href='http://www.youtube.com/watch?v=EV1_qPBuDt8' /> + <link rel='http://gdata.youtube.com/schemas/2007#video.responses' + type='application/atom+xml' + href='http://gdata.youtube.com/feeds/videos/EV1_qPBuDt8/responses' /> + <link rel='http://gdata.youtube.com/schemas/2007#video.related' + type='application/atom+xml' + href='http://gdata.youtube.com/feeds/videos/EV1_qPBuDt8/related' /> + <link rel='related' type='application/atom+xml' + href='http://gdata.youtube.com/feeds/videos/EV1_qPBuDt8' /> + <link rel='self' type='application/atom+xml' + href='http://gdata.youtube.com/feeds/playlists/46A2F8C9B36B6FE7/d5fead6a034eb51c' /> + <author> + <name>cmorris</name> + <uri>http://gdata.youtube.com/feeds/users/cmorris</uri> + </author> + <media:group> + <media:title type='plain'>Kiss the Girl</media:title> + <media:description type='plain'>Alma College's Scots on the + Rocks sing their acapella rendition of Kiss the Girl from the + Little Mermaid</media:description> + <media:keywords>acapella</media:keywords> + <yt:duration seconds='196' /> + <media:category label='Music' + scheme='http://gdata.youtube.com/schemas/2007/categories.cat'> + Music</media:category> + <media:content url='http://www.youtube.com/v/EV1_qPBuDt8' + type='application/x-shockwave-flash' medium='video' + isDefault='true' expression='full' duration='196' + yt:format='5' /> + <media:player url='http://www.youtube.com/watch?v=EV1_qPBuDt8' /> + <media:thumbnail url='http://img.youtube.com/vi/EV1_qPBuDt8/2.jpg' + height='97' width='130' time='00:01:38' /> + <media:thumbnail url='http://img.youtube.com/vi/EV1_qPBuDt8/1.jpg' + height='97' width='130' time='00:00:49' /> + <media:thumbnail url='http://img.youtube.com/vi/EV1_qPBuDt8/3.jpg' + height='97' width='130' time='00:02:27' /> + <media:thumbnail url='http://img.youtube.com/vi/EV1_qPBuDt8/0.jpg' + height='240' width='320' time='00:01:38' /> + </media:group> + <yt:statistics viewCount='37218' /> + <gd:rating min='1' max='5' numRaters='312' average='4.77' /> + <gd:comments> + <gd:feedLink href='http://gdata.youtube.com/feeds/videos/EV1_qPBuDt8/comments' /> + </gd:comments> + <yt:position>6</yt:position> + </entry> + <entry> + <id> + http://gdata.youtube.com/feeds/playlists/46A2F8C9B36B6FE7/618d7dba982c0d7e</id> + <updated>2007-09-20T22:56:57.063Z</updated> + <category scheme='http://schemas.google.com/g/2005#kind' + term='http://gdata.youtube.com/schemas/2007#playlist' /> + <title type='text'>Oasis "Wonderwall" Acoustic Cover by + ortoPilot</title> + <content type='html'><div style="color: #000000;font-family: + Arial, Helvetica, sans-serif; font-size:12px; font-size: 12px; + width: 555px;"><table cellspacing="0" cellpadding="0" + border="0"><tbody><tr><td width="140" + valign="top" rowspan="2"><div style="border: 1px solid + #999999; margin: 0px 10px 5px 0px;"><a + href="http://www.youtube.com/watch?v=t4EaHIpjTTY"><img + alt="" + src="http://img.youtube.com/vi/t4EaHIpjTTY/2.jpg"></a></div></td> + <td width="256" valign="top"><div style="font-size: + 12px; font-weight: bold;"><a style="font-size: 15px; + font-weight: bold; font-decoration: none;" + href="http://www.youtube.com/watch?v=t4EaHIpjTTY">Oasis + &quot;Wonderwall&quot; Acoustic Cover by + ortoPilot</a> <br></div> <div + style="font-size: 12px; margin: 3px 0px;"><span>Oasis + &quot;Wonderwall&quot; Acoustic Cover by ortoPilot + acoustic version of wonderwall influenced by RYAN ADAMS mp3 + download and TABS @ www.ortoPilot.com enjoy! if you like this + vid, SUBSCRIBE to my vids, + cheers!</span></div></td> <td + style="font-size: 11px; line-height: 1.4em; padding-left: 20px; + padding-top: 1px;" width="146" + valign="top"><div><span style="color: #666666; + font-size: 11px;">From:</span> <a + href="http://www.youtube.com/profile?user=ortoPilot">ortoPilot</a></div> + <div><span style="color: #666666; font-size: + 11px;">Views:</span> 92395</div> <div + style="white-space: nowrap;text-align: left"><img + style="border: 0px none; margin: 0px; padding: 0px; + vertical-align: middle; font-size: 11px;" align="top" alt="" + src="http://gdata.youtube.com/static/images/icn_star_full_11x11.gif"> + <img style="border: 0px none; margin: 0px; padding: 0px; + vertical-align: middle; font-size: 11px;" align="top" alt="" + src="http://gdata.youtube.com/static/images/icn_star_full_11x11.gif"> + <img style="border: 0px none; margin: 0px; padding: 0px; + vertical-align: middle; font-size: 11px;" align="top" alt="" + src="http://gdata.youtube.com/static/images/icn_star_full_11x11.gif"> + <img style="border: 0px none; margin: 0px; padding: 0px; + vertical-align: middle; font-size: 11px;" align="top" alt="" + src="http://gdata.youtube.com/static/images/icn_star_full_11x11.gif"> + <img style="border: 0px none; margin: 0px; padding: 0px; + vertical-align: middle; font-size: 11px;" align="top" alt="" + src="http://gdata.youtube.com/static/images/icn_star_half_11x11.gif"></div> + <div style="font-size: 11px;">521 <span style="color: + #666666; font-size: + 11px;">ratings</span></div></td></tr> + <tr><td><span style="color: #666666; font-size: + 11px;">Time:</span> <span style="color: #000000; + font-size: 11px; font-weight: + bold;">04:01</span></td> <td + style="font-size: 11px; padding-left: 20px;"><span + style="color: #666666; font-size: 11px;">More + in</span> <a + href="http://www.youtube.com/categories_portal?c=10">Music</a></td></tr></tbody></table></div></content> + <link rel='alternate' type='text/html' + href='http://www.youtube.com/watch?v=t4EaHIpjTTY' /> + <link rel='http://gdata.youtube.com/schemas/2007#video.responses' + type='application/atom+xml' + href='http://gdata.youtube.com/feeds/videos/t4EaHIpjTTY/responses' /> + <link rel='http://gdata.youtube.com/schemas/2007#video.related' + type='application/atom+xml' + href='http://gdata.youtube.com/feeds/videos/t4EaHIpjTTY/related' /> + <link rel='related' type='application/atom+xml' + href='http://gdata.youtube.com/feeds/videos/t4EaHIpjTTY' /> + <link rel='self' type='application/atom+xml' + href='http://gdata.youtube.com/feeds/playlists/46A2F8C9B36B6FE7/618d7dba982c0d7e' /> + <author> + <name>ortoPilot</name> + <uri>http://gdata.youtube.com/feeds/users/ortoPilot</uri> + </author> + <media:group> + <media:title type='plain'>Oasis "Wonderwall" Acoustic Cover + by ortoPilot</media:title> + <media:description type='plain'>Oasis "Wonderwall" Acoustic + Cover by ortoPilot acoustic version of wonderwall influenced + by RYAN ADAMS mp3 download and TABS @ www.ortoPilot.com + enjoy! if you like this vid, SUBSCRIBE to my vids, + cheers!</media:description> + <media:keywords>acoustic, guitar, cover, oasis, wonderwall, + ortopilot, matt, hutchison, live, tab, tabs, + tutorial</media:keywords> + <yt:duration seconds='241' /> + <media:category label='Music' + scheme='http://gdata.youtube.com/schemas/2007/categories.cat'> + Music</media:category> + <media:content url='http://www.youtube.com/v/t4EaHIpjTTY' + type='application/x-shockwave-flash' medium='video' + isDefault='true' expression='full' duration='241' + yt:format='5' /> + <media:player url='http://www.youtube.com/watch?v=t4EaHIpjTTY' /> + <media:thumbnail url='http://img.youtube.com/vi/t4EaHIpjTTY/2.jpg' + height='97' width='130' time='00:02:00.500' /> + <media:thumbnail url='http://img.youtube.com/vi/t4EaHIpjTTY/1.jpg' + height='97' width='130' time='00:01:00.250' /> + <media:thumbnail url='http://img.youtube.com/vi/t4EaHIpjTTY/3.jpg' + height='97' width='130' time='00:03:00.750' /> + <media:thumbnail url='http://img.youtube.com/vi/t4EaHIpjTTY/0.jpg' + height='240' width='320' time='00:02:00.500' /> + </media:group> + <yt:statistics viewCount='92395' /> + <gd:rating min='1' max='5' numRaters='521' average='4.66' /> + <gd:comments> + <gd:feedLink href='http://gdata.youtube.com/feeds/videos/t4EaHIpjTTY/comments' /> + </gd:comments> + <yt:position>7</yt:position> + </entry> + <entry> + <id> + http://gdata.youtube.com/feeds/playlists/46A2F8C9B36B6FE7/4bfaab0ffb00dfdd</id> + <updated>2007-09-20T22:56:57.063Z</updated> + <category scheme='http://schemas.google.com/g/2005#kind' + term='http://gdata.youtube.com/schemas/2007#playlist' /> + <title type='text'>Pancakes!</title> + <content type='html'><div style="color: #000000;font-family: + Arial, Helvetica, sans-serif; font-size:12px; font-size: 12px; + width: 555px;"><table cellspacing="0" cellpadding="0" + border="0"><tbody><tr><td width="140" + valign="top" rowspan="2"><div style="border: 1px solid + #999999; margin: 0px 10px 5px 0px;"><a + href="http://www.youtube.com/watch?v=PnCVZozHTG8"><img + alt="" + src="http://img.youtube.com/vi/PnCVZozHTG8/2.jpg"></a></div></td> + <td width="256" valign="top"><div style="font-size: + 12px; font-weight: bold;"><a style="font-size: 15px; + font-weight: bold; font-decoration: none;" + href="http://www.youtube.com/watch?v=PnCVZozHTG8">Pancakes!</a> + <br></div> <div style="font-size: 12px; margin: + 3px 0px;"><span>A short music video about making + pancakes =) This video has been on ABC&#39;s &quot;Good + Morning America&quot; show, 16th August. + http://abcnews.go.com/Video/playerIndex?id=2318825 It has also + been aired on Fox news in America, Sky News, and Five News in + Britain and on ABC (Austrailain Broadcasting Company) in + Australia. I live in Scotland, these are British pancakes which + are like Crépes, to clear up the confusion. Lemon + and Sugar is very popular on pacakes here. It took over a week + to make this, it&#39;s the most heavily editied project I + have done yet, and it was not easy at all, but I have created + something that I&#39;m very proud of =) Song written, + performed and produced by me, video written, edited and filmed + by me. MP3 available on my website! James Provan Thanks to + Yukeh for the the voice that says &quot;GiR - it&#39;s + time for pancakes!&quot; at the + start.</span></div></td> <td + style="font-size: 11px; line-height: 1.4em; padding-left: 20px; + padding-top: 1px;" width="146" + valign="top"><div><span style="color: #666666; + font-size: 11px;">From:</span> <a + href="http://www.youtube.com/profile?user=GiR2007">GiR2007</a></div> + <div><span style="color: #666666; font-size: + 11px;">Views:</span> 2249048</div> <div + style="white-space: nowrap;text-align: left"><img + style="border: 0px none; margin: 0px; padding: 0px; + vertical-align: middle; font-size: 11px;" align="top" alt="" + src="http://gdata.youtube.com/static/images/icn_star_full_11x11.gif"> + <img style="border: 0px none; margin: 0px; padding: 0px; + vertical-align: middle; font-size: 11px;" align="top" alt="" + src="http://gdata.youtube.com/static/images/icn_star_full_11x11.gif"> + <img style="border: 0px none; margin: 0px; padding: 0px; + vertical-align: middle; font-size: 11px;" align="top" alt="" + src="http://gdata.youtube.com/static/images/icn_star_full_11x11.gif"> + <img style="border: 0px none; margin: 0px; padding: 0px; + vertical-align: middle; font-size: 11px;" align="top" alt="" + src="http://gdata.youtube.com/static/images/icn_star_full_11x11.gif"> + <img style="border: 0px none; margin: 0px; padding: 0px; + vertical-align: middle; font-size: 11px;" align="top" alt="" + src="http://gdata.youtube.com/static/images/icn_star_half_11x11.gif"></div> + <div style="font-size: 11px;">17754 <span + style="color: #666666; font-size: + 11px;">ratings</span></div></td></tr> + <tr><td><span style="color: #666666; font-size: + 11px;">Time:</span> <span style="color: #000000; + font-size: 11px; font-weight: + bold;">02:22</span></td> <td + style="font-size: 11px; padding-left: 20px;"><span + style="color: #666666; font-size: 11px;">More + in</span> <a + href="http://www.youtube.com/categories_portal?c=1">Film + &amp; + Animation</a></td></tr></tbody></table></div></content> + <link rel='alternate' type='text/html' + href='http://www.youtube.com/watch?v=PnCVZozHTG8' /> + <link rel='http://gdata.youtube.com/schemas/2007#video.responses' + type='application/atom+xml' + href='http://gdata.youtube.com/feeds/videos/PnCVZozHTG8/responses' /> + <link rel='http://gdata.youtube.com/schemas/2007#video.related' + type='application/atom+xml' + href='http://gdata.youtube.com/feeds/videos/PnCVZozHTG8/related' /> + <link rel='related' type='application/atom+xml' + href='http://gdata.youtube.com/feeds/videos/PnCVZozHTG8' /> + <link rel='self' type='application/atom+xml' + href='http://gdata.youtube.com/feeds/playlists/46A2F8C9B36B6FE7/4bfaab0ffb00dfdd' /> + <author> + <name>GiR2007</name> + <uri>http://gdata.youtube.com/feeds/users/GiR2007</uri> + </author> + <media:group> + <media:title type='plain'>Pancakes!</media:title> + <media:description type='plain'>A short music video about + making pancakes =) This video has been on ABC's "Good Morning + America" show, 16th August. + http://abcnews.go.com/Video/playerIndex?id=2318825 It has + also been aired on Fox news in America, Sky News, and Five + News in Britain and on ABC (Austrailain Broadcasting Company) + in Australia. I live in Scotland, these are British pancakes + which are like Crépes, to clear up the confusion. + Lemon and Sugar is very popular on pacakes here. It took over + a week to make this, it's the most heavily editied project I + have done yet, and it was not easy at all, but I have created + something that I'm very proud of =) Song written, performed + and produced by me, video written, edited and filmed by me. + MP3 available on my website! James Provan Thanks to Yukeh for + the the voice that says "GiR - it's time for pancakes!" at + the start.</media:description> + <media:keywords>stop, motion, pancakes, GiR2007, food, tasty, + nutella, jam, maple, syrup, animation, GMA, good, morning, + america, goodmorning</media:keywords> + <yt:duration seconds='142' /> + <media:category label='Film & Animation' + scheme='http://gdata.youtube.com/schemas/2007/categories.cat'> + Film</media:category> + <media:content url='http://www.youtube.com/v/PnCVZozHTG8' + type='application/x-shockwave-flash' medium='video' + isDefault='true' expression='full' duration='142' + yt:format='5' /> + <media:content url='rtsp://rtsp.youtube.com/youtube/videos/PnCVZozHTG8/video.3gp' + type='video/3gpp' medium='video' expression='full' + duration='142' yt:format='1' /> + <media:player url='http://www.youtube.com/watch?v=PnCVZozHTG8' /> + <media:thumbnail url='http://img.youtube.com/vi/PnCVZozHTG8/2.jpg' + height='97' width='130' time='00:01:11' /> + <media:thumbnail url='http://img.youtube.com/vi/PnCVZozHTG8/1.jpg' + height='97' width='130' time='00:00:35.500' /> + <media:thumbnail url='http://img.youtube.com/vi/PnCVZozHTG8/3.jpg' + height='97' width='130' time='00:01:46.500' /> + <media:thumbnail url='http://img.youtube.com/vi/PnCVZozHTG8/0.jpg' + height='240' width='320' time='00:01:11' /> + </media:group> + <yt:statistics viewCount='2249048' /> + <gd:rating min='1' max='5' numRaters='17754' average='4.59' /> + <gd:comments> + <gd:feedLink href='http://gdata.youtube.com/feeds/videos/PnCVZozHTG8/comments' /> + </gd:comments> + <yt:position>8</yt:position> + </entry> + <entry> + <id> + http://gdata.youtube.com/feeds/playlists/46A2F8C9B36B6FE7/46632a732cae0cbc</id> + <updated>2007-09-20T22:56:57.063Z</updated> + <category scheme='http://schemas.google.com/g/2005#kind' + term='http://gdata.youtube.com/schemas/2007#playlist' /> + <title type='text'>Ana Free - Chained</title> + <content type='html'><div style="color: #000000;font-family: + Arial, Helvetica, sans-serif; font-size:12px; font-size: 12px; + width: 555px;"><table cellspacing="0" cellpadding="0" + border="0"><tbody><tr><td width="140" + valign="top" rowspan="2"><div style="border: 1px solid + #999999; margin: 0px 10px 5px 0px;"><a + href="http://www.youtube.com/watch?v=_6ceUy9lVdM"><img + alt="" + src="http://img.youtube.com/vi/_6ceUy9lVdM/2.jpg"></a></div></td> + <td width="256" valign="top"><div style="font-size: + 12px; font-weight: bold;"><a style="font-size: 15px; + font-weight: bold; font-decoration: none;" + href="http://www.youtube.com/watch?v=_6ceUy9lVdM">Ana Free - + Chained</a> <br></div> <div + style="font-size: 12px; margin: 3px 0px;"><span>The + second upload of the day.. :) All is explained in the video, no + point in writing it here! Take care *** + Ana</span></div></td> <td + style="font-size: 11px; line-height: 1.4em; padding-left: 20px; + padding-top: 1px;" width="146" + valign="top"><div><span style="color: #666666; + font-size: 11px;">From:</span> <a + href="http://www.youtube.com/profile?user=anafree">anafree</a></div> + <div><span style="color: #666666; font-size: + 11px;">Views:</span> 688963</div> <div + style="white-space: nowrap;text-align: left"><img + style="border: 0px none; margin: 0px; padding: 0px; + vertical-align: middle; font-size: 11px;" align="top" alt="" + src="http://gdata.youtube.com/static/images/icn_star_full_11x11.gif"> + <img style="border: 0px none; margin: 0px; padding: 0px; + vertical-align: middle; font-size: 11px;" align="top" alt="" + src="http://gdata.youtube.com/static/images/icn_star_full_11x11.gif"> + <img style="border: 0px none; margin: 0px; padding: 0px; + vertical-align: middle; font-size: 11px;" align="top" alt="" + src="http://gdata.youtube.com/static/images/icn_star_full_11x11.gif"> + <img style="border: 0px none; margin: 0px; padding: 0px; + vertical-align: middle; font-size: 11px;" align="top" alt="" + src="http://gdata.youtube.com/static/images/icn_star_full_11x11.gif"> + <img style="border: 0px none; margin: 0px; padding: 0px; + vertical-align: middle; font-size: 11px;" align="top" alt="" + src="http://gdata.youtube.com/static/images/icn_star_empty_11x11.gif"></div> + <div style="font-size: 11px;">4530 <span style="color: + #666666; font-size: + 11px;">ratings</span></div></td></tr> + <tr><td><span style="color: #666666; font-size: + 11px;">Time:</span> <span style="color: #000000; + font-size: 11px; font-weight: + bold;">03:11</span></td> <td + style="font-size: 11px; padding-left: 20px;"><span + style="color: #666666; font-size: 11px;">More + in</span> <a + href="http://www.youtube.com/categories_portal?c=10">Music</a></td></tr></tbody></table></div></content> + <link rel='alternate' type='text/html' + href='http://www.youtube.com/watch?v=_6ceUy9lVdM' /> + <link rel='http://gdata.youtube.com/schemas/2007#video.responses' + type='application/atom+xml' + href='http://gdata.youtube.com/feeds/videos/_6ceUy9lVdM/responses' /> + <link rel='http://gdata.youtube.com/schemas/2007#video.related' + type='application/atom+xml' + href='http://gdata.youtube.com/feeds/videos/_6ceUy9lVdM/related' /> + <link rel='related' type='application/atom+xml' + href='http://gdata.youtube.com/feeds/videos/_6ceUy9lVdM' /> + <link rel='self' type='application/atom+xml' + href='http://gdata.youtube.com/feeds/playlists/46A2F8C9B36B6FE7/46632a732cae0cbc' /> + <author> + <name>anafree</name> + <uri>http://gdata.youtube.com/feeds/users/anafree</uri> + </author> + <media:group> + <media:title type='plain'>Ana Free - Chained</media:title> + <media:description type='plain'>The second upload of the + day.. :) All is explained in the video, no point in writing + it here! Take care *** Ana</media:description> + <media:keywords>anafree, ana, free, chained, original, + acoustic, love</media:keywords> + <yt:duration seconds='191' /> + <media:category label='Music' + scheme='http://gdata.youtube.com/schemas/2007/categories.cat'> + Music</media:category> + <media:content url='http://www.youtube.com/v/_6ceUy9lVdM' + type='application/x-shockwave-flash' medium='video' + isDefault='true' expression='full' duration='191' + yt:format='5' /> + <media:player url='http://www.youtube.com/watch?v=_6ceUy9lVdM' /> + <media:thumbnail url='http://img.youtube.com/vi/_6ceUy9lVdM/2.jpg' + height='97' width='130' time='00:01:35.500' /> + <media:thumbnail url='http://img.youtube.com/vi/_6ceUy9lVdM/1.jpg' + height='97' width='130' time='00:00:47.750' /> + <media:thumbnail url='http://img.youtube.com/vi/_6ceUy9lVdM/3.jpg' + height='97' width='130' time='00:02:23.250' /> + <media:thumbnail url='http://img.youtube.com/vi/_6ceUy9lVdM/0.jpg' + height='240' width='320' time='00:01:35.500' /> + </media:group> + <yt:statistics viewCount='688963' /> + <gd:rating min='1' max='5' numRaters='4530' average='4.48' /> + <gd:comments> + <gd:feedLink href='http://gdata.youtube.com/feeds/videos/_6ceUy9lVdM/comments' /> + </gd:comments> + <yt:position>9</yt:position> + </entry> + <entry> + <id> + http://gdata.youtube.com/feeds/playlists/46A2F8C9B36B6FE7/e67d5bf916676e20</id> + <updated>2007-09-20T22:56:57.064Z</updated> + <category scheme='http://schemas.google.com/g/2005#kind' + term='http://gdata.youtube.com/schemas/2007#playlist' /> + <title type='text'>Ana Free (Bic Runga - Sway</title> + <content type='html'><div style="color: #000000;font-family: + Arial, Helvetica, sans-serif; font-size:12px; font-size: 12px; + width: 555px;"><table cellspacing="0" cellpadding="0" + border="0"><tbody><tr><td width="140" + valign="top" rowspan="2"><div style="border: 1px solid + #999999; margin: 0px 10px 5px 0px;"><a + href="http://www.youtube.com/watch?v=ihQW-pWlkJw"><img + alt="" + src="http://img.youtube.com/vi/ihQW-pWlkJw/2.jpg"></a></div></td> + <td width="256" valign="top"><div style="font-size: + 12px; font-weight: bold;"><a style="font-size: 15px; + font-weight: bold; font-decoration: none;" + href="http://www.youtube.com/watch?v=ihQW-pWlkJw">Ana Free + (Bic Runga - Sway</a> <br></div> <div + style="font-size: 12px; margin: 3px 0px;"><span>This + is Sway by Bic Runga, difficult to sing and I guess to play + aswell..:) Hope you enjoy + it!</span></div></td> <td + style="font-size: 11px; line-height: 1.4em; padding-left: 20px; + padding-top: 1px;" width="146" + valign="top"><div><span style="color: #666666; + font-size: 11px;">From:</span> <a + href="http://www.youtube.com/profile?user=anafree">anafree</a></div> + <div><span style="color: #666666; font-size: + 11px;">Views:</span> 282936</div> <div + style="white-space: nowrap;text-align: left"><img + style="border: 0px none; margin: 0px; padding: 0px; + vertical-align: middle; font-size: 11px;" align="top" alt="" + src="http://gdata.youtube.com/static/images/icn_star_full_11x11.gif"> + <img style="border: 0px none; margin: 0px; padding: 0px; + vertical-align: middle; font-size: 11px;" align="top" alt="" + src="http://gdata.youtube.com/static/images/icn_star_full_11x11.gif"> + <img style="border: 0px none; margin: 0px; padding: 0px; + vertical-align: middle; font-size: 11px;" align="top" alt="" + src="http://gdata.youtube.com/static/images/icn_star_full_11x11.gif"> + <img style="border: 0px none; margin: 0px; padding: 0px; + vertical-align: middle; font-size: 11px;" align="top" alt="" + src="http://gdata.youtube.com/static/images/icn_star_full_11x11.gif"> + <img style="border: 0px none; margin: 0px; padding: 0px; + vertical-align: middle; font-size: 11px;" align="top" alt="" + src="http://gdata.youtube.com/static/images/icn_star_half_11x11.gif"></div> + <div style="font-size: 11px;">2224 <span style="color: + #666666; font-size: + 11px;">ratings</span></div></td></tr> + <tr><td><span style="color: #666666; font-size: + 11px;">Time:</span> <span style="color: #000000; + font-size: 11px; font-weight: + bold;">03:24</span></td> <td + style="font-size: 11px; padding-left: 20px;"><span + style="color: #666666; font-size: 11px;">More + in</span> <a + href="http://www.youtube.com/categories_portal?c=10">Music</a></td></tr></tbody></table></div></content> + <link rel='alternate' type='text/html' + href='http://www.youtube.com/watch?v=ihQW-pWlkJw' /> + <link rel='http://gdata.youtube.com/schemas/2007#video.responses' + type='application/atom+xml' + href='http://gdata.youtube.com/feeds/videos/ihQW-pWlkJw/responses' /> + <link rel='http://gdata.youtube.com/schemas/2007#video.related' + type='application/atom+xml' + href='http://gdata.youtube.com/feeds/videos/ihQW-pWlkJw/related' /> + <link rel='related' type='application/atom+xml' + href='http://gdata.youtube.com/feeds/videos/ihQW-pWlkJw' /> + <link rel='self' type='application/atom+xml' + href='http://gdata.youtube.com/feeds/playlists/46A2F8C9B36B6FE7/e67d5bf916676e20' /> + <author> + <name>anafree</name> + <uri>http://gdata.youtube.com/feeds/users/anafree</uri> + </author> + <media:group> + <media:title type='plain'>Ana Free (Bic Runga - + Sway</media:title> + <media:description type='plain'>This is Sway by Bic Runga, + difficult to sing and I guess to play aswell..:) Hope you + enjoy it!</media:description> + <media:keywords>bic, runga, sway, ana, free, anafree, + acoustic, singing</media:keywords> + <yt:duration seconds='204' /> + <media:category label='Music' + scheme='http://gdata.youtube.com/schemas/2007/categories.cat'> + Music</media:category> + <media:content url='http://www.youtube.com/v/ihQW-pWlkJw' + type='application/x-shockwave-flash' medium='video' + isDefault='true' expression='full' duration='204' + yt:format='5' /> + <media:player url='http://www.youtube.com/watch?v=ihQW-pWlkJw' /> + <media:thumbnail url='http://img.youtube.com/vi/ihQW-pWlkJw/2.jpg' + height='97' width='130' time='00:01:42' /> + <media:thumbnail url='http://img.youtube.com/vi/ihQW-pWlkJw/1.jpg' + height='97' width='130' time='00:00:51' /> + <media:thumbnail url='http://img.youtube.com/vi/ihQW-pWlkJw/3.jpg' + height='97' width='130' time='00:02:33' /> + <media:thumbnail url='http://img.youtube.com/vi/ihQW-pWlkJw/0.jpg' + height='240' width='320' time='00:01:42' /> + </media:group> + <yt:statistics viewCount='282936' /> + <gd:rating min='1' max='5' numRaters='2224' average='4.74' /> + <gd:comments> + <gd:feedLink href='http://gdata.youtube.com/feeds/videos/ihQW-pWlkJw/comments' /> + </gd:comments> + <yt:position>10</yt:position> + </entry> + <entry> + <id> + http://gdata.youtube.com/feeds/playlists/46A2F8C9B36B6FE7/a3011180d79eff53</id> + <updated>2007-09-20T22:56:57.064Z</updated> + <category scheme='http://schemas.google.com/g/2005#kind' + term='http://gdata.youtube.com/schemas/2007#playlist' /> + <title type='text'>I'm falling in love (u can buy the mp3 at + justinsteere.com)</title> + <content type='html'><div style="color: #000000;font-family: + Arial, Helvetica, sans-serif; font-size:12px; font-size: 12px; + width: 555px;"><table cellspacing="0" cellpadding="0" + border="0"><tbody><tr><td width="140" + valign="top" rowspan="2"><div style="border: 1px solid + #999999; margin: 0px 10px 5px 0px;"><a + href="http://www.youtube.com/watch?v=oXjInYHk2j0"><img + alt="" + src="http://img.youtube.com/vi/oXjInYHk2j0/2.jpg"></a></div></td> + <td width="256" valign="top"><div style="font-size: + 12px; font-weight: bold;"><a style="font-size: 15px; + font-weight: bold; font-decoration: none;" + href="http://www.youtube.com/watch?v=oXjInYHk2j0">I&#39;m + falling in love (u can buy the mp3 at + justinsteere.com)</a> <br></div> <div + style="font-size: 12px; margin: 3px 0px;"><span>this + is an original acoustic song. to purchase this song and others + check out justinsteere.com VOTE FOR THIS VIDEO AT famecast.com + (just search my name and click on vote for artist) + myspace.com/jsteere subscribe for instant video updates. more + videos coming soon. all the money i make from the mp3 downloads + is going towards making my real cd in november. enjoy + :)</span></div></td> <td style="font-size: + 11px; line-height: 1.4em; padding-left: 20px; padding-top: + 1px;" width="146" valign="top"><div><span + style="color: #666666; font-size: 11px;">From:</span> + <a + href="http://www.youtube.com/profile?user=bunetaybaz">bunetaybaz</a></div> + <div><span style="color: #666666; font-size: + 11px;">Views:</span> 653489</div> <div + style="white-space: nowrap;text-align: left"><img + style="border: 0px none; margin: 0px; padding: 0px; + vertical-align: middle; font-size: 11px;" align="top" alt="" + src="http://gdata.youtube.com/static/images/icn_star_full_11x11.gif"> + <img style="border: 0px none; margin: 0px; padding: 0px; + vertical-align: middle; font-size: 11px;" align="top" alt="" + src="http://gdata.youtube.com/static/images/icn_star_full_11x11.gif"> + <img style="border: 0px none; margin: 0px; padding: 0px; + vertical-align: middle; font-size: 11px;" align="top" alt="" + src="http://gdata.youtube.com/static/images/icn_star_full_11x11.gif"> + <img style="border: 0px none; margin: 0px; padding: 0px; + vertical-align: middle; font-size: 11px;" align="top" alt="" + src="http://gdata.youtube.com/static/images/icn_star_full_11x11.gif"> + <img style="border: 0px none; margin: 0px; padding: 0px; + vertical-align: middle; font-size: 11px;" align="top" alt="" + src="http://gdata.youtube.com/static/images/icn_star_half_11x11.gif"></div> + <div style="font-size: 11px;">4654 <span style="color: + #666666; font-size: + 11px;">ratings</span></div></td></tr> + <tr><td><span style="color: #666666; font-size: + 11px;">Time:</span> <span style="color: #000000; + font-size: 11px; font-weight: + bold;">03:17</span></td> <td + style="font-size: 11px; padding-left: 20px;"><span + style="color: #666666; font-size: 11px;">More + in</span> <a + href="http://www.youtube.com/categories_portal?c=10">Music</a></td></tr></tbody></table></div></content> + <link rel='alternate' type='text/html' + href='http://www.youtube.com/watch?v=oXjInYHk2j0' /> + <link rel='http://gdata.youtube.com/schemas/2007#video.responses' + type='application/atom+xml' + href='http://gdata.youtube.com/feeds/videos/oXjInYHk2j0/responses' /> + <link rel='http://gdata.youtube.com/schemas/2007#video.related' + type='application/atom+xml' + href='http://gdata.youtube.com/feeds/videos/oXjInYHk2j0/related' /> + <link rel='related' type='application/atom+xml' + href='http://gdata.youtube.com/feeds/videos/oXjInYHk2j0' /> + <link rel='self' type='application/atom+xml' + href='http://gdata.youtube.com/feeds/playlists/46A2F8C9B36B6FE7/a3011180d79eff53' /> + <author> + <name>bunetaybaz</name> + <uri>http://gdata.youtube.com/feeds/users/bunetaybaz</uri> + </author> + <media:group> + <media:title type='plain'>I'm falling in love (u can buy the + mp3 at justinsteere.com)</media:title> + <media:description type='plain'>this is an original acoustic + song. to purchase this song and others check out + justinsteere.com VOTE FOR THIS VIDEO AT famecast.com (just + search my name and click on vote for artist) + myspace.com/jsteere subscribe for instant video updates. more + videos coming soon. all the money i make from the mp3 + downloads is going towards making my real cd in november. + enjoy :)</media:description> + <media:keywords>justin, steere, jason, mraz, im, yours, dax, + flame, brookers, david, gray, josh, groban, you, and, I, + both, right, kind, of, phrase, better</media:keywords> + <yt:duration seconds='197' /> + <media:category label='Music' + scheme='http://gdata.youtube.com/schemas/2007/categories.cat'> + Music</media:category> + <media:content url='http://www.youtube.com/v/oXjInYHk2j0' + type='application/x-shockwave-flash' medium='video' + isDefault='true' expression='full' duration='197' + yt:format='5' /> + <media:content url='rtsp://rtsp.youtube.com/youtube/videos/oXjInYHk2j0/video.3gp' + type='video/3gpp' medium='video' expression='full' + duration='197' yt:format='1' /> + <media:player url='http://www.youtube.com/watch?v=oXjInYHk2j0' /> + <media:thumbnail url='http://img.youtube.com/vi/oXjInYHk2j0/2.jpg' + height='97' width='130' time='00:01:38.500' /> + <media:thumbnail url='http://img.youtube.com/vi/oXjInYHk2j0/1.jpg' + height='97' width='130' time='00:00:49.250' /> + <media:thumbnail url='http://img.youtube.com/vi/oXjInYHk2j0/3.jpg' + height='97' width='130' time='00:02:27.750' /> + <media:thumbnail url='http://img.youtube.com/vi/oXjInYHk2j0/0.jpg' + height='240' width='320' time='00:01:38.500' /> + </media:group> + <yt:statistics viewCount='653489' /> + <gd:rating min='1' max='5' numRaters='4654' average='4.59' /> + <gd:comments> + <gd:feedLink href='http://gdata.youtube.com/feeds/videos/oXjInYHk2j0/comments' /> + </gd:comments> + <yt:position>11</yt:position> + </entry> + <entry> + <id> + http://gdata.youtube.com/feeds/playlists/46A2F8C9B36B6FE7/798565c7d1c75453</id> + <updated>2007-09-20T22:56:57.064Z</updated> + <category scheme='http://schemas.google.com/g/2005#kind' + term='http://gdata.youtube.com/schemas/2007#playlist' /> + <title type='text'>When I Loved You</title> + <content type='html'><div style="color: #000000;font-family: + Arial, Helvetica, sans-serif; font-size:12px; font-size: 12px; + width: 555px;"><table cellspacing="0" cellpadding="0" + border="0"><tbody><tr><td width="140" + valign="top" rowspan="2"><div style="border: 1px solid + #999999; margin: 0px 10px 5px 0px;"><a + href="http://www.youtube.com/watch?v=KjMRf4egAyA"><img + alt="" + src="http://img.youtube.com/vi/KjMRf4egAyA/2.jpg"></a></div></td> + <td width="256" valign="top"><div style="font-size: + 12px; font-weight: bold;"><a style="font-size: 15px; + font-weight: bold; font-decoration: none;" + href="http://www.youtube.com/watch?v=KjMRf4egAyA">When I + Loved You</a> <br></div> <div + style="font-size: 12px; margin: 3px 0px;"><span>As + promised a new song EVERY Sunday...another original (just a + sample) I promise I&#39;ll get Sex Machine up as soon as I + can! + www.myspace.com/mishalmmoore</span></div></td> + <td style="font-size: 11px; line-height: 1.4em; + padding-left: 20px; padding-top: 1px;" width="146" + valign="top"><div><span style="color: #666666; + font-size: 11px;">From:</span> <a + href="http://www.youtube.com/profile?user=mishalmooremusic">mishalmooremusic</a></div> + <div><span style="color: #666666; font-size: + 11px;">Views:</span> 715030</div> <div + style="white-space: nowrap;text-align: left"><img + style="border: 0px none; margin: 0px; padding: 0px; + vertical-align: middle; font-size: 11px;" align="top" alt="" + src="http://gdata.youtube.com/static/images/icn_star_full_11x11.gif"> + <img style="border: 0px none; margin: 0px; padding: 0px; + vertical-align: middle; font-size: 11px;" align="top" alt="" + src="http://gdata.youtube.com/static/images/icn_star_full_11x11.gif"> + <img style="border: 0px none; margin: 0px; padding: 0px; + vertical-align: middle; font-size: 11px;" align="top" alt="" + src="http://gdata.youtube.com/static/images/icn_star_full_11x11.gif"> + <img style="border: 0px none; margin: 0px; padding: 0px; + vertical-align: middle; font-size: 11px;" align="top" alt="" + src="http://gdata.youtube.com/static/images/icn_star_full_11x11.gif"> + <img style="border: 0px none; margin: 0px; padding: 0px; + vertical-align: middle; font-size: 11px;" align="top" alt="" + src="http://gdata.youtube.com/static/images/icn_star_empty_11x11.gif"></div> + <div style="font-size: 11px;">2988 <span style="color: + #666666; font-size: + 11px;">ratings</span></div></td></tr> + <tr><td><span style="color: #666666; font-size: + 11px;">Time:</span> <span style="color: #000000; + font-size: 11px; font-weight: + bold;">02:38</span></td> <td + style="font-size: 11px; padding-left: 20px;"><span + style="color: #666666; font-size: 11px;">More + in</span> <a + href="http://www.youtube.com/categories_portal?c=10">Music</a></td></tr></tbody></table></div></content> + <link rel='alternate' type='text/html' + href='http://www.youtube.com/watch?v=KjMRf4egAyA' /> + <link rel='http://gdata.youtube.com/schemas/2007#video.responses' + type='application/atom+xml' + href='http://gdata.youtube.com/feeds/videos/KjMRf4egAyA/responses' /> + <link rel='http://gdata.youtube.com/schemas/2007#video.related' + type='application/atom+xml' + href='http://gdata.youtube.com/feeds/videos/KjMRf4egAyA/related' /> + <link rel='related' type='application/atom+xml' + href='http://gdata.youtube.com/feeds/videos/KjMRf4egAyA' /> + <link rel='self' type='application/atom+xml' + href='http://gdata.youtube.com/feeds/playlists/46A2F8C9B36B6FE7/798565c7d1c75453' /> + <author> + <name>mishalmooremusic</name> + <uri> + http://gdata.youtube.com/feeds/users/mishalmooremusic</uri> + </author> + <media:group> + <media:title type='plain'>When I Loved You</media:title> + <media:description type='plain'>As promised a new song EVERY + Sunday...another original (just a sample) I promise I'll get + Sex Machine up as soon as I can! + www.myspace.com/mishalmmoore</media:description> + <media:keywords>mishal, moore, when, i, loved, + you</media:keywords> + <yt:duration seconds='158' /> + <media:category label='Music' + scheme='http://gdata.youtube.com/schemas/2007/categories.cat'> + Music</media:category> + <media:content url='http://www.youtube.com/v/KjMRf4egAyA' + type='application/x-shockwave-flash' medium='video' + isDefault='true' expression='full' duration='158' + yt:format='5' /> + <media:content url='rtsp://rtsp.youtube.com/youtube/videos/KjMRf4egAyA/video.3gp' + type='video/3gpp' medium='video' expression='full' + duration='158' yt:format='1' /> + <media:player url='http://www.youtube.com/watch?v=KjMRf4egAyA' /> + <media:thumbnail url='http://img.youtube.com/vi/KjMRf4egAyA/2.jpg' + height='97' width='130' time='00:01:19' /> + <media:thumbnail url='http://img.youtube.com/vi/KjMRf4egAyA/1.jpg' + height='97' width='130' time='00:00:39.500' /> + <media:thumbnail url='http://img.youtube.com/vi/KjMRf4egAyA/3.jpg' + height='97' width='130' time='00:01:58.500' /> + <media:thumbnail url='http://img.youtube.com/vi/KjMRf4egAyA/0.jpg' + height='240' width='320' time='00:01:19' /> + </media:group> + <yt:statistics viewCount='715030' /> + <gd:rating min='1' max='5' numRaters='2988' average='4.48' /> + <gd:comments> + <gd:feedLink href='http://gdata.youtube.com/feeds/videos/KjMRf4egAyA/comments' /> + </gd:comments> + <yt:position>12</yt:position> + </entry> + <entry> + <id> + http://gdata.youtube.com/feeds/playlists/46A2F8C9B36B6FE7/2c0c020593e15124</id> + <updated>2007-09-20T22:56:57.065Z</updated> + <category scheme='http://schemas.google.com/g/2005#kind' + term='http://gdata.youtube.com/schemas/2007#playlist' /> + <title type='text'>CONCEIT- Scissors & Glue ON THE RISE + CONTEST WINNER</title> + <content type='html'><div style="color: #000000;font-family: + Arial, Helvetica, sans-serif; font-size:12px; font-size: 12px; + width: 555px;"><table cellspacing="0" cellpadding="0" + border="0"><tbody><tr><td width="140" + valign="top" rowspan="2"><div style="border: 1px solid + #999999; margin: 0px 10px 5px 0px;"><a + href="http://www.youtube.com/watch?v=R_ruSmFFdAY"><img + alt="" + src="http://img.youtube.com/vi/R_ruSmFFdAY/2.jpg"></a></div></td> + <td width="256" valign="top"><div style="font-size: + 12px; font-weight: bold;"><a style="font-size: 15px; + font-weight: bold; font-decoration: none;" + href="http://www.youtube.com/watch?v=R_ruSmFFdAY">CONCEIT- + Scissors &amp; Glue ON THE RISE CONTEST WINNER</a> + <br></div> <div style="font-size: 12px; margin: + 3px 0px;"><span>Conceit - Scissors &amp; Glue + Prod. Memo of the Molemen from the WASTED TALENT MIXTAPE + straight out the SAN FRANCISCO BAY AREA!!! Machete Vox - Gurp + City - Strangeface - Kill Technology Much love 2 LORDS CREW UM + 86&#39;in Promo Download: + http://www.zshare.net/audio/3603976e3994ff/ Wasted Talent + Mixtape available @ myspace.com/conceit + gurpcity.net</span></div></td> <td + style="font-size: 11px; line-height: 1.4em; padding-left: 20px; + padding-top: 1px;" width="146" + valign="top"><div><span style="color: #666666; + font-size: 11px;">From:</span> <a + href="http://www.youtube.com/profile?user=conceit">conceit</a></div> + <div><span style="color: #666666; font-size: + 11px;">Views:</span> 188729</div> <div + style="white-space: nowrap;text-align: left"><img + style="border: 0px none; margin: 0px; padding: 0px; + vertical-align: middle; font-size: 11px;" align="top" alt="" + src="http://gdata.youtube.com/static/images/icn_star_full_11x11.gif"> + <img style="border: 0px none; margin: 0px; padding: 0px; + vertical-align: middle; font-size: 11px;" align="top" alt="" + src="http://gdata.youtube.com/static/images/icn_star_full_11x11.gif"> + <img style="border: 0px none; margin: 0px; padding: 0px; + vertical-align: middle; font-size: 11px;" align="top" alt="" + src="http://gdata.youtube.com/static/images/icn_star_full_11x11.gif"> + <img style="border: 0px none; margin: 0px; padding: 0px; + vertical-align: middle; font-size: 11px;" align="top" alt="" + src="http://gdata.youtube.com/static/images/icn_star_half_11x11.gif"> + <img style="border: 0px none; margin: 0px; padding: 0px; + vertical-align: middle; font-size: 11px;" align="top" alt="" + src="http://gdata.youtube.com/static/images/icn_star_empty_11x11.gif"></div> + <div style="font-size: 11px;">680 <span style="color: + #666666; font-size: + 11px;">ratings</span></div></td></tr> + <tr><td><span style="color: #666666; font-size: + 11px;">Time:</span> <span style="color: #000000; + font-size: 11px; font-weight: + bold;">02:22</span></td> <td + style="font-size: 11px; padding-left: 20px;"><span + style="color: #666666; font-size: 11px;">More + in</span> <a + href="http://www.youtube.com/categories_portal?c=10">Music</a></td></tr></tbody></table></div></content> + <link rel='alternate' type='text/html' + href='http://www.youtube.com/watch?v=R_ruSmFFdAY' /> + <link rel='http://gdata.youtube.com/schemas/2007#video.responses' + type='application/atom+xml' + href='http://gdata.youtube.com/feeds/videos/R_ruSmFFdAY/responses' /> + <link rel='http://gdata.youtube.com/schemas/2007#video.related' + type='application/atom+xml' + href='http://gdata.youtube.com/feeds/videos/R_ruSmFFdAY/related' /> + <link rel='related' type='application/atom+xml' + href='http://gdata.youtube.com/feeds/videos/R_ruSmFFdAY' /> + <link rel='self' type='application/atom+xml' + href='http://gdata.youtube.com/feeds/playlists/46A2F8C9B36B6FE7/2c0c020593e15124' /> + <author> + <name>conceit</name> + <uri>http://gdata.youtube.com/feeds/users/conceit</uri> + </author> + <media:group> + <media:title type='plain'>CONCEIT- Scissors & Glue ON THE + RISE CONTEST WINNER</media:title> + <media:description type='plain'>Conceit - Scissors & Glue + Prod. Memo of the Molemen from the WASTED TALENT MIXTAPE + straight out the SAN FRANCISCO BAY AREA!!! Machete Vox - Gurp + City - Strangeface - Kill Technology Much love 2 LORDS CREW + UM 86'in Promo Download: + http://www.zshare.net/audio/3603976e3994ff/ Wasted Talent + Mixtape available @ myspace.com/conceit + gurpcity.net</media:description> + <media:keywords>rap, music, contest, 50, cent, conceit, sf, + bay, area, ontherise, wasted, talent, gurp, city, machete, + vox</media:keywords> + <yt:duration seconds='142' /> + <media:category label='Music' + scheme='http://gdata.youtube.com/schemas/2007/categories.cat'> + Music</media:category> + <media:content url='http://www.youtube.com/v/R_ruSmFFdAY' + type='application/x-shockwave-flash' medium='video' + isDefault='true' expression='full' duration='142' + yt:format='5' /> + <media:player url='http://www.youtube.com/watch?v=R_ruSmFFdAY' /> + <media:thumbnail url='http://img.youtube.com/vi/R_ruSmFFdAY/2.jpg' + height='97' width='130' time='00:01:11' /> + <media:thumbnail url='http://img.youtube.com/vi/R_ruSmFFdAY/1.jpg' + height='97' width='130' time='00:00:35.500' /> + <media:thumbnail url='http://img.youtube.com/vi/R_ruSmFFdAY/3.jpg' + height='97' width='130' time='00:01:46.500' /> + <media:thumbnail url='http://img.youtube.com/vi/R_ruSmFFdAY/0.jpg' + height='240' width='320' time='00:01:11' /> + </media:group> + <yt:statistics viewCount='188729' /> + <gd:rating min='1' max='5' numRaters='680' average='3.84' /> + <gd:comments> + <gd:feedLink href='http://gdata.youtube.com/feeds/videos/R_ruSmFFdAY/comments' /> + </gd:comments> + <yt:position>13</yt:position> + </entry> +</feed> diff --git a/zend/tests/Zend/Gdata/YouTube/_files/SubscriptionEntryDataSample1.xml b/zend/tests/Zend/Gdata/YouTube/_files/SubscriptionEntryDataSample1.xml new file mode 100644 index 0000000..b2db6ec --- /dev/null +++ b/zend/tests/Zend/Gdata/YouTube/_files/SubscriptionEntryDataSample1.xml @@ -0,0 +1,29 @@ +<?xml version='1.0' encoding='utf-8'?> +<entry xmlns='http://www.w3.org/2005/Atom' +xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' +xmlns:media='http://search.yahoo.com/mrss/' +xmlns:gd='http://schemas.google.com/g/2005' +xmlns:yt='http://gdata.youtube.com/schemas/2007'> + <id> + http://gdata.youtube.com/feeds/users/testuser/subscriptions/35bbde297dba88db</id> + <published>2007-03-02T11:58:22.000-08:00</published> + <updated>2007-03-02T11:58:22.000-08:00</updated> + <category scheme='http://schemas.google.com/g/2005#kind' + term='http://gdata.youtube.com/schemas/2007#subscription' /> + <category scheme='http://gdata.youtube.com/schemas/2007/subscriptiontypes.cat' + term='publisher' /> + <title type='text'>Videos published by : BBC</title> + <link rel='related' type='application/atom+xml' + href='http://gdata.youtube.com/feeds/users/testuser' /> + <link rel='alternate' type='text/html' + href='http://www.youtube.com/profile_videos?user=BBC' /> + <link rel='self' type='application/atom+xml' + href='http://gdata.youtube.com/feeds/users/testuser/subscriptions/35bbde297dba88db' /> + <author> + <name>testuser</name> + <uri>http://gdata.youtube.com/feeds/users/testuser</uri> + </author> + <gd:feedLink rel='http://gdata.youtube.com/schemas/2007#user.uploads' + href='http://gdata.youtube.com/feeds/users/BBC/uploads' + countHint='697' /> +</entry> diff --git a/zend/tests/Zend/Gdata/YouTube/_files/SubscriptionEntryDataSampleV2.xml b/zend/tests/Zend/Gdata/YouTube/_files/SubscriptionEntryDataSampleV2.xml new file mode 100644 index 0000000..4845693 --- /dev/null +++ b/zend/tests/Zend/Gdata/YouTube/_files/SubscriptionEntryDataSampleV2.xml @@ -0,0 +1,33 @@ +<?xml version='1.0' encoding='utf-8'?> +<entry xmlns='http://www.w3.org/2005/Atom' +xmlns:media='http://search.yahoo.com/mrss/' +xmlns:batch='http://schemas.google.com/gdata/batch' +xmlns:yt='http://gdata.youtube.com/schemas/2007' +xmlns:gd='http://schemas.google.com/g/2005' +gd:etag='W/"Dk4FRn47eCp7ImA9WB9WEkg."'> +<id> +tag:youtube.com,2008:user:googledevelopers:subscription:Z1Lm-S9gkRQ</id> +<published>2007-11-16T15:15:17.000-08:00</published> +<updated>2007-11-16T15:15:17.000-08:00</updated> +<category scheme='http://gdata.youtube.com/schemas/2007/subscriptiontypes.cat' +term='channel' /> +<category scheme='http://schemas.google.com/g/2005#kind' +term='http://gdata.youtube.com/schemas/2007#subscription' /> +<title>Videos published by : androiddevelopers</title> +<content type='application/atom+xml;type=feed' +src='http://gdata.youtube.com/feeds/api/users/androiddevelopers/uploads?v=2' /> +<link rel='related' type='application/atom+xml' +href='http://gdata.youtube.com/feeds/api/users/googledevelopers?v=2' /> +<link rel='alternate' type='text/html' +href='http://www.youtube.com/profile_videos?user=androiddevelopers' /> +<link rel='self' type='application/atom+xml' +href='http://gdata.youtube.com/feeds/api/users/googledevelopers/subscriptions/Z1Lm-S9gkRQ?v=2' /> +<author> +<name>GoogleDevelopers</name> +<uri> +http://gdata.youtube.com/feeds/api/users/googledevelopers</uri> +</author> +<yt:username>androiddevelopers</yt:username> +<yt:countHint>50</yt:countHint> +<media:thumbnail url='http://i2.ytimg.com/vi/1FJHYqE0RDg/default.jpg' /> +</entry> diff --git a/zend/tests/Zend/Gdata/YouTube/_files/SubscriptionEntryDataSample_channelV2.xml b/zend/tests/Zend/Gdata/YouTube/_files/SubscriptionEntryDataSample_channelV2.xml new file mode 100644 index 0000000..4845693 --- /dev/null +++ b/zend/tests/Zend/Gdata/YouTube/_files/SubscriptionEntryDataSample_channelV2.xml @@ -0,0 +1,33 @@ +<?xml version='1.0' encoding='utf-8'?> +<entry xmlns='http://www.w3.org/2005/Atom' +xmlns:media='http://search.yahoo.com/mrss/' +xmlns:batch='http://schemas.google.com/gdata/batch' +xmlns:yt='http://gdata.youtube.com/schemas/2007' +xmlns:gd='http://schemas.google.com/g/2005' +gd:etag='W/"Dk4FRn47eCp7ImA9WB9WEkg."'> +<id> +tag:youtube.com,2008:user:googledevelopers:subscription:Z1Lm-S9gkRQ</id> +<published>2007-11-16T15:15:17.000-08:00</published> +<updated>2007-11-16T15:15:17.000-08:00</updated> +<category scheme='http://gdata.youtube.com/schemas/2007/subscriptiontypes.cat' +term='channel' /> +<category scheme='http://schemas.google.com/g/2005#kind' +term='http://gdata.youtube.com/schemas/2007#subscription' /> +<title>Videos published by : androiddevelopers</title> +<content type='application/atom+xml;type=feed' +src='http://gdata.youtube.com/feeds/api/users/androiddevelopers/uploads?v=2' /> +<link rel='related' type='application/atom+xml' +href='http://gdata.youtube.com/feeds/api/users/googledevelopers?v=2' /> +<link rel='alternate' type='text/html' +href='http://www.youtube.com/profile_videos?user=androiddevelopers' /> +<link rel='self' type='application/atom+xml' +href='http://gdata.youtube.com/feeds/api/users/googledevelopers/subscriptions/Z1Lm-S9gkRQ?v=2' /> +<author> +<name>GoogleDevelopers</name> +<uri> +http://gdata.youtube.com/feeds/api/users/googledevelopers</uri> +</author> +<yt:username>androiddevelopers</yt:username> +<yt:countHint>50</yt:countHint> +<media:thumbnail url='http://i2.ytimg.com/vi/1FJHYqE0RDg/default.jpg' /> +</entry> diff --git a/zend/tests/Zend/Gdata/YouTube/_files/SubscriptionEntryDataSample_favoritesV2.xml b/zend/tests/Zend/Gdata/YouTube/_files/SubscriptionEntryDataSample_favoritesV2.xml new file mode 100644 index 0000000..0120c3e --- /dev/null +++ b/zend/tests/Zend/Gdata/YouTube/_files/SubscriptionEntryDataSample_favoritesV2.xml @@ -0,0 +1,30 @@ +<?xml version='1.0' encoding='utf-8'?> +<entry xmlns='http://www.w3.org/2005/Atom' +xmlns:media='http://search.yahoo.com/mrss/' +xmlns:batch='http://schemas.google.com/gdata/batch' +xmlns:yt='http://gdata.youtube.com/schemas/2007' +xmlns:gd='http://schemas.google.com/g/2005' +gd:etag='W/"C04CR347eCp7ImA9WxRaE0U."'> +<id>tag:youtube.com,2008:user:zfgdata:subscription:S_KBJ3ylYwc</id> +<published>2008-12-15T14:59:26.000-08:00</published> +<updated>2008-12-15T14:59:26.000-08:00</updated> +<category scheme='http://gdata.youtube.com/schemas/2007/subscriptiontypes.cat' +term='favorites' /> +<category scheme='http://schemas.google.com/g/2005#kind' +term='http://gdata.youtube.com/schemas/2007#subscription' /> +<title>Favorites of : NBA</title> +<content type='application/atom+xml;type=feed' +src='http://gdata.youtube.com/feeds/api/users/nba/favorites?v=2' /> +<link rel='related' type='application/atom+xml' +href='http://gdata.youtube.com/feeds/api/users/zfgdata?v=2' /> +<link rel='alternate' type='text/html' +href='http://www.youtube.com/profile_favorites?user=NBA' /> +<link rel='self' type='application/atom+xml' +href='http://gdata.youtube.com/feeds/api/users/zfgdata/subscriptions/S_KBJ3ylYwc?v=2' /> +<author> +<name>zfgdata</name> +<uri>http://gdata.youtube.com/feeds/api/users/zfgdata</uri> +</author> +<yt:username>NBA</yt:username> +<media:thumbnail url='http://i4.ytimg.com/i/WJ2lWNubArHWmf3FIHbfcQ/1.jpg' /> +</entry>
\ No newline at end of file diff --git a/zend/tests/Zend/Gdata/YouTube/_files/SubscriptionEntryDataSample_playlistV2.xml b/zend/tests/Zend/Gdata/YouTube/_files/SubscriptionEntryDataSample_playlistV2.xml new file mode 100644 index 0000000..dbec414 --- /dev/null +++ b/zend/tests/Zend/Gdata/YouTube/_files/SubscriptionEntryDataSample_playlistV2.xml @@ -0,0 +1,32 @@ +<?xml version='1.0' encoding='utf-8'?> +<entry xmlns='http://www.w3.org/2005/Atom' +xmlns:media='http://search.yahoo.com/mrss/' +xmlns:batch='http://schemas.google.com/gdata/batch' +xmlns:yt='http://gdata.youtube.com/schemas/2007' +xmlns:gd='http://schemas.google.com/g/2005' +gd:etag='W/"DUMHQ347eCp7ImA9WB9TE0k."'> +<id>tag:youtube.com,2008:user:zfgdata:subscription:i_2YXxZb9Zg</id> +<published>2007-09-20T21:03:52.000-07:00</published> +<updated>2007-09-20T21:03:52.000-07:00</updated> +<category scheme='http://gdata.youtube.com/schemas/2007/subscriptiontypes.cat' +term='playlist' /> +<category scheme='http://schemas.google.com/g/2005#kind' +term='http://gdata.youtube.com/schemas/2007#subscription' /> +<title>From Google Engineers</title> +<content type='application/atom+xml;type=feed' +src='http://gdata.youtube.com/feeds/api/playlists/4AE5C0D23C2EB82D?v=2' /> +<link rel='related' type='application/atom+xml' +href='http://gdata.youtube.com/feeds/api/users/zfgdata?v=2' /> +<link rel='alternate' type='text/html' +href='http://www.youtube.com/view_play_list?p=4AE5C0D23C2EB82D' /> +<link rel='self' type='application/atom+xml' +href='http://gdata.youtube.com/feeds/api/users/zfgdata/subscriptions/i_2YXxZb9Zg?v=2' /> +<author> +<name>zfgdata</name> +<uri>http://gdata.youtube.com/feeds/api/users/zfgdata</uri> +</author> +<yt:playlistTitle>From Google Engineers</yt:playlistTitle> +<yt:username>GoogleDevelopers</yt:username> +<yt:playlistId>4AE5C0D23C2EB82D</yt:playlistId> +<media:thumbnail url='http://i3.ytimg.com/vi/zI38Tc9GjSk/default.jpg' /> +</entry>
\ No newline at end of file diff --git a/zend/tests/Zend/Gdata/YouTube/_files/SubscriptionEntryDataSample_queryV2.xml b/zend/tests/Zend/Gdata/YouTube/_files/SubscriptionEntryDataSample_queryV2.xml new file mode 100644 index 0000000..4f4fc87 --- /dev/null +++ b/zend/tests/Zend/Gdata/YouTube/_files/SubscriptionEntryDataSample_queryV2.xml @@ -0,0 +1,31 @@ +<?xml version='1.0' encoding='utf-8'?> +<entry xmlns='http://www.w3.org/2005/Atom' +xmlns:media='http://search.yahoo.com/mrss/' +xmlns:batch='http://schemas.google.com/gdata/batch' +xmlns:yt='http://gdata.youtube.com/schemas/2007' +xmlns:gd='http://schemas.google.com/g/2005' +gd:etag='W/"C0QFSH47eCp7ImA9WxRaE0U."'> +<id> +tag:youtube.com,2008:user:zfgdata:subscription:59NG0lkr7r4</id> +<published>2008-12-15T14:48:39.000-08:00</published> +<updated>2008-12-15T14:48:39.000-08:00</updated> +<category scheme='http://gdata.youtube.com/schemas/2007/subscriptiontypes.cat' +term='query' /> +<category scheme='http://schemas.google.com/g/2005#kind' +term='http://gdata.youtube.com/schemas/2007#subscription' /> +<title>Videos matching : google</title> +<content type='application/atom+xml;type=feed' +src='http://gdata.youtube.com/feeds/api/videos?q=google&v=2' /> +<link rel='related' type='application/atom+xml' +href='http://gdata.youtube.com/feeds/api/users/zfgdata?v=2' /> +<link rel='alternate' type='text/html' +href='http://www.youtube.com/results?search_query=google' /> +<link rel='self' type='application/atom+xml' +href='http://gdata.youtube.com/feeds/api/users/zfgdata/subscriptions/59NG0lkr7r4?v=2' /> +<author> +<name>zfgdata</name> +<uri> +http://gdata.youtube.com/feeds/api/users/zfgdata</uri> +</author> +<yt:queryString>google</yt:queryString> +</entry>
\ No newline at end of file diff --git a/zend/tests/Zend/Gdata/YouTube/_files/SubscriptionFeedDataSample1.xml b/zend/tests/Zend/Gdata/YouTube/_files/SubscriptionFeedDataSample1.xml new file mode 100644 index 0000000..6200054 --- /dev/null +++ b/zend/tests/Zend/Gdata/YouTube/_files/SubscriptionFeedDataSample1.xml @@ -0,0 +1,105 @@ +<?xml version='1.0' encoding='utf-8'?> +<feed xmlns='http://www.w3.org/2005/Atom' +xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' +xmlns:media='http://search.yahoo.com/mrss/' +xmlns:gd='http://schemas.google.com/g/2005' +xmlns:yt='http://gdata.youtube.com/schemas/2007'> + <id> + http://gdata.youtube.com/feeds/users/testuser/subscriptions</id> + <updated>2007-09-20T22:12:45.193Z</updated> + <category scheme='http://schemas.google.com/g/2005#kind' + term='http://gdata.youtube.com/schemas/2007#subscription' /> + <title type='text'>testuser's Subscriptions</title> + <logo> + http://www.youtube.com/img/pic_youtubelogo_123x63.gif</logo> + <link rel='alternate' type='text/html' + href='http://www.youtube.com/profile_subscriptions?user=testuser' /> + <link rel='related' type='application/atom+xml' + href='http://gdata.youtube.com/feeds/users/testuser' /> + <link rel='http://schemas.google.com/g/2005#feed' + type='application/atom+xml' + href='http://gdata.youtube.com/feeds/users/testuser/subscriptions' /> + <link rel='self' type='application/atom+xml' + href='http://gdata.youtube.com/feeds/users/testuser/subscriptions?start-index=1&max-results=25' /> + <author> + <name>testuser</name> + <uri>http://gdata.youtube.com/feeds/users/testuser</uri> + </author> + <generator version='beta' uri='http://gdata.youtube.com/'>YouTube + data API</generator> + <openSearch:totalResults>3</openSearch:totalResults> + <openSearch:startIndex>1</openSearch:startIndex> + <openSearch:itemsPerPage>25</openSearch:itemsPerPage> + <entry> + <id> + http://gdata.youtube.com/feeds/users/testuser/subscriptions/35bbde297dba88db</id> + <published>2007-03-02T11:58:22.000-08:00</published> + <updated>2007-03-02T11:58:22.000-08:00</updated> + <category scheme='http://schemas.google.com/g/2005#kind' + term='http://gdata.youtube.com/schemas/2007#subscription' /> + <category scheme='http://gdata.youtube.com/schemas/2007/subscriptiontypes.cat' + term='publisher' /> + <title type='text'>Videos published by : BBC</title> + <link rel='related' type='application/atom+xml' + href='http://gdata.youtube.com/feeds/users/testuser' /> + <link rel='alternate' type='text/html' + href='http://www.youtube.com/profile_videos?user=BBC' /> + <link rel='self' type='application/atom+xml' + href='http://gdata.youtube.com/feeds/users/testuser/subscriptions/35bbde297dba88db' /> + <author> + <name>testuser</name> + <uri>http://gdata.youtube.com/feeds/users/testuser</uri> + </author> + <gd:feedLink rel='http://gdata.youtube.com/schemas/2007#user.uploads' + href='http://gdata.youtube.com/feeds/users/BBC/uploads' + countHint='697' /> + </entry> + <entry> + <id> + http://gdata.youtube.com/feeds/users/testuser/subscriptions/742853a3468b2418</id> + <published>2007-09-18T21:39:36.000-07:00</published> + <updated>2007-09-18T21:39:36.000-07:00</updated> + <category scheme='http://schemas.google.com/g/2005#kind' + term='http://gdata.youtube.com/schemas/2007#subscription' /> + <category scheme='http://gdata.youtube.com/schemas/2007/subscriptiontypes.cat' + term='publisher' /> + <title type='text'>Videos published by : communitychannel</title> + <link rel='related' type='application/atom+xml' + href='http://gdata.youtube.com/feeds/users/testuser' /> + <link rel='alternate' type='text/html' + href='http://www.youtube.com/profile_videos?user=communitychannel' /> + <link rel='self' type='application/atom+xml' + href='http://gdata.youtube.com/feeds/users/testuser/subscriptions/742853a3468b2418' /> + <author> + <name>testuser</name> + <uri>http://gdata.youtube.com/feeds/users/testuser</uri> + </author> + <gd:feedLink rel='http://gdata.youtube.com/schemas/2007#user.uploads' + href='http://gdata.youtube.com/feeds/users/communitychannel/uploads' + countHint='49' /> + </entry> + <entry> + <id> + http://gdata.youtube.com/feeds/users/testuser/subscriptions/98263c1ed3e31828</id> + <published>2007-09-20T13:45:29.000-07:00</published> + <updated>2007-09-20T13:45:29.000-07:00</updated> + <category scheme='http://schemas.google.com/g/2005#kind' + term='http://gdata.youtube.com/schemas/2007#subscription' /> + <category scheme='http://gdata.youtube.com/schemas/2007/subscriptiontypes.cat' + term='publisher' /> + <title type='text'>Videos published by : ucberkeley</title> + <link rel='related' type='application/atom+xml' + href='http://gdata.youtube.com/feeds/users/testuser' /> + <link rel='alternate' type='text/html' + href='http://www.youtube.com/profile_videos?user=ucberkeley' /> + <link rel='self' type='application/atom+xml' + href='http://gdata.youtube.com/feeds/users/testuser/subscriptions/98263c1ed3e31828' /> + <author> + <name>testuser</name> + <uri>http://gdata.youtube.com/feeds/users/testuser</uri> + </author> + <gd:feedLink rel='http://gdata.youtube.com/schemas/2007#user.uploads' + href='http://gdata.youtube.com/feeds/users/ucberkeley/uploads' + countHint='201' /> + </entry> +</feed> diff --git a/zend/tests/Zend/Gdata/YouTube/_files/SubscriptionFeedDataSampleV2.xml b/zend/tests/Zend/Gdata/YouTube/_files/SubscriptionFeedDataSampleV2.xml new file mode 100644 index 0000000..c8ac727 --- /dev/null +++ b/zend/tests/Zend/Gdata/YouTube/_files/SubscriptionFeedDataSampleV2.xml @@ -0,0 +1,138 @@ +<?xml version='1.0' encoding='utf-8'?> +<feed xmlns='http://www.w3.org/2005/Atom' +xmlns:openSearch='http://a9.com/-/spec/opensearch/1.1/' +xmlns:media='http://search.yahoo.com/mrss/' +xmlns:batch='http://schemas.google.com/gdata/batch' +xmlns:yt='http://gdata.youtube.com/schemas/2007' +xmlns:gd='http://schemas.google.com/g/2005' +gd:etag='W/"DUUDQn47eCp7ImA9WB9TE0k."'> +<id>tag:youtube.com,2008:user:zfgdata:subscriptions</id> +<updated>2007-09-20T21:01:13.000-07:00</updated> +<category scheme='http://schemas.google.com/g/2005#kind' +term='http://gdata.youtube.com/schemas/2007#subscription' /> +<title>Subscriptions of zfgdata</title> +<logo>http://www.youtube.com/img/pic_youtubelogo_123x63.gif</logo> +<link rel='related' type='application/atom+xml' +href='http://gdata.youtube.com/feeds/api/users/zfgdata?v=2' /> +<link rel='alternate' type='text/html' +href='http://www.youtube.com/profile_subscriptions?user=zfgdata' /> +<link rel='http://schemas.google.com/g/2005#feed' +type='application/atom+xml' +href='http://gdata.youtube.com/feeds/api/users/zfgdata/subscriptions?v=2' /> +<link rel='http://schemas.google.com/g/2005#batch' +type='application/atom+xml' +href='http://gdata.youtube.com/feeds/api/users/zfgdata/subscriptions/batch?v=2' /> +<link rel='self' type='application/atom+xml' +href='http://gdata.youtube.com/feeds/api/users/zfgdata/subscriptions?start-index=1&max-results=25&v=2' /> +<link rel='service' type='application/atomsvc+xml' +href='http://gdata.youtube.com/feeds/api/users/zfgdata/subscriptions?alt=atom-service&v=2' /> +<author> +<name>zfgdata</name> +<uri>http://gdata.youtube.com/feeds/api/users/zfgdata</uri> +</author> +<generator version='2.0' uri='http://gdata.youtube.com/'>YouTube +data API</generator> +<openSearch:totalResults>8</openSearch:totalResults> +<openSearch:startIndex>1</openSearch:startIndex> +<openSearch:itemsPerPage>25</openSearch:itemsPerPage> +<entry gd:etag='W/"DUUDQn47eCp7ImA9WB9TE0k."'> +<id>tag:youtube.com,2008:user:zfgdata:subscription:_Jkf5no0ZW0</id> +<published>2007-09-20T21:01:13.000-07:00</published> +<updated>2007-09-20T21:01:13.000-07:00</updated> +<category scheme='http://gdata.youtube.com/schemas/2007/subscriptiontypes.cat' +term='channel' /> +<category scheme='http://schemas.google.com/g/2005#kind' +term='http://gdata.youtube.com/schemas/2007#subscription' /> +<title>Videos published by : tonyrain</title> +<content type='application/atom+xml;type=feed' +src='http://gdata.youtube.com/feeds/api/users/tonyrain/uploads?v=2' /> +<link rel='related' type='application/atom+xml' +href='http://gdata.youtube.com/feeds/api/users/zfgdata?v=2' /> +<link rel='alternate' type='text/html' +href='http://www.youtube.com/profile_videos?user=tonyrain' /> +<link rel='self' type='application/atom+xml' +href='http://gdata.youtube.com/feeds/api/users/zfgdata/subscriptions/_Jkf5no0ZW0?v=2' /> +<author> +<name>zfgdata</name> +<uri>http://gdata.youtube.com/feeds/api/users/zfgdata</uri> +</author> +<yt:username>tonyrain</yt:username> +<yt:countHint>13</yt:countHint> +<media:thumbnail url='http://i2.ytimg.com/vi/10-yctITMjk/default.jpg' /> +</entry> +<entry gd:etag='W/"C04CR347eCp7ImA9WxRaE0U."'> +<id>tag:youtube.com,2008:user:zfgdata:subscription:S_KBJ3ylYwc</id> +<published>2008-12-15T14:59:26.000-08:00</published> +<updated>2008-12-15T14:59:26.000-08:00</updated> +<category scheme='http://gdata.youtube.com/schemas/2007/subscriptiontypes.cat' +term='favorites' /> +<category scheme='http://schemas.google.com/g/2005#kind' +term='http://gdata.youtube.com/schemas/2007#subscription' /> +<title>Favorites of : NBA</title> +<content type='application/atom+xml;type=feed' +src='http://gdata.youtube.com/feeds/api/users/nba/favorites?v=2' /> +<link rel='related' type='application/atom+xml' +href='http://gdata.youtube.com/feeds/api/users/zfgdata?v=2' /> +<link rel='alternate' type='text/html' +href='http://www.youtube.com/profile_favorites?user=NBA' /> +<link rel='self' type='application/atom+xml' +href='http://gdata.youtube.com/feeds/api/users/zfgdata/subscriptions/S_KBJ3ylYwc?v=2' /> +<author> +<name>zfgdata</name> +<uri>http://gdata.youtube.com/feeds/api/users/zfgdata</uri> +</author> +<yt:username>NBA</yt:username> +<media:thumbnail url='http://i4.ytimg.com/i/WJ2lWNubArHWmf3FIHbfcQ/1.jpg' /> +</entry> +<entry gd:etag='W/"DUMHQ347eCp7ImA9WB9TE0k."'> +<id>tag:youtube.com,2008:user:zfgdata:subscription:i_2YXxZb9Zg</id> +<published>2007-09-20T21:03:52.000-07:00</published> +<updated>2007-09-20T21:03:52.000-07:00</updated> +<category scheme='http://gdata.youtube.com/schemas/2007/subscriptiontypes.cat' +term='playlist' /> +<category scheme='http://schemas.google.com/g/2005#kind' +term='http://gdata.youtube.com/schemas/2007#subscription' /> +<title>From Google Engineers</title> +<content type='application/atom+xml;type=feed' +src='http://gdata.youtube.com/feeds/api/playlists/4AE5C0D23C2EB82D?v=2' /> +<link rel='related' type='application/atom+xml' +href='http://gdata.youtube.com/feeds/api/users/zfgdata?v=2' /> +<link rel='alternate' type='text/html' +href='http://www.youtube.com/view_play_list?p=4AE5C0D23C2EB82D' /> +<link rel='self' type='application/atom+xml' +href='http://gdata.youtube.com/feeds/api/users/zfgdata/subscriptions/i_2YXxZb9Zg?v=2' /> +<author> +<name>zfgdata</name> +<uri>http://gdata.youtube.com/feeds/api/users/zfgdata</uri> +</author> +<yt:playlistTitle>From Google Engineers</yt:playlistTitle> +<yt:username>GoogleDevelopers</yt:username> +<yt:playlistId>4AE5C0D23C2EB82D</yt:playlistId> +<media:thumbnail url='http://i3.ytimg.com/vi/zI38Tc9GjSk/default.jpg' /> +</entry> +<entry gd:etag='W/"C0QFSH47eCp7ImA9WxRaE0U."'> +<id> +tag:youtube.com,2008:user:zfgdata:subscription:59NG0lkr7r4</id> +<published>2008-12-15T14:48:39.000-08:00</published> +<updated>2008-12-15T14:48:39.000-08:00</updated> +<category scheme='http://gdata.youtube.com/schemas/2007/subscriptiontypes.cat' +term='query' /> +<category scheme='http://schemas.google.com/g/2005#kind' +term='http://gdata.youtube.com/schemas/2007#subscription' /> +<title>Videos matching : google</title> +<content type='application/atom+xml;type=feed' +src='http://gdata.youtube.com/feeds/api/videos?q=google&v=2' /> +<link rel='related' type='application/atom+xml' +href='http://gdata.youtube.com/feeds/api/users/zfgdata?v=2' /> +<link rel='alternate' type='text/html' +href='http://www.youtube.com/results?search_query=google' /> +<link rel='self' type='application/atom+xml' +href='http://gdata.youtube.com/feeds/api/users/zfgdata/subscriptions/59NG0lkr7r4?v=2' /> +<author> +<name>zfgdata</name> +<uri> +http://gdata.youtube.com/feeds/api/users/zfgdata</uri> +</author> +<yt:queryString>google</yt:queryString> +</entry> +</feed>
\ No newline at end of file diff --git a/zend/tests/Zend/Gdata/YouTube/_files/UserProfileEntryDataSample1.xml b/zend/tests/Zend/Gdata/YouTube/_files/UserProfileEntryDataSample1.xml new file mode 100644 index 0000000..384ac3f --- /dev/null +++ b/zend/tests/Zend/Gdata/YouTube/_files/UserProfileEntryDataSample1.xml @@ -0,0 +1,47 @@ +<?xml version='1.0' encoding='utf-8'?> +<entry xmlns="http://www.w3.org/2005/Atom" + xmlns:gd="http://schemas.google.com/g/2005" + xmlns:yt="http://gdata.youtube.com/schemas/2007"> + <id>http://gdata.youtube.com/feeds/users/darcy</id> + <published>2006-03-19T11:35:56.000-08:00</published> + <updated>2007-08-13T12:37:03.000-07:00</updated> + <category scheme="http://schemas.google.com/g/2005#kind" + term="http://gdata.youtube.com/schemas/2007#userProfile"/> + <title type="text">Darcy</title> + <link rel="alternate" type="text/html" + href="http://www.youtube.com/profile?user=darcy"/> + <link rel="self" type="application/atom+xml" + href="http://gdata.youtube.com/feeds/users/darcy"/> + <author> + <name>Fitzwilliam Darcy</name> + <uri>http://gdata.youtube.com/feeds/users/darcy</uri> + </author> + + <yt:age>32</yt:age> + <yt:description>A person of great interest</yt:description> + <yt:username>darcy</yt:username> + <yt:books>Pride and Prejudice</yt:books> + <yt:company>Self employed</yt:company> + <yt:hobbies>Reading, arguing with Liz</yt:hobbies> + <yt:hometown>Steventon</yt:hometown> + <yt:location>Longbourn in Hertfordshire, Pemberley in Derbyshire</yt:location> + <yt:movies>Pride and Prejudice, 2005</yt:movies> + <yt:music>Air Con Varizzioni, The Pleasure of the Town</yt:music> + <yt:occupation>Gentleman</yt:occupation> + <yt:school>Home schooling</yt:school> + <yt:gender>m</yt:gender> + <yt:relationship>taken</yt:relationship> + + <gd:feedLink rel="http://gdata.youtube.com/schemas/2007#user.favorites" + href="http://gdata.youtube.com/feeds/users/darcy/favorites"/> + <gd:feedLink rel="http://gdata.youtube.com/schemas/2007#user.contacts" + href="http://gdata.youtube.com/feeds/users/darcy/contacts"/> + <gd:feedLink rel="http://gdata.youtube.com/schemas/2007#user.inbox" + href="http://gdata.youtube.com/feeds/users/darcy/inbox"/> + <gd:feedLink rel="http://gdata.youtube.com/schemas/2007#user.playlists" + href="http://gdata.youtube.com/feeds/users/darcy/playlists"/> + <gd:feedLink rel="http://gdata.youtube.com/schemas/2007#user.subscriptions" + href="http://gdata.youtube.com/feeds/users/darcy/subscriptions"/> + <gd:feedLink rel="http://gdata.youtube.com/schemas/2007#user.uploads" + href="http://gdata.youtube.com/feeds/users/darcy/uploads"/> +</entry> diff --git a/zend/tests/Zend/Gdata/YouTube/_files/UserProfileEntryDataSampleV2.xml b/zend/tests/Zend/Gdata/YouTube/_files/UserProfileEntryDataSampleV2.xml new file mode 100644 index 0000000..a6d1f88 --- /dev/null +++ b/zend/tests/Zend/Gdata/YouTube/_files/UserProfileEntryDataSampleV2.xml @@ -0,0 +1,71 @@ +<?xml version='1.0' encoding='utf-8'?> +<entry xmlns='http://www.w3.org/2005/Atom' +xmlns:media='http://search.yahoo.com/mrss/' +xmlns:batch='http://schemas.google.com/gdata/batch' +xmlns:yt='http://gdata.youtube.com/schemas/2007' +xmlns:gd='http://schemas.google.com/g/2005' +gd:etag='W/"DEEBR347eCp7ImA9WxRaE0o."'> +<id>tag:youtube.com,2008:user:zfgdata</id> +<published>2007-09-20T21:00:09.000-07:00</published> +<updated>2008-12-15T13:30:56.000-08:00</updated> +<category scheme='http://gdata.youtube.com/schemas/2007/channeltypes.cat' +term='Standard' /> +<category scheme='http://schemas.google.com/g/2005#kind' +term='http://gdata.youtube.com/schemas/2007#userProfile' /> +<title>zfgdata Channel</title> +<link rel='http://gdata.youtube.com/schemas/2007#featured-video' +type='application/atom+xml' +href='http://gdata.youtube.com/feeds/api/videos/66wj2g5yz0M?v=2' /> +<link rel='related' type='text/html' +href='http://code.google.com/apis/gdata/' /> +<link rel='alternate' type='text/html' +href='http://www.youtube.com/profile?user=zfgdata' /> +<link rel='self' type='application/atom+xml' +href='http://gdata.youtube.com/feeds/api/users/zfgdata?v=2' /> +<author> +<name>zfgdata</name> +<uri>http://gdata.youtube.com/feeds/api/users/zfgdata</uri> +</author> +<yt:firstName>Lonely</yt:firstName> +<yt:lastName>TestAccount</yt:lastName> +<yt:aboutMe>I'm a lonely test account, with little to do but sit +around and wait for people to use me. I get bored in between +releases and often sleep to pass the time. Please use me more +often, as I love to show off my talent in breaking your +code.</yt:aboutMe> +<yt:age>32</yt:age> +<yt:username>zfgdata</yt:username> +<yt:books>crime and punishment, ps i love you, the stand</yt:books> +<yt:gender>f</yt:gender> +<yt:company>Google</yt:company> +<yt:hobbies>software engineering, information architecture, +photography, travel</yt:hobbies> +<yt:hometown>Mountain View, CA</yt:hometown> +<yt:location>San Francisco, CA 94114, US</yt:location> +<yt:movies>monk, heroes, law and order, top gun</yt:movies> +<yt:music>imogen heap, frou frou, thievory corp, morcheeba, +barenaked ladies</yt:music> +<yt:occupation>Developer Programs</yt:occupation> +<yt:relationship>taken</yt:relationship> +<yt:school>University of the World</yt:school> +<media:thumbnail url='http://i3.ytimg.com/vi/66wj2g5yz0M/default.jpg' /> +<yt:statistics viewCount='88' videoWatchCount='14' lastWebAccess='2008-12-15T14:56:57.000-08:00' subscriberCount='12' /> +<gd:feedLink rel='http://gdata.youtube.com/schemas/2007#user.favorites' +href='http://gdata.youtube.com/feeds/api/users/zfgdata/favorites?v=2' +countHint='1' /> +<gd:feedLink rel='http://gdata.youtube.com/schemas/2007#user.contacts' +href='http://gdata.youtube.com/feeds/api/users/zfgdata/contacts?v=2' +countHint='1' /> +<gd:feedLink rel='http://gdata.youtube.com/schemas/2007#user.inbox' +href='http://gdata.youtube.com/feeds/api/users/zfgdata/inbox?v=2' /> +<gd:feedLink rel='http://gdata.youtube.com/schemas/2007#user.playlists' +href='http://gdata.youtube.com/feeds/api/users/zfgdata/playlists?v=2' /> +<gd:feedLink rel='http://gdata.youtube.com/schemas/2007#user.subscriptions' +href='http://gdata.youtube.com/feeds/api/users/zfgdata/subscriptions?v=2' +countHint='8' /> +<gd:feedLink rel='http://gdata.youtube.com/schemas/2007#user.uploads' +href='http://gdata.youtube.com/feeds/api/users/zfgdata/uploads?v=2' +countHint='1' /> +<gd:feedLink rel='http://gdata.youtube.com/schemas/2007#user.newsubscriptionvideos' +href='http://gdata.youtube.com/feeds/api/users/zfgdata/newsubscriptionvideos?v=2' /> +</entry>
\ No newline at end of file diff --git a/zend/tests/Zend/Gdata/YouTube/_files/VideoEntryDataSample1.xml b/zend/tests/Zend/Gdata/YouTube/_files/VideoEntryDataSample1.xml new file mode 100644 index 0000000..5840187 --- /dev/null +++ b/zend/tests/Zend/Gdata/YouTube/_files/VideoEntryDataSample1.xml @@ -0,0 +1,138 @@ +<?xml version='1.0' encoding='utf-8'?> +<entry xmlns='http://www.w3.org/2005/Atom' +xmlns:media='http://search.yahoo.com/mrss/' +xmlns:gd='http://schemas.google.com/g/2005' +xmlns:yt='http://gdata.youtube.com/schemas/2007' +xmlns:gml='http://www.opengis.net/gml' +xmlns:georss='http://www.georss.org/georss' +xmlns:app='http://purl.org/atom/app#'> + <id>http://gdata.youtube.com/feeds/videos/UMFI1hdm96E</id> + <published>2007-01-07T01:50:15.000Z</published> + <updated>2007-01-07T01:50:15.000Z</updated> + <category scheme='http://schemas.google.com/g/2005#kind' + term='http://gdata.youtube.com/schemas/2007#video' /> + <category scheme='http://gdata.youtube.com/schemas/2007/keywords.cat' + term='barkley' /> + <category scheme='http://gdata.youtube.com/schemas/2007/keywords.cat' + term='singing' /> + <category scheme='http://gdata.youtube.com/schemas/2007/keywords.cat' + term='acoustic' /> + <category scheme='http://gdata.youtube.com/schemas/2007/keywords.cat' + term='cover' /> + <category scheme='http://gdata.youtube.com/schemas/2007/categories.cat' + term='Music' label='Music' /> + <category scheme='http://gdata.youtube.com/schemas/2007/keywords.cat' + term='gnarls' /> + <category scheme='http://gdata.youtube.com/schemas/2007/keywords.cat' + term='music' /> + <title type='text'>"Crazy (Gnarles Barkley)" - Acoustic Cover</title> + <content type='html'><div style="color: #000000;font-family: + Arial, Helvetica, sans-serif; font-size:12px; font-size: 12px; + width: 555px;"><table cellspacing="0" cellpadding="0" + border="0"><tbody><tr><td width="140" + valign="top" rowspan="2"><div style="border: 1px solid + #999999; margin: 0px 10px 5px 0px;"><a + href="http://www.youtube.com/watch?v=UMFI1hdm96E"><img + alt="" + src="http://img.youtube.com/vi/UMFI1hdm96E/2.jpg"></a></div></td> + <td width="256" valign="top"><div style="font-size: + 12px; font-weight: bold;"><a style="font-size: 15px; + font-weight: bold; font-decoration: none;" + href="http://www.youtube.com/watch?v=UMFI1hdm96E">&quot;Crazy + (Gnarles Barkley)&quot; - Acoustic Cover</a> + <br></div> <div style="font-size: 12px; margin: + 3px 0px;"><span>Gnarles Barkley acoustic cover + http://www.myspace.com/davidchoimusic</span></div></td> + <td style="font-size: 11px; line-height: 1.4em; padding-left: + 20px; padding-top: 1px;" width="146" + valign="top"><div><span style="color: #666666; + font-size: 11px;">From:</span> <a + href="http://www.youtube.com/profile?user=davidchoimusic">davidchoimusic</a></div> + <div><span style="color: #666666; font-size: + 11px;">Views:</span> 113321</div> <div + style="white-space: nowrap;text-align: left"><img + style="border: 0px none; margin: 0px; padding: 0px; + vertical-align: middle; font-size: 11px;" align="top" alt="" + src="http://gdata.youtube.com/static/images/icn_star_full_11x11.gif"> + <img style="border: 0px none; margin: 0px; padding: 0px; + vertical-align: middle; font-size: 11px;" align="top" alt="" + src="http://gdata.youtube.com/static/images/icn_star_full_11x11.gif"> + <img style="border: 0px none; margin: 0px; padding: 0px; + vertical-align: middle; font-size: 11px;" align="top" alt="" + src="http://gdata.youtube.com/static/images/icn_star_full_11x11.gif"> + <img style="border: 0px none; margin: 0px; padding: 0px; + vertical-align: middle; font-size: 11px;" align="top" alt="" + src="http://gdata.youtube.com/static/images/icn_star_full_11x11.gif"> + <img style="border: 0px none; margin: 0px; padding: 0px; + vertical-align: middle; font-size: 11px;" align="top" alt="" + src="http://gdata.youtube.com/static/images/icn_star_half_11x11.gif"></div> + <div style="font-size: 11px;">1005 <span style="color: + #666666; font-size: + 11px;">ratings</span></div></td></tr> + <tr><td><span style="color: #666666; font-size: + 11px;">Time:</span> <span style="color: #000000; + font-size: 11px; font-weight: + bold;">04:15</span></td> <td style="font-size: + 11px; padding-left: 20px;"><span style="color: #666666; + font-size: 11px;">More in</span> <a + href="http://www.youtube.com/categories_portal?c=10">Music</a></td></tr></tbody></table></div></content> + <link rel='self' type='application/atom+xml' + href='http://gdata.youtube.com/feeds/videos/UMFI1hdm96E' /> + <link rel='alternate' type='text/html' + href='http://www.youtube.com/watch?v=UMFI1hdm96E' /> + <link rel='http://gdata.youtube.com/schemas/2007#video.responses' + type='application/atom+xml' + href='http://gdata.youtube.com/feeds/videos/UMFI1hdm96E/responses' /> + <link rel='http://gdata.youtube.com/schemas/2007#video.related' + type='application/atom+xml' + href='http://gdata.youtube.com/feeds/videos/UMFI1hdm96E/related' /> + <author> + <name>davidchoimusic</name> + <uri>http://gdata.youtube.com/feeds/users/davidchoimusic</uri> + </author> + <media:group> + <media:title type='plain'>"Crazy (Gnarles Barkley)" - Acoustic Cover</media:title> + <media:description type='plain'>Gnarles Barkley acoustic cover http://www.myspace.com/davidchoimusic</media:description> + <media:keywords>music, singing, gnarls, barkley, acoustic, cover</media:keywords> + <yt:duration seconds='255' /> + <media:category label='Music' + scheme='http://gdata.youtube.com/schemas/2007/categories.cat'> + Music</media:category> + <media:category + scheme='http://gdata.youtube.com/schemas/2007/developertags.cat'> + DeveloperTag1</media:category> + <media:content url='http://www.youtube.com/v/UMFI1hdm96E' + type='application/x-shockwave-flash' medium='video' + isDefault='true' expression='full' duration='255' + yt:format='5' /> + <media:player url='http://www.youtube.com/watch?v=UMFI1hdm96E' /> + <media:thumbnail url='http://img.youtube.com/vi/UMFI1hdm96E/2.jpg' + height='97' width='130' time='00:02:07.500' /> + <media:thumbnail url='http://img.youtube.com/vi/UMFI1hdm96E/1.jpg' + height='97' width='130' time='00:01:03.750' /> + <media:thumbnail url='http://img.youtube.com/vi/UMFI1hdm96E/3.jpg' + height='97' width='130' time='00:03:11.250' /> + <media:thumbnail url='http://img.youtube.com/vi/UMFI1hdm96E/0.jpg' + height='240' width='320' time='00:02:07.500' /> + </media:group> + <yt:statistics viewCount='113321' /> + <gd:rating min='1' max='5' numRaters='1005' average='4.77' /> + <georss:where> + <gml:Point> + <gml:pos>37.398529052734375 -122.0635986328125</gml:pos> + </gml:Point> + </georss:where> + <yt:recorded>2008-09-25</yt:recorded> + <gd:comments> + <gd:feedLink href='http://gdata.youtube.com/feeds/videos/UMFI1hdm96E/comments' /> + </gd:comments> + <yt:noembed /> + <app:control> + <app:draft>yes</app:draft> + <yt:state + name="rejected" + reasonCode="inappropriate" + helpUrl="http://www.youtube.com/t/community_guidelines"> + The content of this video may violate the terms of use.</yt:state> + </app:control> +</entry> diff --git a/zend/tests/Zend/Gdata/YouTube/_files/VideoEntryDataSamplePrivate.xml b/zend/tests/Zend/Gdata/YouTube/_files/VideoEntryDataSamplePrivate.xml new file mode 100755 index 0000000..905883f --- /dev/null +++ b/zend/tests/Zend/Gdata/YouTube/_files/VideoEntryDataSamplePrivate.xml @@ -0,0 +1,139 @@ +<?xml version='1.0' encoding='utf-8'?> +<entry xmlns='http://www.w3.org/2005/Atom' +xmlns:media='http://search.yahoo.com/mrss/' +xmlns:gd='http://schemas.google.com/g/2005' +xmlns:yt='http://gdata.youtube.com/schemas/2007' +xmlns:gml='http://www.opengis.net/gml' +xmlns:georss='http://www.georss.org/georss' +xmlns:app='http://purl.org/atom/app#'> + <id>http://gdata.youtube.com/feeds/videos/UMFI1hdm96E</id> + <published>2007-01-07T01:50:15.000Z</published> + <updated>2007-01-07T01:50:15.000Z</updated> + <category scheme='http://schemas.google.com/g/2005#kind' + term='http://gdata.youtube.com/schemas/2007#video' /> + <category scheme='http://gdata.youtube.com/schemas/2007/keywords.cat' + term='barkley' /> + <category scheme='http://gdata.youtube.com/schemas/2007/keywords.cat' + term='singing' /> + <category scheme='http://gdata.youtube.com/schemas/2007/keywords.cat' + term='acoustic' /> + <category scheme='http://gdata.youtube.com/schemas/2007/keywords.cat' + term='cover' /> + <category scheme='http://gdata.youtube.com/schemas/2007/categories.cat' + term='Music' label='Music' /> + <category scheme='http://gdata.youtube.com/schemas/2007/keywords.cat' + term='gnarls' /> + <category scheme='http://gdata.youtube.com/schemas/2007/keywords.cat' + term='music' /> + <title type='text'>"Crazy (Gnarles Barkley)" - Acoustic Cover</title> + <content type='html'><div style="color: #000000;font-family: + Arial, Helvetica, sans-serif; font-size:12px; font-size: 12px; + width: 555px;"><table cellspacing="0" cellpadding="0" + border="0"><tbody><tr><td width="140" + valign="top" rowspan="2"><div style="border: 1px solid + #999999; margin: 0px 10px 5px 0px;"><a + href="http://www.youtube.com/watch?v=UMFI1hdm96E"><img + alt="" + src="http://img.youtube.com/vi/UMFI1hdm96E/2.jpg"></a></div></td> + <td width="256" valign="top"><div style="font-size: + 12px; font-weight: bold;"><a style="font-size: 15px; + font-weight: bold; font-decoration: none;" + href="http://www.youtube.com/watch?v=UMFI1hdm96E">&quot;Crazy + (Gnarles Barkley)&quot; - Acoustic Cover</a> + <br></div> <div style="font-size: 12px; margin: + 3px 0px;"><span>Gnarles Barkley acoustic cover + http://www.myspace.com/davidchoimusic</span></div></td> + <td style="font-size: 11px; line-height: 1.4em; padding-left: + 20px; padding-top: 1px;" width="146" + valign="top"><div><span style="color: #666666; + font-size: 11px;">From:</span> <a + href="http://www.youtube.com/profile?user=davidchoimusic">davidchoimusic</a></div> + <div><span style="color: #666666; font-size: + 11px;">Views:</span> 113321</div> <div + style="white-space: nowrap;text-align: left"><img + style="border: 0px none; margin: 0px; padding: 0px; + vertical-align: middle; font-size: 11px;" align="top" alt="" + src="http://gdata.youtube.com/static/images/icn_star_full_11x11.gif"> + <img style="border: 0px none; margin: 0px; padding: 0px; + vertical-align: middle; font-size: 11px;" align="top" alt="" + src="http://gdata.youtube.com/static/images/icn_star_full_11x11.gif"> + <img style="border: 0px none; margin: 0px; padding: 0px; + vertical-align: middle; font-size: 11px;" align="top" alt="" + src="http://gdata.youtube.com/static/images/icn_star_full_11x11.gif"> + <img style="border: 0px none; margin: 0px; padding: 0px; + vertical-align: middle; font-size: 11px;" align="top" alt="" + src="http://gdata.youtube.com/static/images/icn_star_full_11x11.gif"> + <img style="border: 0px none; margin: 0px; padding: 0px; + vertical-align: middle; font-size: 11px;" align="top" alt="" + src="http://gdata.youtube.com/static/images/icn_star_half_11x11.gif"></div> + <div style="font-size: 11px;">1005 <span style="color: + #666666; font-size: + 11px;">ratings</span></div></td></tr> + <tr><td><span style="color: #666666; font-size: + 11px;">Time:</span> <span style="color: #000000; + font-size: 11px; font-weight: + bold;">04:15</span></td> <td style="font-size: + 11px; padding-left: 20px;"><span style="color: #666666; + font-size: 11px;">More in</span> <a + href="http://www.youtube.com/categories_portal?c=10">Music</a></td></tr></tbody></table></div></content> + <link rel='self' type='application/atom+xml' + href='http://gdata.youtube.com/feeds/videos/UMFI1hdm96E' /> + <link rel='alternate' type='text/html' + href='http://www.youtube.com/watch?v=UMFI1hdm96E' /> + <link rel='http://gdata.youtube.com/schemas/2007#video.responses' + type='application/atom+xml' + href='http://gdata.youtube.com/feeds/videos/UMFI1hdm96E/responses' /> + <link rel='http://gdata.youtube.com/schemas/2007#video.related' + type='application/atom+xml' + href='http://gdata.youtube.com/feeds/videos/UMFI1hdm96E/related' /> + <author> + <name>davidchoimusic</name> + <uri>http://gdata.youtube.com/feeds/users/davidchoimusic</uri> + </author> + <media:group> + <media:title type='plain'>"Crazy (Gnarles Barkley)" - Acoustic Cover</media:title> + <media:description type='plain'>Gnarles Barkley acoustic cover http://www.myspace.com/davidchoimusic</media:description> + <media:keywords>music, singing, gnarls, barkley, acoustic, cover</media:keywords> + <yt:duration seconds='255' /> + <media:category label='Music' + scheme='http://gdata.youtube.com/schemas/2007/categories.cat'> + Music</media:category> + <media:category + scheme='http://gdata.youtube.com/schemas/2007/developertags.cat'> + DeveloperTag1</media:category> + <media:content url='http://www.youtube.com/v/UMFI1hdm96E' + type='application/x-shockwave-flash' medium='video' + isDefault='true' expression='full' duration='255' + yt:format='5' /> + <media:player url='http://www.youtube.com/watch?v=UMFI1hdm96E' /> + <media:thumbnail url='http://img.youtube.com/vi/UMFI1hdm96E/2.jpg' + height='97' width='130' time='00:02:07.500' /> + <media:thumbnail url='http://img.youtube.com/vi/UMFI1hdm96E/1.jpg' + height='97' width='130' time='00:01:03.750' /> + <media:thumbnail url='http://img.youtube.com/vi/UMFI1hdm96E/3.jpg' + height='97' width='130' time='00:03:11.250' /> + <media:thumbnail url='http://img.youtube.com/vi/UMFI1hdm96E/0.jpg' + height='240' width='320' time='00:02:07.500' /> + <yt:private /> + </media:group> + <yt:statistics viewCount='113321' /> + <gd:rating min='1' max='5' numRaters='1005' average='4.77' /> + <georss:where> + <gml:Point> + <gml:pos>37.398529052734375 -122.0635986328125</gml:pos> + </gml:Point> + </georss:where> + <yt:recorded>2008-09-25</yt:recorded> + <gd:comments> + <gd:feedLink href='http://gdata.youtube.com/feeds/videos/UMFI1hdm96E/comments' /> + </gd:comments> + <yt:noembed /> + <app:control> + <app:draft>yes</app:draft> + <yt:state + name="rejected" + reasonCode="inappropriate" + helpUrl="http://www.youtube.com/t/community_guidelines"> + The content of this video may violate the terms of use.</yt:state> + </app:control> +</entry> diff --git a/zend/tests/Zend/Gdata/YouTube/_files/VideoEntryDataSampleV2.xml b/zend/tests/Zend/Gdata/YouTube/_files/VideoEntryDataSampleV2.xml new file mode 100644 index 0000000..a833310 --- /dev/null +++ b/zend/tests/Zend/Gdata/YouTube/_files/VideoEntryDataSampleV2.xml @@ -0,0 +1,63 @@ +<?xml version='1.0' encoding='UTF-8'?> +<entry xmlns='http://www.w3.org/2005/Atom' +xmlns:gml='http://www.opengis.net/gml' +xmlns:georss='http://www.georss.org/georss' +xmlns:media='http://search.yahoo.com/mrss/' +xmlns:batch='http://schemas.google.com/gdata/batch' +xmlns:yt='http://gdata.youtube.com/schemas/2007' +xmlns:gd='http://schemas.google.com/g/2005' +gd:etag='W/"A0cDQn47eCp7ImA9WxRbF00."'> +<id>tag:youtube.com,2008:video:UMFI1hdm96E</id> +<published>2007-01-07T01:50:15.000Z</published> +<updated>2008-12-08T04:04:33.000Z</updated> +<category scheme='http://gdata.youtube.com/schemas/2007/keywords.cat' term='cover'/> +<category scheme='http://gdata.youtube.com/schemas/2007/keywords.cat' term='acoustic'/> +<category scheme='http://gdata.youtube.com/schemas/2007/keywords.cat' term='gnarls'/> +<category scheme='http://schemas.google.com/g/2005#kind' term='http://gdata.youtube.com/schemas/2007#video'/> +<category scheme='http://gdata.youtube.com/schemas/2007/keywords.cat' term='barkley'/> +<category scheme='http://gdata.youtube.com/schemas/2007/keywords.cat' term='music'/> +<category scheme='http://gdata.youtube.com/schemas/2007/keywords.cat' term='singing'/> +<category scheme='http://gdata.youtube.com/schemas/2007/categories.cat' term='Music' label='Music'/> +<title>"Crazy (Gnarles Barkley)" - Acoustic Cover</title> +<content type='application/x-shockwave-flash' src='http://www.youtube.com/v/UMFI1hdm96E&f=gdata_videos'/> +<link rel='alternate' type='text/html' href='http://www.youtube.com/watch?v=UMFI1hdm96E'/> +<link rel='http://gdata.youtube.com/schemas/2007#video.responses' type='application/atom+xml' href='http://gdata.youtube.com/feeds/api/videos/UMFI1hdm96E/responses?v=2'/> +<link rel='http://gdata.youtube.com/schemas/2007#video.related' type='application/atom+xml' href='http://gdata.youtube.com/feeds/api/videos/UMFI1hdm96E/related?v=2'/> +<link rel='self' type='application/atom+xml' href='http://gdata.youtube.com/feeds/api/videos/UMFI1hdm96E?v=2'/> +<author> + <name>davidchoimusic</name><uri>http://gdata.youtube.com/feeds/api/users/davidchoimusic</uri> +</author> +<media:group> + <media:title type='plain'>"Crazy (Gnarles Barkley)" - Acoustic Cover</media:title> + <media:description type='plain'>Gnarles Barkley acoustic cover http://www.myspace.com/davidchoimusic</media:description> + <media:rating scheme="http://gdata.youtube.com/schemas/2007#mediarating" country="HK,TW">1</media:rating> + <media:category + scheme='http://gdata.youtube.com/schemas/2007/developertags.cat'> + DeveloperTag1</media:category> + <media:keywords>acoustic, barkley, cover, gnarls, music, singing</media:keywords> + <yt:duration seconds='255'/> + <yt:videoid>UMFI1hdm96E</yt:videoid> + <yt:uploaded>2007-01-07T01:50:15.000Z</yt:uploaded> + <media:player url='http://www.youtube.com/watch?v=UMFI1hdm96E'/> + <media:credit role='uploader' scheme='urn:youtube' yt:type='partner'>davidchoimusic</media:credit> + <media:category label='Music' scheme='http://gdata.youtube.com/schemas/2007/categories.cat'>Music</media:category> + <media:content url='http://www.youtube.com/v/UMFI1hdm96E&f=gdata_videos' type='application/x-shockwave-flash' medium='video' isDefault='true' expression='full' duration='255' yt:format='5'/> + <media:content url='rtsp://rtsp2.youtube.com/CigLENy73wIaHwmh92YX1kjBUBMYESARFEgGUgxnZGF0YV92aWRlb3MM/0/0/0/video.3gp' type='video/3gpp' medium='video' expression='full' duration='255' yt:format='6'/> + <media:thumbnail url='http://i.ytimg.com/vi/UMFI1hdm96E/2.jpg' height='97' width='130' time='00:02:07.500'/> + <media:thumbnail url='http://i.ytimg.com/vi/UMFI1hdm96E/1.jpg' height='97' width='130' time='00:01:03.750'/> + <media:thumbnail url='http://i.ytimg.com/vi/UMFI1hdm96E/3.jpg' height='97' width='130' time='00:03:11.250'/> + <media:thumbnail url='http://i.ytimg.com/vi/UMFI1hdm96E/0.jpg' height='240' width='320' time='00:02:07.500'/> + <media:thumbnail url='http://i.ytimg.com/vi/UMFI1hdm96E/hqdefault.jpg' height='360' width='480'/> +</media:group> +<yt:statistics viewCount='267971' favoriteCount='1822'/> +<gd:rating min='1' max='5' numRaters='2062' average='4.74'/> + <georss:where> + <gml:Point> + <gml:pos>37.398529052734375 -122.0635986328125</gml:pos> + </gml:Point> + </georss:where> + <yt:recorded>2008-09-25</yt:recorded> +<gd:comments> + <gd:feedLink href='http://gdata.youtube.com/feeds/api/videos/UMFI1hdm96E/comments?v=2' countHint='1074'/> + </gd:comments> +</entry>
\ No newline at end of file diff --git a/zend/tests/Zend/Gdata/YouTube/_files/VideoFeedDataSample1.xml b/zend/tests/Zend/Gdata/YouTube/_files/VideoFeedDataSample1.xml new file mode 100644 index 0000000..33ec9c7 --- /dev/null +++ b/zend/tests/Zend/Gdata/YouTube/_files/VideoFeedDataSample1.xml @@ -0,0 +1,743 @@ +<?xml version='1.0' encoding='utf-8'?> +<feed xmlns='http://www.w3.org/2005/Atom' +xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' +xmlns:media='http://search.yahoo.com/mrss/' +xmlns:gd='http://schemas.google.com/g/2005' +xmlns:yt='http://gdata.youtube.com/schemas/2007'> + <id>http://gdata.youtube.com/feeds/users/davidchoimusic/uploads</id> + <updated>2007-09-21T02:27:22.638Z</updated> + <category scheme='http://schemas.google.com/g/2005#kind' + term='http://gdata.youtube.com/schemas/2007#video' /> + <title type='text'>Davidchoimusic's Videos</title> + <logo> http://www.youtube.com/img/pic_youtubelogo_123x63.gif</logo> + <link rel='alternate' type='text/html' + href='http://www.youtube.com/profile_videos?user=davidchoimusic' /> + <link rel='related' type='application/atom+xml' + href='http://gdata.youtube.com/feeds/users/davidchoimusic' /> + <link rel='http://schemas.google.com/g/2005#feed' + type='application/atom+xml' + href='http://gdata.youtube.com/feeds/users/davidchoimusic/uploads' /> + <link rel='self' type='application/atom+xml' + href='http://gdata.youtube.com/feeds/users/davidchoimusic/uploads?start-index=1&max-results=5' /> + <link rel='next' type='application/atom+xml' + href='http://gdata.youtube.com/feeds/users/davidchoimusic/uploads?start-index=6&max-results=5' /> + <author> + <name>davidchoimusic</name> + <uri>http://gdata.youtube.com/feeds/users/davidchoimusic</uri> + </author> + <generator version='beta' uri='http://gdata.youtube.com/'>YouTube data API</generator> + <openSearch:totalResults>54</openSearch:totalResults> + <openSearch:startIndex>1</openSearch:startIndex> + <openSearch:itemsPerPage>5</openSearch:itemsPerPage> + <entry> + <id>http://gdata.youtube.com/feeds/videos/Lnio-pqLPgg</id> + <published>2007-01-11T00:17:31.000Z</published> + <updated>2007-01-11T00:17:31.000Z</updated> + <category scheme='http://gdata.youtube.com/schemas/2007/keywords.cat' + term='Song' /> + <category scheme='http://gdata.youtube.com/schemas/2007/keywords.cat' + term='Version' /> + <category scheme='http://schemas.google.com/g/2005#kind' + term='http://gdata.youtube.com/schemas/2007#video' /> + <category scheme='http://gdata.youtube.com/schemas/2007/keywords.cat' + term='Original' /> + <category scheme='http://gdata.youtube.com/schemas/2007/keywords.cat' + term='Girl' /> + <category scheme='http://gdata.youtube.com/schemas/2007/categories.cat' + term='Music' label='Music' /> + <category scheme='http://gdata.youtube.com/schemas/2007/keywords.cat' + term='That' /> + <category scheme='http://gdata.youtube.com/schemas/2007/keywords.cat' + term='Acoustic' /> + <category scheme='http://gdata.youtube.com/schemas/2007/keywords.cat' + term='davidchoimusic' /> + <title type='text'>"That Girl" - Original Song - Acoustic + Version</title> + <content type='html'><div style="color: #000000;font-family: + Arial, Helvetica, sans-serif; font-size:12px; font-size: 12px; + width: 555px;"><table cellspacing="0" cellpadding="0" + border="0"><tbody><tr><td width="140" + valign="top" rowspan="2"><div style="border: 1px solid + #999999; margin: 0px 10px 5px 0px;"><a + href="http://www.youtube.com/watch?v=Lnio-pqLPgg"><img + alt="" + src="http://img.youtube.com/vi/Lnio-pqLPgg/2.jpg"></a></div></td> + <td width="256" valign="top"><div style="font-size: + 12px; font-weight: bold;"><a style="font-size: 15px; + font-weight: bold; font-decoration: none;" + href="http://www.youtube.com/watch?v=Lnio-pqLPgg">&quot;That + Girl&quot; - Original Song - Acoustic Version</a> + <br></div> <div style="font-size: 12px; margin: + 3px 0px;"><span>For the full version, check out + http://www.myspace.com/musicchester mp3 + http://www.broadjam.com/davidchoi That Girl Oh tonight + I&#39;m feeling fine I&#39;m alone just wasting time no + Friday movie nights or romantic candlelight I&#39;m just + having conversations with the thoughts in my head all I hear + are angels crying oh won&#39;t they just sing instead It + would be wrong for me to say I don&#39;t need that girl by + my side I don&#39;t need that girl in my life I + don&#39;t want to talk it out or hold her when she cries I + don&#39;t want to say she&#39;s my kind I don&#39;t + want to say that she&#39;s mine I don&#39;t want to + tell her that I love her more than life more than life, love + her more than life Honestly, this won&#39;t do how is she + doing? I tell myself I&#39;m feeling swell but I know + I&#39;m such a fool I&#39;ll just take it as a new + beginning but you know I don&#39;t feel that way who will + take all this pain away? I know it&#39;s wrong for me to + say Chorus Talk about a sin was the day I walked into the other + side I would run back in I wouldn&#39;t waste no time I + know it&#39;s wrong for me to say Chorus + www.myspace.com/davidchoimusic</span></div></td> + <td style="font-size: 11px; line-height: 1.4em; + padding-left: 20px; padding-top: 1px;" width="146" + valign="top"><div><span style="color: #666666; + font-size: 11px;">From:</span> <a + href="http://www.youtube.com/profile?user=davidchoimusic">davidchoimusic</a></div> + <div><span style="color: #666666; font-size: + 11px;">Views:</span> 437209</div> <div + style="white-space: nowrap;text-align: left"><img + style="border: 0px none; margin: 0px; padding: 0px; + vertical-align: middle; font-size: 11px;" align="top" alt="" + src="http://gdata.youtube.com/static/images/icn_star_full_11x11.gif"> + <img style="border: 0px none; margin: 0px; padding: 0px; + vertical-align: middle; font-size: 11px;" align="top" alt="" + src="http://gdata.youtube.com/static/images/icn_star_full_11x11.gif"> + <img style="border: 0px none; margin: 0px; padding: 0px; + vertical-align: middle; font-size: 11px;" align="top" alt="" + src="http://gdata.youtube.com/static/images/icn_star_full_11x11.gif"> + <img style="border: 0px none; margin: 0px; padding: 0px; + vertical-align: middle; font-size: 11px;" align="top" alt="" + src="http://gdata.youtube.com/static/images/icn_star_full_11x11.gif"> + <img style="border: 0px none; margin: 0px; padding: 0px; + vertical-align: middle; font-size: 11px;" align="top" alt="" + src="http://gdata.youtube.com/static/images/icn_star_half_11x11.gif"></div> + <div style="font-size: 11px;">2981 <span style="color: + #666666; font-size: + 11px;">ratings</span></div></td></tr> + <tr><td><span style="color: #666666; font-size: + 11px;">Time:</span> <span style="color: #000000; + font-size: 11px; font-weight: + bold;">03:40</span></td> <td + style="font-size: 11px; padding-left: 20px;"><span + style="color: #666666; font-size: 11px;">More + in</span> <a + href="http://www.youtube.com/categories_portal?c=10">Music</a></td></tr></tbody></table></div></content> + <link rel='self' type='application/atom+xml' + href='http://gdata.youtube.com/feeds/videos/Lnio-pqLPgg' /> + <link rel='alternate' type='text/html' + href='http://www.youtube.com/watch?v=Lnio-pqLPgg' /> + <link rel='http://gdata.youtube.com/schemas/2007#video.responses' + type='application/atom+xml' + href='http://gdata.youtube.com/feeds/videos/Lnio-pqLPgg/responses' /> + <link rel='http://gdata.youtube.com/schemas/2007#video.related' + type='application/atom+xml' + href='http://gdata.youtube.com/feeds/videos/Lnio-pqLPgg/related' /> + <author> + <name>davidchoimusic</name> + <uri> + http://gdata.youtube.com/feeds/users/davidchoimusic</uri> + </author> + <media:group> + <media:title type='plain'>"That Girl" - Original Song - + Acoustic Version</media:title> + <media:description type='plain'>For the full version, check + out http://www.myspace.com/musicchester mp3 + http://www.broadjam.com/davidchoi That Girl Oh tonight I'm + feeling fine I'm alone just wasting time no Friday movie + nights or romantic candlelight I'm just having conversations + with the thoughts in my head all I hear are angels crying oh + won't they just sing instead It would be wrong for me to say + I don't need that girl by my side I don't need that girl in + my life I don't want to talk it out or hold her when she + cries I don't want to say she's my kind I don't want to say + that she's mine I don't want to tell her that I love her more + than life more than life, love her more than life Honestly, + this won't do how is she doing? I tell myself I'm feeling + swell but I know I'm such a fool I'll just take it as a new + beginning but you know I don't feel that way who will take + all this pain away? I know it's wrong for me to say Chorus + Talk about a sin was the day I walked into the other side I + would run back in I wouldn't waste no time I know it's wrong + for me to say Chorus + www.myspace.com/davidchoimusic</media:description> + <media:keywords>That, Girl, Original, Song, Acoustic, + Version, davidchoimusic</media:keywords> + <yt:duration seconds='220' /> + <media:category label='Music' + scheme='http://gdata.youtube.com/schemas/2007/categories.cat'> + Music</media:category> + <media:content url='http://www.youtube.com/v/Lnio-pqLPgg' + type='application/x-shockwave-flash' medium='video' + isDefault='true' expression='full' duration='220' + yt:format='5' /> + <media:player url='http://www.youtube.com/watch?v=Lnio-pqLPgg' /> + <media:thumbnail url='http://img.youtube.com/vi/Lnio-pqLPgg/2.jpg' + height='97' width='130' time='00:01:50' /> + <media:thumbnail url='http://img.youtube.com/vi/Lnio-pqLPgg/1.jpg' + height='97' width='130' time='00:00:55' /> + <media:thumbnail url='http://img.youtube.com/vi/Lnio-pqLPgg/3.jpg' + height='97' width='130' time='00:02:45' /> + <media:thumbnail url='http://img.youtube.com/vi/Lnio-pqLPgg/0.jpg' + height='240' width='320' time='00:01:50' /> + </media:group> + <yt:statistics viewCount='437209' /> + <gd:rating min='1' max='5' numRaters='2981' average='4.89' /> + <gd:comments> + <gd:feedLink href='http://gdata.youtube.com/feeds/videos/Lnio-pqLPgg/comments' /> + </gd:comments> + </entry> + <entry> + <id>http://gdata.youtube.com/feeds/videos/FWPzxVMQU8g</id> + <published>2006-12-30T23:20:14.000Z</published> + <updated>2006-12-30T23:20:14.000Z</updated> + <category scheme='http://gdata.youtube.com/schemas/2007/keywords.cat' + term='Song' /> + <category scheme='http://gdata.youtube.com/schemas/2007/keywords.cat' + term='Song)' /> + <category scheme='http://gdata.youtube.com/schemas/2007/keywords.cat' + term='Version' /> + <category scheme='http://schemas.google.com/g/2005#kind' + term='http://gdata.youtube.com/schemas/2007#video' /> + <category scheme='http://gdata.youtube.com/schemas/2007/keywords.cat' + term='Love' /> + <category scheme='http://gdata.youtube.com/schemas/2007/keywords.cat' + term='Tube' /> + <category scheme='http://gdata.youtube.com/schemas/2007/keywords.cat' + term='Original' /> + <category scheme='http://gdata.youtube.com/schemas/2007/keywords.cat' + term='You' /> + <category scheme='http://gdata.youtube.com/schemas/2007/keywords.cat' + term='(A' /> + <category scheme='http://gdata.youtube.com/schemas/2007/categories.cat' + term='Music' label='Music' /> + <category scheme='http://gdata.youtube.com/schemas/2007/keywords.cat' + term='Acoustic' /> + <title type='text'>"You Tube" (A Love Song) - Original Song - + Acoustic Version</title> + <content type='html'><div style="color: #000000;font-family: + Arial, Helvetica, sans-serif; font-size:12px; font-size: 12px; + width: 555px;"><table cellspacing="0" cellpadding="0" + border="0"><tbody><tr><td width="140" + valign="top" rowspan="2"><div style="border: 1px solid + #999999; margin: 0px 10px 5px 0px;"><a + href="http://www.youtube.com/watch?v=FWPzxVMQU8g"><img + alt="" + src="http://img.youtube.com/vi/FWPzxVMQU8g/2.jpg"></a></div></td> + <td width="256" valign="top"><div style="font-size: + 12px; font-weight: bold;"><a style="font-size: 15px; + font-weight: bold; font-decoration: none;" + href="http://www.youtube.com/watch?v=FWPzxVMQU8g">&quot;You + Tube&quot; (A Love Song) - Original Song - Acoustic + Version</a> <br></div> <div + style="font-size: 12px; margin: 3px + 0px;"><span>http://www.youtube.com/subscription_center?add_user=davidchoimusic + http://www.myspace.com/davidchoimusic If you want to be updated + on new videos, hit the orange &quot;subscribe&quot; + button on the top right corner! + ================================ &quot;You Tube&quot; + (A Love Song) When I wake up in the morning youtube when I + dream at night, youtube in the middle of the day, youtube you + consume my life, youtube I can&#39;t help, but think of you + I just love the things you do allow the people, to post our + videos, we love you youtube I like the founders some Asian and + some white dude but more than you I love youtube When I wake up + in the morning youtube when I dream at night, youtube in the + middle of the day, youtube you consume my life, youtube + youtube, you can comment all over me youtube, will you make + passionate love to me you can respond to my video if + you&#39;d like I&#39;ll post one right back, oh I think + I might could you add me to your favorites and I&#39;ll + post on your bulletin maybe send you a message if you promise + to write me back I&#39;ll log in and out to please you oh + you know the things I&#39;ll do oh youtube, oh youtube When + I wake up in the morning youtube when I dream at night, youtube + in the middle of the day, youtube you consume my life, + youtube</span></div></td> <td + style="font-size: 11px; line-height: 1.4em; padding-left: 20px; + padding-top: 1px;" width="146" + valign="top"><div><span style="color: #666666; + font-size: 11px;">From:</span> <a + href="http://www.youtube.com/profile?user=davidchoimusic">davidchoimusic</a></div> + <div><span style="color: #666666; font-size: + 11px;">Views:</span> 1495035</div> <div + style="white-space: nowrap;text-align: left"><img + style="border: 0px none; margin: 0px; padding: 0px; + vertical-align: middle; font-size: 11px;" align="top" alt="" + src="http://gdata.youtube.com/static/images/icn_star_full_11x11.gif"> + <img style="border: 0px none; margin: 0px; padding: 0px; + vertical-align: middle; font-size: 11px;" align="top" alt="" + src="http://gdata.youtube.com/static/images/icn_star_full_11x11.gif"> + <img style="border: 0px none; margin: 0px; padding: 0px; + vertical-align: middle; font-size: 11px;" align="top" alt="" + src="http://gdata.youtube.com/static/images/icn_star_full_11x11.gif"> + <img style="border: 0px none; margin: 0px; padding: 0px; + vertical-align: middle; font-size: 11px;" align="top" alt="" + src="http://gdata.youtube.com/static/images/icn_star_full_11x11.gif"> + <img style="border: 0px none; margin: 0px; padding: 0px; + vertical-align: middle; font-size: 11px;" align="top" alt="" + src="http://gdata.youtube.com/static/images/icn_star_half_11x11.gif"></div> + <div style="font-size: 11px;">10995 <span + style="color: #666666; font-size: + 11px;">ratings</span></div></td></tr> + <tr><td><span style="color: #666666; font-size: + 11px;">Time:</span> <span style="color: #000000; + font-size: 11px; font-weight: + bold;">02:57</span></td> <td + style="font-size: 11px; padding-left: 20px;"><span + style="color: #666666; font-size: 11px;">More + in</span> <a + href="http://www.youtube.com/categories_portal?c=10">Music</a></td></tr></tbody></table></div></content> + <link rel='self' type='application/atom+xml' + href='http://gdata.youtube.com/feeds/videos/FWPzxVMQU8g' /> + <link rel='alternate' type='text/html' + href='http://www.youtube.com/watch?v=FWPzxVMQU8g' /> + <link rel='http://gdata.youtube.com/schemas/2007#video.responses' + type='application/atom+xml' + href='http://gdata.youtube.com/feeds/videos/FWPzxVMQU8g/responses' /> + <link rel='http://gdata.youtube.com/schemas/2007#video.related' + type='application/atom+xml' + href='http://gdata.youtube.com/feeds/videos/FWPzxVMQU8g/related' /> + <author> + <name>davidchoimusic</name> + <uri> + http://gdata.youtube.com/feeds/users/davidchoimusic</uri> + </author> + <media:group> + <media:title type='plain'>"You Tube" (A Love Song) - Original + Song - Acoustic Version</media:title> + <media:description type='plain'> + http://www.youtube.com/subscription_center?add_user=davidchoimusic + http://www.myspace.com/davidchoimusic If you want to be + updated on new videos, hit the orange "subscribe" button on + the top right corner! ================================ "You + Tube" (A Love Song) When I wake up in the morning youtube + when I dream at night, youtube in the middle of the day, + youtube you consume my life, youtube I can't help, but think + of you I just love the things you do allow the people, to + post our videos, we love you youtube I like the founders some + Asian and some white dude but more than you I love youtube + When I wake up in the morning youtube when I dream at night, + youtube in the middle of the day, youtube you consume my + life, youtube youtube, you can comment all over me youtube, + will you make passionate love to me you can respond to my + video if you'd like I'll post one right back, oh I think I + might could you add me to your favorites and I'll post on + your bulletin maybe send you a message if you promise to + write me back I'll log in and out to please you oh you know + the things I'll do oh youtube, oh youtube When I wake up in + the morning youtube when I dream at night, youtube in the + middle of the day, youtube you consume my life, + youtube</media:description> + <media:keywords>You, Tube, (A, Love, Song), Original, Song, + Acoustic, Version</media:keywords> + <yt:duration seconds='177' /> + <media:category label='Music' + scheme='http://gdata.youtube.com/schemas/2007/categories.cat'> + Music</media:category> + <media:content url='http://www.youtube.com/v/FWPzxVMQU8g' + type='application/x-shockwave-flash' medium='video' + isDefault='true' expression='full' duration='177' + yt:format='5' /> + <media:player url='http://www.youtube.com/watch?v=FWPzxVMQU8g' /> + <media:thumbnail url='http://img.youtube.com/vi/FWPzxVMQU8g/2.jpg' + height='97' width='130' time='00:01:28.500' /> + <media:thumbnail url='http://img.youtube.com/vi/FWPzxVMQU8g/1.jpg' + height='97' width='130' time='00:00:44.250' /> + <media:thumbnail url='http://img.youtube.com/vi/FWPzxVMQU8g/3.jpg' + height='97' width='130' time='00:02:12.750' /> + <media:thumbnail url='http://img.youtube.com/vi/FWPzxVMQU8g/0.jpg' + height='240' width='320' time='00:01:28.500' /> + </media:group> + <yt:statistics viewCount='1495035' /> + <gd:rating min='1' max='5' numRaters='10995' average='4.64' /> + <gd:comments> + <gd:feedLink href='http://gdata.youtube.com/feeds/videos/FWPzxVMQU8g/comments' /> + </gd:comments> + </entry> + <entry> + <id>http://gdata.youtube.com/feeds/videos/uWVuAl_aFRo</id> + <published>2007-07-13T06:28:11.000Z</published> + <updated>2007-07-13T06:28:11.000Z</updated> + <category scheme='http://gdata.youtube.com/schemas/2007/keywords.cat' + term='kingston' /> + <category scheme='http://schemas.google.com/g/2005#kind' + term='http://gdata.youtube.com/schemas/2007#video' /> + <category scheme='http://gdata.youtube.com/schemas/2007/keywords.cat' + term='video' /> + <category scheme='http://gdata.youtube.com/schemas/2007/keywords.cat' + term='beautiful' /> + <category scheme='http://gdata.youtube.com/schemas/2007/keywords.cat' + term='acoustic' /> + <category scheme='http://gdata.youtube.com/schemas/2007/keywords.cat' + term='cover' /> + <category scheme='http://gdata.youtube.com/schemas/2007/keywords.cat' + term='sean' /> + <category scheme='http://gdata.youtube.com/schemas/2007/keywords.cat' + term='girls' /> + <category scheme='http://gdata.youtube.com/schemas/2007/categories.cat' + term='Music' label='Music' /> + <category scheme='http://gdata.youtube.com/schemas/2007/keywords.cat' + term='suicidal' /> + <category scheme='http://gdata.youtube.com/schemas/2007/keywords.cat' + term='davidchoimusic' /> + <title type='text'>"Beautiful Girls" - Sean Kingston - Acoustic + Cover</title> + <content type='html'><div style="color: #000000;font-family: + Arial, Helvetica, sans-serif; font-size:12px; font-size: 12px; + width: 555px;"><table cellspacing="0" cellpadding="0" + border="0"><tbody><tr><td width="140" + valign="top" rowspan="2"><div style="border: 1px solid + #999999; margin: 0px 10px 5px 0px;"><a + href="http://www.youtube.com/watch?v=uWVuAl_aFRo"><img + alt="" + src="http://img.youtube.com/vi/uWVuAl_aFRo/2.jpg"></a></div></td> + <td width="256" valign="top"><div style="font-size: + 12px; font-weight: bold;"><a style="font-size: 15px; + font-weight: bold; font-decoration: none;" + href="http://www.youtube.com/watch?v=uWVuAl_aFRo">&quot;Beautiful + Girls&quot; - Sean Kingston - Acoustic Cover</a> + <br></div> <div style="font-size: 12px; margin: + 3px 0px;"><span>Click Link to Subscribe! + http://www.youtube.com/subscription_center?add_user=davidchoimusic + http://www.myspace.com/davidchoimusic I really like this song + so I covered it. I will not smile for you + :)</span></div></td> <td style="font-size: + 11px; line-height: 1.4em; padding-left: 20px; padding-top: + 1px;" width="146" valign="top"><div><span + style="color: #666666; font-size: 11px;">From:</span> + <a + href="http://www.youtube.com/profile?user=davidchoimusic">davidchoimusic</a></div> + <div><span style="color: #666666; font-size: + 11px;">Views:</span> 124571</div> <div + style="white-space: nowrap;text-align: left"><img + style="border: 0px none; margin: 0px; padding: 0px; + vertical-align: middle; font-size: 11px;" align="top" alt="" + src="http://gdata.youtube.com/static/images/icn_star_full_11x11.gif"> + <img style="border: 0px none; margin: 0px; padding: 0px; + vertical-align: middle; font-size: 11px;" align="top" alt="" + src="http://gdata.youtube.com/static/images/icn_star_full_11x11.gif"> + <img style="border: 0px none; margin: 0px; padding: 0px; + vertical-align: middle; font-size: 11px;" align="top" alt="" + src="http://gdata.youtube.com/static/images/icn_star_full_11x11.gif"> + <img style="border: 0px none; margin: 0px; padding: 0px; + vertical-align: middle; font-size: 11px;" align="top" alt="" + src="http://gdata.youtube.com/static/images/icn_star_full_11x11.gif"> + <img style="border: 0px none; margin: 0px; padding: 0px; + vertical-align: middle; font-size: 11px;" align="top" alt="" + src="http://gdata.youtube.com/static/images/icn_star_half_11x11.gif"></div> + <div style="font-size: 11px;">1201 <span style="color: + #666666; font-size: + 11px;">ratings</span></div></td></tr> + <tr><td><span style="color: #666666; font-size: + 11px;">Time:</span> <span style="color: #000000; + font-size: 11px; font-weight: + bold;">04:23</span></td> <td + style="font-size: 11px; padding-left: 20px;"><span + style="color: #666666; font-size: 11px;">More + in</span> <a + href="http://www.youtube.com/categories_portal?c=10">Music</a></td></tr></tbody></table></div></content> + <link rel='self' type='application/atom+xml' + href='http://gdata.youtube.com/feeds/videos/uWVuAl_aFRo' /> + <link rel='alternate' type='text/html' + href='http://www.youtube.com/watch?v=uWVuAl_aFRo' /> + <link rel='http://gdata.youtube.com/schemas/2007#video.responses' + type='application/atom+xml' + href='http://gdata.youtube.com/feeds/videos/uWVuAl_aFRo/responses' /> + <link rel='http://gdata.youtube.com/schemas/2007#video.related' + type='application/atom+xml' + href='http://gdata.youtube.com/feeds/videos/uWVuAl_aFRo/related' /> + <author> + <name>davidchoimusic</name> + <uri> + http://gdata.youtube.com/feeds/users/davidchoimusic</uri> + </author> + <media:group> + <media:title type='plain'>"Beautiful Girls" - Sean Kingston - + Acoustic Cover</media:title> + <media:description type='plain'>Click Link to Subscribe! + http://www.youtube.com/subscription_center?add_user=davidchoimusic + http://www.myspace.com/davidchoimusic I really like this song + so I covered it. I will not smile for you + :)</media:description> + <media:keywords>davidchoimusic, beautiful, girls, sean, + kingston, acoustic, cover, video, suicidal</media:keywords> + <yt:duration seconds='263' /> + <media:category label='Music' + scheme='http://gdata.youtube.com/schemas/2007/categories.cat'> + Music</media:category> + <media:content url='http://www.youtube.com/v/uWVuAl_aFRo' + type='application/x-shockwave-flash' medium='video' + isDefault='true' expression='full' duration='263' + yt:format='5' /> + <media:player url='http://www.youtube.com/watch?v=uWVuAl_aFRo' /> + <media:thumbnail url='http://img.youtube.com/vi/uWVuAl_aFRo/2.jpg' + height='97' width='130' time='00:02:11.500' /> + <media:thumbnail url='http://img.youtube.com/vi/uWVuAl_aFRo/1.jpg' + height='97' width='130' time='00:01:05.750' /> + <media:thumbnail url='http://img.youtube.com/vi/uWVuAl_aFRo/3.jpg' + height='97' width='130' time='00:03:17.250' /> + <media:thumbnail url='http://img.youtube.com/vi/uWVuAl_aFRo/0.jpg' + height='240' width='320' time='00:02:11.500' /> + </media:group> + <yt:statistics viewCount='124571' /> + <gd:rating min='1' max='5' numRaters='1201' average='4.71' /> + <gd:comments> + <gd:feedLink href='http://gdata.youtube.com/feeds/videos/uWVuAl_aFRo/comments' /> + </gd:comments> + </entry> + <entry> + <id>http://gdata.youtube.com/feeds/videos/_PCgDBIgPbo</id> + <published>2007-02-15T20:40:24.000Z</published> + <updated>2007-02-15T20:40:24.000Z</updated> + <category scheme='http://schemas.google.com/g/2005#kind' + term='http://gdata.youtube.com/schemas/2007#video' /> + <category scheme='http://gdata.youtube.com/schemas/2007/keywords.cat' + term='Chords' /> + <category scheme='http://gdata.youtube.com/schemas/2007/keywords.cat' + term='Girl' /> + <category scheme='http://gdata.youtube.com/schemas/2007/keywords.cat' + term='Vlog' /> + <category scheme='http://gdata.youtube.com/schemas/2007/categories.cat' + term='Music' label='Music' /> + <category scheme='http://gdata.youtube.com/schemas/2007/keywords.cat' + term='That' /> + <category scheme='http://gdata.youtube.com/schemas/2007/keywords.cat' + term='Guitar' /> + <title type='text'>Vlog - "That Girl" - Guitar Chords</title> + <content type='html'><div style="color: #000000;font-family: + Arial, Helvetica, sans-serif; font-size:12px; font-size: 12px; + width: 555px;"><table cellspacing="0" cellpadding="0" + border="0"><tbody><tr><td width="140" + valign="top" rowspan="2"><div style="border: 1px solid + #999999; margin: 0px 10px 5px 0px;"><a + href="http://www.youtube.com/watch?v=_PCgDBIgPbo"><img + alt="" + src="http://img.youtube.com/vi/_PCgDBIgPbo/2.jpg"></a></div></td> + <td width="256" valign="top"><div style="font-size: + 12px; font-weight: bold;"><a style="font-size: 15px; + font-weight: bold; font-decoration: none;" + href="http://www.youtube.com/watch?v=_PCgDBIgPbo">Vlog - + &quot;That Girl&quot; - Guitar Chords</a> + <br></div> <div style="font-size: 12px; margin: + 3px 0px;"><span>Vlog - &quot;That Girl&quot; - + Guitar Chords Finally here! Enjoy! + http://www.myspace.com/davidchoimusic + http://www.broadjam.com/davidchoi</span></div></td> + <td style="font-size: 11px; line-height: 1.4em; + padding-left: 20px; padding-top: 1px;" width="146" + valign="top"><div><span style="color: #666666; + font-size: 11px;">From:</span> <a + href="http://www.youtube.com/profile?user=davidchoimusic">davidchoimusic</a></div> + <div><span style="color: #666666; font-size: + 11px;">Views:</span> 76681</div> <div + style="white-space: nowrap;text-align: left"><img + style="border: 0px none; margin: 0px; padding: 0px; + vertical-align: middle; font-size: 11px;" align="top" alt="" + src="http://gdata.youtube.com/static/images/icn_star_full_11x11.gif"> + <img style="border: 0px none; margin: 0px; padding: 0px; + vertical-align: middle; font-size: 11px;" align="top" alt="" + src="http://gdata.youtube.com/static/images/icn_star_full_11x11.gif"> + <img style="border: 0px none; margin: 0px; padding: 0px; + vertical-align: middle; font-size: 11px;" align="top" alt="" + src="http://gdata.youtube.com/static/images/icn_star_full_11x11.gif"> + <img style="border: 0px none; margin: 0px; padding: 0px; + vertical-align: middle; font-size: 11px;" align="top" alt="" + src="http://gdata.youtube.com/static/images/icn_star_full_11x11.gif"> + <img style="border: 0px none; margin: 0px; padding: 0px; + vertical-align: middle; font-size: 11px;" align="top" alt="" + src="http://gdata.youtube.com/static/images/icn_star_half_11x11.gif"></div> + <div style="font-size: 11px;">384 <span style="color: + #666666; font-size: + 11px;">ratings</span></div></td></tr> + <tr><td><span style="color: #666666; font-size: + 11px;">Time:</span> <span style="color: #000000; + font-size: 11px; font-weight: + bold;">05:38</span></td> <td + style="font-size: 11px; padding-left: 20px;"><span + style="color: #666666; font-size: 11px;">More + in</span> <a + href="http://www.youtube.com/categories_portal?c=10">Music</a></td></tr></tbody></table></div></content> + <link rel='self' type='application/atom+xml' + href='http://gdata.youtube.com/feeds/videos/_PCgDBIgPbo' /> + <link rel='alternate' type='text/html' + href='http://www.youtube.com/watch?v=_PCgDBIgPbo' /> + <link rel='http://gdata.youtube.com/schemas/2007#video.responses' + type='application/atom+xml' + href='http://gdata.youtube.com/feeds/videos/_PCgDBIgPbo/responses' /> + <link rel='http://gdata.youtube.com/schemas/2007#video.related' + type='application/atom+xml' + href='http://gdata.youtube.com/feeds/videos/_PCgDBIgPbo/related' /> + <author> + <name>davidchoimusic</name> + <uri> + http://gdata.youtube.com/feeds/users/davidchoimusic</uri> + </author> + <media:group> + <media:title type='plain'>Vlog - "That Girl" - Guitar + Chords</media:title> + <media:description type='plain'>Vlog - "That Girl" - Guitar + Chords Finally here! Enjoy! + http://www.myspace.com/davidchoimusic + http://www.broadjam.com/davidchoi</media:description> + <media:keywords>Vlog, That, Girl, Guitar, + Chords</media:keywords> + <yt:duration seconds='338' /> + <media:category label='Music' + scheme='http://gdata.youtube.com/schemas/2007/categories.cat'> + Music</media:category> + <media:content url='http://www.youtube.com/v/_PCgDBIgPbo' + type='application/x-shockwave-flash' medium='video' + isDefault='true' expression='full' duration='338' + yt:format='5' /> + <media:player url='http://www.youtube.com/watch?v=_PCgDBIgPbo' /> + <media:thumbnail url='http://img.youtube.com/vi/_PCgDBIgPbo/2.jpg' + height='97' width='130' time='00:02:49' /> + <media:thumbnail url='http://img.youtube.com/vi/_PCgDBIgPbo/1.jpg' + height='97' width='130' time='00:01:24.500' /> + <media:thumbnail url='http://img.youtube.com/vi/_PCgDBIgPbo/3.jpg' + height='97' width='130' time='00:04:13.500' /> + <media:thumbnail url='http://img.youtube.com/vi/_PCgDBIgPbo/0.jpg' + height='240' width='320' time='00:02:49' /> + </media:group> + <yt:statistics viewCount='76681' /> + <gd:rating min='1' max='5' numRaters='384' average='4.79' /> + <gd:comments> + <gd:feedLink href='http://gdata.youtube.com/feeds/videos/_PCgDBIgPbo/comments' /> + </gd:comments> + </entry> + <entry> + <id>http://gdata.youtube.com/feeds/videos/DdGyPZ0v7Ng</id> + <published>2007-08-12T00:59:18.000Z</published> + <updated>2007-08-12T00:59:18.000Z</updated> + <category scheme='http://gdata.youtube.com/schemas/2007/keywords.cat' + term='Choi' /> + <category scheme='http://gdata.youtube.com/schemas/2007/keywords.cat' + term='David' /> + <category scheme='http://gdata.youtube.com/schemas/2007/keywords.cat' + term='Making' /> + <category scheme='http://gdata.youtube.com/schemas/2007/keywords.cat' + term='with' /> + <category scheme='http://gdata.youtube.com/schemas/2007/keywords.cat' + term='to' /> + <category scheme='http://schemas.google.com/g/2005#kind' + term='http://gdata.youtube.com/schemas/2007#video' /> + <category scheme='http://gdata.youtube.com/schemas/2007/keywords.cat' + term='how' /> + <category scheme='http://gdata.youtube.com/schemas/2007/keywords.cat' + term='Beat' /> + <category scheme='http://gdata.youtube.com/schemas/2007/categories.cat' + term='Music' label='Music' /> + <category scheme='http://gdata.youtube.com/schemas/2007/keywords.cat' + term='tools' /> + <category scheme='http://gdata.youtube.com/schemas/2007/keywords.cat' + term='pro' /> + <category scheme='http://gdata.youtube.com/schemas/2007/keywords.cat' + term='davidchoimusic' /> + <title type='text'>Beat Making with David Choi</title> + <content type='html'><div style="color: #000000;font-family: + Arial, Helvetica, sans-serif; font-size:12px; font-size: 12px; + width: 555px;"><table cellspacing="0" cellpadding="0" + border="0"><tbody><tr><td width="140" + valign="top" rowspan="2"><div style="border: 1px solid + #999999; margin: 0px 10px 5px 0px;"><a + href="http://www.youtube.com/watch?v=DdGyPZ0v7Ng"><img + alt="" + src="http://img.youtube.com/vi/DdGyPZ0v7Ng/2.jpg"></a></div></td> + <td width="256" valign="top"><div style="font-size: + 12px; font-weight: bold;"><a style="font-size: 15px; + font-weight: bold; font-decoration: none;" + href="http://www.youtube.com/watch?v=DdGyPZ0v7Ng">Beat + Making with David Choi</a> <br></div> <div + style="font-size: 12px; margin: 3px 0px;"><span>Click + Link to Subscribe! + http://www.youtube.com/subscription_center?add_user=davidchoimusic + http://www.myspace.com/davidchoimusic Just a quick little beat + I made to show you guys the general idea behind beat making. + And yes, the skin is real + :)</span></div></td> <td style="font-size: + 11px; line-height: 1.4em; padding-left: 20px; padding-top: + 1px;" width="146" valign="top"><div><span + style="color: #666666; font-size: 11px;">From:</span> + <a + href="http://www.youtube.com/profile?user=davidchoimusic">davidchoimusic</a></div> + <div><span style="color: #666666; font-size: + 11px;">Views:</span> 22559</div> <div + style="white-space: nowrap;text-align: left"><img + style="border: 0px none; margin: 0px; padding: 0px; + vertical-align: middle; font-size: 11px;" align="top" alt="" + src="http://gdata.youtube.com/static/images/icn_star_full_11x11.gif"> + <img style="border: 0px none; margin: 0px; padding: 0px; + vertical-align: middle; font-size: 11px;" align="top" alt="" + src="http://gdata.youtube.com/static/images/icn_star_full_11x11.gif"> + <img style="border: 0px none; margin: 0px; padding: 0px; + vertical-align: middle; font-size: 11px;" align="top" alt="" + src="http://gdata.youtube.com/static/images/icn_star_full_11x11.gif"> + <img style="border: 0px none; margin: 0px; padding: 0px; + vertical-align: middle; font-size: 11px;" align="top" alt="" + src="http://gdata.youtube.com/static/images/icn_star_full_11x11.gif"> + <img style="border: 0px none; margin: 0px; padding: 0px; + vertical-align: middle; font-size: 11px;" align="top" alt="" + src="http://gdata.youtube.com/static/images/icn_star_half_11x11.gif"></div> + <div style="font-size: 11px;">371 <span style="color: + #666666; font-size: + 11px;">ratings</span></div></td></tr> + <tr><td><span style="color: #666666; font-size: + 11px;">Time:</span> <span style="color: #000000; + font-size: 11px; font-weight: + bold;">09:51</span></td> <td + style="font-size: 11px; padding-left: 20px;"><span + style="color: #666666; font-size: 11px;">More + in</span> <a + href="http://www.youtube.com/categories_portal?c=10">Music</a></td></tr></tbody></table></div></content> + <link rel='self' type='application/atom+xml' + href='http://gdata.youtube.com/feeds/videos/DdGyPZ0v7Ng' /> + <link rel='alternate' type='text/html' + href='http://www.youtube.com/watch?v=DdGyPZ0v7Ng' /> + <link rel='http://gdata.youtube.com/schemas/2007#video.responses' + type='application/atom+xml' + href='http://gdata.youtube.com/feeds/videos/DdGyPZ0v7Ng/responses' /> + <link rel='http://gdata.youtube.com/schemas/2007#video.related' + type='application/atom+xml' + href='http://gdata.youtube.com/feeds/videos/DdGyPZ0v7Ng/related' /> + <author> + <name>davidchoimusic</name> + <uri> + http://gdata.youtube.com/feeds/users/davidchoimusic</uri> + </author> + <media:group> + <media:title type='plain'>Beat Making with David + Choi</media:title> + <media:description type='plain'>Click Link to Subscribe! + http://www.youtube.com/subscription_center?add_user=davidchoimusic + http://www.myspace.com/davidchoimusic Just a quick little + beat I made to show you guys the general idea behind beat + making. And yes, the skin is real :)</media:description> + <media:keywords>how, to, Beat, Making, with, David, Choi, + davidchoimusic, pro, tools</media:keywords> + <yt:duration seconds='591' /> + <media:category label='Music' + scheme='http://gdata.youtube.com/schemas/2007/categories.cat'> + Music</media:category> + <media:content url='http://www.youtube.com/v/DdGyPZ0v7Ng' + type='application/x-shockwave-flash' medium='video' + isDefault='true' expression='full' duration='591' + yt:format='5' /> + <media:player url='http://www.youtube.com/watch?v=DdGyPZ0v7Ng' /> + <media:thumbnail url='http://img.youtube.com/vi/DdGyPZ0v7Ng/2.jpg' + height='97' width='130' time='00:04:55.500' /> + <media:thumbnail url='http://img.youtube.com/vi/DdGyPZ0v7Ng/1.jpg' + height='97' width='130' time='00:02:27.750' /> + <media:thumbnail url='http://img.youtube.com/vi/DdGyPZ0v7Ng/3.jpg' + height='97' width='130' time='00:07:23.250' /> + <media:thumbnail url='http://img.youtube.com/vi/DdGyPZ0v7Ng/0.jpg' + height='240' width='320' time='00:04:55.500' /> + </media:group> + <yt:statistics viewCount='22559' /> + <gd:rating min='1' max='5' numRaters='371' average='4.74' /> + <gd:comments> + <gd:feedLink href='http://gdata.youtube.com/feeds/videos/DdGyPZ0v7Ng/comments' /> + </gd:comments> + </entry> +</feed> |
