summaryrefslogtreecommitdiff
path: root/zend/tests/Zend/Gdata/YouTube
diff options
context:
space:
mode:
authorHorus32014-02-24 16:42:14 +0100
committerHorus32014-02-24 16:42:14 +0100
commit06f945f27840b53e57795dadbc38e76f7e11ab1c (patch)
tree689d5c7f4ffa15460c7e90f47c6a7dd59ce4e8bd /zend/tests/Zend/Gdata/YouTube
downloadrandom-06f945f27840b53e57795dadbc38e76f7e11ab1c.tar.gz
init
Diffstat (limited to 'zend/tests/Zend/Gdata/YouTube')
-rw-r--r--zend/tests/Zend/Gdata/YouTube/ActivityEntryTest.php153
-rw-r--r--zend/tests/Zend/Gdata/YouTube/ActivityFeedTest.php149
-rw-r--r--zend/tests/Zend/Gdata/YouTube/CommentEntryTest.php107
-rw-r--r--zend/tests/Zend/Gdata/YouTube/CommentFeedTest.php109
-rw-r--r--zend/tests/Zend/Gdata/YouTube/ContactEntryTest.php109
-rw-r--r--zend/tests/Zend/Gdata/YouTube/ContactFeedTest.php109
-rw-r--r--zend/tests/Zend/Gdata/YouTube/InboxEntryTest.php217
-rw-r--r--zend/tests/Zend/Gdata/YouTube/InboxFeedTest.php182
-rw-r--r--zend/tests/Zend/Gdata/YouTube/PlaylistListEntryTest.php239
-rw-r--r--zend/tests/Zend/Gdata/YouTube/PlaylistListFeedTest.php171
-rw-r--r--zend/tests/Zend/Gdata/YouTube/PlaylistVideoEntryTest.php356
-rw-r--r--zend/tests/Zend/Gdata/YouTube/PlaylistVideoFeedTest.php112
-rw-r--r--zend/tests/Zend/Gdata/YouTube/SubscriptionEntryTest.php332
-rw-r--r--zend/tests/Zend/Gdata/YouTube/SubscriptionFeedTest.php178
-rw-r--r--zend/tests/Zend/Gdata/YouTube/UserProfileEntryTest.php253
-rw-r--r--zend/tests/Zend/Gdata/YouTube/VideoEntryTest.php767
-rw-r--r--zend/tests/Zend/Gdata/YouTube/VideoFeedTest.php109
-rw-r--r--zend/tests/Zend/Gdata/YouTube/VideoQueryTest.php277
-rw-r--r--zend/tests/Zend/Gdata/YouTube/_files/ActivityEntryDataSample1.xml23
-rw-r--r--zend/tests/Zend/Gdata/YouTube/_files/ActivityFeedDataSample1.xml47
-rw-r--r--zend/tests/Zend/Gdata/YouTube/_files/CommentEntryDataSample1.xml20
-rw-r--r--zend/tests/Zend/Gdata/YouTube/_files/CommentFeedDataSample1.xml112
-rw-r--r--zend/tests/Zend/Gdata/YouTube/_files/ContactEntryDataSample1.xml26
-rw-r--r--zend/tests/Zend/Gdata/YouTube/_files/ContactFeedDataSample1.xml51
-rw-r--r--zend/tests/Zend/Gdata/YouTube/_files/FormUploadTokenResponseSample.xml1
-rw-r--r--zend/tests/Zend/Gdata/YouTube/_files/InboxEntryDataSample1.xml82
-rw-r--r--zend/tests/Zend/Gdata/YouTube/_files/InboxEntryDataSampleV2.xml88
-rwxr-xr-xzend/tests/Zend/Gdata/YouTube/_files/InboxFeedDataSample1.xml107
-rwxr-xr-xzend/tests/Zend/Gdata/YouTube/_files/InboxFeedDataSampleV2.xml119
-rw-r--r--zend/tests/Zend/Gdata/YouTube/_files/PlaylistListEntryDataSample1.xml30
-rw-r--r--zend/tests/Zend/Gdata/YouTube/_files/PlaylistListEntryDataSampleV2.xml16
-rw-r--r--zend/tests/Zend/Gdata/YouTube/_files/PlaylistListFeedDataSample1.xml79
-rw-r--r--zend/tests/Zend/Gdata/YouTube/_files/PlaylistListFeedDataSampleV2.xml553
-rw-r--r--zend/tests/Zend/Gdata/YouTube/_files/PlaylistListVideoEntryDataSampleV2.xml66
-rw-r--r--zend/tests/Zend/Gdata/YouTube/_files/PlaylistVideoEntryDataSample1.xml109
-rw-r--r--zend/tests/Zend/Gdata/YouTube/_files/PlaylistVideoEntryDataSampleV2.xml89
-rw-r--r--zend/tests/Zend/Gdata/YouTube/_files/PlaylistVideoFeedDataSample1.xml1495
-rw-r--r--zend/tests/Zend/Gdata/YouTube/_files/SubscriptionEntryDataSample1.xml29
-rw-r--r--zend/tests/Zend/Gdata/YouTube/_files/SubscriptionEntryDataSampleV2.xml33
-rw-r--r--zend/tests/Zend/Gdata/YouTube/_files/SubscriptionEntryDataSample_channelV2.xml33
-rw-r--r--zend/tests/Zend/Gdata/YouTube/_files/SubscriptionEntryDataSample_favoritesV2.xml30
-rw-r--r--zend/tests/Zend/Gdata/YouTube/_files/SubscriptionEntryDataSample_playlistV2.xml32
-rw-r--r--zend/tests/Zend/Gdata/YouTube/_files/SubscriptionEntryDataSample_queryV2.xml31
-rw-r--r--zend/tests/Zend/Gdata/YouTube/_files/SubscriptionFeedDataSample1.xml105
-rw-r--r--zend/tests/Zend/Gdata/YouTube/_files/SubscriptionFeedDataSampleV2.xml138
-rw-r--r--zend/tests/Zend/Gdata/YouTube/_files/UserProfileEntryDataSample1.xml47
-rw-r--r--zend/tests/Zend/Gdata/YouTube/_files/UserProfileEntryDataSampleV2.xml71
-rw-r--r--zend/tests/Zend/Gdata/YouTube/_files/VideoEntryDataSample1.xml138
-rwxr-xr-xzend/tests/Zend/Gdata/YouTube/_files/VideoEntryDataSamplePrivate.xml139
-rw-r--r--zend/tests/Zend/Gdata/YouTube/_files/VideoEntryDataSampleV2.xml63
-rw-r--r--zend/tests/Zend/Gdata/YouTube/_files/VideoFeedDataSample1.xml743
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.&quot;'>
+ <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&amp;start-index=1&amp;max-results=25&amp;v=2'/><link rel='service' type='application/atomsvc+xml' href='http://gdata.youtube.com/feeds/api/events?alt=atom-service&amp;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&amp;max-results=4' />
+ <link rel='next' type='application/atom+xml'
+ href='http://gdata.youtube.com/feeds/videos/Lnio-pqLPgg/comments?start-index=6&amp;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&amp;max-results=5' />
+ <link rel='next' type='application/atom+xml'
+ href='http://gdata.youtube.com/feeds/users/davidchoimusic/contacts?start-index=6&amp;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/&quot;C0QHQ347eCp7ImA9WxdQEU4.&quot;'>
+ <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 &amp; 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&amp;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/&quot;C0QHQ347eCp7ImA9WxdQEU4.&quot;'>
+ <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&amp;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/&quot;C0QHQ347eCp7ImA9WxdQEU4.&quot;'>
+ <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 &amp; 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/&quot;CE4CQn47eCp7ImA9WxRbGU0.&quot;'>
+<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&amp;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/&quot;CE4CQn47eCp7ImA9WxRbGU0.&quot;'>
+ <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&amp;max-results=25&amp;v=2'/>
+ <link rel='service' type='application/atomsvc+xml' href='http://gdata.youtube.com/feeds/api/users/GoogleDevelopers/playlists?alt=atom-service&amp;v=2'/>
+ <link rel='next' type='application/atom+xml' href='http://gdata.youtube.com/feeds/api/users/GoogleDevelopers/playlists?start-index=26&amp;max-results=25&amp;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/&quot;CE4CQn47eCp7ImA9WxRbGU0.&quot;'>
+ <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/&quot;DkUDQn47eCp7ImA9WxRaEE0.&quot;'>
+ <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/&quot;DUEDQn47eCp7ImA9WxRaEU0.&quot;'>
+ <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/&quot;CE4CRH47eCp7ImA9WxRbF0o.&quot;'>
+ <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/&quot;DUAFQn47eCp7ImA9WxRaEU0.&quot;'>
+ <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/&quot;A0AMRX47eCp7ImA9WxRbGU0.&quot;'>
+<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/&quot;A0IMQH47eCp7ImA9WxRbFkg.&quot;'>
+<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/&quot;AkENRn47eCp7ImA9WxRbGUw.&quot;'>
+<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/&quot;DE8GQ347eCp7ImA9WxRbFE8.&quot;'>
+<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/&quot;Ck8EQX47eCp7ImA9WxRaEU0.&quot;'>
+<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/&quot;C0AERX47eCp7ImA9WxRaEUw.&quot;'>
+<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/&quot;C0IBQ347eCp7ImA9WxRbF0Q.&quot;'>
+<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/&quot;CE4DQ347eCp7ImA9WxRbGU0.&quot;'>
+<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/&quot;CkYEQX47eCp7ImA9WxRbEEs.&quot;'>
+<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/&quot;DEUGQX47eCp7ImA9WxRaEE0.&quot;'>
+<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/&quot;DUEDRH47eCp7ImA9WxRaEU0.&quot;'>
+<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/&quot;DUAFR347eCp7ImA9WxRaEU0.&quot;'>
+<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/&quot;DUAGQX47eCp7ImA9WxRaEU0.&quot;'>
+<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/&quot;D0MHR347eCp7ImA9WxRbE08.&quot;'>
+<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/&quot;A0QGSX47eCp7ImA9WxRbGUU.&quot;'>
+<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/&quot;DEACQ347eCp7ImA9WxRbFE8.&quot;'>
+<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/&quot;DEEMR347eCp7ImA9WxRaEEU.&quot;'>
+<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/&quot;AkUAQH47eCp7ImA9WxRaEU0.&quot;'>
+<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/&quot;DUEDQ347eCp7ImA9WxRaEU0.&quot;'>
+<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/&quot;DUAFR347eCp7ImA9WxRaEU0.&quot;'>
+<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/&quot;C0AERX47eCp7ImA9WxRaEUw.&quot;'>
+ <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&amp;max-results=25&amp;v=2'/>
+ <link rel='service' type='application/atomsvc+xml' href='http://gdata.youtube.com/feeds/api/playlists/CCAE880913CAFE9B?alt=atom-service&amp;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/&quot;C0ADSHg4fSp7ImA9WxRaEUw.&quot;'>
+ <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 &amp; 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 &amp; Style' scheme='http://gdata.youtube.com/schemas/2007/categories.cat'>Howto</media:category>
+ <media:content url='http://www.youtube.com/v/RTQDqPtErB0&amp;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'>&lt;div style="color: #000000;font-family:
+ Arial, Helvetica, sans-serif; font-size:12px; font-size: 12px;
+ width: 555px;"&gt;&lt;table cellspacing="0" cellpadding="0"
+ border="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td width="140"
+ valign="top" rowspan="2"&gt;&lt;div style="border: 1px solid
+ #999999; margin: 0px 10px 5px 0px;"&gt;&lt;a
+ href="http://www.youtube.com/watch?v=UMFI1hdm96E"&gt;&lt;img
+ alt=""
+ src="http://img.youtube.com/vi/UMFI1hdm96E/2.jpg"&gt;&lt;/a&gt;&lt;/div&gt;&lt;/td&gt;
+ &lt;td width="256" valign="top"&gt;&lt;div style="font-size:
+ 12px; font-weight: bold;"&gt;&lt;a style="font-size: 15px;
+ font-weight: bold; font-decoration: none;"
+ href="http://www.youtube.com/watch?v=UMFI1hdm96E"&gt;&amp;quot;Crazy
+ (Gnarles Barkley)&amp;quot; - Acoustic Cover&lt;/a&gt;
+ &lt;br&gt;&lt;/div&gt; &lt;div style="font-size: 12px; margin:
+ 3px 0px;"&gt;&lt;span&gt;Gnarles Barkley acoustic cover
+ http://www.myspace.com/davidchoimusic&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;
+ &lt;td style="font-size: 11px; line-height: 1.4em;
+ padding-left: 20px; padding-top: 1px;" width="146"
+ valign="top"&gt;&lt;div&gt;&lt;span style="color: #666666;
+ font-size: 11px;"&gt;From:&lt;/span&gt; &lt;a
+ href="http://www.youtube.com/profile?user=davidchoimusic"&gt;davidchoimusic&lt;/a&gt;&lt;/div&gt;
+ &lt;div&gt;&lt;span style="color: #666666; font-size:
+ 11px;"&gt;Views:&lt;/span&gt; 113321&lt;/div&gt; &lt;div
+ style="white-space: nowrap;text-align: left"&gt;&lt;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"&gt;
+ &lt;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"&gt;
+ &lt;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"&gt;
+ &lt;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"&gt;
+ &lt;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"&gt;&lt;/div&gt;
+ &lt;div style="font-size: 11px;"&gt;1005 &lt;span style="color:
+ #666666; font-size:
+ 11px;"&gt;ratings&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
+ &lt;tr&gt;&lt;td&gt;&lt;span style="color: #666666; font-size:
+ 11px;"&gt;Time:&lt;/span&gt; &lt;span style="color: #000000;
+ font-size: 11px; font-weight:
+ bold;"&gt;04:15&lt;/span&gt;&lt;/td&gt; &lt;td
+ style="font-size: 11px; padding-left: 20px;"&gt;&lt;span
+ style="color: #666666; font-size: 11px;"&gt;More
+ in&lt;/span&gt; &lt;a
+ href="http://www.youtube.com/categories_portal?c=10"&gt;Music&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;</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 &amp; 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 &amp; Politics'
+scheme='http://gdata.youtube.com/schemas/2007/categories.cat'>
+News</media:category>
+<media:content url='http://www.youtube.com/v/Lur391T5ApY&amp;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&amp;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'>&lt;div style="color: #000000;font-family:
+ Arial, Helvetica, sans-serif; font-size:12px; font-size: 12px;
+ width: 555px;"&gt;&lt;table cellspacing="0" cellpadding="0"
+ border="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td width="140"
+ valign="top" rowspan="2"&gt;&lt;div style="border: 1px solid
+ #999999; margin: 0px 10px 5px 0px;"&gt;&lt;a
+ href="http://www.youtube.com/watch?v=UMFI1hdm96E"&gt;&lt;img
+ alt=""
+ src="http://img.youtube.com/vi/UMFI1hdm96E/2.jpg"&gt;&lt;/a&gt;&lt;/div&gt;&lt;/td&gt;
+ &lt;td width="256" valign="top"&gt;&lt;div style="font-size:
+ 12px; font-weight: bold;"&gt;&lt;a style="font-size: 15px;
+ font-weight: bold; font-decoration: none;"
+ href="http://www.youtube.com/watch?v=UMFI1hdm96E"&gt;&amp;quot;Crazy
+ (Gnarles Barkley)&amp;quot; - Acoustic Cover&lt;/a&gt;
+ &lt;br&gt;&lt;/div&gt; &lt;div style="font-size: 12px; margin:
+ 3px 0px;"&gt;&lt;span&gt;Gnarles Barkley acoustic cover
+ http://www.myspace.com/davidchoimusic&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;
+ &lt;td style="font-size: 11px; line-height: 1.4em;
+ padding-left: 20px; padding-top: 1px;" width="146"
+ valign="top"&gt;&lt;div&gt;&lt;span style="color: #666666;
+ font-size: 11px;"&gt;From:&lt;/span&gt; &lt;a
+ href="http://www.youtube.com/profile?user=davidchoimusic"&gt;davidchoimusic&lt;/a&gt;&lt;/div&gt;
+ &lt;div&gt;&lt;span style="color: #666666; font-size:
+ 11px;"&gt;Views:&lt;/span&gt; 113321&lt;/div&gt; &lt;div
+ style="white-space: nowrap;text-align: left"&gt;&lt;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"&gt;
+ &lt;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"&gt;
+ &lt;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"&gt;
+ &lt;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"&gt;
+ &lt;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"&gt;&lt;/div&gt;
+ &lt;div style="font-size: 11px;"&gt;1005 &lt;span style="color:
+ #666666; font-size:
+ 11px;"&gt;ratings&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
+ &lt;tr&gt;&lt;td&gt;&lt;span style="color: #666666; font-size:
+ 11px;"&gt;Time:&lt;/span&gt; &lt;span style="color: #000000;
+ font-size: 11px; font-weight:
+ bold;"&gt;04:15&lt;/span&gt;&lt;/td&gt; &lt;td
+ style="font-size: 11px; padding-left: 20px;"&gt;&lt;span
+ style="color: #666666; font-size: 11px;"&gt;More
+ in&lt;/span&gt; &lt;a
+ href="http://www.youtube.com/categories_portal?c=10"&gt;Music&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;</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'>&lt;div style="color: #000000;font-family:
+ Arial, Helvetica, sans-serif; font-size:12px; font-size: 12px;
+ width: 555px;"&gt;&lt;table cellspacing="0" cellpadding="0"
+ border="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td width="140"
+ valign="top" rowspan="2"&gt;&lt;div style="border: 1px solid
+ #999999; margin: 0px 10px 5px 0px;"&gt;&lt;a
+ href="http://www.youtube.com/watch?v=waQuw1P7VU8"&gt;&lt;img
+ alt=""
+ src="http://img.youtube.com/vi/waQuw1P7VU8/2.jpg"&gt;&lt;/a&gt;&lt;/div&gt;&lt;/td&gt;
+ &lt;td width="256" valign="top"&gt;&lt;div style="font-size:
+ 12px; font-weight: bold;"&gt;&lt;a style="font-size: 15px;
+ font-weight: bold; font-decoration: none;"
+ href="http://www.youtube.com/watch?v=waQuw1P7VU8"&gt;gnals
+ barkley&lt;/a&gt; &lt;br&gt;&lt;/div&gt; &lt;div
+ style="font-size: 12px; margin: 3px 0px;"&gt;&lt;span&gt;Me
+ singing Crazy by gnarls
+ barkley&lt;/span&gt;&lt;/div&gt;&lt;/td&gt; &lt;td
+ style="font-size: 11px; line-height: 1.4em; padding-left: 20px;
+ padding-top: 1px;" width="146"
+ valign="top"&gt;&lt;div&gt;&lt;span style="color: #666666;
+ font-size: 11px;"&gt;From:&lt;/span&gt; &lt;a
+ href="http://www.youtube.com/profile?user=esmeedenters"&gt;esmeedenters&lt;/a&gt;&lt;/div&gt;
+ &lt;div&gt;&lt;span style="color: #666666; font-size:
+ 11px;"&gt;Views:&lt;/span&gt; 219224&lt;/div&gt; &lt;div
+ style="white-space: nowrap;text-align: left"&gt;&lt;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"&gt;
+ &lt;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"&gt;
+ &lt;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"&gt;
+ &lt;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"&gt;
+ &lt;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"&gt;&lt;/div&gt;
+ &lt;div style="font-size: 11px;"&gt;1753 &lt;span style="color:
+ #666666; font-size:
+ 11px;"&gt;ratings&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
+ &lt;tr&gt;&lt;td&gt;&lt;span style="color: #666666; font-size:
+ 11px;"&gt;Time:&lt;/span&gt; &lt;span style="color: #000000;
+ font-size: 11px; font-weight:
+ bold;"&gt;02:59&lt;/span&gt;&lt;/td&gt; &lt;td
+ style="font-size: 11px; padding-left: 20px;"&gt;&lt;span
+ style="color: #666666; font-size: 11px;"&gt;More
+ in&lt;/span&gt; &lt;a
+ href="http://www.youtube.com/categories_portal?c=10"&gt;Music&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;</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'>&lt;div style="color: #000000;font-family:
+ Arial, Helvetica, sans-serif; font-size:12px; font-size: 12px;
+ width: 555px;"&gt;&lt;table cellspacing="0" cellpadding="0"
+ border="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td width="140"
+ valign="top" rowspan="2"&gt;&lt;div style="border: 1px solid
+ #999999; margin: 0px 10px 5px 0px;"&gt;&lt;a
+ href="http://www.youtube.com/watch?v=xjidkN6kleU"&gt;&lt;img
+ alt=""
+ src="http://img.youtube.com/vi/xjidkN6kleU/2.jpg"&gt;&lt;/a&gt;&lt;/div&gt;&lt;/td&gt;
+ &lt;td width="256" valign="top"&gt;&lt;div style="font-size:
+ 12px; font-weight: bold;"&gt;&lt;a style="font-size: 15px;
+ font-weight: bold; font-decoration: none;"
+ href="http://www.youtube.com/watch?v=xjidkN6kleU"&gt;Can&amp;#39;t
+ take my eyes off of you&lt;/a&gt; &lt;br&gt;&lt;/div&gt;
+ &lt;div style="font-size: 12px; margin: 3px
+ 0px;"&gt;&lt;span&gt;Lauryn Hill Cover - Can&amp;#39;t take my
+ eyes off of you. my way--- a good
+ way?&lt;/span&gt;&lt;/div&gt;&lt;/td&gt; &lt;td
+ style="font-size: 11px; line-height: 1.4em; padding-left: 20px;
+ padding-top: 1px;" width="146"
+ valign="top"&gt;&lt;div&gt;&lt;span style="color: #666666;
+ font-size: 11px;"&gt;From:&lt;/span&gt; &lt;a
+ href="http://www.youtube.com/profile?user=munilicious"&gt;munilicious&lt;/a&gt;&lt;/div&gt;
+ &lt;div&gt;&lt;span style="color: #666666; font-size:
+ 11px;"&gt;Views:&lt;/span&gt; 12968&lt;/div&gt; &lt;div
+ style="white-space: nowrap;text-align: left"&gt;&lt;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"&gt;
+ &lt;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"&gt;
+ &lt;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"&gt;
+ &lt;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"&gt;
+ &lt;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"&gt;&lt;/div&gt;
+ &lt;div style="font-size: 11px;"&gt;34 &lt;span style="color:
+ #666666; font-size:
+ 11px;"&gt;ratings&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
+ &lt;tr&gt;&lt;td&gt;&lt;span style="color: #666666; font-size:
+ 11px;"&gt;Time:&lt;/span&gt; &lt;span style="color: #000000;
+ font-size: 11px; font-weight:
+ bold;"&gt;02:18&lt;/span&gt;&lt;/td&gt; &lt;td
+ style="font-size: 11px; padding-left: 20px;"&gt;&lt;span
+ style="color: #666666; font-size: 11px;"&gt;More
+ in&lt;/span&gt; &lt;a
+ href="http://www.youtube.com/categories_portal?c=10"&gt;Music&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;</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'>&lt;div style="color: #000000;font-family:
+ Arial, Helvetica, sans-serif; font-size:12px; font-size: 12px;
+ width: 555px;"&gt;&lt;table cellspacing="0" cellpadding="0"
+ border="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td width="140"
+ valign="top" rowspan="2"&gt;&lt;div style="border: 1px solid
+ #999999; margin: 0px 10px 5px 0px;"&gt;&lt;a
+ href="http://www.youtube.com/watch?v=MOxExzhhW0c"&gt;&lt;img
+ alt=""
+ src="http://img.youtube.com/vi/MOxExzhhW0c/2.jpg"&gt;&lt;/a&gt;&lt;/div&gt;&lt;/td&gt;
+ &lt;td width="256" valign="top"&gt;&lt;div style="font-size:
+ 12px; font-weight: bold;"&gt;&lt;a style="font-size: 15px;
+ font-weight: bold; font-decoration: none;"
+ href="http://www.youtube.com/watch?v=MOxExzhhW0c"&gt;hanging by
+ a moment (cover)&lt;/a&gt; &lt;br&gt;&lt;/div&gt; &lt;div
+ style="font-size: 12px; margin: 3px 0px;"&gt;&lt;span&gt;my
+ sister(guitar) and me jamming
+ lifehouse&lt;/span&gt;&lt;/div&gt;&lt;/td&gt; &lt;td
+ style="font-size: 11px; line-height: 1.4em; padding-left: 20px;
+ padding-top: 1px;" width="146"
+ valign="top"&gt;&lt;div&gt;&lt;span style="color: #666666;
+ font-size: 11px;"&gt;From:&lt;/span&gt; &lt;a
+ href="http://www.youtube.com/profile?user=lauwarm"&gt;lauwarm&lt;/a&gt;&lt;/div&gt;
+ &lt;div&gt;&lt;span style="color: #666666; font-size:
+ 11px;"&gt;Views:&lt;/span&gt; 7186&lt;/div&gt; &lt;div
+ style="white-space: nowrap;text-align: left"&gt;&lt;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"&gt;
+ &lt;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"&gt;
+ &lt;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"&gt;
+ &lt;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"&gt;
+ &lt;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"&gt;&lt;/div&gt;
+ &lt;div style="font-size: 11px;"&gt;24 &lt;span style="color:
+ #666666; font-size:
+ 11px;"&gt;ratings&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
+ &lt;tr&gt;&lt;td&gt;&lt;span style="color: #666666; font-size:
+ 11px;"&gt;Time:&lt;/span&gt; &lt;span style="color: #000000;
+ font-size: 11px; font-weight:
+ bold;"&gt;00:30&lt;/span&gt;&lt;/td&gt; &lt;td
+ style="font-size: 11px; padding-left: 20px;"&gt;&lt;span
+ style="color: #666666; font-size: 11px;"&gt;More
+ in&lt;/span&gt; &lt;a
+ href="http://www.youtube.com/categories_portal?c=10"&gt;Music&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;</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'>&lt;div style="color: #000000;font-family:
+ Arial, Helvetica, sans-serif; font-size:12px; font-size: 12px;
+ width: 555px;"&gt;&lt;table cellspacing="0" cellpadding="0"
+ border="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td width="140"
+ valign="top" rowspan="2"&gt;&lt;div style="border: 1px solid
+ #999999; margin: 0px 10px 5px 0px;"&gt;&lt;a
+ href="http://www.youtube.com/watch?v=_KHqQc1nn_0"&gt;&lt;img
+ alt=""
+ src="http://img.youtube.com/vi/_KHqQc1nn_0/2.jpg"&gt;&lt;/a&gt;&lt;/div&gt;&lt;/td&gt;
+ &lt;td width="256" valign="top"&gt;&lt;div style="font-size:
+ 12px; font-weight: bold;"&gt;&lt;a style="font-size: 15px;
+ font-weight: bold; font-decoration: none;"
+ href="http://www.youtube.com/watch?v=_KHqQc1nn_0"&gt;I&amp;#39;LL
+ BE-MEN&amp;#39;S OCTET (ACAPELLA)&lt;/a&gt;
+ &lt;br&gt;&lt;/div&gt; &lt;div style="font-size: 12px; margin:
+ 3px 0px;"&gt;&lt;span&gt;UC BERKELEY&amp;#39;S MEN&amp;#39;S
+ OCTET (ACAPELLA)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt; &lt;td
+ style="font-size: 11px; line-height: 1.4em; padding-left: 20px;
+ padding-top: 1px;" width="146"
+ valign="top"&gt;&lt;div&gt;&lt;span style="color: #666666;
+ font-size: 11px;"&gt;From:&lt;/span&gt; &lt;a
+ href="http://www.youtube.com/profile?user=boredom"&gt;boredom&lt;/a&gt;&lt;/div&gt;
+ &lt;div&gt;&lt;span style="color: #666666; font-size:
+ 11px;"&gt;Views:&lt;/span&gt; 46416&lt;/div&gt; &lt;div
+ style="white-space: nowrap;text-align: left"&gt;&lt;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"&gt;
+ &lt;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"&gt;
+ &lt;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"&gt;
+ &lt;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"&gt;
+ &lt;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"&gt;&lt;/div&gt;
+ &lt;div style="font-size: 11px;"&gt;116 &lt;span style="color:
+ #666666; font-size:
+ 11px;"&gt;ratings&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
+ &lt;tr&gt;&lt;td&gt;&lt;span style="color: #666666; font-size:
+ 11px;"&gt;Time:&lt;/span&gt; &lt;span style="color: #000000;
+ font-size: 11px; font-weight:
+ bold;"&gt;04:06&lt;/span&gt;&lt;/td&gt; &lt;td
+ style="font-size: 11px; padding-left: 20px;"&gt;&lt;span
+ style="color: #666666; font-size: 11px;"&gt;More
+ in&lt;/span&gt; &lt;a
+ href="http://www.youtube.com/categories_portal?c=10"&gt;Music&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;</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'>&lt;div style="color: #000000;font-family:
+ Arial, Helvetica, sans-serif; font-size:12px; font-size: 12px;
+ width: 555px;"&gt;&lt;table cellspacing="0" cellpadding="0"
+ border="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td width="140"
+ valign="top" rowspan="2"&gt;&lt;div style="border: 1px solid
+ #999999; margin: 0px 10px 5px 0px;"&gt;&lt;a
+ href="http://www.youtube.com/watch?v=EV1_qPBuDt8"&gt;&lt;img
+ alt=""
+ src="http://img.youtube.com/vi/EV1_qPBuDt8/2.jpg"&gt;&lt;/a&gt;&lt;/div&gt;&lt;/td&gt;
+ &lt;td width="256" valign="top"&gt;&lt;div style="font-size:
+ 12px; font-weight: bold;"&gt;&lt;a style="font-size: 15px;
+ font-weight: bold; font-decoration: none;"
+ href="http://www.youtube.com/watch?v=EV1_qPBuDt8"&gt;Kiss the
+ Girl&lt;/a&gt; &lt;br&gt;&lt;/div&gt; &lt;div style="font-size:
+ 12px; margin: 3px 0px;"&gt;&lt;span&gt;Alma College&amp;#39;s
+ Scots on the Rocks sing their acapella rendition of Kiss the
+ Girl from the Little
+ Mermaid&lt;/span&gt;&lt;/div&gt;&lt;/td&gt; &lt;td
+ style="font-size: 11px; line-height: 1.4em; padding-left: 20px;
+ padding-top: 1px;" width="146"
+ valign="top"&gt;&lt;div&gt;&lt;span style="color: #666666;
+ font-size: 11px;"&gt;From:&lt;/span&gt; &lt;a
+ href="http://www.youtube.com/profile?user=cmorris"&gt;cmorris&lt;/a&gt;&lt;/div&gt;
+ &lt;div&gt;&lt;span style="color: #666666; font-size:
+ 11px;"&gt;Views:&lt;/span&gt; 37218&lt;/div&gt; &lt;div
+ style="white-space: nowrap;text-align: left"&gt;&lt;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"&gt;
+ &lt;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"&gt;
+ &lt;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"&gt;
+ &lt;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"&gt;
+ &lt;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"&gt;&lt;/div&gt;
+ &lt;div style="font-size: 11px;"&gt;312 &lt;span style="color:
+ #666666; font-size:
+ 11px;"&gt;ratings&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
+ &lt;tr&gt;&lt;td&gt;&lt;span style="color: #666666; font-size:
+ 11px;"&gt;Time:&lt;/span&gt; &lt;span style="color: #000000;
+ font-size: 11px; font-weight:
+ bold;"&gt;03:16&lt;/span&gt;&lt;/td&gt; &lt;td
+ style="font-size: 11px; padding-left: 20px;"&gt;&lt;span
+ style="color: #666666; font-size: 11px;"&gt;More
+ in&lt;/span&gt; &lt;a
+ href="http://www.youtube.com/categories_portal?c=10"&gt;Music&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;</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'>&lt;div style="color: #000000;font-family:
+ Arial, Helvetica, sans-serif; font-size:12px; font-size: 12px;
+ width: 555px;"&gt;&lt;table cellspacing="0" cellpadding="0"
+ border="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td width="140"
+ valign="top" rowspan="2"&gt;&lt;div style="border: 1px solid
+ #999999; margin: 0px 10px 5px 0px;"&gt;&lt;a
+ href="http://www.youtube.com/watch?v=t4EaHIpjTTY"&gt;&lt;img
+ alt=""
+ src="http://img.youtube.com/vi/t4EaHIpjTTY/2.jpg"&gt;&lt;/a&gt;&lt;/div&gt;&lt;/td&gt;
+ &lt;td width="256" valign="top"&gt;&lt;div style="font-size:
+ 12px; font-weight: bold;"&gt;&lt;a style="font-size: 15px;
+ font-weight: bold; font-decoration: none;"
+ href="http://www.youtube.com/watch?v=t4EaHIpjTTY"&gt;Oasis
+ &amp;quot;Wonderwall&amp;quot; Acoustic Cover by
+ ortoPilot&lt;/a&gt; &lt;br&gt;&lt;/div&gt; &lt;div
+ style="font-size: 12px; margin: 3px 0px;"&gt;&lt;span&gt;Oasis
+ &amp;quot;Wonderwall&amp;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!&lt;/span&gt;&lt;/div&gt;&lt;/td&gt; &lt;td
+ style="font-size: 11px; line-height: 1.4em; padding-left: 20px;
+ padding-top: 1px;" width="146"
+ valign="top"&gt;&lt;div&gt;&lt;span style="color: #666666;
+ font-size: 11px;"&gt;From:&lt;/span&gt; &lt;a
+ href="http://www.youtube.com/profile?user=ortoPilot"&gt;ortoPilot&lt;/a&gt;&lt;/div&gt;
+ &lt;div&gt;&lt;span style="color: #666666; font-size:
+ 11px;"&gt;Views:&lt;/span&gt; 92395&lt;/div&gt; &lt;div
+ style="white-space: nowrap;text-align: left"&gt;&lt;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"&gt;
+ &lt;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"&gt;
+ &lt;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"&gt;
+ &lt;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"&gt;
+ &lt;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"&gt;&lt;/div&gt;
+ &lt;div style="font-size: 11px;"&gt;521 &lt;span style="color:
+ #666666; font-size:
+ 11px;"&gt;ratings&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
+ &lt;tr&gt;&lt;td&gt;&lt;span style="color: #666666; font-size:
+ 11px;"&gt;Time:&lt;/span&gt; &lt;span style="color: #000000;
+ font-size: 11px; font-weight:
+ bold;"&gt;04:01&lt;/span&gt;&lt;/td&gt; &lt;td
+ style="font-size: 11px; padding-left: 20px;"&gt;&lt;span
+ style="color: #666666; font-size: 11px;"&gt;More
+ in&lt;/span&gt; &lt;a
+ href="http://www.youtube.com/categories_portal?c=10"&gt;Music&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;</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'>&lt;div style="color: #000000;font-family:
+ Arial, Helvetica, sans-serif; font-size:12px; font-size: 12px;
+ width: 555px;"&gt;&lt;table cellspacing="0" cellpadding="0"
+ border="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td width="140"
+ valign="top" rowspan="2"&gt;&lt;div style="border: 1px solid
+ #999999; margin: 0px 10px 5px 0px;"&gt;&lt;a
+ href="http://www.youtube.com/watch?v=PnCVZozHTG8"&gt;&lt;img
+ alt=""
+ src="http://img.youtube.com/vi/PnCVZozHTG8/2.jpg"&gt;&lt;/a&gt;&lt;/div&gt;&lt;/td&gt;
+ &lt;td width="256" valign="top"&gt;&lt;div style="font-size:
+ 12px; font-weight: bold;"&gt;&lt;a style="font-size: 15px;
+ font-weight: bold; font-decoration: none;"
+ href="http://www.youtube.com/watch?v=PnCVZozHTG8"&gt;Pancakes!&lt;/a&gt;
+ &lt;br&gt;&lt;/div&gt; &lt;div style="font-size: 12px; margin:
+ 3px 0px;"&gt;&lt;span&gt;A short music video about making
+ pancakes =) This video has been on ABC&amp;#39;s &amp;quot;Good
+ Morning America&amp;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&#195;&#169;pes, to clear up the confusion. Lemon
+ and Sugar is very popular on pacakes here. It took over a week
+ to make this, it&amp;#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&amp;#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 &amp;quot;GiR - it&amp;#39;s
+ time for pancakes!&amp;quot; at the
+ start.&lt;/span&gt;&lt;/div&gt;&lt;/td&gt; &lt;td
+ style="font-size: 11px; line-height: 1.4em; padding-left: 20px;
+ padding-top: 1px;" width="146"
+ valign="top"&gt;&lt;div&gt;&lt;span style="color: #666666;
+ font-size: 11px;"&gt;From:&lt;/span&gt; &lt;a
+ href="http://www.youtube.com/profile?user=GiR2007"&gt;GiR2007&lt;/a&gt;&lt;/div&gt;
+ &lt;div&gt;&lt;span style="color: #666666; font-size:
+ 11px;"&gt;Views:&lt;/span&gt; 2249048&lt;/div&gt; &lt;div
+ style="white-space: nowrap;text-align: left"&gt;&lt;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"&gt;
+ &lt;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"&gt;
+ &lt;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"&gt;
+ &lt;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"&gt;
+ &lt;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"&gt;&lt;/div&gt;
+ &lt;div style="font-size: 11px;"&gt;17754 &lt;span
+ style="color: #666666; font-size:
+ 11px;"&gt;ratings&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
+ &lt;tr&gt;&lt;td&gt;&lt;span style="color: #666666; font-size:
+ 11px;"&gt;Time:&lt;/span&gt; &lt;span style="color: #000000;
+ font-size: 11px; font-weight:
+ bold;"&gt;02:22&lt;/span&gt;&lt;/td&gt; &lt;td
+ style="font-size: 11px; padding-left: 20px;"&gt;&lt;span
+ style="color: #666666; font-size: 11px;"&gt;More
+ in&lt;/span&gt; &lt;a
+ href="http://www.youtube.com/categories_portal?c=1"&gt;Film
+ &amp;amp;
+ Animation&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;</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&#195;&#169;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 &amp; 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'>&lt;div style="color: #000000;font-family:
+ Arial, Helvetica, sans-serif; font-size:12px; font-size: 12px;
+ width: 555px;"&gt;&lt;table cellspacing="0" cellpadding="0"
+ border="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td width="140"
+ valign="top" rowspan="2"&gt;&lt;div style="border: 1px solid
+ #999999; margin: 0px 10px 5px 0px;"&gt;&lt;a
+ href="http://www.youtube.com/watch?v=_6ceUy9lVdM"&gt;&lt;img
+ alt=""
+ src="http://img.youtube.com/vi/_6ceUy9lVdM/2.jpg"&gt;&lt;/a&gt;&lt;/div&gt;&lt;/td&gt;
+ &lt;td width="256" valign="top"&gt;&lt;div style="font-size:
+ 12px; font-weight: bold;"&gt;&lt;a style="font-size: 15px;
+ font-weight: bold; font-decoration: none;"
+ href="http://www.youtube.com/watch?v=_6ceUy9lVdM"&gt;Ana Free -
+ Chained&lt;/a&gt; &lt;br&gt;&lt;/div&gt; &lt;div
+ style="font-size: 12px; margin: 3px 0px;"&gt;&lt;span&gt;The
+ second upload of the day.. :) All is explained in the video, no
+ point in writing it here! Take care ***
+ Ana&lt;/span&gt;&lt;/div&gt;&lt;/td&gt; &lt;td
+ style="font-size: 11px; line-height: 1.4em; padding-left: 20px;
+ padding-top: 1px;" width="146"
+ valign="top"&gt;&lt;div&gt;&lt;span style="color: #666666;
+ font-size: 11px;"&gt;From:&lt;/span&gt; &lt;a
+ href="http://www.youtube.com/profile?user=anafree"&gt;anafree&lt;/a&gt;&lt;/div&gt;
+ &lt;div&gt;&lt;span style="color: #666666; font-size:
+ 11px;"&gt;Views:&lt;/span&gt; 688963&lt;/div&gt; &lt;div
+ style="white-space: nowrap;text-align: left"&gt;&lt;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"&gt;
+ &lt;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"&gt;
+ &lt;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"&gt;
+ &lt;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"&gt;
+ &lt;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"&gt;&lt;/div&gt;
+ &lt;div style="font-size: 11px;"&gt;4530 &lt;span style="color:
+ #666666; font-size:
+ 11px;"&gt;ratings&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
+ &lt;tr&gt;&lt;td&gt;&lt;span style="color: #666666; font-size:
+ 11px;"&gt;Time:&lt;/span&gt; &lt;span style="color: #000000;
+ font-size: 11px; font-weight:
+ bold;"&gt;03:11&lt;/span&gt;&lt;/td&gt; &lt;td
+ style="font-size: 11px; padding-left: 20px;"&gt;&lt;span
+ style="color: #666666; font-size: 11px;"&gt;More
+ in&lt;/span&gt; &lt;a
+ href="http://www.youtube.com/categories_portal?c=10"&gt;Music&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;</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'>&lt;div style="color: #000000;font-family:
+ Arial, Helvetica, sans-serif; font-size:12px; font-size: 12px;
+ width: 555px;"&gt;&lt;table cellspacing="0" cellpadding="0"
+ border="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td width="140"
+ valign="top" rowspan="2"&gt;&lt;div style="border: 1px solid
+ #999999; margin: 0px 10px 5px 0px;"&gt;&lt;a
+ href="http://www.youtube.com/watch?v=ihQW-pWlkJw"&gt;&lt;img
+ alt=""
+ src="http://img.youtube.com/vi/ihQW-pWlkJw/2.jpg"&gt;&lt;/a&gt;&lt;/div&gt;&lt;/td&gt;
+ &lt;td width="256" valign="top"&gt;&lt;div style="font-size:
+ 12px; font-weight: bold;"&gt;&lt;a style="font-size: 15px;
+ font-weight: bold; font-decoration: none;"
+ href="http://www.youtube.com/watch?v=ihQW-pWlkJw"&gt;Ana Free
+ (Bic Runga - Sway&lt;/a&gt; &lt;br&gt;&lt;/div&gt; &lt;div
+ style="font-size: 12px; margin: 3px 0px;"&gt;&lt;span&gt;This
+ is Sway by Bic Runga, difficult to sing and I guess to play
+ aswell..:) Hope you enjoy
+ it!&lt;/span&gt;&lt;/div&gt;&lt;/td&gt; &lt;td
+ style="font-size: 11px; line-height: 1.4em; padding-left: 20px;
+ padding-top: 1px;" width="146"
+ valign="top"&gt;&lt;div&gt;&lt;span style="color: #666666;
+ font-size: 11px;"&gt;From:&lt;/span&gt; &lt;a
+ href="http://www.youtube.com/profile?user=anafree"&gt;anafree&lt;/a&gt;&lt;/div&gt;
+ &lt;div&gt;&lt;span style="color: #666666; font-size:
+ 11px;"&gt;Views:&lt;/span&gt; 282936&lt;/div&gt; &lt;div
+ style="white-space: nowrap;text-align: left"&gt;&lt;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"&gt;
+ &lt;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"&gt;
+ &lt;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"&gt;
+ &lt;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"&gt;
+ &lt;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"&gt;&lt;/div&gt;
+ &lt;div style="font-size: 11px;"&gt;2224 &lt;span style="color:
+ #666666; font-size:
+ 11px;"&gt;ratings&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
+ &lt;tr&gt;&lt;td&gt;&lt;span style="color: #666666; font-size:
+ 11px;"&gt;Time:&lt;/span&gt; &lt;span style="color: #000000;
+ font-size: 11px; font-weight:
+ bold;"&gt;03:24&lt;/span&gt;&lt;/td&gt; &lt;td
+ style="font-size: 11px; padding-left: 20px;"&gt;&lt;span
+ style="color: #666666; font-size: 11px;"&gt;More
+ in&lt;/span&gt; &lt;a
+ href="http://www.youtube.com/categories_portal?c=10"&gt;Music&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;</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'>&lt;div style="color: #000000;font-family:
+ Arial, Helvetica, sans-serif; font-size:12px; font-size: 12px;
+ width: 555px;"&gt;&lt;table cellspacing="0" cellpadding="0"
+ border="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td width="140"
+ valign="top" rowspan="2"&gt;&lt;div style="border: 1px solid
+ #999999; margin: 0px 10px 5px 0px;"&gt;&lt;a
+ href="http://www.youtube.com/watch?v=oXjInYHk2j0"&gt;&lt;img
+ alt=""
+ src="http://img.youtube.com/vi/oXjInYHk2j0/2.jpg"&gt;&lt;/a&gt;&lt;/div&gt;&lt;/td&gt;
+ &lt;td width="256" valign="top"&gt;&lt;div style="font-size:
+ 12px; font-weight: bold;"&gt;&lt;a style="font-size: 15px;
+ font-weight: bold; font-decoration: none;"
+ href="http://www.youtube.com/watch?v=oXjInYHk2j0"&gt;I&amp;#39;m
+ falling in love (u can buy the mp3 at
+ justinsteere.com)&lt;/a&gt; &lt;br&gt;&lt;/div&gt; &lt;div
+ style="font-size: 12px; margin: 3px 0px;"&gt;&lt;span&gt;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
+ :)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size:
+ 11px; line-height: 1.4em; padding-left: 20px; padding-top:
+ 1px;" width="146" valign="top"&gt;&lt;div&gt;&lt;span
+ style="color: #666666; font-size: 11px;"&gt;From:&lt;/span&gt;
+ &lt;a
+ href="http://www.youtube.com/profile?user=bunetaybaz"&gt;bunetaybaz&lt;/a&gt;&lt;/div&gt;
+ &lt;div&gt;&lt;span style="color: #666666; font-size:
+ 11px;"&gt;Views:&lt;/span&gt; 653489&lt;/div&gt; &lt;div
+ style="white-space: nowrap;text-align: left"&gt;&lt;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"&gt;
+ &lt;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"&gt;
+ &lt;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"&gt;
+ &lt;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"&gt;
+ &lt;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"&gt;&lt;/div&gt;
+ &lt;div style="font-size: 11px;"&gt;4654 &lt;span style="color:
+ #666666; font-size:
+ 11px;"&gt;ratings&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
+ &lt;tr&gt;&lt;td&gt;&lt;span style="color: #666666; font-size:
+ 11px;"&gt;Time:&lt;/span&gt; &lt;span style="color: #000000;
+ font-size: 11px; font-weight:
+ bold;"&gt;03:17&lt;/span&gt;&lt;/td&gt; &lt;td
+ style="font-size: 11px; padding-left: 20px;"&gt;&lt;span
+ style="color: #666666; font-size: 11px;"&gt;More
+ in&lt;/span&gt; &lt;a
+ href="http://www.youtube.com/categories_portal?c=10"&gt;Music&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;</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'>&lt;div style="color: #000000;font-family:
+ Arial, Helvetica, sans-serif; font-size:12px; font-size: 12px;
+ width: 555px;"&gt;&lt;table cellspacing="0" cellpadding="0"
+ border="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td width="140"
+ valign="top" rowspan="2"&gt;&lt;div style="border: 1px solid
+ #999999; margin: 0px 10px 5px 0px;"&gt;&lt;a
+ href="http://www.youtube.com/watch?v=KjMRf4egAyA"&gt;&lt;img
+ alt=""
+ src="http://img.youtube.com/vi/KjMRf4egAyA/2.jpg"&gt;&lt;/a&gt;&lt;/div&gt;&lt;/td&gt;
+ &lt;td width="256" valign="top"&gt;&lt;div style="font-size:
+ 12px; font-weight: bold;"&gt;&lt;a style="font-size: 15px;
+ font-weight: bold; font-decoration: none;"
+ href="http://www.youtube.com/watch?v=KjMRf4egAyA"&gt;When I
+ Loved You&lt;/a&gt; &lt;br&gt;&lt;/div&gt; &lt;div
+ style="font-size: 12px; margin: 3px 0px;"&gt;&lt;span&gt;As
+ promised a new song EVERY Sunday...another original (just a
+ sample) I promise I&amp;#39;ll get Sex Machine up as soon as I
+ can!
+ www.myspace.com/mishalmmoore&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;
+ &lt;td style="font-size: 11px; line-height: 1.4em;
+ padding-left: 20px; padding-top: 1px;" width="146"
+ valign="top"&gt;&lt;div&gt;&lt;span style="color: #666666;
+ font-size: 11px;"&gt;From:&lt;/span&gt; &lt;a
+ href="http://www.youtube.com/profile?user=mishalmooremusic"&gt;mishalmooremusic&lt;/a&gt;&lt;/div&gt;
+ &lt;div&gt;&lt;span style="color: #666666; font-size:
+ 11px;"&gt;Views:&lt;/span&gt; 715030&lt;/div&gt; &lt;div
+ style="white-space: nowrap;text-align: left"&gt;&lt;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"&gt;
+ &lt;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"&gt;
+ &lt;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"&gt;
+ &lt;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"&gt;
+ &lt;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"&gt;&lt;/div&gt;
+ &lt;div style="font-size: 11px;"&gt;2988 &lt;span style="color:
+ #666666; font-size:
+ 11px;"&gt;ratings&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
+ &lt;tr&gt;&lt;td&gt;&lt;span style="color: #666666; font-size:
+ 11px;"&gt;Time:&lt;/span&gt; &lt;span style="color: #000000;
+ font-size: 11px; font-weight:
+ bold;"&gt;02:38&lt;/span&gt;&lt;/td&gt; &lt;td
+ style="font-size: 11px; padding-left: 20px;"&gt;&lt;span
+ style="color: #666666; font-size: 11px;"&gt;More
+ in&lt;/span&gt; &lt;a
+ href="http://www.youtube.com/categories_portal?c=10"&gt;Music&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;</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 &amp; Glue ON THE RISE
+ CONTEST WINNER</title>
+ <content type='html'>&lt;div style="color: #000000;font-family:
+ Arial, Helvetica, sans-serif; font-size:12px; font-size: 12px;
+ width: 555px;"&gt;&lt;table cellspacing="0" cellpadding="0"
+ border="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td width="140"
+ valign="top" rowspan="2"&gt;&lt;div style="border: 1px solid
+ #999999; margin: 0px 10px 5px 0px;"&gt;&lt;a
+ href="http://www.youtube.com/watch?v=R_ruSmFFdAY"&gt;&lt;img
+ alt=""
+ src="http://img.youtube.com/vi/R_ruSmFFdAY/2.jpg"&gt;&lt;/a&gt;&lt;/div&gt;&lt;/td&gt;
+ &lt;td width="256" valign="top"&gt;&lt;div style="font-size:
+ 12px; font-weight: bold;"&gt;&lt;a style="font-size: 15px;
+ font-weight: bold; font-decoration: none;"
+ href="http://www.youtube.com/watch?v=R_ruSmFFdAY"&gt;CONCEIT-
+ Scissors &amp;amp; Glue ON THE RISE CONTEST WINNER&lt;/a&gt;
+ &lt;br&gt;&lt;/div&gt; &lt;div style="font-size: 12px; margin:
+ 3px 0px;"&gt;&lt;span&gt;Conceit - Scissors &amp;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&amp;#39;in Promo Download:
+ http://www.zshare.net/audio/3603976e3994ff/ Wasted Talent
+ Mixtape available @ myspace.com/conceit
+ gurpcity.net&lt;/span&gt;&lt;/div&gt;&lt;/td&gt; &lt;td
+ style="font-size: 11px; line-height: 1.4em; padding-left: 20px;
+ padding-top: 1px;" width="146"
+ valign="top"&gt;&lt;div&gt;&lt;span style="color: #666666;
+ font-size: 11px;"&gt;From:&lt;/span&gt; &lt;a
+ href="http://www.youtube.com/profile?user=conceit"&gt;conceit&lt;/a&gt;&lt;/div&gt;
+ &lt;div&gt;&lt;span style="color: #666666; font-size:
+ 11px;"&gt;Views:&lt;/span&gt; 188729&lt;/div&gt; &lt;div
+ style="white-space: nowrap;text-align: left"&gt;&lt;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"&gt;
+ &lt;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"&gt;
+ &lt;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"&gt;
+ &lt;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"&gt;
+ &lt;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"&gt;&lt;/div&gt;
+ &lt;div style="font-size: 11px;"&gt;680 &lt;span style="color:
+ #666666; font-size:
+ 11px;"&gt;ratings&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
+ &lt;tr&gt;&lt;td&gt;&lt;span style="color: #666666; font-size:
+ 11px;"&gt;Time:&lt;/span&gt; &lt;span style="color: #000000;
+ font-size: 11px; font-weight:
+ bold;"&gt;02:22&lt;/span&gt;&lt;/td&gt; &lt;td
+ style="font-size: 11px; padding-left: 20px;"&gt;&lt;span
+ style="color: #666666; font-size: 11px;"&gt;More
+ in&lt;/span&gt; &lt;a
+ href="http://www.youtube.com/categories_portal?c=10"&gt;Music&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;</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 &amp; Glue ON THE
+ RISE CONTEST WINNER</media:title>
+ <media:description type='plain'>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'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&amp;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&amp;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&amp;max-results=25&amp;v=2' />
+<link rel='service' type='application/atomsvc+xml'
+href='http://gdata.youtube.com/feeds/api/users/zfgdata/subscriptions?alt=atom-service&amp;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&amp;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'>&lt;div style="color: #000000;font-family:
+ Arial, Helvetica, sans-serif; font-size:12px; font-size: 12px;
+ width: 555px;"&gt;&lt;table cellspacing="0" cellpadding="0"
+ border="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td width="140"
+ valign="top" rowspan="2"&gt;&lt;div style="border: 1px solid
+ #999999; margin: 0px 10px 5px 0px;"&gt;&lt;a
+ href="http://www.youtube.com/watch?v=UMFI1hdm96E"&gt;&lt;img
+ alt=""
+ src="http://img.youtube.com/vi/UMFI1hdm96E/2.jpg"&gt;&lt;/a&gt;&lt;/div&gt;&lt;/td&gt;
+ &lt;td width="256" valign="top"&gt;&lt;div style="font-size:
+ 12px; font-weight: bold;"&gt;&lt;a style="font-size: 15px;
+ font-weight: bold; font-decoration: none;"
+ href="http://www.youtube.com/watch?v=UMFI1hdm96E"&gt;&amp;quot;Crazy
+ (Gnarles Barkley)&amp;quot; - Acoustic Cover&lt;/a&gt;
+ &lt;br&gt;&lt;/div&gt; &lt;div style="font-size: 12px; margin:
+ 3px 0px;"&gt;&lt;span&gt;Gnarles Barkley acoustic cover
+ http://www.myspace.com/davidchoimusic&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;
+ &lt;td style="font-size: 11px; line-height: 1.4em; padding-left:
+ 20px; padding-top: 1px;" width="146"
+ valign="top"&gt;&lt;div&gt;&lt;span style="color: #666666;
+ font-size: 11px;"&gt;From:&lt;/span&gt; &lt;a
+ href="http://www.youtube.com/profile?user=davidchoimusic"&gt;davidchoimusic&lt;/a&gt;&lt;/div&gt;
+ &lt;div&gt;&lt;span style="color: #666666; font-size:
+ 11px;"&gt;Views:&lt;/span&gt; 113321&lt;/div&gt; &lt;div
+ style="white-space: nowrap;text-align: left"&gt;&lt;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"&gt;
+ &lt;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"&gt;
+ &lt;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"&gt;
+ &lt;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"&gt;
+ &lt;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"&gt;&lt;/div&gt;
+ &lt;div style="font-size: 11px;"&gt;1005 &lt;span style="color:
+ #666666; font-size:
+ 11px;"&gt;ratings&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
+ &lt;tr&gt;&lt;td&gt;&lt;span style="color: #666666; font-size:
+ 11px;"&gt;Time:&lt;/span&gt; &lt;span style="color: #000000;
+ font-size: 11px; font-weight:
+ bold;"&gt;04:15&lt;/span&gt;&lt;/td&gt; &lt;td style="font-size:
+ 11px; padding-left: 20px;"&gt;&lt;span style="color: #666666;
+ font-size: 11px;"&gt;More in&lt;/span&gt; &lt;a
+ href="http://www.youtube.com/categories_portal?c=10"&gt;Music&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;</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'>&lt;div style="color: #000000;font-family:
+ Arial, Helvetica, sans-serif; font-size:12px; font-size: 12px;
+ width: 555px;"&gt;&lt;table cellspacing="0" cellpadding="0"
+ border="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td width="140"
+ valign="top" rowspan="2"&gt;&lt;div style="border: 1px solid
+ #999999; margin: 0px 10px 5px 0px;"&gt;&lt;a
+ href="http://www.youtube.com/watch?v=UMFI1hdm96E"&gt;&lt;img
+ alt=""
+ src="http://img.youtube.com/vi/UMFI1hdm96E/2.jpg"&gt;&lt;/a&gt;&lt;/div&gt;&lt;/td&gt;
+ &lt;td width="256" valign="top"&gt;&lt;div style="font-size:
+ 12px; font-weight: bold;"&gt;&lt;a style="font-size: 15px;
+ font-weight: bold; font-decoration: none;"
+ href="http://www.youtube.com/watch?v=UMFI1hdm96E"&gt;&amp;quot;Crazy
+ (Gnarles Barkley)&amp;quot; - Acoustic Cover&lt;/a&gt;
+ &lt;br&gt;&lt;/div&gt; &lt;div style="font-size: 12px; margin:
+ 3px 0px;"&gt;&lt;span&gt;Gnarles Barkley acoustic cover
+ http://www.myspace.com/davidchoimusic&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;
+ &lt;td style="font-size: 11px; line-height: 1.4em; padding-left:
+ 20px; padding-top: 1px;" width="146"
+ valign="top"&gt;&lt;div&gt;&lt;span style="color: #666666;
+ font-size: 11px;"&gt;From:&lt;/span&gt; &lt;a
+ href="http://www.youtube.com/profile?user=davidchoimusic"&gt;davidchoimusic&lt;/a&gt;&lt;/div&gt;
+ &lt;div&gt;&lt;span style="color: #666666; font-size:
+ 11px;"&gt;Views:&lt;/span&gt; 113321&lt;/div&gt; &lt;div
+ style="white-space: nowrap;text-align: left"&gt;&lt;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"&gt;
+ &lt;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"&gt;
+ &lt;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"&gt;
+ &lt;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"&gt;
+ &lt;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"&gt;&lt;/div&gt;
+ &lt;div style="font-size: 11px;"&gt;1005 &lt;span style="color:
+ #666666; font-size:
+ 11px;"&gt;ratings&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
+ &lt;tr&gt;&lt;td&gt;&lt;span style="color: #666666; font-size:
+ 11px;"&gt;Time:&lt;/span&gt; &lt;span style="color: #000000;
+ font-size: 11px; font-weight:
+ bold;"&gt;04:15&lt;/span&gt;&lt;/td&gt; &lt;td style="font-size:
+ 11px; padding-left: 20px;"&gt;&lt;span style="color: #666666;
+ font-size: 11px;"&gt;More in&lt;/span&gt; &lt;a
+ href="http://www.youtube.com/categories_portal?c=10"&gt;Music&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;</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/&quot;A0cDQn47eCp7ImA9WxRbF00.&quot;'>
+<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&amp;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&amp;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&amp;max-results=5' />
+ <link rel='next' type='application/atom+xml'
+ href='http://gdata.youtube.com/feeds/users/davidchoimusic/uploads?start-index=6&amp;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'>&lt;div style="color: #000000;font-family:
+ Arial, Helvetica, sans-serif; font-size:12px; font-size: 12px;
+ width: 555px;"&gt;&lt;table cellspacing="0" cellpadding="0"
+ border="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td width="140"
+ valign="top" rowspan="2"&gt;&lt;div style="border: 1px solid
+ #999999; margin: 0px 10px 5px 0px;"&gt;&lt;a
+ href="http://www.youtube.com/watch?v=Lnio-pqLPgg"&gt;&lt;img
+ alt=""
+ src="http://img.youtube.com/vi/Lnio-pqLPgg/2.jpg"&gt;&lt;/a&gt;&lt;/div&gt;&lt;/td&gt;
+ &lt;td width="256" valign="top"&gt;&lt;div style="font-size:
+ 12px; font-weight: bold;"&gt;&lt;a style="font-size: 15px;
+ font-weight: bold; font-decoration: none;"
+ href="http://www.youtube.com/watch?v=Lnio-pqLPgg"&gt;&amp;quot;That
+ Girl&amp;quot; - Original Song - Acoustic Version&lt;/a&gt;
+ &lt;br&gt;&lt;/div&gt; &lt;div style="font-size: 12px; margin:
+ 3px 0px;"&gt;&lt;span&gt;For the full version, check out
+ http://www.myspace.com/musicchester mp3
+ http://www.broadjam.com/davidchoi That Girl Oh tonight
+ I&amp;#39;m feeling fine I&amp;#39;m alone just wasting time no
+ Friday movie nights or romantic candlelight I&amp;#39;m just
+ having conversations with the thoughts in my head all I hear
+ are angels crying oh won&amp;#39;t they just sing instead It
+ would be wrong for me to say I don&amp;#39;t need that girl by
+ my side I don&amp;#39;t need that girl in my life I
+ don&amp;#39;t want to talk it out or hold her when she cries I
+ don&amp;#39;t want to say she&amp;#39;s my kind I don&amp;#39;t
+ want to say that she&amp;#39;s mine I don&amp;#39;t want to
+ tell her that I love her more than life more than life, love
+ her more than life Honestly, this won&amp;#39;t do how is she
+ doing? I tell myself I&amp;#39;m feeling swell but I know
+ I&amp;#39;m such a fool I&amp;#39;ll just take it as a new
+ beginning but you know I don&amp;#39;t feel that way who will
+ take all this pain away? I know it&amp;#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&amp;#39;t waste no time I
+ know it&amp;#39;s wrong for me to say Chorus
+ www.myspace.com/davidchoimusic&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;
+ &lt;td style="font-size: 11px; line-height: 1.4em;
+ padding-left: 20px; padding-top: 1px;" width="146"
+ valign="top"&gt;&lt;div&gt;&lt;span style="color: #666666;
+ font-size: 11px;"&gt;From:&lt;/span&gt; &lt;a
+ href="http://www.youtube.com/profile?user=davidchoimusic"&gt;davidchoimusic&lt;/a&gt;&lt;/div&gt;
+ &lt;div&gt;&lt;span style="color: #666666; font-size:
+ 11px;"&gt;Views:&lt;/span&gt; 437209&lt;/div&gt; &lt;div
+ style="white-space: nowrap;text-align: left"&gt;&lt;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"&gt;
+ &lt;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"&gt;
+ &lt;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"&gt;
+ &lt;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"&gt;
+ &lt;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"&gt;&lt;/div&gt;
+ &lt;div style="font-size: 11px;"&gt;2981 &lt;span style="color:
+ #666666; font-size:
+ 11px;"&gt;ratings&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
+ &lt;tr&gt;&lt;td&gt;&lt;span style="color: #666666; font-size:
+ 11px;"&gt;Time:&lt;/span&gt; &lt;span style="color: #000000;
+ font-size: 11px; font-weight:
+ bold;"&gt;03:40&lt;/span&gt;&lt;/td&gt; &lt;td
+ style="font-size: 11px; padding-left: 20px;"&gt;&lt;span
+ style="color: #666666; font-size: 11px;"&gt;More
+ in&lt;/span&gt; &lt;a
+ href="http://www.youtube.com/categories_portal?c=10"&gt;Music&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;</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'>&lt;div style="color: #000000;font-family:
+ Arial, Helvetica, sans-serif; font-size:12px; font-size: 12px;
+ width: 555px;"&gt;&lt;table cellspacing="0" cellpadding="0"
+ border="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td width="140"
+ valign="top" rowspan="2"&gt;&lt;div style="border: 1px solid
+ #999999; margin: 0px 10px 5px 0px;"&gt;&lt;a
+ href="http://www.youtube.com/watch?v=FWPzxVMQU8g"&gt;&lt;img
+ alt=""
+ src="http://img.youtube.com/vi/FWPzxVMQU8g/2.jpg"&gt;&lt;/a&gt;&lt;/div&gt;&lt;/td&gt;
+ &lt;td width="256" valign="top"&gt;&lt;div style="font-size:
+ 12px; font-weight: bold;"&gt;&lt;a style="font-size: 15px;
+ font-weight: bold; font-decoration: none;"
+ href="http://www.youtube.com/watch?v=FWPzxVMQU8g"&gt;&amp;quot;You
+ Tube&amp;quot; (A Love Song) - Original Song - Acoustic
+ Version&lt;/a&gt; &lt;br&gt;&lt;/div&gt; &lt;div
+ style="font-size: 12px; margin: 3px
+ 0px;"&gt;&lt;span&gt;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 &amp;quot;subscribe&amp;quot;
+ button on the top right corner!
+ ================================ &amp;quot;You Tube&amp;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&amp;#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&amp;#39;d like I&amp;#39;ll post one right back, oh I think
+ I might could you add me to your favorites and I&amp;#39;ll
+ post on your bulletin maybe send you a message if you promise
+ to write me back I&amp;#39;ll log in and out to please you oh
+ you know the things I&amp;#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&lt;/span&gt;&lt;/div&gt;&lt;/td&gt; &lt;td
+ style="font-size: 11px; line-height: 1.4em; padding-left: 20px;
+ padding-top: 1px;" width="146"
+ valign="top"&gt;&lt;div&gt;&lt;span style="color: #666666;
+ font-size: 11px;"&gt;From:&lt;/span&gt; &lt;a
+ href="http://www.youtube.com/profile?user=davidchoimusic"&gt;davidchoimusic&lt;/a&gt;&lt;/div&gt;
+ &lt;div&gt;&lt;span style="color: #666666; font-size:
+ 11px;"&gt;Views:&lt;/span&gt; 1495035&lt;/div&gt; &lt;div
+ style="white-space: nowrap;text-align: left"&gt;&lt;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"&gt;
+ &lt;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"&gt;
+ &lt;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"&gt;
+ &lt;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"&gt;
+ &lt;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"&gt;&lt;/div&gt;
+ &lt;div style="font-size: 11px;"&gt;10995 &lt;span
+ style="color: #666666; font-size:
+ 11px;"&gt;ratings&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
+ &lt;tr&gt;&lt;td&gt;&lt;span style="color: #666666; font-size:
+ 11px;"&gt;Time:&lt;/span&gt; &lt;span style="color: #000000;
+ font-size: 11px; font-weight:
+ bold;"&gt;02:57&lt;/span&gt;&lt;/td&gt; &lt;td
+ style="font-size: 11px; padding-left: 20px;"&gt;&lt;span
+ style="color: #666666; font-size: 11px;"&gt;More
+ in&lt;/span&gt; &lt;a
+ href="http://www.youtube.com/categories_portal?c=10"&gt;Music&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;</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'>&lt;div style="color: #000000;font-family:
+ Arial, Helvetica, sans-serif; font-size:12px; font-size: 12px;
+ width: 555px;"&gt;&lt;table cellspacing="0" cellpadding="0"
+ border="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td width="140"
+ valign="top" rowspan="2"&gt;&lt;div style="border: 1px solid
+ #999999; margin: 0px 10px 5px 0px;"&gt;&lt;a
+ href="http://www.youtube.com/watch?v=uWVuAl_aFRo"&gt;&lt;img
+ alt=""
+ src="http://img.youtube.com/vi/uWVuAl_aFRo/2.jpg"&gt;&lt;/a&gt;&lt;/div&gt;&lt;/td&gt;
+ &lt;td width="256" valign="top"&gt;&lt;div style="font-size:
+ 12px; font-weight: bold;"&gt;&lt;a style="font-size: 15px;
+ font-weight: bold; font-decoration: none;"
+ href="http://www.youtube.com/watch?v=uWVuAl_aFRo"&gt;&amp;quot;Beautiful
+ Girls&amp;quot; - Sean Kingston - Acoustic Cover&lt;/a&gt;
+ &lt;br&gt;&lt;/div&gt; &lt;div style="font-size: 12px; margin:
+ 3px 0px;"&gt;&lt;span&gt;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
+ :)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size:
+ 11px; line-height: 1.4em; padding-left: 20px; padding-top:
+ 1px;" width="146" valign="top"&gt;&lt;div&gt;&lt;span
+ style="color: #666666; font-size: 11px;"&gt;From:&lt;/span&gt;
+ &lt;a
+ href="http://www.youtube.com/profile?user=davidchoimusic"&gt;davidchoimusic&lt;/a&gt;&lt;/div&gt;
+ &lt;div&gt;&lt;span style="color: #666666; font-size:
+ 11px;"&gt;Views:&lt;/span&gt; 124571&lt;/div&gt; &lt;div
+ style="white-space: nowrap;text-align: left"&gt;&lt;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"&gt;
+ &lt;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"&gt;
+ &lt;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"&gt;
+ &lt;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"&gt;
+ &lt;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"&gt;&lt;/div&gt;
+ &lt;div style="font-size: 11px;"&gt;1201 &lt;span style="color:
+ #666666; font-size:
+ 11px;"&gt;ratings&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
+ &lt;tr&gt;&lt;td&gt;&lt;span style="color: #666666; font-size:
+ 11px;"&gt;Time:&lt;/span&gt; &lt;span style="color: #000000;
+ font-size: 11px; font-weight:
+ bold;"&gt;04:23&lt;/span&gt;&lt;/td&gt; &lt;td
+ style="font-size: 11px; padding-left: 20px;"&gt;&lt;span
+ style="color: #666666; font-size: 11px;"&gt;More
+ in&lt;/span&gt; &lt;a
+ href="http://www.youtube.com/categories_portal?c=10"&gt;Music&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;</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'>&lt;div style="color: #000000;font-family:
+ Arial, Helvetica, sans-serif; font-size:12px; font-size: 12px;
+ width: 555px;"&gt;&lt;table cellspacing="0" cellpadding="0"
+ border="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td width="140"
+ valign="top" rowspan="2"&gt;&lt;div style="border: 1px solid
+ #999999; margin: 0px 10px 5px 0px;"&gt;&lt;a
+ href="http://www.youtube.com/watch?v=_PCgDBIgPbo"&gt;&lt;img
+ alt=""
+ src="http://img.youtube.com/vi/_PCgDBIgPbo/2.jpg"&gt;&lt;/a&gt;&lt;/div&gt;&lt;/td&gt;
+ &lt;td width="256" valign="top"&gt;&lt;div style="font-size:
+ 12px; font-weight: bold;"&gt;&lt;a style="font-size: 15px;
+ font-weight: bold; font-decoration: none;"
+ href="http://www.youtube.com/watch?v=_PCgDBIgPbo"&gt;Vlog -
+ &amp;quot;That Girl&amp;quot; - Guitar Chords&lt;/a&gt;
+ &lt;br&gt;&lt;/div&gt; &lt;div style="font-size: 12px; margin:
+ 3px 0px;"&gt;&lt;span&gt;Vlog - &amp;quot;That Girl&amp;quot; -
+ Guitar Chords Finally here! Enjoy!
+ http://www.myspace.com/davidchoimusic
+ http://www.broadjam.com/davidchoi&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;
+ &lt;td style="font-size: 11px; line-height: 1.4em;
+ padding-left: 20px; padding-top: 1px;" width="146"
+ valign="top"&gt;&lt;div&gt;&lt;span style="color: #666666;
+ font-size: 11px;"&gt;From:&lt;/span&gt; &lt;a
+ href="http://www.youtube.com/profile?user=davidchoimusic"&gt;davidchoimusic&lt;/a&gt;&lt;/div&gt;
+ &lt;div&gt;&lt;span style="color: #666666; font-size:
+ 11px;"&gt;Views:&lt;/span&gt; 76681&lt;/div&gt; &lt;div
+ style="white-space: nowrap;text-align: left"&gt;&lt;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"&gt;
+ &lt;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"&gt;
+ &lt;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"&gt;
+ &lt;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"&gt;
+ &lt;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"&gt;&lt;/div&gt;
+ &lt;div style="font-size: 11px;"&gt;384 &lt;span style="color:
+ #666666; font-size:
+ 11px;"&gt;ratings&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
+ &lt;tr&gt;&lt;td&gt;&lt;span style="color: #666666; font-size:
+ 11px;"&gt;Time:&lt;/span&gt; &lt;span style="color: #000000;
+ font-size: 11px; font-weight:
+ bold;"&gt;05:38&lt;/span&gt;&lt;/td&gt; &lt;td
+ style="font-size: 11px; padding-left: 20px;"&gt;&lt;span
+ style="color: #666666; font-size: 11px;"&gt;More
+ in&lt;/span&gt; &lt;a
+ href="http://www.youtube.com/categories_portal?c=10"&gt;Music&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;</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'>&lt;div style="color: #000000;font-family:
+ Arial, Helvetica, sans-serif; font-size:12px; font-size: 12px;
+ width: 555px;"&gt;&lt;table cellspacing="0" cellpadding="0"
+ border="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td width="140"
+ valign="top" rowspan="2"&gt;&lt;div style="border: 1px solid
+ #999999; margin: 0px 10px 5px 0px;"&gt;&lt;a
+ href="http://www.youtube.com/watch?v=DdGyPZ0v7Ng"&gt;&lt;img
+ alt=""
+ src="http://img.youtube.com/vi/DdGyPZ0v7Ng/2.jpg"&gt;&lt;/a&gt;&lt;/div&gt;&lt;/td&gt;
+ &lt;td width="256" valign="top"&gt;&lt;div style="font-size:
+ 12px; font-weight: bold;"&gt;&lt;a style="font-size: 15px;
+ font-weight: bold; font-decoration: none;"
+ href="http://www.youtube.com/watch?v=DdGyPZ0v7Ng"&gt;Beat
+ Making with David Choi&lt;/a&gt; &lt;br&gt;&lt;/div&gt; &lt;div
+ style="font-size: 12px; margin: 3px 0px;"&gt;&lt;span&gt;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
+ :)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size:
+ 11px; line-height: 1.4em; padding-left: 20px; padding-top:
+ 1px;" width="146" valign="top"&gt;&lt;div&gt;&lt;span
+ style="color: #666666; font-size: 11px;"&gt;From:&lt;/span&gt;
+ &lt;a
+ href="http://www.youtube.com/profile?user=davidchoimusic"&gt;davidchoimusic&lt;/a&gt;&lt;/div&gt;
+ &lt;div&gt;&lt;span style="color: #666666; font-size:
+ 11px;"&gt;Views:&lt;/span&gt; 22559&lt;/div&gt; &lt;div
+ style="white-space: nowrap;text-align: left"&gt;&lt;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"&gt;
+ &lt;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"&gt;
+ &lt;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"&gt;
+ &lt;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"&gt;
+ &lt;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"&gt;&lt;/div&gt;
+ &lt;div style="font-size: 11px;"&gt;371 &lt;span style="color:
+ #666666; font-size:
+ 11px;"&gt;ratings&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
+ &lt;tr&gt;&lt;td&gt;&lt;span style="color: #666666; font-size:
+ 11px;"&gt;Time:&lt;/span&gt; &lt;span style="color: #000000;
+ font-size: 11px; font-weight:
+ bold;"&gt;09:51&lt;/span&gt;&lt;/td&gt; &lt;td
+ style="font-size: 11px; padding-left: 20px;"&gt;&lt;span
+ style="color: #666666; font-size: 11px;"&gt;More
+ in&lt;/span&gt; &lt;a
+ href="http://www.youtube.com/categories_portal?c=10"&gt;Music&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;</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>