public function testAddAndDeleteSubscriptionToQueryV2() { $developerKey = constant('TESTS_ZEND_GDATA_YOUTUBE_DEVELOPER_KEY'); $clientId = constant('TESTS_ZEND_GDATA_YOUTUBE_CLIENT_ID'); $service = Zend_Gdata_YouTube::AUTH_SERVICE_NAME; $authenticationURL = 'https://www.google.com/youtube/accounts/ClientLogin'; $httpClient = Zend_Gdata_ClientLogin::getHttpClient($username = $this->user, $password = $this->pass, $service = $service, $client = null, $source = 'Google-UnitTests-1.0', $loginToken = null, $loginCaptcha = null, $authenticationURL); $yt = new Zend_Gdata_YouTube($httpClient, 'Google-UnitTests-1.0', $clientId, $developerKey); $yt->setMajorProtocolVersion(2); $queryStringToSubscribeTo = 'zend'; // Test for deletion first in case something went wrong // last time the test was run (network, etc...) $subscriptionFeed = $yt->getSubscriptionFeed($this->ytAccount); $successDeletionUpFront = true; $message = null; foreach ($subscriptionFeed as $subscriptionEntry) { $subscriptionType = null; $categories = $subscriptionEntry->getCategory(); // examine the correct category element since there are multiple foreach ($categories as $category) { if ($category->getScheme() == 'http://gdata.youtube.com/schemas/2007/' . 'subscriptiontypes.cat') { $subscriptionType = $category->getTerm(); } } if ($subscriptionType == 'query') { if ($subscriptionEntry->getQueryString() == $queryStringToSubscribeTo) { try { $subscriptionEntry->delete(); } catch (Zend_App_Exception $e) { $message = $e->getMessage(); $successDeletionUpFront = false; } } } } $this->assertTrue($successDeletionUpFront, 'Found existing ' . 'subscription in unit test, could not delete prior to running ' . 'test -- ' . $message); // Query $newSubscription = $yt->newSubscriptionEntry(); $newSubscription->category = array($yt->newCategory('query', $this->subscriptionTypeSchema)); $newSubscription->setQueryString($yt->newQueryString($queryStringToSubscribeTo)); $postUrl = 'http://gdata.youtube.com/feeds/api/users/default/subscriptions'; $successPosting = true; $message = null; $insertedSubscription = null; try { $insertedSubscription = $yt->insertEntry($newSubscription, $postUrl, 'Zend_Gdata_YouTube_SubscriptionEntry'); } catch (Zend_App_Exception $e) { $message = $e->getMessage(); $successPosting = false; } $this->assertTrue($successPosting, $message); // Delete it $successDeletion = true; $message = null; try { $insertedSubscription->delete(); } catch (Zend_App_Exception $e) { $message = $e->getMessage(); $successDeletion = false; } $this->assertTrue($successDeletion, $message); }